[
  {
    "path": ".changeset/README.md",
    "content": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works\nwith multi-package repos, or single-package repos to help you version and publish your code. You can\nfind the full documentation for it [in our repository](https://github.com/changesets/changesets)\n\nWe have a quick list of common questions to get you started engaging with this project in\n[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)\n"
  },
  {
    "path": ".changeset/config.json",
    "content": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@3.0.3/schema.json\",\n  \"changelog\": [\n    \"@changesets/changelog-github\",\n    { \"repo\": \"oktaysenkan/monicon\" }\n  ],\n  \"commit\": false,\n  \"fixed\": [[\"@monicon/*\"]],\n  \"linked\": [],\n  \"access\": \"public\",\n  \"baseBranch\": \"main\",\n  \"updateInternalDependencies\": \"patch\",\n  \"ignore\": [\n    \"@monicon/react-native-app\",\n    \"@monicon/next\",\n    \"@monicon/remix\",\n    \"@monicon/nuxt-app\",\n    \"@monicon/rollup-react\",\n    \"@monicon/rspack-react\",\n    \"@monicon/vite-react\",\n    \"@monicon/vite-vue\",\n    \"@monicon/svelte-app\",\n    \"@monicon/qwik-app\",\n    \"@monicon/docs\"\n  ]\n}\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "github: oktaysenkan\n"
  },
  {
    "path": ".github/actions/setup/action.yml",
    "content": "name: Setup\ndescription: Setup Node.js and install dependencies\n\nruns:\n  using: composite\n  steps:\n    - name: Setup Node.js\n      uses: actions/setup-node@v3\n      with:\n        node-version-file: .nvmrc\n\n    - name: Install dependencies\n      run: yarn install --immutable\n      shell: bash\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\non:\n  pull_request:\n    branches:\n      - '**'\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Setup\n        uses: ./.github/actions/setup\n\n      - name: Clean\n        run: yarn clean\n\n      - name: Build all packages and apps\n        run: yarn build"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\n\non:\n  push:\n    branches: [main]\n\njobs:\n  release:\n    if: github.repository == 'oktaysenkan/monicon'\n\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Setup\n        uses: ./.github/actions/setup\n\n      - name: Clean\n        run: yarn clean\n\n      - name: Build all packages and apps\n        run: yarn build\n\n      - name: Create Release Pull Request or Publish to npm\n        uses: changesets/action@v1\n        with:\n          publish: yarn release\n          version: yarn bump\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}"
  },
  {
    "path": ".gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n# testing\ncoverage\n\n# next.js\n.next/\n.swc/\nout/\nbuild\n\n# expo\n.expo\n\n# misc\n.DS_Store\n*.pem\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo\n\n# monicon\n.monicon"
  },
  {
    "path": ".nvmrc",
    "content": "v22"
  },
  {
    "path": ".syncpackrc",
    "content": "{\n  \"semverRange\": \"*\",\n  \"source\": [\n    \"packages/*/package.json\"\n  ]\n}\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2025 Oktay Şenkan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "<a href=\"https://monicon-docs.vercel.app/\" target=\"_blank\" rel=\"noopener\">\n  <picture>\n    <source srcset=\"https://github.com/user-attachments/assets/720e6358-9466-4992-8214-71aa7b65c723\" />\n    <img alt=\"banner\" src=\"https://github.com/user-attachments/assets/720e6358-9466-4992-8214-71aa7b65c723\" />\n  </picture>\n</a>\n\n<h1 align=\"center\">Monicon</h1>\n\n<h3 align=\"center\">\n  Universal Icon Library\n</h3>\n\n<div align=\"center\">\n<p>  \n  Monicon is an easy-to-use icon library that makes adding icons to your projects simple. It works with popular frameworks like React, React Native, Next.js, Vue, Nuxt, Svelte and more. It's provides 200,000+ icons  from popular sets like Material Design, Feather, and Font Awesome.\n</p>\n\n<p>\n  <strong><a href=\"https://monicon-docs.vercel.app\">Documentation</a></strong>\n  ·\n  <strong><a href=\"https://icones.js.org/\">Explore Icons</a></strong>\n  ·\n  <strong><a href=\"https://github.com/oktaysenkan/monicon/issues\">Issues</a></strong>\n</p>\n</div>\n"
  },
  {
    "path": "apps/docs/.gitignore",
    "content": "# deps\n/node_modules\n\n# generated content\n.source\n\n# test & build\n/coverage\n/.next/\n/out/\n/build\n*.tsbuildinfo\n\n# misc\n.DS_Store\n*.pem\n/.pnp\n.pnp.js\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# others\n.env*.local\n.vercel\nnext-env.d.ts"
  },
  {
    "path": "apps/docs/README.md",
    "content": "# docs\n\nThis is a Next.js application generated with\n[Create Fumadocs](https://github.com/fuma-nama/fumadocs).\n\nRun development server:\n\n```bash\nnpm run dev\n# or\npnpm dev\n# or\nyarn dev\n```\n\nOpen http://localhost:3000 with your browser to see the result.\n\n## Explore\n\nIn the project, you can see:\n\n- `lib/source.ts`: Code for content source adapter, [`loader()`](https://fumadocs.dev/docs/headless/source-api) provides the interface to access your content.\n- `lib/layout.shared.tsx`: Shared options for layouts, optional but preferred to keep.\n\n| Route                     | Description                                            |\n| ------------------------- | ------------------------------------------------------ |\n| `app/(home)`              | The route group for your landing page and other pages. |\n| `app/docs`                | The documentation layout and pages.                    |\n| `app/api/search/route.ts` | The Route Handler for search.                          |\n\n### Fumadocs MDX\n\nA `source.config.ts` config file has been included, you can customise different options like frontmatter schema.\n\nRead the [Introduction](https://fumadocs.dev/docs/mdx) for further details.\n\n## Learn More\n\nTo learn more about Next.js and Fumadocs, take a look at the following\nresources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js\n  features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n- [Fumadocs](https://fumadocs.dev) - learn about Fumadocs\n"
  },
  {
    "path": "apps/docs/content/docs/architecture.mdx",
    "content": "---\ntitle: Architecture\ndescription: Understand Monicon's architecture, package structure, and how components work together\n---\n\nThis guide explains Monicon's architecture, including package dependencies, the icon generation flow, and how different components work together.\n\n## Overview\n\nMonicon is built as a monorepo with multiple packages that work together to provide a flexible, framework-agnostic icon management system. The architecture is designed to be modular, extensible, and easy to integrate with different build tools and frameworks.\n\n## Package Structure\n\n<Mermaid chart={`\ngraph TD\nA[@monicon/core] --> B[@monicon/cli]\nA --> C[@monicon/vite]\nA --> D[@monicon/webpack]\nA --> E[@monicon/rollup]\nA --> F[@monicon/esbuild]\nA --> G[@monicon/rspack]\nA --> H[@monicon/metro]\nA --> I[@monicon/nuxt]\n\nstyle A fill:#059669,stroke:#047857,color:#fff\nstyle B fill:#2563eb,stroke:#1d4ed8,color:#fff\nstyle C fill:#d97706,stroke:#b45309,color:#fff\nstyle D fill:#d97706,stroke:#b45309,color:#fff\nstyle E fill:#d97706,stroke:#b45309,color:#fff\nstyle F fill:#d97706,stroke:#b45309,color:#fff\nstyle G fill:#d97706,stroke:#b45309,color:#fff\nstyle H fill:#d97706,stroke:#b45309,color:#fff\nstyle I fill:#d97706,stroke:#b45309,color:#fff\n`}/>\n\n### Core Packages\n\n#### @monicon/core (Core Engine)\n\nThe heart of Monicon, containing all the core functionality:\n\n- **Bootstrap Function**: Entry point for icon generation\n- **Loaders**: Fetch icons from different sources (remote, local, JSON)\n- **Plugins**: Transform icons into framework-specific components\n- **Utilities**: Config loading, file system operations, icon processing\n\n#### @monicon/cli (Command Line Interface)\n\nCommand-line tool for generating icons outside of build processes. Uses `@monicon/core` to provide a CLI experience.\n\n### Bundler Integration Packages\n\nAll bundler packages depend on `@monicon/core` and provide seamless integration:\n\n- **@monicon/vite** - Vite plugin\n- **@monicon/webpack** - Webpack plugin\n- **@monicon/rollup** - Rollup plugin\n- **@monicon/esbuild** - esbuild plugin\n- **@monicon/rspack** - Rspack plugin\n- **@monicon/metro** - Metro bundler plugin (React Native)\n- **@monicon/nuxt** - Nuxt module\n\n## Core Architecture\n\nThe `@monicon/core` package is structured into four main components:\n\n<Mermaid\n  chart={`\ngraph LR\n    A[Bootstrap] --> B[Loaders]\n    A --> C[Plugins]\n    A --> D[Utils]\n    \n    B --> B1[Remote Collection]\n    B --> B2[Local Collection]\n    B --> B3[JSON Collection]\n    \n    C --> C0[Generic Plugin]\n    C --> C7[Clean Plugin]\n    C --> C8[Debugger Plugin]\n    \n    C0 --> P1[React Plugin]\n    C0 --> P2[Vue Plugin]\n    C0 --> P3[Svelte Plugin]\n    C0 --> P4[Qwik Plugin]\n    C0 --> P5[React Native Plugin]\n    C0 --> P6[SVG Plugin]\n    \n    D --> D1[Config Loader]\n    D --> D2[File System]\n    D --> D3[Icon Processor]\n    D --> D4[Plugin Loader]\n    D --> D5[SVG Utils]\n    \n    style A fill:#059669,stroke:#047857,color:#fff\n    style B fill:#2563eb,stroke:#1d4ed8,color:#fff\n    style C fill:#d97706,stroke:#b45309,color:#fff\n    style D fill:#7c3aed,stroke:#6d28d9,color:#fff\n`}\n/>\n\n### Components\n\n#### Bootstrap\n\nEntry point that orchestrates the entire icon generation process. It:\n\n- Loads configuration\n- Processes icons\n- Runs plugins\n- Writes output files\n\n#### Loaders\n\nFetch icons from various sources:\n\n- **Remote Collection**: Fetch from Iconify CDN\n- **Local Collection**: Load from local file system\n- **JSON Collection**: Load from JSON files\n\n#### Plugins\n\nTransform raw SVG icons into framework-specific components:\n\n- **Generic Plugin**: Base plugin providing file generation capabilities (used internally by framework plugins)\n- **React Plugin**: Generate React/JSX components (built on Generic Plugin)\n- **Vue Plugin**: Generate Vue SFC components (built on Generic Plugin)\n- **Svelte Plugin**: Generate Svelte components (built on Generic Plugin)\n- **Qwik Plugin**: Generate Qwik components (built on Generic Plugin)\n- **React Native Plugin**: Generate React Native components with react-native-svg (built on Generic Plugin)\n- **SVG Plugin**: Generate plain SVG files (built on Generic Plugin)\n- **Clean Plugin**: Clean output directories\n- **Debugger Plugin**: Debug icon generation\n\n#### Utils\n\nHelper utilities for various operations:\n\n- **Config Loader**: Load and watch configuration files\n- **File System**: Handle file operations\n- **Icon Processor**: Process and transform icons\n- **Plugin Loader**: Load and execute plugins\n- **SVG Utils**: Parse and manipulate SVG content\n\n## Plugin System\n\nPlugins are the core of Monicon's extensibility. Here's how the plugin system works:\n\n<Mermaid\n  chart={`\nflowchart LR\n    A[Icon Data] --> B[onPluginsLoad Hook]\n    B --> C[beforeGenerate Hook]\n    \n    C --> D[Plugin 1]\n    C --> E[Plugin 2]\n    C --> F[Plugin N]\n    \n    D --> D1[generate]\n    E --> E1[generate]\n    F --> F1[generate]\n    \n    D1 --> G[Collect All Files]\n    E1 --> G\n    F1 --> G\n    \n    G --> H[afterGenerate Hook]\n    H --> I[beforeWriteFiles Hook]\n    I --> J[Write to Disk]\n    J --> K[afterWriteFiles Hook]\n    \n    style A fill:#059669,stroke:#047857,color:#fff\n    style G fill:#2563eb,stroke:#1d4ed8,color:#fff\n    style J fill:#d97706,stroke:#b45309,color:#fff\n`}\n/>\n\n### Plugin Lifecycle\n\nEach plugin can implement the following hooks:\n\n1. **onPluginsLoad**: Called when plugins are loaded (optional)\n2. **beforeGenerate**: Called before the generation process starts (optional)\n3. **generate**: The main generation function that creates output files (required)\n4. **afterGenerate**: Called after the generation process completes (optional)\n5. **beforeWriteFiles**: Called before files are written to disk (optional)\n6. **afterWriteFiles**: Called after files are written to disk (optional)\n\n### Creating Custom Plugins\n\nPlugins are functions that return a configuration object:\n\n```ts twoslash\nimport { MoniconPlugin, MoniconPluginFile } from \"@monicon/core/plugins\";\n\nexport const txtPlugin: MoniconPlugin<void> = (options) => (payload) => {\n  return {\n    name: \"monicon-txt-plugin\",\n    generate: () => {\n      const files: MoniconPluginFile[] = [];\n\n      for (const icon of payload.icons) {\n        files.push({\n          path: `output/${icon.name}.txt`,\n          content: icon.svg,\n        });\n      }\n\n      return files;\n    },\n  };\n};\n```\n\n### Generic Plugin Foundation\n\nMost framework plugins (React, Vue, Svelte, Qwik, React Native, and SVG) are built on top of the **Generic Plugin**. The Generic Plugin provides a reusable foundation for file generation with flexible options:\n\n- **outputPath**: Function or string to determine where files are generated\n- **fileName**: Function or string to determine file names\n- **extension**: Function or string to determine file extensions\n- **content**: Function or string to generate file content\n\nThis architecture allows framework plugins to focus on their specific transformations (e.g., converting SVG to React JSX) while delegating file management to the generic plugin.\n\n```ts twoslash\nimport {\n  generic,\n  GenericPluginOptions,\n  MoniconPlugin,\n} from \"@monicon/core/plugins\";\n\ntype CustomPluginOptions = GenericPluginOptions<CustomPluginInternalOptions>;\n\ntype CustomPluginInternalOptions = {\n  foo?: string;\n};\n\nexport const customPlugin: MoniconPlugin<CustomPluginOptions> = (options) =>\n  generic({\n    name: \"my-custom-plugin\",\n    extension: \"custom\",\n    content: (icon) => `/* Custom content for ${icon.name} */`,\n    ...options,\n  });\n```\n\n## Bundler Integration Flow\n\nBundler packages integrate Monicon into the build process:\n\n<Mermaid\n  chart={`\nflowchart TD\n    A[Build Process Start] --> B[Bundler Plugin Initialized]\n    B --> C[Load Monicon Config]\n    C --> D[Watch Config File]\n    \n    D --> E{Config File Changed?}\n    E -->|Yes| F[Trigger Icon Generation]\n    \n    F --> G[Bootstrap Process]\n    G --> H[Generate Icon Components]\n    H --> I[Files Written]\n    \n    style A fill:#059669,stroke:#047857,color:#fff\n    style G fill:#2563eb,stroke:#1d4ed8,color:#fff\n`}\n/>\n\n### How Bundler Plugins Work\n\n1. **Initialize**: Plugin is loaded by the bundler during startup\n2. **Load Config**: Load Monicon configuration from `monicon.config.ts`\n3. **Watch**: Watch the config file for changes\n4. **Generate**: When changes are detected, trigger icon generation via `bootstrap()`\n\n## Data Flow Example\n\nLet's trace a complete example of generating a React icon component:\n\n<Mermaid\n  chart={`\nsequenceDiagram\n    participant User\n    participant CLI\n    participant Bootstrap\n    participant Loader\n    participant IconProcessor\n    participant ReactPlugin\n    participant FileSystem\n    \n    User->>CLI: npx @monicon/cli generate\n    CLI->>Bootstrap: bootstrap(config)\n    Bootstrap->>Loader: Load icons [\"mdi:home\"]\n    Loader->>Loader: Fetch from Iconify CDN\n    Loader-->>Bootstrap: Raw SVG data\n    \n    Bootstrap->>IconProcessor: Process icons\n    IconProcessor->>IconProcessor: Parse SVG\n    IconProcessor->>IconProcessor: Normalize dimensions\n    IconProcessor-->>Bootstrap: Processed icons\n    \n    Bootstrap->>ReactPlugin: generate(icons)\n    ReactPlugin->>ReactPlugin: Transform to JSX\n    ReactPlugin->>ReactPlugin: Apply template\n    ReactPlugin-->>Bootstrap: File objects\n    \n    Bootstrap->>FileSystem: Write files\n    FileSystem->>FileSystem: Create directories\n    FileSystem->>FileSystem: Write components\n    FileSystem-->>Bootstrap: Success\n    \n    Bootstrap-->>CLI: Complete\n    CLI-->>User: Icons generated!\n`}\n/>\n\n## Key Design Principles\n\n### 1. Framework Agnostic\n\nThe core is framework-agnostic. Framework-specific logic is isolated in plugins, making it easy to support new frameworks.\n\n### 2. Build Tool Independent\n\nBundler integration packages are separate, allowing users to choose their preferred build tool or use the CLI.\n\n### 3. Extensible\n\nThe plugin system allows users to create custom transformations and integrations.\n\n### 4. Type Safe\n\nFull TypeScript support with exported types for configuration and plugins.\n\n## Examples\n\n### Using Core Directly\n\n```ts twoslash\nimport { bootstrap } from \"@monicon/core\";\nimport { react } from \"@monicon/core/plugins\";\n\nawait bootstrap({\n  icons: [\"mdi:home\"],\n  plugins: [react({ outputPath: \"src/components/icons\" })],\n});\n```\n\n### Using with Vite\n\n```ts twoslash\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\nimport { react } from \"@monicon/core/plugins\";\n\nexport default defineConfig({\n  plugins: [\n    monicon({\n      icons: [\"mdi:home\"],\n      plugins: [react({ outputPath: \"src/components/icons\" })],\n    }),\n  ],\n});\n```\n\n### Using CLI\n\n```bash\nnpx @monicon/cli generate --watch\n```\n"
  },
  {
    "path": "apps/docs/content/docs/index.mdx",
    "content": "---\ntitle: Introduction\ndescription: Monicon is an easy-to-use icon orchestration tool that makes adding icons to your projects simple.\n---\n\nMonicon is an tool agnostic and easy-to-use icon orchestration tool that makes adding icons to your projects simple. It works with any framework, language, and platform.\n\n- **Tool Agnostic**: Works with any framework, language, and platform.\n- **Huge Icon Library**: Get access to over 200,000 icons from famous sets like Material Design, Feather, and Font Awesome.\n- **Custom Icons**: You can create custom icons and use them in your projects. Monicon makes it easy to add your own icons.\n- **Works with Modern Tools**: Monicon supports tools like Vite, Webpack, Rollup, and others, so it's ready for any project.\n- **Fast and Efficient**: Monicon loads icons quickly to keep your project running smoothly. No flickering or lagging.\n- **Easy to Use**: Works with React, Vue, Svelte, Next.js, and other popular frameworks, making icon integration simple. You can discover icons on the [Icones](https://icones.js.org/) website.\n- **Customizable**: You can easily change the size, color, and other features of the icons to fit your design.\n- **Collaboration**: Monicon helps you collaborate with designers to speed up the design process and get better results. [Iconify Figma Plugin](https://www.figma.com/community/plugin/735098390272716381/iconify) allows you to use icons directly in Figma.\n- **Free and Open Source**: Monicon is free to use and open source, so you can use it in any project without restrictions.\n\nNo matter which framework you use, Monicon makes adding and managing icons easy. Check out the documentation to see how Monicon can help improve your next project with great-looking icons!\n\n## Comparison: Monicon & Iconify & unplugin-icons\n\n| Feature                    | Monicon                                                                                       | @iconify/react                                                        | unplugin-icons                                                        |\n| -------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |\n| **Tool Agnostic**          | Works with any framework, language, and platform.                                             | Works with React, Vue, Svelte, Next.js, and other popular frameworks. | Works with React, Vue, Svelte, Next.js, and other popular frameworks. |\n| **Icon Rendering**         | Icons are bundled during build time, ensuring instant rendering with no blinking.             | Icons load over HTTP, which can cause blinking during rendering.      | Icons are bundled at build time, no blinking issues.                  |\n| **Offline Support**        | Fully offline-compatible, works seamlessly with PWAs, Electron apps, and native environments. | Does not work offline due to reliance on HTTP for fetching icons.     | Works offline                                                         |\n| **React Native Support**   | Fully supports React Native, making it ideal for mobile and native projects.                  | No support for React Native.                                          | No support for React Native.                                          |\n| **Modern Bundler Support** | Compatible with Metro, Vite, Webpack, Rollup, Rspack, and others.                             | Primarily web-focused and lacks versatility across bundlers.          | No support for Metro.                                                 |\n| **Custom Icon Support**    | Easily create and use custom icons in your projects.                                          | Easily create and use custom icons in your projects.                  | Easily create and use custom icons in your projects.                  |\n"
  },
  {
    "path": "apps/docs/content/docs/installation/cli.mdx",
    "content": "---\ntitle: CLI\ndescription: Learn how to use the Monicon CLI to generate icons\n---\n\nThe Monicon CLI provides a command-line interface for generating icons, this is useful if you want to use Monicon as a tool-agnostic.\n\n## Installation\n\nInstall the Monicon Core\n\n```bash tab=\"npm\"\nnpm install @monicon/core\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core\n```\n\n## Configuration\n\nCreate a `monicon.config.ts` (or `.js`) file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { svg, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from a collection\n  collections: [\"lucide\"],\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    svg({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Commands\n\n### Generate Icons\n\nGenerate icons based on your configuration:\n\n```bash\nnpx @monicon/cli generate\n```\n\nThis command will:\n\n1. Load your `monicon.config.ts` file\n2. Fetch the specified icons\n3. Generate components in the configured output path\n\n### Watch Mode\n\nRun the CLI in watch mode to automatically regenerate icons when your config changes:\n\n```bash\nnpx @monicon/cli generate -w\n```\n\nThis is useful during development to see changes immediately.\n\n### Help\n\nDisplay help information:\n\n```bash\nnpx @monicon/cli -h\n```\n\n### Version\n\nCheck the installed CLI version:\n\n```bash\nnpx @monicon/cli -v\n```\n\n## Usage in Scripts\n\nYou can add the CLI to your `package.json` scripts for easy access:\n\n```json title=\"package.json\"\n{\n  \"scripts\": {\n    \"dev\": \"npx @monicon/cli generate --watch && next dev\",\n    \"build\": \"npx @monicon/cli generate && next build\"\n  }\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/esbuild.mdx",
    "content": "---\ntitle: React (esbuild)\ndescription: Learn how to install and use Monicon in your React (esbuild) project\n---\n\n## Installation\n\nInstall Monicon and its esbuild plugin in your project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/esbuild\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/esbuild\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/esbuild\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/esbuild\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure esbuild\n\nAdd the Monicon plugin to your esbuild configuration:\n\n```js title=\"build.js\"\nimport * as esbuild from \"esbuild\";\nimport { monicon } from \"@monicon/esbuild\";\n\nawait esbuild.build({\n  plugins: [monicon()],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```tsx title=\"src/App.tsx\"\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport ActivityIcon from \"./components/icons/feather/activity\";\n\nexport default function App() {\n  return (\n    <main className=\"flex gap-4 items-center justify-center min-h-screen\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <ActivityIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* you can also use standard SVG props */}\n      <HomeIcon width={40} height={40} color=\"blue\" />\n    </main>\n  );\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/library.mdx",
    "content": "---\ntitle: Library\ndescription: Learn how to use Monicon programmatically as a library\n---\n\nMonicon can be used programmatically as a library, giving you full control over icon generation in your build scripts, custom tooling, or any other project.\n\n## Installation\n\nInstall the Monicon Core\n\n```bash tab=\"npm\"\nnpm install @monicon/core\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core\n```\n\n## Basic Usage\n\nImport the `bootstrap` function from `@monicon/core` and call it with your configuration:\n\n```ts twoslash title=\"scripts/generate-icons.ts\"\nimport { bootstrap } from \"@monicon/core\";\nimport { svg, clean } from \"@monicon/core/plugins\";\n\nawait bootstrap({\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from a collection\n  collections: [\"lucide\"],\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    svg({ outputPath: \"src/components/icons\" }),\n  ],\n  watch: false, // Set to true for watch mode\n});\n```\n\n## Configuration\n\nThe `bootstrap` function accepts a configuration object with the following options:\n\n### Type Definition\n\n```ts twoslash\nimport { MoniconConfig } from \"@monicon/core\";\n```\n\n### Configuration Options\n\n| Option        | Type                                 | Default | Description                                                                       |\n| ------------- | ------------------------------------ | ------- | --------------------------------------------------------------------------------- |\n| `icons`       | `string[]`                           | `[]`    | Array of individual icon names to load (e.g., `[\"mdi:home\", \"feather:activity\"]`) |\n| `collections` | `string[]`                           | `[]`    | Array of complete icon collections to load (e.g., `[\"lucide\", \"heroicons\"]`)      |\n| `plugins`     | `MoniconPlugin[]`                    | `[]`    | Array of plugins to process icons                                                 |\n| `loaders`     | `Record<string, ReturnType<Loader>>` | `{}`    | Custom loaders for loading icons from different sources                           |\n| `watch`       | `boolean`                            | `false` | Enable watch mode to automatically regenerate icons on config changes             |\n\n## Using with Config File\n\nThe `bootstrap` function automatically loads your `monicon.config.ts` file if it exists, and merges it with any options you pass:\n\n```ts twoslash title=\"scripts/generate-icons.ts\"\nimport { bootstrap } from \"@monicon/core\";\n\n// This will load monicon.config.ts and merge with the provided options\nawait bootstrap({\n  watch: false, // Override watch mode\n});\n```\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { svg, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"feather:activity\"],\n  collections: [\"lucide\"],\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    svg({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Integration Examples\n\n### Custom Build Script\n\nCreate a custom build script that generates icons before building your app:\n\n```ts twoslash title=\"scripts/build.ts\"\nimport { bootstrap } from \"@monicon/core\";\nimport { svg } from \"@monicon/core/plugins\";\nimport { execSync } from \"child_process\";\n\nasync function build() {\n  console.log(\"Generating icons...\");\n\n  await bootstrap({\n    icons: [\"mdi:home\", \"feather:activity\"],\n    plugins: [svg({ outputPath: \"src/components/icons\" })],\n    watch: false,\n  });\n\n  console.log(\"Building application...\");\n  execSync(\"npm run build:app\", { stdio: \"inherit\" });\n}\n\nbuild().catch(console.error);\n```\n\n```json title=\"package.json\"\n{\n  \"scripts\": {\n    \"build\": \"tsx scripts/build.ts\"\n  }\n}\n```\n\n### Pre-build Hook\n\nUse Monicon in a pre-build hook:\n\n```json twoslash title=\"package.json\"\n{\n  \"scripts\": {\n    \"prebuild\": \"tsx scripts/generate-icons.ts\",\n    \"build\": \"vite build\"\n  }\n}\n```\n\n```ts twoslash title=\"scripts/generate-icons.ts\"\nimport { bootstrap } from \"@monicon/core\";\nimport { svg } from \"@monicon/core/plugins\";\n\nawait bootstrap({\n  icons: [\"mdi:home\", \"feather:activity\", \"lucide:star\"],\n  plugins: [svg({ outputPath: \"src/components/icons\" })],\n  watch: false,\n});\n```\n\n### Watch Mode for Development\n\nUse watch mode during development:\n\n```ts twoslash title=\"scripts/dev.ts\"\nimport { bootstrap } from \"@monicon/core\";\nimport { react } from \"@monicon/core/plugins\";\n\n// Generate icons with watch mode\nawait bootstrap({\n  icons: [\"mdi:home\", \"feather:activity\"],\n  plugins: [react({ outputPath: \"src/components/icons\" })],\n  watch: true,\n});\n\nconsole.log(\"Icon generator running in watch mode...\");\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/meta.json",
    "content": "{\n  \"title\": \"Installation\",\n  \"pages\": [\n    \"cli\",\n    \"library\",\n    \"universal-build-tool\",\n    \"react\",\n    \"nextjs\",\n    \"remix\",\n    \"qwik\",\n    \"react-native\",\n    \"vue\",\n    \"nuxt\",\n    \"svelte\",\n    \"rollup\",\n    \"rspack\",\n    \"webpack\",\n    \"esbuild\"\n  ]\n}\n"
  },
  {
    "path": "apps/docs/content/docs/installation/nextjs.mdx",
    "content": "---\ntitle: Next.js\ndescription: Learn how to install and use Monicon in your Next.js project\n---\n\n## Installation\n\nInstall Monicon and its Webpack plugin in your Next.js project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/webpack\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/webpack\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/webpack\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/webpack\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:heart\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - components/icons\n     * - src/components/icons\n     */\n    clean({ patterns: [\"components/icons\"] }),\n    react({ outputPath: \"components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Next.js\n\nAdd the Monicon plugin to your `next.config.mjs`:\n\n```js title=\"next.config.mjs\"\nimport { MoniconPlugin } from \"@monicon/webpack\";\n\nconst nextConfig = {\n  reactStrictMode: true,\n  webpack: (config, { dev }) => {\n    config.plugins.push(new MoniconPlugin({ watch: dev }));\n    return config;\n  },\n};\n\nexport default nextConfig;\n```\n\n<Callout type=\"info\">\n  The `watch: dev` option enables automatic icon regeneration during development\n  when your config changes.\n</Callout>\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```tsx title=\"app/page.tsx\"\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport HeartIcon from \"./components/icons/feather/heart\";\n\nexport default function Home() {\n  return (\n    <main className=\"flex gap-4 items-center justify-center min-h-screen\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <HeartIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* if you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon width={40} height={40} />\n    </main>\n  );\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/nuxt.mdx",
    "content": "---\ntitle: Nuxt\ndescription: Learn how to install and use Monicon in your Nuxt project\n---\n\n## Installation\n\nInstall Monicon and its Nuxt module in your Nuxt project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/nuxt\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/nuxt\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/nuxt\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/nuxt\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { vue, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - components/icons\n     * - src/components/icons\n     */\n    clean({ patterns: [\"components/icons\"] }),\n    vue({ outputPath: \"components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Nuxt\n\nAdd the Monicon module to your `nuxt.config.ts`:\n\n```ts title=\"nuxt.config.ts\"\nexport default defineNuxtConfig({\n  modules: [\"@monicon/nuxt\"],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate Vue components for your icons. You can import and use them in your pages and components:\n\n```vue title=\"app.vue\"\n<script setup lang=\"ts\">\nimport BadgeCheckIcon from \"@/components/icons/lucide/badge-check.vue\";\nimport CloudDownloadIcon from \"@/components/icons/lucide/cloud-download.vue\";\nimport HomeIcon from \"@/components/icons/mdi/home.vue\";\nimport ActivityIcon from \"@/components/icons/feather/activity.vue\";\n\nuseHead({\n  title: \"Nuxt App\",\n  meta: [{ name: \"description\", content: \"My Nuxt App\" }],\n});\n</script>\n\n<template>\n  <main class=\"flex h-screen items-center justify-center gap-4\">\n    <BadgeCheckIcon color=\"white\" width=\"50\" />\n    <CloudDownloadIcon color=\"white\" width=\"50\" />\n    <ActivityIcon color=\"white\" width=\"50\" />\n    <HomeIcon color=\"white\" width=\"50\" />\n  </main>\n</template>\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/qwik.mdx",
    "content": "---\ntitle: Qwik\ndescription: Learn how to install and use Monicon in your Qwik project\n---\n\n## Installation\n\nInstall Monicon and its Vite plugin in your Qwik project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/vite\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/vite\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/vite\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/vite\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { qwik, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    qwik({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Vite\n\nAdd the Monicon plugin to your `vite.config.ts`:\n\n```ts twoslash title=\"vite.config.ts\"\nimport { defineConfig, type UserConfig } from \"vite\";\nimport { monicon } from \"@monicon/vite\";\n\nexport default defineConfig((): UserConfig => {\n  return {\n    plugins: [\n      // ... other plugins\n      monicon(),\n    ],\n  };\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate Qwik components for your icons. You can import and use them in your routes and components:\n\n```tsx title=\"src/routes/index.tsx\"\nimport { component$ } from \"@builder.io/qwik\";\nimport type { DocumentHead } from \"@builder.io/qwik-city\";\n\nimport BadgeCheckIcon from \"~/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"~/components/icons/lucide/cloud-download\";\nimport HomeIcon from \"~/components/icons/mdi/home\";\nimport ActivityIcon from \"~/components/icons/feather/activity\";\n\nexport default component$(() => {\n  return (\n    <div class=\"flex h-screen items-center justify-center gap-4\">\n      <BadgeCheckIcon color=\"white\" width={50} />\n      <CloudDownloadIcon color=\"white\" width={50} />\n      <ActivityIcon color=\"white\" width={50} />\n      <HomeIcon color=\"white\" width={50} />\n      {/* you can use standard SVG props */}\n      <HomeIcon width={40} height={40} color=\"blue\" />\n    </div>\n  );\n});\n\nexport const head: DocumentHead = {\n  title: \"Welcome to Qwik\",\n  meta: [\n    {\n      name: \"description\",\n      content: \"Qwik site description\",\n    },\n  ],\n};\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/react-native.mdx",
    "content": "---\ntitle: React Native\ndescription: Learn how to install and use Monicon in your React Native project\n---\n\n## Installation\n\nInstall Monicon and its Metro plugin in your React Native project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/metro react-native-svg\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/metro react-native-svg\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/metro react-native-svg\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/metro react-native-svg\n```\n\n<Callout type=\"info\">\n  `react-native-svg` is required for rendering SVG icons in React Native.\n</Callout>\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { reactNative, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - components/icons\n     * - src/components/icons\n     */\n    clean({ patterns: [\"components/icons\"] }),\n    reactNative({ outputPath: \"components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Metro\n\nUpdate your `metro.config.js` to use the Monicon Metro plugin:\n\n```js title=\"metro.config.js\"\nconst { getDefaultConfig } = require(\"expo/metro-config\");\nconst { withMonicon } = require(\"@monicon/metro\");\n\nconst config = getDefaultConfig(__dirname);\nconst configWithMonicon = withMonicon(config);\n\nmodule.exports = configWithMonicon;\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React Native components for your icons. You can import and use them in your components:\n\n```tsx title=\"app/(tabs)/index.tsx\"\nimport { StyleSheet, View } from \"react-native\";\n\nimport BadgeCheckIcon from \"@/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"@/components/icons/lucide/cloud-download\";\nimport HomeIcon from \"@/components/icons/mdi/home\";\nimport ActivityIcon from \"@/components/icons/feather/activity\";\n\nexport default function HomeScreen() {\n  return (\n    <View style={styles.container}>\n      <BadgeCheckIcon color=\"aqua\" width={32} height={32} />\n      <CloudDownloadIcon color=\"aqua\" width={32} height={32} />\n      <ActivityIcon color=\"aqua\" width={32} height={32} />\n      <HomeIcon color=\"aqua\" width={32} height={32} />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    flexDirection: \"row\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    gap: 10,\n  },\n});\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/react.mdx",
    "content": "---\ntitle: React\ndescription: Learn how to install and use Monicon in your React (Vite) project\n---\n\n## Installation\n\nInstall Monicon and its Vite plugin in your React project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/vite\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/vite\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/vite\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/vite\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:heart\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Vite\n\nAdd the Monicon plugin to your `vite.config.ts`:\n\n```ts twoslash title=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    // ... other plugins\n    monicon(),\n  ],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```tsx title=\"src/App.tsx\"\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport HeartIcon from \"./components/icons/feather/heart\";\n\nfunction App() {\n  return (\n    <main className=\"flex gap-4 items-center justify-center min-h-screen\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <HeartIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* if you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon height={40} />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/remix.mdx",
    "content": "---\ntitle: Remix\ndescription: Learn how to install and use Monicon in your Remix project\n---\n\n## Installation\n\nInstall Monicon and its Vite plugin in your Remix project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/vite\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/vite\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/vite\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/vite\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - app/components/icons\n     * - src/components/icons\n     */\n    clean({ patterns: [\"app/components/icons\"] }),\n    react({ outputPath: \"app/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Vite\n\nAdd the Monicon plugin to your `vite.config.ts`:\n\n```ts twoslash title=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    // ... other plugins\n    monicon(),\n  ],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your routes and components:\n\n```tsx title=\"app/routes/_index.tsx\"\nimport type { MetaFunction } from \"@remix-run/node\";\nimport BadgeCheckIcon from \"~/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"~/components/icons/lucide/cloud-download\";\nimport HomeIcon from \"~/components/icons/mdi/home\";\nimport ActivityIcon from \"~/components/icons/feather/activity\";\n\nexport const meta: MetaFunction = () => {\n  return [\n    { title: \"New Remix App\" },\n    { name: \"description\", content: \"Welcome to Remix!\" },\n  ];\n};\n\nexport default function Index() {\n  return (\n    <div className=\"flex h-screen items-center justify-center gap-4\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <ActivityIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* if you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon width={40} height={40} color=\"blue\" />\n    </div>\n  );\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/rollup.mdx",
    "content": "---\ntitle: React (Rollup)\ndescription: Learn how to install and use Monicon in your Rollup project\n---\n\n## Installation\n\nInstall Monicon and its Rollup plugin in your project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/rollup\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/rollup\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/rollup\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/rollup\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.js` file in your project root:\n\n```js twoslash title=\"monicon.config.js\"\nconst { react, clean } = require(\"@monicon/core/plugins\");\n\nmodule.exports = {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\", format: \"jsx\" }),\n  ],\n};\n```\n\n### 2. Configure Rollup\n\nAdd the Monicon plugin to your `rollup.config.mjs`:\n\n```js twoslash title=\"rollup.config.mjs\"\nimport monicon from \"@monicon/rollup\";\n\nexport default {\n  // ... your rollup config\n  plugins: [\n    // ... other plugins\n    monicon(),\n  ],\n};\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```jsx title=\"src/App.jsx\"\nimport React from \"react\";\n\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport ActivityIcon from \"./components/icons/feather/activity\";\n\nconst App = () => {\n  return (\n    <main className=\"flex h-screen items-center justify-center gap-4\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <ActivityIcon class=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* If you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon width={40} height={40} />\n    </main>\n  );\n};\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/rspack.mdx",
    "content": "---\ntitle: React (Rspack)\ndescription: Learn how to install and use Monicon in your React (Rspack) project\n---\n\n## Installation\n\nInstall Monicon and its Rspack plugin in your project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/rspack\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/rspack\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/rspack\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/rspack\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.mjs` file in your project root:\n\n```js twoslash title=\"monicon.config.mjs\"\nimport { react, clean } from \"@monicon/core/plugins\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\", format: \"jsx\" }),\n  ],\n};\n```\n\n### 2. Configure Rspack\n\nAdd the Monicon plugin to your `rspack.config.mjs`:\n\n```js title=\"rspack.config.mjs\"\nimport { defineConfig } from \"@rspack/cli\";\nimport { rspack } from \"@rspack/core\";\nimport MoniconPlugin from \"@monicon/rspack\";\n\nexport default defineConfig({\n  // ... your rspack config\n  plugins: [\n    // ... other plugins\n    new MoniconPlugin(),\n  ],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```jsx title=\"src/App.jsx\"\nimport React from \"react\";\n\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport ActivityIcon from \"./components/icons/feather/activity\";\n\nconst App = () => {\n  return (\n    <div className=\"flex h-screen items-center justify-center gap-4\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <ActivityIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* If you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon width={40} height={40} />\n    </div>\n  );\n};\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/svelte.mdx",
    "content": "---\ntitle: Svelte\ndescription: Learn how to install and use Monicon in your Svelte (SvelteKit) project\n---\n\n## Installation\n\nInstall Monicon and its Vite plugin in your Svelte project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/vite\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/vite\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/vite\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/vite\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { svelte, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/lib/components/icons\n     * - src/components/icons\n     */\n    clean({ patterns: [\"src/lib/components/icons\"] }),\n    svelte({ outputPath: \"src/lib/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Vite\n\nAdd the Monicon plugin to your `vite.config.ts`:\n\n```ts twoslash title=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport { monicon } from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    // ... other plugins\n    monicon(),\n  ],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate Svelte components for your icons. You can import and use them in your routes and components:\n\n```svelte title=\"src/routes/+page.svelte\"\n<script>\n  import BadgeCheckIcon from \"$lib/components/icons/lucide/badge-check.svelte\";\n  import CloudDownloadIcon from \"$lib/components/icons/lucide/cloud-download.svelte\";\n  import HomeIcon from \"$lib/components/icons/mdi/home.svelte\";\n  import ActivityIcon from \"$lib/components/icons/feather/activity.svelte\";\n</script>\n\n<main class=\"flex h-screen items-center justify-center gap-4\">\n  <BadgeCheckIcon class=\"size-10\" />\n  <CloudDownloadIcon class=\"size-10\" />\n  <ActivityIcon class=\"size-10\" />\n  <!-- If you don't want to use the className prop, you can use the svg props -->\n  <HomeIcon width={40} height={40} />\n</main>\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/universal-build-tool.mdx",
    "content": "---\ntitle: Universal Build Tool\ndescription: Learn how to use Monicon in universal build tools projects like Swift, Kotlin, etc.\n---\n\nMonicon can generate SVG icons for any project, regardless of the programming language. This guide shows you how to use Monicon as a build step to generate icon files that can be used in Swift, Kotlin, etc.\n\n## Installation\n\nInstall the Monicon Core\n\n```bash tab=\"npm\"\nnpm install @monicon/core tsx -g\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core tsx -g\n```\n\n```bash tab=\"yarn\"\nyarn global add @monicon/core tsx\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core tsx -g\n```\n\n## Usage\n\nCreate a `generate-icons.js` file to generate icons:\n\n```js title=\"generate-icons.js\"\nimport { bootstrap } from \"@monicon/core\";\nimport { svg, clean } from \"@monicon/core/plugins\";\n\nawait bootstrap({\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from a collection\n  collections: [\"lucide\"],\n  plugins: [\n    clean({ patterns: [\"assets/icons\"] }),\n    svg({ outputPath: \"assets/icons\" }),\n  ],\n  watch: false,\n});\n```\n\n## Using a Config File (Optional)\n\nIf you prefer to use a separate config file (useful for watch mode), create a `monicon.config.js` file:\n\n```js title=\"monicon.config.js\"\nimport { svg, clean } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\", \"feather:activity\"],\n  collections: [\"lucide\"],\n  plugins: [\n    clean({ patterns: [\"assets/icons\"] }),\n    svg({ outputPath: \"assets/icons\" }),\n  ],\n  watch: true,\n};\n```\n\nThen your build script can simply call `bootstrap()`:\n\n```js twoslash title=\"generate-icons.js\"\nimport { bootstrap } from \"@monicon/core\";\n\nbootstrap();\n```\n\n## Running the Build\n\nRun the build script to generate SVG files:\n\n```bash\ntsx generate-icons.js\n```\n\nThis will generate SVG files in the configured output path (`assets/icons` in the example above).\n\n## Example Output\n\nAfter running the build script, you'll have SVG files in your output directory:\n\n```\nassets/icons/\n├── mdi/\n│   └── home.svg\n├── feather/\n│   └── activity.svg\n└── lucide/\n    └── badge-check.svg\n    └── cloud-download.svg\n    └── ...\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/vue.mdx",
    "content": "---\ntitle: Vue\ndescription: Learn how to install and use Monicon in your Vue (Vite) project\n---\n\n## Installation\n\nInstall Monicon and its Vite plugin in your Vue project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/vite\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/vite\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/vite\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/vite\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.ts` file in your project root:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { vue, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    vue({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Vite\n\nAdd the Monicon plugin to your `vite.config.ts`:\n\n```ts twoslash title=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    // ... other plugins\n    monicon(),\n  ],\n});\n```\n\n## Usage\n\nAfter configuration, Monicon will automatically generate Vue components for your icons. You can import and use them in your components:\n\n```vue title=\"src/App.vue\"\n<script setup lang=\"ts\">\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check.vue\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download.vue\";\nimport HomeIcon from \"./components/icons/mdi/home.vue\";\nimport ActivityIcon from \"./components/icons/feather/activity.vue\";\n</script>\n\n<template>\n  <main class=\"flex h-screen items-center justify-center gap-4\">\n    <BadgeCheckIcon class=\"size-10\" />\n    <CloudDownloadIcon class=\"size-10\" />\n    <ActivityIcon class=\"size-10\" />\n    <!-- If you don't want to use the className prop, you can use the svg props -->\n    <HomeIcon width=\"40\" height=\"40\" />\n  </main>\n</template>\n```\n"
  },
  {
    "path": "apps/docs/content/docs/installation/webpack.mdx",
    "content": "---\ntitle: React (Webpack)\ndescription: Learn how to install and use Monicon in your React (Webpack) project\n---\n\n## Installation\n\nInstall Monicon and its Webpack plugin in your project:\n\n```bash tab=\"npm\"\nnpm install @monicon/core @monicon/webpack\n```\n\n```bash tab=\"pnpm\"\npnpm add @monicon/core @monicon/webpack\n```\n\n```bash tab=\"yarn\"\nyarn add @monicon/core @monicon/webpack\n```\n\n```bash tab=\"bun\"\nbun add @monicon/core @monicon/webpack\n```\n\n## Configuration\n\n### 1. Create Monicon Config\n\nCreate a `monicon.config.js` file in your project root:\n\n```ts twoslash title=\"monicon.config.js\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  // Loads individual icons by icon name\n  icons: [\"mdi:home\", \"feather:activity\"],\n  // Loads all icons from the lucide collection\n  collections: [\"lucide\"],\n  plugins: [\n    /**\n     * change the output path to your project config for example;\n     * - src/components/icons\n     * - components/icons\n     */\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\", format: \"jsx\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n### 2. Configure Webpack\n\nAdd the Monicon plugin to your `webpack.config.js`:\n\n```js title=\"webpack.config.js\"\nconst { MoniconPlugin } = require(\"@monicon/webpack\");\n\nmodule.exports = {\n  // ... your webpack config\n  plugins: [\n    new MoniconPlugin({ watch: process.env.NODE_ENV === \"development\" }),\n    // ... other plugins\n  ],\n};\n```\n\n<Callout type=\"info\">\n  The `watch: true` option enables automatic icon regeneration during\n  development when your config changes.\n</Callout>\n\n## Usage\n\nAfter configuration, Monicon will automatically generate React components for your icons. You can import and use them in your components:\n\n```jsx title=\"src/App.jsx\"\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport ActivityIcon from \"./components/icons/feather/activity\";\n\nexport default function App() {\n  return (\n    <main className=\"flex gap-4 items-center justify-center min-h-screen\">\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <ActivityIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      {/* If you don't want to use the className prop, you can use the svg props */}\n      <HomeIcon width={40} height={40} color=\"blue\" />\n    </main>\n  );\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/loaders/custom-loader.mdx",
    "content": "---\ntitle: Custom Loader\ndescription: Create your own custom icon loader\n---\n\nCustom loaders in Monicon allow you to define your own logic for providing SVG icons. This is especially useful when you want to generate icons dynamically, transform existing icons, or load them from a non-standard source.\n\n## Creating a Custom Loader\n\nA custom loader is a function that returns an async function which returns an object mapping icon names to SVG strings:\n\n```ts twoslash title=\"loaders/custom.ts\"\nimport { MoniconConfig } from \"@monicon/core\";\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { Loader } from \"@monicon/core/loaders\";\n\nexport const customLoader: Loader<void> = () => async () => {\n  // your custom logic here\n  return {\n    heart:\n      '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg>',\n  };\n};\n\nexport default {\n  icons: [\"mdi:home\"],\n  loaders: {\n    custom: customLoader(),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Usage\n\nAfter configuration, Monicon will generate components for your custom icons:\n\n```tsx title=\"src/App.tsx\"\nimport StarIcon from \"./components/icons/custom/star\";\nimport HeartIcon from \"./components/icons/custom/heart\";\n\nfunction App() {\n  return (\n    <main>\n      <StarIcon className=\"size-6\" />\n      <HeartIcon className=\"size-6\" />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/loaders/json-collections.mdx",
    "content": "---\ntitle: JSON Collections\ndescription: Load icons from JSON files or URLs\n---\n\nJSON Collections in Monicon allow you to define custom icons from JSON files or URLs. These JSON files map icon names to their corresponding SVG data, making it easy to include and manage custom icon sets in your project.\n\n## Configuration\n\nAdd the JSON collection loader to your `monicon.config.ts`:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { loadJSONCollection } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  loaders: {\n    json: loadJSONCollection(\n      \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    ),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## JSON File Format\n\nThe JSON file should map icon names to their corresponding SVG markup:\n\n```json title=\"icons.json\"\n{\n  \"network\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"16\\\" y=\\\"16\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><rect x=\\\"2\\\" y=\\\"16\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><rect x=\\\"9\\\" y=\\\"2\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><path d=\\\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\\\"/><path d=\\\"M12 12V8\\\"/></svg>\",\n  \"user\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\"><path d=\\\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\\\"/></svg>\"\n}\n```\n\n## Usage\n\nAfter configuration, Monicon will generate components for your JSON icons. You can import and use them in your components:\n\n```tsx title=\"src/App.tsx\"\nimport NetworkIcon from \"./components/icons/json/network\";\nimport UserIcon from \"./components/icons/json/user\";\n\nfunction App() {\n  return (\n    <main>\n      <NetworkIcon className=\"size-6\" />\n      <UserIcon className=\"size-6\" />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Use Cases\n\nJSON collections are particularly useful for:\n\n- Sharing icon sets across multiple projects\n- Loading icons from a CMS or API\n- Versioning and managing icon sets centrally\n- Quick prototyping with hosted icon sets\n"
  },
  {
    "path": "apps/docs/content/docs/loaders/local-collections.mdx",
    "content": "---\ntitle: Local Collections\ndescription: Load icons from your local file system\n---\n\nLocal Collections in Monicon allow you to use icons stored locally on your file system. These collections can be loaded using the `loadLocalCollection` function, which points to the directory containing your SVG files. This setup is ideal for projects where icons are managed locally, providing a quick and flexible way to integrate custom icon sets.\n\n## Configuration\n\nAdd the local collection loader to your `monicon.config.ts`:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { loadLocalCollection } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  loaders: {\n    local: loadLocalCollection(\"assets/icons\"),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Directory Structure\n\nFor the above configuration, your `assets/icons` directory might look like this:\n\n```\nassets/\n└── icons/\n    ├── folder.svg\n    ├── user.svg\n    └── network.svg\n```\n\nEach SVG file in the directory is automatically assigned a name based on its filename (e.g., `folder` for `folder.svg`).\n\n## Usage\n\nAfter configuration, Monicon will generate components for your local icons. You can import and use them in your components:\n\n```tsx title=\"src/App.tsx\"\nimport FolderIcon from \"./components/icons/local/folder\";\nimport UserIcon from \"./components/icons/local/user\";\nimport NetworkIcon from \"./components/icons/local/network\";\n\nfunction App() {\n  return (\n    <main>\n      <FolderIcon className=\"size-6\" />\n      <UserIcon className=\"size-6\" />\n      <NetworkIcon className=\"size-6\" />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Nested Directories\n\nYou can also organize your SVG files in nested directories:\n\n```\nassets/\n└── icons/\n    ├── ui/\n    │   ├── button.svg\n    │   └── input.svg\n    └── social/\n        ├── twitter.svg\n        └── github.svg\n```\n\nThe nested structure will be preserved in the generated component paths:\n\n```tsx\nimport ButtonIcon from \"./components/icons/local/ui/button\";\nimport TwitterIcon from \"./components/icons/local/social/twitter\";\n```\n"
  },
  {
    "path": "apps/docs/content/docs/loaders/meta.json",
    "content": "{\n  \"title\": \"Loaders\",\n  \"pages\": [\n    \"local-collections\",\n    \"json-collections\",\n    \"remote-collections\",\n    \"custom-loader\"\n  ]\n}\n"
  },
  {
    "path": "apps/docs/content/docs/loaders/remote-collections.mdx",
    "content": "---\ntitle: Remote Collections\ndescription: Fetch icons directly from remote URLs\n---\n\nRemote Collections in Monicon allow you to fetch and use icons directly from remote URLs. These collections are configured using the `loadRemoteCollection` function, which maps icon names to their respective URLs. This setup is perfect for integrating third-party or dynamically fetched icons into your project.\n\n## Configuration\n\nAdd the remote collection loader to your `monicon.config.ts`:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react, clean } from \"@monicon/core/plugins\";\nimport { loadRemoteCollection } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  loaders: {\n    remote: loadRemoteCollection({\n      download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n      attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n      github: \"https://api.iconify.design/simple-icons:github.svg\",\n    }),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Usage\n\nAfter configuration, Monicon will generate components for your remote icons. You can import and use them in your components:\n\n```tsx title=\"src/App.tsx\"\nimport DownloadIcon from \"./components/icons/remote/download\";\nimport AttachmentIcon from \"./components/icons/remote/attachment\";\nimport GitHubIcon from \"./components/icons/remote/github\";\n\nfunction App() {\n  return (\n    <main>\n      <DownloadIcon className=\"size-6\" />\n      <AttachmentIcon className=\"size-6\" />\n      <GitHubIcon className=\"size-6\" />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/meta.json",
    "content": "{\n  \"title\": \"Documentation\",\n  \"pages\": [\n    \"index\",\n    \"architecture\",\n    \"installation\",\n    \"loaders\",\n    \"plugins\"\n  ]\n}\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/clean.mdx",
    "content": "---\ntitle: Clean\ndescription: Clean output directories before generating icons\n---\n\nThe Clean plugin removes files and directories before generating new icons. This ensures your output directory only contains the icons you've configured, without leftover files from previous runs.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [clean({ patterns: [\"src/components/icons\"] })],\n} satisfies MoniconConfig;\n```\n\n<Callout type=\"warning\">\n  The Clean plugin should typically be placed **before** other plugins in the\n  plugins array to ensure directories are cleaned before new files are\n  generated.\n</Callout>\n\n## Options\n\n### `patterns`\n\nAn array of glob patterns to match files and directories for removal.\n\n- **Type:** `string[]`\n- **Required:** Yes\n\n```ts twoslash\nimport { clean } from \"@monicon/core/plugins\";\n\nclean({\n  patterns: [\n    \"src/components/icons\", // Remove entire directory\n    \"components/icons/**/*.tsx\", // Remove specific file types\n  ],\n});\n```\n\n### `enabled`\n\nEnable or disable the clean plugin.\n\n- **Type:** `boolean`\n- **Default:** `true`\n\n```ts twoslash\nimport { clean } from \"@monicon/core/plugins\";\n\nclean({\n  patterns: [\"src/components/icons\"],\n  enabled: process.env.NODE_ENV === \"production\",\n});\n```\n\n## Why Use Clean?\n\nWithout the Clean plugin, old icon files might remain in your output directory even after removing them from your configuration. This can lead to:\n\n- **Stale files** - Icons you no longer use still exist in your codebase\n- **Import errors** - Imports may resolve to old files\n- **Larger builds** - Unnecessary files increase bundle size\n- **Confusion** - Hard to know which icons are actually in use\n\n## Conditional Cleaning\n\nYou can conditionally enable cleaning based on environment:\n\n```ts title=\"monicon.config.ts\"\nimport { clean } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  plugins: [\n    clean({\n      patterns: [\"src/components/icons\"],\n      // Only clean in development\n      enabled: process.env.NODE_ENV !== \"production\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/custom.mdx",
    "content": "---\ntitle: Custom Plugin\ndescription: Build your own Monicon plugins with full control over icon processing\n---\n\nLearn how to create custom Monicon plugins to extend functionality with your own icon processing logic, custom file generation, and lifecycle hooks.\n\n## Plugin Structure\n\nA Monicon plugin is a function that returns another function, which receives the icon payload and returns a plugin instance with lifecycle hooks.\n\n```ts twoslash title=\"my-plugin.ts\"\nimport path from \"path\";\nimport type {\n  MoniconPlugin,\n  MoniconPluginFile,\n  MoniconPluginGenerateContext,\n} from \"@monicon/core/plugins\";\n\ntype MyPluginOptions = {\n  outputPath?: string;\n  customOption?: string;\n};\n\nexport const myPlugin: MoniconPlugin<MyPluginOptions> =\n  (options) => (payload) => {\n    return {\n      name: \"my-custom-plugin\",\n      generate(context: MoniconPluginGenerateContext) {\n        const files: MoniconPluginFile[] = [];\n\n        for (const icon of payload.icons) {\n          files.push({\n            path: path.join(options?.outputPath ?? \"output\", icon.name),\n            content: icon.svg,\n          });\n        }\n\n        return files;\n      },\n    };\n  };\n```\n\n## Plugin Types\n\nMonicon provides TypeScript types to help you build type-safe plugins.\n\n### `MoniconPlugin<T>`\n\nThe main plugin type that defines the plugin factory function signature.\n\n```ts twoslash\nimport type { MoniconPlugin } from \"@monicon/core/plugins\";\n\ntype Options = { prefix?: string };\n\nconst plugin: MoniconPlugin<Options> = (options) => (payload) => ({\n  name: \"example-plugin\",\n  generate: () => [],\n});\n```\n\n### `MoniconPluginFile`\n\nRepresents a file to be generated by the plugin.\n\n```ts twoslash\nimport type { MoniconPluginFile } from \"@monicon/core/plugins\";\n\nconst file: MoniconPluginFile = {\n  path: \"output/icon.svg\",\n  content: \"<svg>...</svg>\",\n};\n```\n\n### `MoniconPluginPayload`\n\nThe payload passed to the plugin containing the icons to process.\n\n```ts twoslash\nimport type { Icon } from \"@monicon/core\";\n\ntype MoniconPluginPayload = {\n  icons: Icon[];\n};\n```\n\n### `Icon`\n\nThe icon object containing all icon data.\n\n```ts twoslash\ntype Icon = {\n  name: string;\n  svg: string;\n  width: number;\n  height: number;\n};\n```\n\n## Lifecycle Hooks\n\nPlugins can implement lifecycle hooks to execute code at different stages of the generation process.\n\n### `generate`\n\n**Required.** The main generation function that returns an array of files to create.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginGenerateContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate(context: MoniconPluginGenerateContext) {\n    console.log(\"Generating files for\", payload.icons.length, \"icons\");\n    console.log(\"Config file path:\", context.configFilePath);\n\n    return payload.icons.map((icon) => ({\n      path: `output/${icon.name}.svg`,\n      content: icon.svg,\n    }));\n  },\n});\n```\n\n### `onPluginsLoad`\n\nCalled when all plugins are loaded. Useful for plugin initialization or validation.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginLoadContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate: () => [],\n  onPluginsLoad(context: MoniconPluginLoadContext) {\n    console.log(\"Loaded plugins:\", context.plugins);\n  },\n});\n```\n\n### `beforeGenerate`\n\nCalled before the `generate` function runs.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginGenerateContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate: () => [],\n  beforeGenerate(context: MoniconPluginGenerateContext) {\n    console.log(\"About to generate\", context.icons.length, \"icons\");\n  },\n});\n```\n\n### `afterGenerate`\n\nCalled after the `generate` function completes.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginGenerateContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate: () => [],\n  afterGenerate(context: MoniconPluginGenerateContext) {\n    console.log(\"Finished generating icons\");\n  },\n});\n```\n\n### `beforeWriteFiles`\n\nCalled before files are written to disk.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginWriteFilesContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate: () => [],\n  beforeWriteFiles(context: MoniconPluginWriteFilesContext) {\n    console.log(\"About to write\", context.files.length, \"files\");\n  },\n});\n```\n\n### `afterWriteFiles`\n\nCalled after files have been written to disk.\n\n```ts twoslash\nimport type {\n  MoniconPlugin,\n  MoniconPluginWriteFilesContext,\n} from \"@monicon/core/plugins\";\n\nconst plugin: MoniconPlugin = () => (payload) => ({\n  name: \"my-plugin\",\n  generate: () => [],\n  afterWriteFiles(context: MoniconPluginWriteFilesContext) {\n    console.log(\"Successfully wrote\", context.files.length, \"files\");\n  },\n});\n```\n\n## Context Objects\n\nEach lifecycle hook receives a context object with relevant information.\n\n### `MoniconPluginGenerateContext`\n\nAvailable in `generate`, `beforeGenerate`, and `afterGenerate` hooks.\n\n- **`icons`** - Array of icons being processed\n- **`configUpdated`** - Whether the config file was updated\n- **`configFilePath`** - Path to the Monicon config file\n\n### `MoniconPluginLoadContext`\n\nAvailable in `onPluginsLoad` hook.\n\n- **`plugins`** - Array of loaded plugin names\n- **`configUpdated`** - Whether the config file was updated\n- **`configFilePath`** - Path to the Monicon config file\n\n### `MoniconPluginWriteFilesContext`\n\nAvailable in `beforeWriteFiles` and `afterWriteFiles` hooks.\n\n- **`files`** - Array of files to be written or that were written\n- **`configUpdated`** - Whether the config file was updated\n- **`configFilePath`** - Path to the Monicon config file\n\n## Using with Generic Plugin\n\nFor simpler use cases, you can extend the [Generic plugin](/docs/plugins/generic) instead of building from scratch:\n\n```ts twoslash title=\"extended-generic-plugin.ts\"\nimport {\n  generic,\n  GenericPluginOptions,\n  MoniconPlugin,\n} from \"@monicon/core/plugins\";\n\ntype MyOptions = GenericPluginOptions<{\n  foo?: string;\n}>;\n\nexport const myPlugin: MoniconPlugin<MyOptions> = (options) =>\n  generic({\n    name: \"my-extended-plugin\",\n    outputPath: options?.outputPath ?? \"output\",\n    extension: \"json\",\n    content: (icon) => {\n      return JSON.stringify(\n        {\n          name: icon.name,\n          svg: icon.svg,\n          foo: options?.foo,\n        },\n        null,\n        2\n      );\n    },\n  });\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/debugger.mdx",
    "content": "---\ntitle: Debugger\ndescription: Debug the icon generation process\n---\n\nThe Debugger plugin logs information about the icon generation process, helping you understand what's happening during build time.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { debuggerPlugin } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [debuggerPlugin()],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `enabled`\n\nEnable or disable the debugger plugin.\n\n- **Type:** `boolean`\n- **Default:** `true`\n\n```ts twoslash\nimport { debuggerPlugin } from \"@monicon/core/plugins\";\n\ndebuggerPlugin({ enabled: false });\n\ndebuggerPlugin({ enabled: true });\n```\n\n## What It Logs\n\nThe Debugger plugin logs information at various stages of the generation process:\n\n### On Plugins Load\n\nLogs when all plugins are loaded.\n\n```\n[Monicon - Debugger Plugin] On plugins load 3 plugins\n```\n\n### Before Generate\n\nLogs the number of icons about to be generated.\n\n```\n[Monicon - Debugger Plugin] Before generate 2 icons\n```\n\n### After Generate\n\nLogs the number of icons that were generated.\n\n```\n[Monicon - Debugger Plugin] After generate 2 icons\n```\n\n### Before Write Files\n\nLogs the number of files about to be written to disk.\n\n```\n[Monicon - Debugger Plugin] Before write files 2 files\n```\n\n### After Write Files\n\nLogs the number of files that were written to disk.\n\n```\n[Monicon - Debugger Plugin] After write files 2 files\n```\n\n## Example Output\n\nWhen running your build with the debugger plugin enabled, you'll see output like:\n\n```bash\n[Monicon - Debugger Plugin] On plugins load 3 plugins\n[Monicon - Debugger Plugin] Before generate 12 icons\n[Monicon - Debugger Plugin] After generate 12 icons\n[Monicon - Debugger Plugin] Before write files 12 files\n[Monicon - Debugger Plugin] After write files 12 files\n```\n\n## Use Cases\n\nThe Debugger plugin is useful for:\n\n- **Development** - Understanding what's happening during icon generation\n- **Debugging** - Troubleshooting issues with icon generation\n- **Performance** - Monitoring how many icons and files are being processed\n- **Verification** - Confirming that icons are being generated as expected\n\n## Plugin Order\n\nThe Debugger plugin can be placed anywhere in the plugins array. It's typically placed last so it logs information about all other plugins:\n\n```ts twoslash\nimport { debuggerPlugin } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  plugins: [\n    debuggerPlugin(), // Last to log all plugin activity\n  ],\n} satisfies MoniconConfig;\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/generic.mdx",
    "content": "---\ntitle: Generic\ndescription: Create custom icon outputs with flexible file generation\n---\n\nThe Generic plugin is a flexible base plugin that allows you to create custom file outputs from your icons. You can control the file path, name, extension, and content, making it perfect for custom integrations or specialized icon formats.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { generic } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    generic({\n      name: \"custom-plugin\",\n      outputPath: \"public/icons\",\n      extension: \"txt\",\n      content: (icon) => `Icon: ${icon.name}\\nSVG: ${icon.svg}`,\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `name`\n\nThe name of your custom plugin instance (useful for debugging and logging).\n\n- **Type:** `string`\n- **Default:** `\"monicon-generic-plugin\"`\n\n```ts twoslash\nimport { generic } from \"@monicon/core/plugins\";\n\ngeneric({\n  name: \"my-custom-icon-plugin\",\n  content: (icon) => icon.svg,\n});\n```\n\n### `outputPath`\n\nThe directory where files will be saved.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { generic } from \"@monicon/core/plugins\";\n\n// Static path\ngeneric({\n  outputPath: \"public/icons\",\n  content: (icon) => icon.svg,\n});\n\n// Dynamic path based on icon\ngeneric({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"public/icons/mdi\";\n    }\n    return \"public/icons\";\n  },\n  content: (icon) => icon.svg,\n});\n```\n\n### `fileName`\n\nCustomize the file name for each icon.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** Slugified icon name (e.g., `mdi:home` becomes `mdi/home`)\n\n```ts twoslash\nimport { generic } from \"@monicon/core/plugins\";\n\ngeneric({\n  fileName: (icon) => {\n    // Custom file naming\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n  content: (icon) => icon.svg,\n});\n```\n\n### `extension`\n\nSet the file extension for the generated files.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"svg\"`\n\n```ts twoslash\nimport { generic } from \"@monicon/core/plugins\";\n\n// Static extension\ngeneric({\n  extension: \"txt\",\n  content: (icon) => icon.svg,\n});\n\n// Dynamic extension based on icon\ngeneric({\n  extension: (icon) => {\n    return icon.name.startsWith(\"mdi:\") ? \"xml\" : \"txt\";\n  },\n  content: (icon) => icon.svg,\n});\n```\n\n### `content`\n\nThe content to write to each file. This is a required option.\n\n- **Type:** `string | ((icon: Icon) => string)`\n- **Required:** `false`\n\n> [!NOTE] If no content is provided, the plugin will log a warning and skip the icon.\n\n```ts twoslash\nimport { generic } from \"@monicon/core/plugins\";\n\n// Static content\ngeneric({\n  content: \"Hello World\",\n});\n\n// Dynamic content based on icon\ngeneric({\n  content: (icon) => {\n    return `Name: ${icon.name}\\nSVG: ${icon.svg}`;\n  },\n});\n```\n\n## Examples\n\n### Create JSON Metadata Files\n\nGenerate JSON files with icon metadata:\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { generic } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    generic({\n      name: \"icon-metadata\",\n      outputPath: \"public/icons/metadata\",\n      extension: \"json\",\n      content: (icon) => {\n        return JSON.stringify(icon, null, 2);\n      },\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Use Cases\n\nThe Generic plugin is perfect for:\n\n- **Custom file formats** - Generate icons in formats not supported by other plugins\n- **Metadata generation** - Create companion files with icon information\n- **Documentation** - Generate documentation or reference files from icons\n- **Testing** - Create test fixtures or sample data\n- **Integration** - Build custom outputs for specific tools or frameworks\n- **Logging** - Create text files that log icon information after processing\n\n## Advanced Usage\n\nYou can use the Generic plugin to build your own specialized plugins:\n\n```ts twoslash title=\"my-plugin.ts\"\nimport {\n  generic,\n  GenericPluginOptions,\n  MoniconPlugin,\n} from \"@monicon/core/plugins\";\nimport type { Icon } from \"@monicon/core\";\n\ntype MyCustomPluginOptions = GenericPluginOptions<{ foo?: string }>;\n\nexport const myCustomPlugin: MoniconPlugin<MyCustomPluginOptions> = (options) =>\n  generic({\n    name: \"my-custom-plugin\",\n    afterGenerate(context) {\n      console.log(\"afterGenerate\", context);\n    },\n  });\n\nmyCustomPlugin({ foo: \"bar\" });\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/meta.json",
    "content": "{\n    \"title\": \"Plugins\",\n    \"pages\": [\n      \"react\",\n      \"vue\",\n      \"svelte\",\n      \"qwik\",\n      \"react-native\",\n      \"svg\",\n      \"generic\",\n      \"clean\",\n      \"debugger\",\n      \"custom\"\n    ]\n  }\n  "
  },
  {
    "path": "apps/docs/content/docs/plugins/qwik.mdx",
    "content": "---\ntitle: Qwik\ndescription: Generate Qwik components for your icons\n---\n\nThe Qwik plugin generates Qwik components from your SVG icons.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { qwik } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    qwik({\n      outputPath: \"src/components/icons\",\n      suffix: \"Icon\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `outputPath`\n\nThe directory where icon components will be generated.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { qwik } from \"@monicon/core/plugins\";\n\n// Static path\nqwik({ outputPath: \"src/components/icons\" });\n\n// Dynamic path based on icon\nqwik({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"src/components/icons/mdi\";\n    }\n    return \"src/components/icons\";\n  },\n});\n```\n\n### `componentName`\n\nCustomize the component name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** `${icon.name}Icon`\n\n```ts twoslash\nimport { qwik } from \"@monicon/core/plugins\";\n\nqwik({\n  componentName: (icon) => {\n    return `Custom${icon.name}`;\n  },\n});\n```\n\n### `fileName`\n\nCustomize the file name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** Slugified icon name\n\n```ts twoslash\nimport { qwik } from \"@monicon/core/plugins\";\n\nqwik({\n  fileName: (icon) => {\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n});\n```\n\n### `prefix`\n\nAdd a prefix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"\"`\n\n```ts twoslash\nimport { qwik } from \"@monicon/core/plugins\";\n\n// Static prefix\nqwik({ prefix: \"Icon\" });\n\n// Dynamic prefix\nqwik({\n  prefix: (icon) => {\n    return icon.name.startsWith(\"mdi:\") ? \"Mdi\" : \"\";\n  },\n});\n```\n\n### `suffix`\n\nAdd a suffix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"Icon\"`\n\n```ts twoslash\nimport { qwik } from \"@monicon/core/plugins\";\n\n// Static suffix\nqwik({ suffix: \"Component\" });\n\n// No suffix\nqwik({ suffix: \"\" });\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```tsx title=\"src/components/icons/mdi/home.tsx\"\nimport { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst HomeIcon = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n});\n\nexport default HomeIcon;\n```\n\n## Usage in Components\n\n```tsx title=\"src/routes/index.tsx\"\nimport { component$ } from \"@builder.io/qwik\";\nimport HomeIcon from \"~/components/icons/mdi/home\";\nimport HeartIcon from \"~/components/icons/lucide/heart\";\n\nexport default component$(() => {\n  return (\n    <div>\n      <HomeIcon class=\"size-6\" />\n      <HeartIcon width={24} height={24} color=\"red\" />\n    </div>\n  );\n});\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/react-native.mdx",
    "content": "---\ntitle: React Native\ndescription: Generate React Native components for your icons\n---\n\nThe React Native plugin generates React Native components using `react-native-svg` from your SVG icons.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { reactNative } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    reactNative({\n      outputPath: \"components/icons\",\n      format: \"tsx\",\n      suffix: \"Icon\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n<Callout type=\"info\">\n  Make sure you have `react-native-svg` installed in your project.\n</Callout>\n\n## Options\n\n### `outputPath`\n\nThe directory where icon components will be generated.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\n// Static path\nreactNative({ outputPath: \"components/icons\" });\n\n// Dynamic path based on icon\nreactNative({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"components/icons/mdi\";\n    }\n    return \"components/icons\";\n  },\n});\n```\n\n### `format`\n\nThe output format for generated files.\n\n- **Type:** `\"jsx\" | \"tsx\"`\n- **Default:** `\"tsx\"`\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\n// Generate JSX files\nreactNative({ format: \"jsx\" });\n\n// Generate TSX files (default)\nreactNative({ format: \"tsx\" });\n```\n\n### `componentName`\n\nCustomize the component name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** `${icon.name}Icon`\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\nreactNative({\n  componentName: (icon) => {\n    return `Custom${icon.name}`;\n  },\n});\n```\n\n### `fileName`\n\nCustomize the file name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** Slugified icon name\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\nreactNative({\n  fileName: (icon) => {\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n});\n```\n\n### `prefix`\n\nAdd a prefix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"\"`\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\n// Static prefix\nreactNative({ prefix: \"Icon\" });\n```\n\n### `suffix`\n\nAdd a suffix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"Icon\"`\n\n```ts twoslash\nimport { reactNative } from \"@monicon/core/plugins\";\n\n// Static suffix\nreactNative({ suffix: \"Component\" });\n\n// No suffix\nreactNative({ suffix: \"\" });\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```tsx title=\"components/icons/mdi/home.tsx\"\nimport React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst HomeIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default HomeIcon;\n```\n\n## Usage in Components\n\n```tsx title=\"app/(tabs)/index.tsx\"\nimport { View, StyleSheet } from \"react-native\";\nimport HomeIcon from \"@/components/icons/mdi/home\";\nimport HeartIcon from \"@/components/icons/lucide/heart\";\n\nexport default function HomeScreen() {\n  return (\n    <View style={styles.container}>\n      <HomeIcon width={32} height={32} color=\"blue\" />\n      <HeartIcon width={32} height={32} color=\"red\" />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    flexDirection: \"row\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    gap: 10,\n  },\n});\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/react.mdx",
    "content": "---\ntitle: React\ndescription: Generate React components for your icons\n---\n\nThe React plugin generates React components (TSX or JSX) from your SVG icons.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { react } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    react({\n      outputPath: \"src/components/icons\",\n      format: \"tsx\",\n      suffix: \"Icon\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `outputPath`\n\nThe directory where icon components will be generated.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { react } from \"@monicon/core/plugins\";\n\n// Static path\nreact({ outputPath: \"components/icons\" });\n\n// Dynamic path based on icon\nreact({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"components/icons/mdi\";\n    }\n    return \"components/icons\";\n  },\n});\n```\n\n### `format`\n\nThe output format for generated files.\n\n- **Type:** `\"jsx\" | \"tsx\"`\n- **Default:** `\"tsx\"`\n\n```ts twoslash\nimport { react } from \"@monicon/core/plugins\";\n\n// Generate JSX files\nreact({ format: \"jsx\" });\n\n// Generate TSX files (default)\nreact({ format: \"tsx\" });\n```\n\n### `componentName`\n\nCustomize the component name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** `${icon.name}Icon`\n\n```ts twoslash\nimport { react } from \"@monicon/core/plugins\";\n\nreact({\n  componentName: (icon) => {\n    // Custom naming logic\n    return `Custom${icon.name}`;\n  },\n});\n```\n\n### `fileName`\n\nCustomize the file name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** Slugified icon name\n\n```ts\nreact({\n  fileName: (icon) => {\n    // Custom file naming\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n});\n```\n\n### `prefix`\n\nAdd a prefix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"\"`\n\n```ts twoslash\nimport { react } from \"@monicon/core/plugins\";\n\n// Static prefix\nreact({ prefix: \"Icon\" });\n\n// Dynamic prefix\nreact({\n  prefix: (icon) => {\n    return icon.name.startsWith(\"mdi:\") ? \"Mdi\" : \"\";\n  },\n});\n```\n\n### `suffix`\n\nAdd a suffix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"Icon\"`\n\n```ts twoslash\nimport { react } from \"@monicon/core/plugins\";\n\n// Static suffix\nreact({ suffix: \"Component\" });\n\n// No suffix\nreact({ suffix: \"\" });\n\n// Dynamic suffix\nreact({\n  suffix: (icon) => {\n    return icon.name.includes(\"outline\") ? \"Outline\" : \"Icon\";\n  },\n});\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```ts title=\"src/components/icons/mdi/home.tsx\"\nconst HomeIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default HomeIcon;\n```\n\n## Usage in Components\n\n```tsx title=\"src/App.tsx\"\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport HeartIcon from \"./components/icons/lucide/heart\";\n\nfunction App() {\n  return (\n    <div>\n      <HomeIcon className=\"size-6\" />\n      <HeartIcon width={24} height={24} color=\"red\" />\n    </div>\n  );\n}\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/svelte.mdx",
    "content": "---\ntitle: Svelte\ndescription: Generate Svelte components for your icons\n---\n\nThe Svelte plugin generates Svelte components from your SVG icons.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { svelte } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    svelte({\n      outputPath: \"'src/lib/components/icons\",\n      suffix: \"Icon\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `outputPath`\n\nThe directory where icon components will be generated.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/lib/components/icons\"`\n\n```ts twoslash\nimport { svelte } from \"@monicon/core/plugins\";\n\n// Static path\nsvelte({ outputPath: \"src/lib/components/icons\" });\n\n// Dynamic path based on icon\nsvelte({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"src/lib/components/icons/mdi\";\n    }\n    return \"src/lib/components/icons\";\n  },\n});\n```\n\n### `componentName`\n\nCustomize the component name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** `${icon.name}Icon`\n\n```ts twoslash\nimport { svelte } from \"@monicon/core/plugins\";\n\nsvelte({\n  componentName: (icon) => {\n    return `Custom${icon.name}`;\n  },\n});\n```\n\n### `fileName`\n\nCustomize the file name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** Slugified icon name\n\n```ts twoslash\nimport { svelte } from \"@monicon/core/plugins\";\n\nsvelte({\n  fileName: (icon) => {\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n});\n```\n\n### `prefix`\n\nAdd a prefix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"\"`\n\n```ts twoslash\nimport { svelte } from \"@monicon/core/plugins\";\n\n// Static prefix\nsvelte({ prefix: \"Icon\" });\n\n// Dynamic prefix\nsvelte({\n  prefix: (icon) => {\n    return icon.name.startsWith(\"mdi:\") ? \"Mdi\" : \"\";\n  },\n});\n```\n\n### `suffix`\n\nAdd a suffix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"Icon\"`\n\n```ts twoslash\nimport { svelte } from \"@monicon/core/plugins\";\n\n// Static suffix\nsvelte({ suffix: \"Component\" });\n\n// No suffix\nsvelte({ suffix: \"\" });\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```svelte title=\"src/lib/components/icons/mdi/home.svelte\"\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n</svg>\n```\n\n## Usage in Components\n\n```svelte title=\"src/routes/+page.svelte\"\n<script>\n  import HomeIcon from \"$lib/components/icons/mdi/home.svelte\";\n  import HeartIcon from \"$lib/components/icons/lucide/heart.svelte\";\n</script>\n\n<div>\n  <HomeIcon class=\"size-6\" />\n  <HeartIcon width={24} height={24} color=\"red\" />\n</div>\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/svg.mdx",
    "content": "---\ntitle: SVG\ndescription: Export icons as raw SVG files\n---\n\nThe SVG plugin exports your icons as raw SVG files, useful when you need standalone SVG files for design tools, documentation, or other purposes.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { svg } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    svg({\n      outputPath: \"public/icons\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `outputPath`\n\nThe directory where SVG files will be saved.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { svg } from \"@monicon/core/plugins\";\n\n// Static path\nsvg({ outputPath: \"public/icons\" })\n\n// Dynamic path based on icon\nsvg({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"public/icons/mdi\";\n    }\n    return \"public/icons\";\n  },\n})\n```\n\n### `fileName`\n\nCustomize the file name for each icon.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** Slugified icon name\n\n```ts\nimport { svg } from \"@monicon/core/plugins\";\n\nsvg({\n  fileName: (icon) => {\n    // Custom file naming\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n})\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```html title=\"public/icons/mdi/home.svg\"\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n  <path d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"/>\n</svg>\n```\n\n## Usage in HTML\n\n```html\n<!-- Direct usage -->\n<img src=\"/icons/mdi/home.svg\" alt=\"Home\" width=\"24\" height=\"24\" />\n\n<!-- As background -->\n<style>\n  .icon-home {\n    background-image: url(\"/icons/mdi/home.svg\");\n    width: 24px;\n    height: 24px;\n  }\n</style>\n```\n"
  },
  {
    "path": "apps/docs/content/docs/plugins/vue.mdx",
    "content": "---\ntitle: Vue\ndescription: Generate Vue components for your icons\n---\n\nThe Vue plugin generates Vue 3 Single File Components (SFC) from your SVG icons.\n\n## Usage\n\n```ts twoslash title=\"monicon.config.ts\"\nimport { vue } from \"@monicon/core/plugins\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\"mdi:home\", \"lucide:heart\"],\n  plugins: [\n    vue({\n      outputPath: \"src/components/icons\",\n      template: \"ts\",\n      suffix: \"Icon\",\n    }),\n  ],\n} satisfies MoniconConfig;\n```\n\n## Options\n\n### `outputPath`\n\nThe directory where icon components will be generated.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"src/components/icons\"`\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\n// Static path\nvue({ outputPath: \"components/icons\" })\n\n// Dynamic path based on icon\nvue({\n  outputPath: (icon) => {\n    if (icon.name.startsWith(\"mdi:\")) {\n      return \"components/icons/mdi\";\n    }\n    return \"components/icons\";\n  },\n})\n```\n\n### `template`\n\nThe script template type for generated components.\n\n- **Type:** `\"js\" | \"ts\"`\n- **Default:** `\"ts\"`\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\n// TypeScript setup (default)\nvue({ template: \"ts\" })\n\n// JavaScript setup\nvue({ template: \"js\" })\n```\n\n### `componentName`\n\nCustomize the component name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** `${icon.name}Icon`\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\nvue({\n  componentName: (icon) => {\n    return `Custom${icon.name}`;\n  },\n})\n```\n\n### `fileName`\n\nCustomize the file name.\n\n- **Type:** `(icon: Icon) => string | undefined`\n- **Default:** Slugified icon name\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\nvue({\n  fileName: (icon) => {\n    return icon.name.toLowerCase().replace(\":\", \"-\");\n  },\n})\n```\n\n### `prefix`\n\nAdd a prefix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"\"`\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\n// Static prefix\nvue({ prefix: \"Icon\" })\n\n// Dynamic prefix\nvue({\n  prefix: (icon) => {\n    return icon.name.startsWith(\"mdi:\") ? \"Mdi\" : \"\";\n  },\n})\n```\n\n### `suffix`\n\nAdd a suffix to component names.\n\n- **Type:** `string | ((icon: Icon) => string | undefined)`\n- **Default:** `\"Icon\"`\n\n```ts twoslash\nimport { vue } from \"@monicon/core/plugins\";\n\n// Static suffix\nvue({ suffix: \"Component\" })\n\n// No suffix\nvue({ suffix: \"\" })\n```\n\n## Generated Output\n\nFor an icon `mdi:home`, the plugin generates:\n\n```vue title=\"src/components/icons/mdi/home.vue\"\n<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"HomeIcon\" };\n</script>\n```\n\n## Usage in Components\n\n```vue title=\"src/App.vue\"\n<script setup lang=\"ts\">\nimport HomeIcon from \"./components/icons/mdi/home.vue\";\nimport HeartIcon from \"./components/icons/lucide/heart.vue\";\n</script>\n\n<template>\n  <div>\n    <HomeIcon class=\"size-6\" />\n    <HeartIcon width=\"24\" height=\"24\" color=\"red\" />\n  </div>\n</template>\n```"
  },
  {
    "path": "apps/docs/eslint.config.mjs",
    "content": "import { defineConfig, globalIgnores } from 'eslint/config';\nimport nextVitals from 'eslint-config-next/core-web-vitals';\n\nconst eslintConfig = defineConfig([\n  ...nextVitals,\n  globalIgnores([\n    '.next/**',\n    'out/**',\n    'build/**',\n    'next-env.d.ts',\n    '.source/**',\n  ]),\n]);\n\nexport default eslintConfig;"
  },
  {
    "path": "apps/docs/next.config.mjs",
    "content": "import { createMDX } from \"fumadocs-mdx/next\";\n\nconst withMDX = createMDX();\n\n/** @type {import('next').NextConfig} */\nconst config = {\n  reactStrictMode: true,\n  async rewrites() {\n    return [\n      {\n        source: \"/docs/:path*.mdx\",\n        destination: \"/llms.mdx/docs/:path*\",\n      },\n    ];\n  },\n  redirects() {\n    return [\n      {\n        source: \"/installation/react\",\n        destination: \"/docs/installation/react\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/react-rspack\",\n        destination: \"/docs/installation/rspack\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/react-rollup\",\n        destination: \"/docs/installation/rollup\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/react-esbuild\",\n        destination: \"/docs/installation/esbuild\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/react-webpack\",\n        destination: \"/docs/installation/webpack\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/react-native\",\n        destination: \"/docs/installation/react-native\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/nextjs\",\n        destination: \"/docs/installation/nextjs\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/remix\",\n        destination: \"/docs/installation/remix\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/qwik\",\n        destination: \"/docs/installation/qwik\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/vue\",\n        destination: \"/docs/installation/vue\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/nuxt\",\n        destination: \"/docs/installation/nuxt\",\n        permanent: true,\n      },\n      {\n        source: \"/installation/svelte\",\n        destination: \"/docs/installation/svelte\",\n        permanent: true,\n      },\n\n      {\n        source: \"/customization/custom-loader\",\n        destination: \"/docs/loaders/custom-loader\",\n        permanent: true,\n      },\n      {\n        source: \"/customization/json-collections\",\n        destination: \"/docs/loaders/json-collections\",\n        permanent: true,\n      },\n      {\n        source: \"/customization/local-collections\",\n        destination: \"/docs/loaders/local-collections\",\n        permanent: true,\n      },\n      {\n        source: \"/customization/remote-collections\",\n        destination: \"/docs/loaders/remote-collections\",\n        permanent: true,\n      },\n    ];\n  },\n};\n\nexport default withMDX(config);\n"
  },
  {
    "path": "apps/docs/package.json",
    "content": "{\n  \"name\": \"@monicon/docs\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"build\": \"next build\",\n    \"dev\": \"next dev\",\n    \"start\": \"next start\",\n    \"types:check\": \"fumadocs-mdx && next typegen && tsc --noEmit\",\n    \"postinstall\": \"fumadocs-mdx\",\n    \"lint\": \"eslint\"\n  },\n  \"dependencies\": {\n    \"fumadocs-core\": \"16.4.7\",\n    \"fumadocs-mdx\": \"14.2.5\",\n    \"fumadocs-twoslash\": \"^3.1.12\",\n    \"fumadocs-typescript\": \"^5.0.1\",\n    \"fumadocs-ui\": \"16.4.7\",\n    \"lucide-react\": \"^0.562.0\",\n    \"next\": \"16.1.1\",\n    \"react\": \"^19.2.3\",\n    \"react-dom\": \"^19.2.3\",\n    \"string-sanitizer\": \"^2.0.2\",\n    \"tailwind-merge\": \"^3.4.0\",\n    \"twoslash\": \"^0.3.6\"\n  },\n  \"devDependencies\": {\n    \"@monicon/core\": \"*\",\n    \"@monicon/vite\": \"*\",\n    \"@tailwindcss/postcss\": \"^4.1.18\",\n    \"@types/mdx\": \"^2.0.13\",\n    \"@types/node\": \"^25.0.5\",\n    \"@types/react\": \"^19.2.8\",\n    \"@types/react-dom\": \"^19.2.3\",\n    \"eslint\": \"^9.39.2\",\n    \"eslint-config-next\": \"16.1.1\",\n    \"postcss\": \"^8.5.6\",\n    \"tailwindcss\": \"^4.1.18\",\n    \"typescript\": \"^5.9.3\"\n  }\n}\n"
  },
  {
    "path": "apps/docs/postcss.config.mjs",
    "content": "export default {\n  plugins: {\n    '@tailwindcss/postcss': {},\n  },\n};\n"
  },
  {
    "path": "apps/docs/public/browserconfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><square150x150logo src=\"/ms-icon-150x150.png\"/><square310x310logo src=\"/ms-icon-310x310.png\"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>"
  },
  {
    "path": "apps/docs/source.config.ts",
    "content": "import { defineConfig, defineDocs, frontmatterSchema, metaSchema } from 'fumadocs-mdx/config';\nimport { transformerTwoslash } from 'fumadocs-twoslash';\nimport { rehypeCodeDefaultOptions } from 'fumadocs-core/mdx-plugins';\n\n\n// You can customise Zod schemas for frontmatter and `meta.json` here\n// see https://fumadocs.dev/docs/mdx/collections\nexport const docs = defineDocs({\n  dir: 'content/docs',\n  docs: {\n    schema: frontmatterSchema,\n    postprocess: {\n      includeProcessedMarkdown: true,\n    },\n  },\n  meta: {\n    schema: metaSchema,\n  },\n});\n\nexport default defineConfig({\n  mdxOptions: {\n    rehypeCodeOptions: {\n      themes: {\n        light: 'github-light',\n        dark: 'github-dark',\n      },\n      transformers: [...(rehypeCodeDefaultOptions.transformers ?? []), transformerTwoslash()],\n      // important: Shiki doesn't support lazy loading languages for codeblocks in Twoslash popups\n      // make sure to define them first (e.g. the common ones)\n      langs: ['js', 'jsx', 'ts', 'tsx'],\n    },\n  },\n});\n"
  },
  {
    "path": "apps/docs/src/app/(home)/layout.tsx",
    "content": "import { HomeLayout } from \"fumadocs-ui/layouts/home\";\nimport { baseOptions } from \"@/lib/layout.shared\";\n\nexport default function Layout({ children }: LayoutProps<\"/\">) {\n  return <HomeLayout {...baseOptions()}>{children}</HomeLayout>;\n}\n"
  },
  {
    "path": "apps/docs/src/app/(home)/page.tsx",
    "content": "import Link from \"next/link\";\nimport { ConfigDemo } from \"@/components/ConfigDemo\";\nimport { buttonVariants } from \"fumadocs-ui/components/ui/button\";\nimport { Card } from \"fumadocs-ui/components/card\";\nimport { Metadata } from \"next\";\n\nexport const metadata: Metadata = {\n  title: \"Monicon\",\n  description:\n    \"Monicon is an easy-to-use icon orchestration tool that makes adding icons to your projects simple.\",\n  openGraph: {\n    title: \"Monicon\",\n    description:\n      \"Monicon is an easy-to-use icon orchestration tool that makes adding icons to your projects simple.\",\n    images: [\"/og\"],\n    url: \"https://monicon.dev\",\n    siteName: \"Monicon\",\n    locale: \"en_US\",\n    type: \"website\",\n  },\n  twitter: {\n    card: \"summary_large_image\",\n    title: \"Monicon\",\n    description:\n      \"Monicon is an easy-to-use icon orchestration tool that makes adding icons to your projects simple.\",\n    images: [\"/og\"],\n  },\n};\n\nexport default function HomePage() {\n  return (\n    <div className=\"flex flex-col items-center flex-1 w-full\">\n      <div className=\"w-full max-w-7xl px-8 py-16 text-center\">\n        <h1 className=\"text-4xl lg:text-5xl text-fd-primary leading-tight font-medium tracking-tight mb-6\">\n          Universal Icon Library\n        </h1>\n        <p className=\"text-sm lg:text-base text-fd-muted-foreground max-w-3xl mx-auto mb-8\">\n          Monicon is an easy-to-use icon orchestration tool that makes adding\n          icons to your projects simple. Access 200,000+ icons from popular sets\n          like Material Design, Feather, and Font Awesome.\n        </p>\n        <div className=\"flex gap-4 justify-center\">\n          <Link className={buttonVariants({ variant: \"primary\" })} href=\"/docs\">\n            Get Started\n          </Link>\n          <Link\n            className={buttonVariants({ variant: \"outline\" })}\n            href=\"https://icones.js.org/\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            Explore Icons\n          </Link>\n        </div>\n      </div>\n      <div className=\"w-full max-w-7xl px-8 py-0\">\n        <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8\">\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">🎨</div>\n            }\n            title=\"200,000+ Icons\"\n          >\n            Access a vast collection of icons from popular icon sets including\n            Material Design, Feather, Font Awesome, Lucide, and many more.\n          </Card>\n\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">🚀</div>\n            }\n            title=\"Framework Agnostic\"\n          >\n            Works seamlessly with React, Vue, Svelte, Next.js, Nuxt, React\n            Native, and more. One configuration for all frameworks.\n          </Card>\n\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">⚡</div>\n            }\n            title=\"Type-Safe\"\n          >\n            Full TypeScript support with auto-generated types for all your\n            icons, providing excellent developer experience.\n          </Card>\n\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">📦</div>\n            }\n            title=\"Tree-Shakeable\"\n          >\n            Only bundle the icons you actually use. Monicon generates individual\n            icons as separate files for optimal bundle size.\n          </Card>\n\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">🔧</div>\n            }\n            title=\"Customizable\"\n          >\n            Load icons from multiple sources: online collections, local files,\n            or custom JSON. Create your own plugin for any output format.\n          </Card>\n\n          <Card\n            icon={\n              <div className=\"size-4 items-center justify-center flex\">⚙️</div>\n            }\n            title=\"Simple Configuration\"\n          >\n            Configure once in monicon.config.ts and integrate with your favorite\n            bundler: Vite, Webpack, Rollup, esbuild, or Rspack.\n          </Card>\n        </div>\n      </div>\n      <div className=\"w-full max-w-7xl px-8 py-16\">\n        <h2 className=\"text-2xl lg:text-3xl text-fd-primary font-medium text-center mb-4\">\n          How It Works\n        </h2>\n        <p className=\"text-sm lg:text-base text-center text-fd-muted-foreground mb-12 max-w-2xl mx-auto\">\n          Define your configuration and select the icons you need. Monicon will\n          automatically generate optimized icon components tailored to your\n          framework.\n        </p>\n        <ConfigDemo />\n      </div>\n      <div className=\"w-full max-w-7xl px-8 py-8 border-t border-fd-border\">\n        <div className=\"flex flex-col items-center gap-2 text-center\">\n          <p className=\"text-sm text-fd-muted-foreground\">\n            Made by{\" \"}\n            <a\n              href=\"https://twitter.com/senkanoktay\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n              className=\"text-fd-primary hover:underline font-medium\"\n            >\n              @senkanoktay\n            </a>\n          </p>\n        </div>\n      </div>\n    </div>\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/app/api/search/route.ts",
    "content": "import { source } from '@/lib/source';\nimport { createFromSource } from 'fumadocs-core/search/server';\n\nexport const { GET } = createFromSource(source, {\n  // https://docs.orama.com/docs/orama-js/supported-languages\n  language: 'english',\n});\n"
  },
  {
    "path": "apps/docs/src/app/docs/[[...slug]]/page.tsx",
    "content": "import { getPageImage, source } from \"@/lib/source\";\nimport {\n  DocsBody,\n  DocsDescription,\n  DocsPage,\n  DocsTitle,\n} from \"fumadocs-ui/layouts/docs/page\";\nimport { notFound } from \"next/navigation\";\nimport { getMDXComponents } from \"@/mdx-components\";\nimport type { Metadata } from \"next\";\nimport { createRelativeLink } from \"fumadocs-ui/mdx\";\nimport { LLMCopyButton, ViewOptions } from \"@/components/ai/page-actions\";\n\nexport default async function Page(props: PageProps<\"/docs/[[...slug]]\">) {\n  const params = await props.params;\n  const page = source.getPage(params.slug);\n  if (!page) notFound();\n\n  const MDX = page.data.body;\n\n  const gitConfig = {\n    user: \"oktaysenkan\",\n    repo: \"monicon\",\n    branch: \"main\",\n  };\n\n  return (\n    <DocsPage toc={page.data.toc} full={page.data.full}>\n      <DocsTitle>{page.data.title}</DocsTitle>\n      <DocsDescription className=\"mb-0\">\n        {page.data.description}\n      </DocsDescription>\n      <div className=\"flex flex-row gap-2 items-center border-b pb-6\">\n        <LLMCopyButton markdownUrl={`${page.url}.mdx`} />\n        <ViewOptions\n          markdownUrl={`${page.url}.mdx`}\n          // update it to match your repo\n          githubUrl={`https://github.com/${gitConfig.user}/${gitConfig.repo}/blob/${gitConfig.branch}/apps/docs/content/docs/${page.path}`}\n        />\n      </div>\n      <DocsBody>\n        <MDX\n          components={getMDXComponents({\n            // this allows you to link to other pages with relative file paths\n            a: createRelativeLink(source, page),\n          })}\n        />\n      </DocsBody>\n    </DocsPage>\n  );\n}\n\nexport async function generateStaticParams() {\n  return source.generateParams();\n}\n\nexport async function generateMetadata(\n  props: PageProps<\"/docs/[[...slug]]\">\n): Promise<Metadata> {\n  const params = await props.params;\n  const page = source.getPage(params.slug);\n  if (!page) notFound();\n\n  return {\n    title: `${page.data.title} - Monicon`,\n    description: page.data.description,\n    openGraph: {\n      images: getPageImage(page).url,\n    },\n  };\n}\n"
  },
  {
    "path": "apps/docs/src/app/docs/layout.tsx",
    "content": "import { source } from '@/lib/source';\nimport { DocsLayout } from 'fumadocs-ui/layouts/docs';\nimport { baseOptions } from '@/lib/layout.shared';\n\nexport default function Layout({ children }: LayoutProps<'/docs'>) {\n  return (\n    <DocsLayout tree={source.getPageTree()} {...baseOptions()}>\n      {children}\n    </DocsLayout>\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/app/global.css",
    "content": "@import 'tailwindcss';\n@import 'fumadocs-ui/css/neutral.css';\n@import 'fumadocs-ui/css/preset.css';\n@import 'fumadocs-twoslash/twoslash.css';"
  },
  {
    "path": "apps/docs/src/app/layout.tsx",
    "content": "import { RootProvider } from \"fumadocs-ui/provider/next\";\nimport \"./global.css\";\nimport { Inter } from \"next/font/google\";\nimport Script from \"next/script\";\n\nconst inter = Inter({\n  subsets: [\"latin\"],\n});\n\nexport default function Layout({ children }: LayoutProps<\"/\">) {\n  return (\n    <html lang=\"en\" className={inter.className} suppressHydrationWarning>\n      <body className=\"flex flex-col min-h-screen\">\n        <RootProvider>{children}</RootProvider>\n      </body>\n      <Script\n        src=\"https://cdn.seline.com/seline.js\"\n        data-token=\"df6210bb1ad8bf7\"\n        strategy=\"afterInteractive\"\n      />\n      <Script\n        src=\"https://cloud.umami.is/script.js\"\n        data-website-id=\"6bb1666f-8ea7-4876-9348-acb7d9679e79\"\n        strategy=\"afterInteractive\"\n      />\n    </html>\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/app/llms-full.txt/route.ts",
    "content": "import { getLLMText, source } from '@/lib/source';\n\nexport const revalidate = false;\n\nexport async function GET() {\n  const scan = source.getPages().map(getLLMText);\n  const scanned = await Promise.all(scan);\n\n  return new Response(scanned.join('\\n\\n'));\n}\n"
  },
  {
    "path": "apps/docs/src/app/llms.mdx/docs/[[...slug]]/route.ts",
    "content": "import { getLLMText, source } from '@/lib/source';\nimport { notFound } from 'next/navigation';\n\nexport const revalidate = false;\n\nexport async function GET(_req: Request, { params }: RouteContext<'/llms.mdx/docs/[[...slug]]'>) {\n  const { slug } = await params;\n  const page = source.getPage(slug);\n  if (!page) notFound();\n\n  return new Response(await getLLMText(page), {\n    headers: {\n      'Content-Type': 'text/markdown',\n    },\n  });\n}\n\nexport function generateStaticParams() {\n  return source.generateParams();\n}\n"
  },
  {
    "path": "apps/docs/src/app/manifest.ts",
    "content": "import type { MetadataRoute } from 'next'\n\nexport default function manifest(): MetadataRoute.Manifest {\n    return {\n        name: 'Monicon',\n        short_name: 'Monicon',\n        description: 'Monicon',\n        start_url: '/',\n        display: 'standalone',\n        background_color: '#fff',\n        theme_color: '#fff',\n        icons: [\n            {\n                src: \"/favicon.ico\",\n                sizes: \"any\",\n                type: \"image/x-icon\",\n            },\n            {\n                src: \"/android-icon-36x36.png\",\n                sizes: \"36x36\",\n                type: \"image/png\",\n            },\n            {\n                src: \"/android-icon-48x48.png\",\n                sizes: \"48x48\",\n                type: \"image/png\",\n            },\n            {\n                src: \"/android-icon-72x72.png\",\n                sizes: \"72x72\",\n                type: \"image/png\",\n            },\n            {\n                src: \"/android-icon-96x96.png\",\n                sizes: \"96x96\",\n                type: \"image/png\",\n            },\n            {\n                src: \"/android-icon-144x144.png\",\n                sizes: \"144x144\",\n                type: \"image/png\",\n            },\n            {\n                src: \"/android-icon-192x192.png\",\n                sizes: \"192x192\",\n                type: \"image/png\",\n            },\n        ],\n    };\n}"
  },
  {
    "path": "apps/docs/src/app/og/docs/[...slug]/route.tsx",
    "content": "import { getPageImage, source } from \"@/lib/source\";\nimport { notFound } from \"next/navigation\";\nimport { ImageResponse } from \"next/og\";\nimport { generate as DefaultImage } from \"fumadocs-ui/og\";\n\nexport const revalidate = false;\n\nexport async function GET(\n  _req: Request,\n  { params }: RouteContext<\"/og/docs/[...slug]\">\n) {\n  const { slug } = await params;\n  const page = source.getPage(slug.slice(0, -1));\n  if (!page) notFound();\n\n  return new ImageResponse(\n    (\n      <DefaultImage\n        title={page.data.title}\n        description={page.data.description}\n        site=\"Monicon\"\n        primaryColor=\"#403c3b\"\n        primaryTextColor=\"white\"\n      />\n    ),\n    {\n      width: 1200,\n      height: 630,\n    }\n  );\n}\n\nexport function generateStaticParams() {\n  return source.getPages().map((page) => ({\n    lang: page.locale,\n    slug: getPageImage(page).segments,\n  }));\n}\n"
  },
  {
    "path": "apps/docs/src/app/og/route.tsx",
    "content": "import { ImageResponse } from \"next/og\";\nimport { generate as DefaultImage } from \"fumadocs-ui/og\";\n\nexport const revalidate = false;\n\nexport async function GET(_req: Request) {\n  const searchParams = new URL(_req.url).searchParams;\n\n  const title = searchParams.get(\"title\") ?? \"Monicon\";\n  const description =\n    searchParams.get(\"description\") ??\n    \"Monicon is an easy-to-use icon orchestration tool that makes adding icons to your projects simple.\";\n\n  return new ImageResponse(\n    (\n      <DefaultImage\n        title={title}\n        description={description}\n        primaryColor=\"#403c3b\"\n        primaryTextColor=\"white\"\n      />\n    ),\n    {\n      width: 1200,\n      height: 630,\n    }\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/app/sitemap.ts",
    "content": "import type { MetadataRoute } from 'next';\nimport { source } from '@/lib/source';\n\nexport const revalidate = false;\n\nconst getBaseUrl = () => {\n    if (process.env.VERCEL_URL)\n        return `https://${process.env.VERCEL_URL}`;\n\n    return 'http://localhost:3000';\n}\n\nexport default async function sitemap(): Promise<MetadataRoute.Sitemap> {\n    const url = (path: string): string => new URL(path, getBaseUrl()).toString();\n\n    const docsPagesSitemap: MetadataRoute.Sitemap = await Promise.all(\n        source.getPages().map(async (page) => {\n            return {\n                url: url(page.url),\n                changeFrequency: 'weekly',\n                priority: 0.5,\n            }\n        })\n    );\n\n    return [\n        {\n            url: url('/'),\n            changeFrequency: 'monthly',\n            priority: 1,\n        },\n        {\n            url: url('/docs'),\n            changeFrequency: 'monthly',\n            priority: 0.8,\n        },\n        ...docsPagesSitemap,\n    ];\n}"
  },
  {
    "path": "apps/docs/src/components/ConfigDemo.tsx",
    "content": "\"use client\";\n\nimport { DynamicCodeBlock } from \"fumadocs-ui/components/dynamic-codeblock\";\nimport { buttonVariants } from \"fumadocs-ui/components/ui/button\";\nimport { File, Folder, Files } from \"fumadocs-ui/components/files\";\nimport { useState } from \"react\";\nimport { CodeBlock } from \"fumadocs-ui/components/codeblock\";\n\nconst examples = [\n  {\n    name: \"React\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport { react } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  plugins: [\n    react(),\n  ],\n} satisfies MoniconConfig;`,\n    files: [\"src/components/icons/mdi/home.tsx\"],\n  },\n  {\n    name: \"Vue\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport { vue } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  collections: [\"lucide\"],\n  plugins: [\n    vue(),\n  ],\n} satisfies MoniconConfig;`,\n    files: [\"src/components/icons/mdi/home.vue\"],\n  },\n  {\n    name: \"Svelte\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport { svelte } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  collections: [\"lucide\"],\n  plugins: [\n    svelte(),\n  ],\n} satisfies MoniconConfig;`,\n    files: [\"src/components/icons/mdi/home.svelte\"],\n  },\n  {\n    name: \"SVG\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport { svg } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  collections: [\"lucide\"],\n  plugins: [\n    svg(),\n  ],\n} satisfies MoniconConfig;`,\n    files: [\"src/components/icons/mdi/home.svg\"],\n  },\n  {\n    name: \"Advanced\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport {\n  loadJSONCollection,\n  loadLocalCollection,\n  loadRemoteCollection,\n} from \"@monicon/core/loaders\";\nimport { react } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  collections: [\"lucide\"],\n  plugins: [\n    react(),\n  ],\n  loaders: {\n    local: loadLocalCollection(\"local\"),\n    json: loadJSONCollection(\n      \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    ),\n    remote: loadRemoteCollection({\n      download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n      attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    }),\n  },\n} satisfies MoniconConfig;`,\n    files: [\n      \"src/components/icons/mdi/home.tsx\",\n      \"src/components/icons/lucide/house.tsx\",\n      \"src/components/icons/lucide/message-circle.tsx\",\n      \"src/components/icons/lucide/download.tsx\",\n      \"src/components/icons/lucide/<other-lucide-icons>.tsx\",\n      \"src/components/icons/local/<all-icons-in-folder>.tsx\",\n      \"src/components/icons/json/network.tsx\",\n      \"src/components/icons/remote/download.tsx\",\n      \"src/components/icons/remote/attachment.tsx\",\n    ],\n  },\n  {\n    name: \"Custom\",\n    code: `import type { MoniconConfig } from \"@monicon/core\";\nimport { generic } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"mdi:home\"],\n  plugins: [\n    generic({\n      extension: \"json\",\n      content: (icon) => JSON.stringify(icon, null, 2),\n    }),\n  ],\n} satisfies MoniconConfig;`,\n    files: [\"src/components/icons/mdi/home.json\"],\n  },\n];\n\ninterface FileNode {\n  name: string;\n  type: \"file\" | \"folder\";\n  children?: FileNode[];\n}\n\nfunction buildFileTree(paths: string[]): FileNode {\n  const root: FileNode = { name: \"\", type: \"folder\", children: [] };\n\n  paths.forEach((path) => {\n    const parts = path.split(\"/\");\n    let current = root;\n\n    parts.forEach((part, index) => {\n      const isFile = index === parts.length - 1;\n      let node = current.children?.find((child) => child.name === part);\n\n      if (!node) {\n        node = {\n          name: part,\n          type: isFile ? \"file\" : \"folder\",\n          children: isFile ? undefined : [],\n        };\n\n        current.children?.push(node);\n      }\n\n      if (!isFile) {\n        current = node;\n      }\n    });\n  });\n\n  return root;\n}\n\nfunction renderFileTree(node: FileNode): React.ReactNode {\n  if (node.type === \"file\") {\n    return <File key={node.name} name={node.name} />;\n  }\n\n  if (node.children && node.children.length > 0) {\n    return (\n      <Folder key={node.name} name={node.name} defaultOpen>\n        {node.children.map((child) => renderFileTree(child))}\n      </Folder>\n    );\n  }\n\n  return null;\n}\n\nexport function ConfigDemo() {\n  const [currentIndex, setCurrentIndex] = useState(0);\n\n  const currentExample = examples[currentIndex];\n  const fileTree = buildFileTree(currentExample.files);\n\n  return (\n    <div className=\"relative w-full max-w-7xl flex flex-col gap-6\">\n      <div className=\"flex items-center gap-2 flex-wrap\">\n        {examples.map((example, index) => (\n          <button\n            key={example.name}\n            className={buttonVariants({\n              variant: index === currentIndex ? \"secondary\" : \"outline\",\n              className: \"cursor-pointer\",\n            })}\n            onClick={() => setCurrentIndex(index)}\n          >\n            {example.name}\n          </button>\n        ))}\n      </div>\n\n      <div className=\"relative w-full flex gap-12 lg:flex-row flex-col\">\n        <div className=\"flex flex-col w-full lg:w-8/12 p-2 border rounded-md gap-2 h-fit\">\n          <div className=\"flex flex-col border-b -mx-2\">\n            <h2 className=\"font-medium text-sm px-2 pb-2\">monicon.config.ts</h2>\n          </div>\n          <DynamicCodeBlock lang=\"ts\" code={currentExample.code} />\n        </div>\n        <div className=\"flex flex-col w-full lg:w-4/12\">\n          <div\n            key={currentIndex}\n            className=\"p-2 border rounded-md flex flex-col gap-2\"\n          >\n            <div className=\"flex flex-col border-b -mx-2\">\n              <h2 className=\"font-medium text-sm px-2 pb-2\">Generated Files</h2>\n            </div>\n            <Files>\n              {fileTree.children?.map((child) => renderFileTree(child))}\n            </Files>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/components/ai/page-actions.tsx",
    "content": "'use client';\nimport { useMemo, useState } from 'react';\nimport { Check, ChevronDown, Copy, ExternalLinkIcon, MessageCircleIcon } from 'lucide-react';\nimport { cn } from '@/lib/cn';\nimport { useCopyButton } from 'fumadocs-ui/utils/use-copy-button';\nimport { buttonVariants } from 'fumadocs-ui/components/ui/button';\nimport { Popover, PopoverContent, PopoverTrigger } from 'fumadocs-ui/components/ui/popover';\n\nconst cache = new Map<string, string>();\n\nexport function LLMCopyButton({\n  /**\n   * A URL to fetch the raw Markdown/MDX content of page\n   */\n  markdownUrl,\n}: {\n  markdownUrl: string;\n}) {\n  const [isLoading, setLoading] = useState(false);\n  const [checked, onClick] = useCopyButton(async () => {\n    const cached = cache.get(markdownUrl);\n    if (cached) return navigator.clipboard.writeText(cached);\n\n    setLoading(true);\n\n    try {\n      await navigator.clipboard.write([\n        new ClipboardItem({\n          'text/plain': fetch(markdownUrl).then(async (res) => {\n            const content = await res.text();\n            cache.set(markdownUrl, content);\n\n            return content;\n          }),\n        }),\n      ]);\n    } finally {\n      setLoading(false);\n    }\n  });\n\n  return (\n    <button\n      disabled={isLoading}\n      className={cn(\n        buttonVariants({\n          color: 'secondary',\n          size: 'sm',\n          className: 'gap-2 [&_svg]:size-3.5 [&_svg]:text-fd-muted-foreground',\n        }),\n      )}\n      onClick={onClick}\n    >\n      {checked ? <Check /> : <Copy />}\n      Copy Markdown\n    </button>\n  );\n}\n\nexport function ViewOptions({\n  markdownUrl,\n  githubUrl,\n}: {\n  /**\n   * A URL to the raw Markdown/MDX content of page\n   */\n  markdownUrl: string;\n\n  /**\n   * Source file URL on GitHub\n   */\n  githubUrl: string;\n}) {\n  const items = useMemo(() => {\n    const fullMarkdownUrl =\n      typeof window !== 'undefined' ? new URL(markdownUrl, window.location.origin) : 'loading';\n    const q = `Read ${fullMarkdownUrl}, I want to ask questions about it.`;\n\n    return [\n      {\n        title: 'Open in GitHub',\n        href: githubUrl,\n        icon: (\n          <svg fill=\"currentColor\" role=\"img\" viewBox=\"0 0 24 24\">\n            <title>GitHub</title>\n            <path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\" />\n          </svg>\n        ),\n      },\n      {\n        title: 'Open in Scira AI',\n        href: `https://scira.ai/?${new URLSearchParams({\n          q,\n        })}`,\n        icon: (\n          <svg\n            width=\"910\"\n            height=\"934\"\n            viewBox=\"0 0 910 934\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <title>Scira AI</title>\n            <path\n              d=\"M647.664 197.775C569.13 189.049 525.5 145.419 516.774 66.8849C508.048 145.419 464.418 189.049 385.884 197.775C464.418 206.501 508.048 250.131 516.774 328.665C525.5 250.131 569.13 206.501 647.664 197.775Z\"\n              fill=\"currentColor\"\n              stroke=\"currentColor\"\n              strokeWidth=\"8\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M516.774 304.217C510.299 275.491 498.208 252.087 480.335 234.214C462.462 216.341 439.058 204.251 410.333 197.775C439.059 191.3 462.462 179.209 480.335 161.336C498.208 143.463 510.299 120.06 516.774 91.334C523.25 120.059 535.34 143.463 553.213 161.336C571.086 179.209 594.49 191.3 623.216 197.775C594.49 204.251 571.086 216.341 553.213 234.214C535.34 252.087 523.25 275.491 516.774 304.217Z\"\n              fill=\"currentColor\"\n              stroke=\"currentColor\"\n              strokeWidth=\"8\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M857.5 508.116C763.259 497.644 710.903 445.288 700.432 351.047C689.961 445.288 637.605 497.644 543.364 508.116C637.605 518.587 689.961 570.943 700.432 665.184C710.903 570.943 763.259 518.587 857.5 508.116Z\"\n              stroke=\"currentColor\"\n              strokeWidth=\"20\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M700.432 615.957C691.848 589.05 678.575 566.357 660.383 548.165C642.191 529.973 619.499 516.7 592.593 508.116C619.499 499.533 642.191 486.258 660.383 468.066C678.575 449.874 691.848 427.181 700.432 400.274C709.015 427.181 722.289 449.874 740.481 468.066C758.673 486.258 781.365 499.533 808.271 508.116C781.365 516.7 758.673 529.973 740.481 548.165C722.289 566.357 709.015 589.05 700.432 615.957Z\"\n              stroke=\"currentColor\"\n              strokeWidth=\"20\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M889.949 121.237C831.049 114.692 798.326 81.9698 791.782 23.0692C785.237 81.9698 752.515 114.692 693.614 121.237C752.515 127.781 785.237 160.504 791.782 219.404C798.326 160.504 831.049 127.781 889.949 121.237Z\"\n              fill=\"currentColor\"\n              stroke=\"currentColor\"\n              strokeWidth=\"8\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M791.782 196.795C786.697 176.937 777.869 160.567 765.16 147.858C752.452 135.15 736.082 126.322 716.226 121.237C736.082 116.152 752.452 107.324 765.16 94.6152C777.869 81.9065 786.697 65.5368 791.782 45.6797C796.867 65.5367 805.695 81.9066 818.403 94.6152C831.112 107.324 847.481 116.152 867.338 121.237C847.481 126.322 831.112 135.15 818.403 147.858C805.694 160.567 796.867 176.937 791.782 196.795Z\"\n              fill=\"currentColor\"\n              stroke=\"currentColor\"\n              strokeWidth=\"8\"\n              strokeLinejoin=\"round\"\n            />\n            <path\n              d=\"M760.632 764.337C720.719 814.616 669.835 855.1 611.872 882.692C553.91 910.285 490.404 924.255 426.213 923.533C362.022 922.812 298.846 907.419 241.518 878.531C184.19 849.643 134.228 808.026 95.4548 756.863C56.6815 705.7 30.1238 646.346 17.8129 583.343C5.50207 520.339 7.76433 455.354 24.4266 393.359C41.089 331.364 71.7099 274.001 113.947 225.658C156.184 177.315 208.919 139.273 268.117 114.442\"\n              stroke=\"currentColor\"\n              strokeWidth=\"30\"\n              strokeLinecap=\"round\"\n              strokeLinejoin=\"round\"\n            />\n          </svg>\n        ),\n      },\n      {\n        title: 'Open in ChatGPT',\n        href: `https://chatgpt.com/?${new URLSearchParams({\n          hints: 'search',\n          q,\n        })}`,\n        icon: (\n          <svg\n            role=\"img\"\n            viewBox=\"0 0 24 24\"\n            fill=\"currentColor\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <title>OpenAI</title>\n            <path d=\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\" />\n          </svg>\n        ),\n      },\n      {\n        title: 'Open in Claude',\n        href: `https://claude.ai/new?${new URLSearchParams({\n          q,\n        })}`,\n        icon: (\n          <svg\n            fill=\"currentColor\"\n            role=\"img\"\n            viewBox=\"0 0 24 24\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <title>Anthropic</title>\n            <path d=\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\" />\n          </svg>\n        ),\n      },\n      {\n        title: 'Open in T3 Chat',\n        href: `https://t3.chat/new?${new URLSearchParams({\n          q,\n        })}`,\n        icon: <MessageCircleIcon />,\n      },\n    ];\n  }, [githubUrl, markdownUrl]);\n\n  return (\n    <Popover>\n      <PopoverTrigger\n        className={cn(\n          buttonVariants({\n            color: 'secondary',\n            size: 'sm',\n            className: 'gap-2',\n          }),\n        )}\n      >\n        Open\n        <ChevronDown className=\"size-3.5 text-fd-muted-foreground\" />\n      </PopoverTrigger>\n      <PopoverContent className=\"flex flex-col\">\n        {items.map((item) => (\n          <a\n            key={item.href}\n            href={item.href}\n            rel=\"noreferrer noopener\"\n            target=\"_blank\"\n            className=\"text-sm p-2 rounded-lg inline-flex items-center gap-2 hover:text-fd-accent-foreground hover:bg-fd-accent [&_svg]:size-4\"\n          >\n            {item.icon}\n            {item.title}\n            <ExternalLinkIcon className=\"text-fd-muted-foreground size-3.5 ms-auto\" />\n          </a>\n        ))}\n      </PopoverContent>\n    </Popover>\n  );\n}\n"
  },
  {
    "path": "apps/docs/src/components/mdx/mermaid.tsx",
    "content": "'use client';\n\nimport { use, useEffect, useId, useState } from 'react';\nimport { useTheme } from 'next-themes';\n\nexport function Mermaid({ chart }: { chart: string }) {\n  const [mounted, setMounted] = useState(false);\n\n  useEffect(() => {\n    setMounted(true);\n  }, []);\n\n  if (!mounted) return;\n  return <MermaidContent chart={chart} />;\n}\n\nconst cache = new Map<string, Promise<unknown>>();\n\nfunction cachePromise<T>(key: string, setPromise: () => Promise<T>): Promise<T> {\n  const cached = cache.get(key);\n  if (cached) return cached as Promise<T>;\n\n  const promise = setPromise();\n  cache.set(key, promise);\n  return promise;\n}\n\nfunction MermaidContent({ chart }: { chart: string }) {\n  const id = useId();\n  const { resolvedTheme } = useTheme();\n  const { default: mermaid } = use(cachePromise('mermaid', () => import('mermaid')));\n\n  mermaid.initialize({\n    startOnLoad: false,\n    securityLevel: 'loose',\n    fontFamily: 'inherit',\n    themeCSS: 'margin: 1.5rem auto 0;',\n    theme: resolvedTheme === 'dark' ? 'dark' : 'default',\n  });\n\n  const { svg, bindFunctions } = use(\n    cachePromise(`${chart}-${resolvedTheme}`, () => {\n      return mermaid.render(id, chart.replaceAll('\\\\n', '\\n'));\n    }),\n  );\n\n  return (\n    <div\n      ref={(container) => {\n        if (container) bindFunctions?.(container);\n      }}\n      dangerouslySetInnerHTML={{ __html: svg }}\n    />\n  );\n}"
  },
  {
    "path": "apps/docs/src/lib/cn.ts",
    "content": "export { twMerge as cn } from 'tailwind-merge';\n"
  },
  {
    "path": "apps/docs/src/lib/layout.shared.tsx",
    "content": "import type { BaseLayoutProps } from \"fumadocs-ui/layouts/shared\";\nimport { BookIcon } from \"lucide-react\";\n\nexport function baseOptions(): BaseLayoutProps {\n  return {\n    nav: {\n      title: (\n        <svg\n          width=\"30\"\n          height=\"30\"\n          viewBox=\"0 0 1000 1000\"\n          fill=\"none\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n        >\n          <path\n            d=\"M133.907 282.689C166.568 275.563 195.962 272 222.09 272C248.219 272 269.893 272.594 287.114 273.781V318.318C301.366 306.442 319.181 296.347 340.558 288.033C361.936 279.72 381.235 275.563 398.456 275.563C466.152 275.563 511.283 292.487 533.848 326.335C548.694 312.083 568.29 300.207 592.637 290.705C616.983 280.61 639.549 275.563 660.333 275.563C725.653 275.563 769.596 290.409 792.162 320.1C814.727 349.197 826.01 404.126 826.01 484.886V629.185C849.169 638.093 865.499 648.188 875 659.47L866.093 728.057H661.223L652.316 659.47C660.629 648.188 676.96 638.093 701.306 629.185V452.819C701.306 420.159 696.853 398.485 687.945 387.796C679.038 377.107 661.223 371.762 634.501 371.762C608.373 371.762 583.432 381.561 559.679 401.157C562.648 421.347 564.133 449.257 564.133 484.886V629.185C587.292 638.093 603.622 648.188 613.124 659.47L604.216 728.057H399.347L390.439 659.47C398.753 648.188 415.083 638.093 439.43 629.185V452.819C439.43 420.159 434.976 398.485 426.069 387.796C417.162 377.107 399.644 371.762 373.515 371.762C347.387 371.762 322.447 381.264 298.694 400.266V629.185C321.853 638.093 338.183 648.188 347.684 659.47L338.777 728.057H133.907L125 659.47C133.314 648.188 149.644 638.093 173.99 629.185V381.561C153.207 374.435 136.876 364.34 125 351.276L133.907 282.689Z\"\n            fill=\"currentColor\"\n          />\n        </svg>\n      ),\n    },\n    links: [\n      {\n        icon: <BookIcon />,\n        text: \"v1 Documentation\",\n        url: \"https://v1.monicon.dev\",\n        external: true,\n        on: \"menu\",\n        description: \"Documentation for Monicon v1\",\n      },\n    ],\n    githubUrl: \"https://github.com/oktaysenkan/monicon\",\n  };\n}\n"
  },
  {
    "path": "apps/docs/src/lib/source.ts",
    "content": "import { docs } from 'fumadocs-mdx:collections/server';\nimport { type InferPageType, loader } from 'fumadocs-core/source';\nimport { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons';\n\n// See https://fumadocs.dev/docs/headless/source-api for more info\nexport const source = loader({\n  baseUrl: '/docs',\n  source: docs.toFumadocsSource(),\n  plugins: [lucideIconsPlugin()],\n});\n\nexport function getPageImage(page: InferPageType<typeof source>) {\n  const segments = [...page.slugs, 'image.png'];\n\n  return {\n    segments,\n    url: `/og/docs/${segments.join('/')}`,\n  };\n}\n\nexport async function getLLMText(page: InferPageType<typeof source>) {\n  const processed = await page.data.getText('processed');\n\n  return `# ${page.data.title}\n\n${processed}`;\n}\n"
  },
  {
    "path": "apps/docs/src/mdx-components.tsx",
    "content": "import defaultMdxComponents from \"fumadocs-ui/mdx\";\nimport type { MDXComponents } from \"mdx/types\";\nimport * as TabsComponents from \"fumadocs-ui/components/tabs\";\nimport * as CodeBlockComponents from \"fumadocs-ui/components/codeblock\";\nimport * as Twoslash from \"fumadocs-twoslash/ui\";\nimport {\n  createGenerator,\n  createFileSystemGeneratorCache,\n} from \"fumadocs-typescript\";\nimport { AutoTypeTable } from \"fumadocs-typescript/ui\";\nimport { Mermaid } from \"@/components/mdx/mermaid\";\n\nconst generator = createGenerator({\n  // set a cache, necessary for serverless platform like Vercel\n  cache: createFileSystemGeneratorCache(\".next/fumadocs-typescript\"),\n});\n\nexport function getMDXComponents(components?: MDXComponents): MDXComponents {\n  return {\n    ...defaultMdxComponents,\n    ...TabsComponents,\n    ...CodeBlockComponents,\n    pre: ({ ref: _ref, ...props }) => (\n      <CodeBlockComponents.CodeBlock {...props}>\n        <CodeBlockComponents.Pre>{props.children}</CodeBlockComponents.Pre>\n      </CodeBlockComponents.CodeBlock>\n    ),\n    AutoTypeTable: (props) => (\n      <AutoTypeTable {...props} generator={generator} />\n    ),\n    Mermaid,\n    ...Twoslash,\n    ...components,\n  };\n}\n"
  },
  {
    "path": "apps/docs/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"target\": \"ESNext\",\n    \"lib\": [\n      \"dom\",\n      \"dom.iterable\",\n      \"esnext\"\n    ],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"noEmit\": true,\n    \"esModuleInterop\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"bundler\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"jsx\": \"react-jsx\",\n    \"incremental\": true,\n    \"paths\": {\n      \"@/*\": [\n        \"./src/*\"\n      ],\n      \"fumadocs-mdx:collections/*\": [\n        \".source/*\"\n      ]\n    },\n    \"plugins\": [\n      {\n        \"name\": \"next\"\n      }\n    ]\n  },\n  \"include\": [\n    \"next-env.d.ts\",\n    \"**/*.ts\",\n    \"**/*.tsx\",\n    \".next/types/**/*.ts\",\n    \".next/dev/types/**/*.ts\"\n  ],\n  \"exclude\": [\n    \"node_modules\"\n  ]\n}"
  },
  {
    "path": "apps/legacy-docs/.gitignore",
    "content": ".next\nnode_modules\n"
  },
  {
    "path": "apps/legacy-docs/CHANGELOG.md",
    "content": "# @monicon/legacy-docs\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n## 2.0.0\n\n### Patch Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n"
  },
  {
    "path": "apps/legacy-docs/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 Shu Ding\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "apps/legacy-docs/README.md",
    "content": "# Nextra Docs Template \n\nThis is a template for creating documentation with [Nextra](https://nextra.site).\n\n[**Live Demo →**](https://nextra-docs-template.vercel.app)\n\n[![](.github/screenshot.png)](https://nextra-docs-template.vercel.app)\n\n## Quick Start\n\nClick the button to clone this repository and deploy it on Vercel:\n\n[![](https://vercel.com/button)](https://vercel.com/new/clone?s=https%3A%2F%2Fgithub.com%2Fshuding%2Fnextra-docs-template&showOptionalTeamCreation=false)\n\n## Local Development\n\nFirst, run `pnpm i` to install the dependencies.\n\nThen, run `pnpm dev` to start the development server and visit localhost:3000.\n\n## License\n\nThis project is licensed under the MIT License.\n"
  },
  {
    "path": "apps/legacy-docs/next-env.d.ts",
    "content": "/// <reference types=\"next\" />\n/// <reference types=\"next/image-types/global\" />\n\n// NOTE: This file should not be edited\n// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.\n"
  },
  {
    "path": "apps/legacy-docs/next-sitemap.config.js",
    "content": "/** @type {import('next-sitemap').IConfig} */\nmodule.exports = {\n  siteUrl: process.env.SITE_URL || \"https://monicon-docs.vercel.app\",\n  generateRobotsTxt: true,\n};\n"
  },
  {
    "path": "apps/legacy-docs/next.config.mjs",
    "content": "import nextra from \"nextra\";\n\nconst withNextra = nextra({\n  theme: \"nextra-theme-docs\",\n  themeConfig: \"./theme.config.tsx\",\n});\n\nexport default withNextra();\n"
  },
  {
    "path": "apps/legacy-docs/package.json",
    "content": "{\n  \"name\": \"@monicon/legacy-docs\",\n  \"version\": \"2.0.8\",\n  \"description\": \"Monicon V1 Documentation\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next build\",\n    \"start\": \"next start\",\n    \"postbuild\": \"next-sitemap\"\n  },\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@vercel/og\": \"^0.6.3\",\n    \"next\": \"^14.2.14\",\n    \"next-sitemap\": \"^4.2.3\",\n    \"nextra\": \"^3.0.11\",\n    \"nextra-theme-docs\": \"^3.0.11\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"18.11.10\",\n    \"typescript\": \"^4.9.3\"\n  },\n  \"dependenciesMeta\": {\n    \"nextra\": {\n      \"injected\": true\n    },\n    \"nextra-theme-docs\": {\n      \"injected\": true\n    }\n  }\n}\n"
  },
  {
    "path": "apps/legacy-docs/pages/_app.tsx",
    "content": "function App({ Component, pageProps }) {\n  return <Component {...pageProps} />;\n}\n\nexport default App;\n"
  },
  {
    "path": "apps/legacy-docs/pages/_meta.tsx",
    "content": "export default {\n  index: \"Introduction\",\n  installation: \"Installation\",\n  customization: \"Customization\",\n  troubleshooting: \"Troubleshooting\",\n  contact: {\n    title: \"Contact ↗\",\n    type: \"page\",\n    href: \"https://twitter.com/senkanoktay\",\n    newWindow: true,\n  },\n};\n"
  },
  {
    "path": "apps/legacy-docs/pages/api/og.tsx",
    "content": "import { NextApiRequest, NextApiResponse } from \"next\";\nimport { ImageResponse } from \"@vercel/og\";\n\nexport const config = {\n  runtime: \"edge\",\n};\n\nconst interMedium = fetch(\n  new URL(\"../../public/Inter-Medium.ttf\", import.meta.url)\n).then((res) => res.arrayBuffer());\n\nconst dotPattern = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n  <circle cx=\"1\" cy=\"1\" r=\"1\" fill=\"rgb(163, 163, 163, 0.5)\" />\n</svg>\n`;\n\nexport default async function handler(\n  req: NextApiRequest,\n  res: NextApiResponse\n) {\n  const [interMediumFont] = await Promise.all([interMedium]);\n\n  const { searchParams } = new URL(req.url || \"\", `http://${req.headers.host}`);\n\n  const text = searchParams.get(\"text\") || \"Monicon\";\n\n  return new ImageResponse(\n    (\n      <div\n        style={{\n          color: \"white\",\n          backgroundImage: `url('data:image/svg+xml;utf8,${encodeURIComponent(dotPattern)}'), linear-gradient(-165deg, #121212 40%, #000 100%)`,\n          backgroundRepeat: \"repeat\",\n          width: \"100%\",\n          height: \"100%\",\n          display: \"flex\",\n          flexDirection: \"column\",\n          padding: \"100px 200px 100px 100px\",\n          fontFamily: \"Inter\",\n          fontWeight: 500,\n          fontSize: 80,\n        }}\n      >\n        {text}\n      </div>\n    ),\n    {\n      width: 1200,\n      height: 630,\n      fonts: [\n        {\n          name: \"Inter\",\n          data: interMediumFont,\n          style: \"normal\",\n          weight: 500,\n        },\n      ],\n    }\n  );\n}\n"
  },
  {
    "path": "apps/legacy-docs/pages/customization/_meta.tsx",
    "content": "export default {\n  \"local-collections\": \"Local Collections\",\n  \"json-collections\": \"JSON Collections\",\n  \"remote-collections\": \"Remote Collections\",\n  \"custom-loader\": \"Custom Loader\",\n};\n"
  },
  {
    "path": "apps/legacy-docs/pages/customization/custom-loader.mdx",
    "content": "# Custom Loader\n\nCustom loaders in Monicon allow you to define your own logic for providing SVG icons. This is especially useful when you want to generate icons dynamically or load them from a non-standard source. Below is an example of how to write and use a custom loader.\n\n```ts\nimport { Loader } from \"@monicon/loader\";\n\nexport const fooLoader: Loader<void> = () => async () => {\n  return {\n    bar: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-flask-conical\"><path d=\"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2\"/><path d=\"M8.5 2h7\"/><path d=\"M7 16h10\"/></svg>',\n  };\n};\n```\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      customCollections: {\n        foo: fooLoader(),\n      },\n    }),\n  ],\n});\n```\n\n### Usage\n\nOnce your custom loader is set up, you can use the icons it provides in your React components:\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"foo:bar\" size={24} />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/customization/json-collections.mdx",
    "content": "# JSON Collections\n\nJSON Collections in Monicon allow you to define custom icons from JSON files or URLs. These JSON files typically map icon names to their corresponding SVG data, making it easy to include and manage custom icon sets in your project. In the example above, the loadJSONCollection function fetches icons from a hosted JSON file and integrates them into your application.\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\nimport { loadJSONCollection } from \"@monicon/loader\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      customCollections: {\n        json: loadJSONCollection(\n          \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n        ),\n      },\n    }),\n  ],\n});\n```\n\n### Example JSON File\n\nHere is an example JSON file you can use for a Monicon JSON Collection. This file maps an icon name (network) to its corresponding SVG markup:\n\n```json filename=\"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n{\n  \"network\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"16\\\" y=\\\"16\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><rect x=\\\"2\\\" y=\\\"16\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><rect x=\\\"9\\\" y=\\\"2\\\" width=\\\"6\\\" height=\\\"6\\\" rx=\\\"1\\\"/><path d=\\\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\\\"/><path d=\\\"M12 12V8\\\"/></svg>\"\n}\n```\n\n### Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"json:network\" size={24} />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/customization/local-collections.mdx",
    "content": "# Local Collections\n\nLocal Collections in Monicon allow you to use icons stored locally on your file system. These collections can be loaded using the `loadLocalCollection` function, which points to the directory containing your SVG files. This setup is ideal for projects where icons are managed locally, providing a quick and flexible way to integrate custom icon sets.\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\nimport { loadLocalCollection } from \"@monicon/loader\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      customCollections: {\n        local: loadLocalCollection(\"assets/icons\"),\n      },\n    }),\n  ],\n});\n```\n\n### Example Directory Structure\n\nFor the above configuration, your assets/icons directory might look like this:\n\n```\nassets/\n└── icons/\n    ├── folder.svg\n    ├── user.svg\n    └── network.svg\n```\n\nEach SVG file in the directory is automatically assigned a name based on its filename (e.g., `folder` for `folder.svg`).\n\n### Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use an icon from your local collection in a React component:\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"local:folder\" size={24} />\n      <Monicon name=\"local:user\" size={24} />\n      <Monicon name=\"local:network\" size={24} />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/customization/remote-collections.mdx",
    "content": "# Remote Collections\n\nRemote Collections in Monicon allow you to fetch and use icons directly from remote URLs. These collections are configured using the `loadRemoteCollection` function, which maps icon names to their respective URLs. This setup is perfect for integrating third-party or dynamically fetched icons into your project.\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\nimport { loadRemoteCollection } from \"@monicon/loader\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      customCollections: {\n        remote: loadRemoteCollection({\n          download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n          attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n        }),\n      },\n    }),\n  ],\n});\n```\n\n### Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use icons from your remote collection in a React component:\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"remote:download\" size={24} />\n      <Monicon name=\"remote:attachment\" size={24} />\n    </main>\n  );\n}\n\nexport default App;\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/index.mdx",
    "content": "# Monicon: Universal Icon Library\n\nMonicon is an easy-to-use icon library that makes adding icons to your projects simple. It works with popular frameworks like React, React Native, Next.js, Vue, Nuxt, Svelte and more. It's provides 200,000+ icons from popular sets like Material Design, Feather, and Font Awesome.\n\n## Why Use Monicon?\n\n- **Huge Icon Library**: Get access to over 200,000 icons from famous sets like Material Design, Feather, and Font Awesome.\n- **Custom Icons**: You can create custom icons and use them in your projects. Monicon makes it easy to add your own icons.\n- **Works with Modern Tools**: Monicon supports tools like Vite, Webpack, Rollup, and others, so it's ready for any project.\n- **Fast and Efficient**: Monicon loads icons quickly to keep your project running smoothly. No flickering or lagging.\n- **Easy to Use**: Works with React, Vue, Svelte, Next.js, and other popular frameworks, making icon integration simple. You can discover icons on the [Icones](https://icones.js.org/) website.\n- **Customizable**: You can easily change the size, color, and other features of the icons to fit your design.\n- **Collaboration**: Monicon helps you collaborate with designers to speed up the design process and get better results. [Iconify Figma Plugin](https://www.figma.com/community/plugin/735098390272716381/iconify) allows you to use icons directly in Figma.\n- **Free and Open Source**: Monicon is free to use and open source, so you can use it in any project without restrictions.\n\nNo matter which framework you use, Monicon makes adding and managing icons easy. Check out the documentation to see how Monicon can help improve your next project with great-looking icons!\n\n## Comparison: Monicon & Iconify & unplugin-icons\n\nMonicon was created to address a critical gap in the React ecosystem: The need for a truly universal icon package that works seamlessly across both web and native platforms. While tools like unplugin-icons are great for certain use cases, they fall short in key areas that Monicon was specifically designed to solve.\n\nCheck out the issues for more details: [Universal Support #15](https://github.com/oktaysenkan/monicon/issues/15#issuecomment-2054178367)\n\n| Feature                    | Monicon                                                                                       | @iconify/react                                                    | unplugin-icons                                       |\n| -------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- |\n| **Icon Rendering**         | Icons are bundled during build time, ensuring instant rendering with no blinking.             | Icons load over HTTP, which can cause blinking during rendering.  | Icons are bundled at build time, no blinking issues. |\n| **Offline Support**        | Fully offline-compatible, works seamlessly with PWAs, Electron apps, and native environments. | Does not work offline due to reliance on HTTP for fetching icons. | Works offline                                        |\n| **React Native Support**   | Fully supports React Native, making it ideal for mobile and native projects.                  | No support for React Native.                                      | No support for React Native.                         |\n| **Modern Bundler Support** | Compatible with Metro, Vite, Webpack, Rollup, Rspack, and others.                             | Primarily web-focused and lacks versatility across bundlers.      | No support for Metro.                                |\n| **Custom Icon Support**    | Easily create and use custom icons in your projects.                                          | Easily create and use custom icons in your projects.              | Easily create and use custom icons in your projects. |\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/_meta.tsx",
    "content": "export default {\n  react: \"React\",\n  nextjs: \"Next.js\",\n  remix: \"Remix\",\n  qwik: \"Qwik\",\n  \"react-native\": \"React Native\",\n  vue: \"Vue\",\n  nuxt: \"Nuxt\",\n  svelte: \"Svelte\",\n  \"react-webpack\": \"React (Webpack)\",\n  \"react-rollup\": \"React (Rollup)\",\n  \"react-rspack\": \"React (Rspack)\",\n  \"react-esbuild\": \"React (esbuild)\",\n};\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/nextjs.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Next.js\n\nSetting up Monicon with Next.js is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your Next.js project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/webpack@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Next\n\nIf you want to use Monicon with Next.js, you’ll need to configure Next.js.\n\n```js filename=\"next.config.js\"\nconst { MoniconPlugin } = require(\"@monicon/webpack\");\n\nconst nextConfig = {\n  webpack: (config) => {\n    config.plugins.push(\n      new MoniconPlugin({\n        icons: [\n          \"mdi:home\",\n          \"feather:activity\",\n          \"logos:active-campaign\",\n          \"lucide:badge-check\",\n        ],\n        // Load all icons from the listed collections\n        collections: [\"radix-icons\"],\n      })\n    );\n\n    return config;\n  },\n};\n\nmodule.exports = nextConfig;\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/app/page.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={32} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with Next.js! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/nuxt.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Nuxt\n\nSetting up Monicon with Nuxt is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your Nuxt project.\n\n<Steps>\n## Install\n\nFirst, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command.\n\n```sh npm2yarn\nnpm i @monicon/vue@1 @monicon/nuxt@1\n```\n\nNext, install the development dependency @iconify/json for icon sets. This package provides a comprehensive collection of icons that you can easily integrate into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Nuxt\n\nNow that the dependencies are installed, you’ll need to configure Nuxt to use Monicon.\n\n```ts filename=\"nuxt.config.ts\"\nexport default defineNuxtConfig({\n  devtools: { enabled: true },\n  modules: [\"@monicon/nuxt\"],\n  monicon: {\n    icons: [\n      \"mdi:home\",\n      \"feather:activity\",\n      \"logos:active-campaign\",\n      \"lucide:badge-check\",\n    ],\n    // Load all icons from the listed collections\n    collections: [\"radix-icons\"],\n  },\n});\n```\n\n<Callout>\n  The `icons` array in the `monicon` plugin configuration specifies the icon\n  sets you want to use in your project. You can add more icon sets as needed.\n  For a complete list of available icon sets, refer to the\n  [Icones](https://icones.js.org/) website.\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your Vue components. Here’s an example of how to use Monicon in a Vue component.\n\n```vue filename=\"src/app.vue\"\n<template>\n  <Monicon name=\"mdi:home\" />\n  <Monicon name=\"logos:active-campaign\" :size=\"30\" />\n  <Monicon name=\"feather:activity\" color=\"red\" />\n  <Monicon name=\"lucide:badge-check\" :size=\"24\" :strokeWidth=\"4\" />\n</template>\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/qwik.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Qwik\n\nSetting up Monicon with Qwik is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your Qwik project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/qwik@1 @monicon/vite@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Vite\n\nNow that the dependencies are installed, you’ll need to configure Vite to use Monicon.\n\n```js filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your Qwik components. Here’s an example of how to use Monicon in a Qwik component.\n\n```tsx filename=\"src/routes/index.tsx\"\nimport { component$ } from \"@builder.io/qwik\";\nimport { Monicon } from \"@monicon/qwik\";\n\nexport default component$(() => {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={32} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with Qwik! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react-esbuild.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React (esbuild)\n\nSetting up Monicon with React and esbuild is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project using esbuild as the bundler.\n\n<Steps>\n\n## Install\n\nTo get started, you'll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/esbuild@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure esbuild\n\nNow that the dependencies are installed, you'll need to configure esbuild to use Monicon. Create a build script that uses the Monicon esbuild plugin:\n\n```ts filename=\"build.ts\"\nimport * as esbuild from \"esbuild\";\nimport monicon from \"@monicon/esbuild\";\n\nawait esbuild.build({\n  plugins: [\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `moniconPlugin` configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here's an example of how to use Monicon in a React component:\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository:\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou've successfully set up Monicon with React and esbuild! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react-native.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React Native\n\nSetting up Monicon with React Native is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React Native project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/native@1 @monicon/metro@1 react-native-svg\n\n# if you want react-native-web support\nnpm i @monicon/webpack@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Metro\n\nNow that the dependencies are installed, you’ll need to configure Metro to use Monicon.\n\n```js filename=\"metro.config.js\"\nconst { getDefaultConfig } = require(\"expo/metro-config\");\nconst { withMonicon } = require(\"@monicon/metro\");\n\nconst config = getDefaultConfig(__dirname);\n\nconst configWithMonicon = withMonicon(config, {\n  icons: [\n    \"mdi:home\",\n    \"feather:activity\",\n    \"logos:active-campaign\",\n    \"lucide:badge-check\",\n  ],\n  // Load all icons from the listed collections\n  collections: [\"radix-icons\"],\n});\n\nmodule.exports = configWithMonicon;\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Configure Webpack (Optional)\n\n<Callout type=\"info\">If you are using Expo Router, skip this step.</Callout>\n\nIf you want to use Monicon with React Native Web, you’ll need to configure Webpack.\n\n```js filename=\"webpack.config.js\"\nconst createExpoWebpackConfigAsync = require(\"@expo/webpack-config\");\nconst { MoniconPlugin } = require(\"@monicon/webpack\");\n\nmodule.exports = async function (env, argv) {\n  const config = await createExpoWebpackConfigAsync(env, argv);\n\n  config.plugins.push(\n    new MoniconPlugin({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    })\n  );\n\n  return config;\n};\n```\n\nFor **bare React Native** projects, you can use the `@monicon/webpack` plugin to configure Webpack.\n\n```js filename=\"webpack.config.js\"\nmodule.exports = {\n  plugins: [\n    new MoniconPlugin({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n};\n```\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { View } from \"react-native\";\nimport { Monicon } from \"@monicon/native\";\n\nfunction App() {\n  return (\n    <View>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </View>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with React Native! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react-rollup.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React (Rollup)\n\nSetting up Monicon with React and Rollup is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/rollup@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Rollup\n\nNow that the dependencies are installed, you’ll need to configure Rollup to use Monicon.\n\n```ts filename=\"rollup.config.mjs\"\nimport monicon from \"@monicon/rollup\";\n\nexport default {\n  plugins: [\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n};\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with React and Rollup! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react-rspack.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React (Rspack)\n\nSetting up Monicon with React and Rspack is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/rspack@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Rspack\n\nNow that the dependencies are installed, you’ll need to configure Rollup to use Monicon.\n\n```ts filename=\"rspack.config.mjs\"\nimport { defineConfig } from \"@rspack/cli\";\nimport MoniconPlugin from \"@monicon/rspack\";\n\nexport default defineConfig({\n  plugins: [\n    new MoniconPlugin({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with React and Rspack! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react-webpack.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React (Webpack)\n\nSetting up Monicon with React and Webpack is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/webpack@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Webpack\n\nNow that the dependencies are installed, you’ll need to configure Webpack to use Monicon.\n\n```js filename=\"webpack.config.js\"\nmodule.exports = {\n  plugins: [\n    new MoniconPlugin({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n};\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with React and Webpack! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/react.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with React (Vite)\n\nSetting up Monicon with React and Vite is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/vite@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Vite\n\nNow that the dependencies are installed, you’ll need to configure Vite to use Monicon.\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"src/App.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with React and Vite! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/remix.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Remix\n\nSetting up Monicon with Remix and Vite is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your Remix project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/react@1 @monicon/vite@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Vite\n\nNow that the dependencies are installed, you’ll need to configure Vite to use Monicon.\n\n```ts filename=\"vite.config.ts\"\nimport { vitePlugin as remix } from \"@remix-run/dev\";\nimport { defineConfig } from \"vite\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    remix(),\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your React components. Here’s an example of how to use Monicon in a React component.\n\n```tsx filename=\"app/routes/_index.tsx\"\nimport { Monicon } from \"@monicon/react\";\n\nfunction App() {\n  return (\n    <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n    </main>\n  );\n}\n\nexport default App;\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with Remix! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/svelte.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Svelte\n\nSetting up Monicon with Svelte is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your React project.\n\n<Steps>\n\n## Install\n\nTo get started, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command to install the dependencies.\n\n```sh npm2yarn\nnpm i @monicon/svelte@1 @monicon/vite@1\n```\n\nNow you should install the development dependency `@iconify/json` for the icon sets. This package provides a comprehensive collection of icons that can be easily integrated into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Vite\n\nNow that the dependencies are installed, you’ll need to configure Vite to use Monicon.\n\n```tsx filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport { svelte } from \"@sveltejs/vite-plugin-svelte\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    svelte(),\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\nThe `icons` array in the `monicon` plugin configuration specifies the icon sets you want to use in your project. You can add more icon sets as needed.\n\nFor a complete list of available icon sets, refer to the [Icones](https://icones.js.org/) website.\n\n</Callout>\n\n## Usage\n\nYou can now use Monicon in your Svelte components. Here’s an example of how to use Monicon in a Svelte component.\n\n```svelte filename=\"src/App.svelte\"\n  <script>\n    import { Monicon } from \"@monicon/svelte\";\n  </script>\n\n  <main>\n      <Monicon name=\"mdi:home\" />\n      <Monicon name=\"logos:active-campaign\" size={30} />\n      <Monicon name=\"feather:activity\" color=\"red\" />\n      <Monicon name=\"lucide:badge-check\" size={24} strokeWidth={4} />\n  </main>\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon with Svelte! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/installation/vue.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Install Monicon with Vue\n\nSetting up Monicon with Vue is a straightforward process. This guide will walk you through the installation and configuration steps to get started with Monicon in your Vue project.\n\n<Steps>\n## Install\n\nFirst, you’ll need to install the necessary dependencies for Monicon. In your project directory, run the following command.\n\n```sh npm2yarn\nnpm i @monicon/vue@1 @monicon/vite@1\n```\n\nNext, install the development dependency @iconify/json for icon sets. This package provides a comprehensive collection of icons that you can easily integrate into your project.\n\n```sh npm2yarn\nnpm i -D @iconify/json\n\n# or specific icon sets\nnpm i -D @iconify-json/mdi @iconify-json/feather\n```\n\n## Configure Vite\n\nNow that the dependencies are installed, you’ll need to configure Vite to use Monicon.\n\n```ts filename=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport vue from \"@vitejs/plugin-vue\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n    monicon({\n      icons: [\n        \"mdi:home\",\n        \"feather:activity\",\n        \"logos:active-campaign\",\n        \"lucide:badge-check\",\n      ],\n      // Load all icons from the listed collections\n      collections: [\"radix-icons\"],\n    }),\n  ],\n});\n```\n\n<Callout>\n  The `icons` array in the `monicon` plugin configuration specifies the icon\n  sets you want to use in your project. You can add more icon sets as needed.\n  For a complete list of available icon sets, refer to the\n  [Icones](https://icones.js.org/) website.\n</Callout>\n\n## Global Import (Optional)\n\nIf you want to use Monicon globally in your Vue project, add the following code to your main.ts file.\n\n```ts filename=\"main.ts\"\nimport Monicon from \"@monicon/vue\";\n\nconst app = createApp(App);\n\napp.use(Monicon);\n```\n\n## Usage\n\nYou can now use Monicon in your Vue components. Here’s an example of how to use Monicon in a Vue component.\n\n```vue filename=\"src/App.vue\"\n<script setup lang=\"ts\">\n// If you've added app.use(Monicon) in main.ts, you don't need to import Monicon here, also you can use the lower cased `monicon` tag\nimport { Monicon } from \"@monicon/vue\";\n</script>\n\n<template>\n  <Monicon name=\"mdi:home\" />\n  <Monicon name=\"logos:active-campaign\" :size=\"30\" />\n  <Monicon name=\"feather:activity\" color=\"red\" />\n  <Monicon name=\"lucide:badge-check\" :size=\"24\" :strokeWidth=\"4\" />\n</template>\n```\n\n## Configure .gitignore\n\nAdd the following to your `.gitignore` file to prevent icons from being committed to your repository.\n\n```\n# monicon\n.monicon\n```\n\n## Next Steps\n\nYou’ve successfully set up Monicon! You can now explore more icon sets and customize your usage further.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/troubleshooting/_meta.tsx",
    "content": "export default {\n  typescript: \"TypeScript\",\n  monorepo: \"Monorepo\",\n  \"module-resolution\": \"Module Resolution\",\n  \"bundle-size\": \"Bundle Size\",\n};\n"
  },
  {
    "path": "apps/legacy-docs/pages/troubleshooting/bundle-size.mdx",
    "content": "import { Steps, Callout } from \"nextra/components\";\n\n# Bundle Size\n\nTo keep your application efficient, it’s best to only include the icons you actually use. This guide shows how to reduce your bundle size by selecting specific icons with Monicon.\n\n<Steps>\n## Unoptimized Configuration\n\nIn the example below, the entire `lucide` icon collection is included, which increases the bundle size significantly.\n\n```ts filename=\"vite.config.ts\" {9,10}\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      icons: [],\n      collections: [\"lucide\"],\n    }),\n  ],\n});\n```\n\n```sh\nvite v5.4.8 building for production...\ndist/assets/vite-react-Ceh97ktz.js  528.50 kB │ gzip: 68.80 kB\n```\n\n## Optimized Configuration\n\nTo reduce the bundle size, specify only the icons you need by adding them to the `icons` option and leaving `collections` empty. This setup includes just `\"lucide:badge-check\"` and reduces the bundle size significantly.\n\n```tsx filename=\"vite.config.ts\" {9,10}\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      icons: [\"lucide:badge-check\"],\n      collections: [],\n    }),\n  ],\n});\n```\n\n```sh\nvite v5.4.8 building for production...\ndist/assets/vite-react-CloGAhCu.js    0.44 kB │ gzip:  0.27 kB\n```\n\n<Callout type=\"info\">\n  Bundle size reduced from **528.50 kB** to **0.44 kB** for the whole app.\n</Callout>\n\n## Conclusion\n\nTo keep your bundle size small and your application efficient:\n\n1. Specify only the icons you need with the `icons` option.\n2. Leave `collections` empty if the entire set is unnecessary.\n\nThis setup minimizes the bundle size and optimizes performance in production.\n\n</Steps>\n"
  },
  {
    "path": "apps/legacy-docs/pages/troubleshooting/module-resolution.mdx",
    "content": "# Module Resolution\n\nHere, module resolution ensures that the correct version and format of the module are loaded, making sure everything works together smoothly. You can specify different formats like \"esm\" for modern JavaScript or \"cjs\" for older CommonJS modules.\n\n```ts filename=\"apps/web/vite.config.ts\" copy {10}\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    // The format option makes sure outfile is in ESM format\n    // You can also use \"cjs\" for CommonJS format but Vite does not support it\n    monicon({ format: \"esm\" }),\n  ],\n});\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/troubleshooting/monorepo.mdx",
    "content": "# Monorepo Configuration\n\nThis monorepo configuration each app has a unique output file, so you can use Monicon in multiple apps without conflicts.\n\n```ts filename=\"apps/web/vite.config.ts\" copy {9}\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    // The outputFileName option makes sure each app has a unique file name\n    monicon({ outputFileName: \"web\" }),\n  ],\n});\n```\n"
  },
  {
    "path": "apps/legacy-docs/pages/troubleshooting/typescript.mdx",
    "content": "# TypeScript\n\nMonicon uses TypeScript to generate types for the icons. To enable TypeScript type definitions for your icons, add the following configuration to your `tsconfig.json` file:\n\n```json filename=\"tsconfig.json\" copy {2}\n{\n  \"include\": [\".monicon/*.d.ts\"]\n}\n```\n\nYou can also use the `typesFileName` option to specify the name of the file to output the types to. If you want to disable the types file, you can set the `generateTypes` option to `false`.\n\n```ts filename=\"apps/vite-react/vite.config.ts\" copy {9,10}\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    monicon({\n      typesFileName: \"types\",\n      generateTypes: true,\n    }),\n  ],\n});\n```\n"
  },
  {
    "path": "apps/legacy-docs/public/browserconfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><square150x150logo src=\"/ms-icon-150x150.png\"/><square310x310logo src=\"/ms-icon-310x310.png\"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>"
  },
  {
    "path": "apps/legacy-docs/public/manifest.json",
    "content": "{\n  \"name\": \"Monicon\",\n  \"icons\": [\n    {\n      \"src\": \"/android-icon-36x36.png\",\n      \"sizes\": \"36x36\",\n      \"type\": \"image/png\",\n      \"density\": \"0.75\"\n    },\n    {\n      \"src\": \"/android-icon-48x48.png\",\n      \"sizes\": \"48x48\",\n      \"type\": \"image/png\",\n      \"density\": \"1.0\"\n    },\n    {\n      \"src\": \"/android-icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\",\n      \"density\": \"1.5\"\n    },\n    {\n      \"src\": \"/android-icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\",\n      \"density\": \"2.0\"\n    },\n    {\n      \"src\": \"/android-icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\",\n      \"density\": \"3.0\"\n    },\n    {\n      \"src\": \"/android-icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\",\n      \"density\": \"4.0\"\n    }\n  ]\n}\n"
  },
  {
    "path": "apps/legacy-docs/public/robots.txt",
    "content": "# *\nUser-agent: *\nAllow: /\n\n# Host\nHost: https://monicon-docs.vercel.app\n\n# Sitemaps\nSitemap: https://monicon-docs.vercel.app/sitemap.xml\n"
  },
  {
    "path": "apps/legacy-docs/public/sitemap-0.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:news=\"http://www.google.com/schemas/sitemap-news/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns:mobile=\"http://www.google.com/schemas/sitemap-mobile/1.0\" xmlns:image=\"http://www.google.com/schemas/sitemap-image/1.1\" xmlns:video=\"http://www.google.com/schemas/sitemap-video/1.1\">\n<url><loc>https://monicon-docs.vercel.app</loc><lastmod>2026-01-24T12:51:07.293Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/customization/custom-loader</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/customization/json-collections</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/customization/local-collections</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/customization/remote-collections</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/nextjs</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/nuxt</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/qwik</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react-esbuild</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react-native</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react-rollup</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react-rspack</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/react-webpack</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/remix</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/svelte</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/installation/vue</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/troubleshooting/bundle-size</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/troubleshooting/module-resolution</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/troubleshooting/monorepo</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n<url><loc>https://monicon-docs.vercel.app/troubleshooting/typescript</loc><lastmod>2026-01-24T12:51:07.295Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>\n</urlset>"
  },
  {
    "path": "apps/legacy-docs/public/sitemap.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n<sitemap><loc>https://monicon-docs.vercel.app/sitemap-0.xml</loc></sitemap>\n</sitemapindex>"
  },
  {
    "path": "apps/legacy-docs/theme.config.tsx",
    "content": "import React from \"react\";\nimport { DocsThemeConfig, useConfig, useTheme } from \"nextra-theme-docs\";\nimport { useRouter } from \"next/router\";\n\nconst config: DocsThemeConfig = {\n  banner: {\n    key: \"v2-release\",\n    content: (\n      <a href=\"https://monicon.dev\" target=\"_blank\" rel=\"noopener noreferrer\">\n        🎉 Monicon v2 is now available! Check out the new documentation →\n      </a>\n    ),\n  },\n  head() {\n    const config = useConfig();\n    const { route } = useRouter();\n\n    const description =\n      config.frontMatter.description ??\n      \"Monicon is a icon library for Modern Frameworks\";\n\n    const title = config.title + (route === \"/\" ? \"\" : \" - Monicon\");\n\n    return (\n      <>\n        <title>{title}</title>\n        <meta name=\"description\" content={description} />\n        <meta property=\"og:type\" content=\"website\" />\n        <meta property=\"og:url\" content=\"https://monicon-docs.vercel.app\" />\n        <meta property=\"og:title\" content={title} />\n        <meta property=\"og:description\" content={description} />\n        <meta\n          property=\"og:image\"\n          content=\"https://monicon-docs.vercel.app/og-image.png\"\n        />\n        <meta property=\"og:locale\" content=\"en\" />\n        <meta\n          property=\"og:logo\"\n          content=\"https://monicon-docs.vercel.app/apple-icon-180x180.png\"\n        />\n        <meta name=\"twitter:creator\" content=\"@senkanoktay\" />\n        <meta name=\"twitter:card\" content=\"summary_large_image\" />\n        <meta name=\"twitter:title\" content={title} />\n        <meta name=\"twitter:description\" content={description} />\n        <meta\n          name=\"twitter:image\"\n          content=\"https://monicon-docs.vercel.app/og-image-twitter.png\"\n        />\n        <meta property=\"twitter:domain\" content=\"monicon-docs.vercel.app\" />\n        <meta\n          property=\"twitter:url\"\n          content=\"https://monicon-docs.vercel.app\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"57x57\"\n          href=\"/apple-icon-57x57.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"60x60\"\n          href=\"/apple-icon-60x60.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"72x72\"\n          href=\"/apple-icon-72x72.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"76x76\"\n          href=\"/apple-icon-76x76.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"114x114\"\n          href=\"/apple-icon-114x114.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"120x120\"\n          href=\"/apple-icon-120x120.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"144x144\"\n          href=\"/apple-icon-144x144.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"152x152\"\n          href=\"/apple-icon-152x152.png\"\n        />\n        <link\n          rel=\"apple-touch-icon\"\n          sizes=\"180x180\"\n          href=\"/apple-icon-180x180.png\"\n        />\n        <link\n          rel=\"icon\"\n          type=\"image/png\"\n          sizes=\"192x192\"\n          href=\"/android-icon-192x192.png\"\n        />\n        <link\n          rel=\"icon\"\n          type=\"image/png\"\n          sizes=\"32x32\"\n          href=\"/favicon-32x32.png\"\n        />\n        <link\n          rel=\"icon\"\n          type=\"image/png\"\n          sizes=\"96x96\"\n          href=\"/favicon-96x96.png\"\n        />\n        <link\n          rel=\"icon\"\n          type=\"image/png\"\n          sizes=\"16x16\"\n          href=\"/favicon-16x16.png\"\n        />\n        <link rel=\"manifest\" href=\"/manifest.json\" />\n        <meta name=\"msapplication-TileColor\" content=\"#000000\" />\n        <meta name=\"msapplication-TileImage\" content=\"/ms-icon-144x144.png\" />\n        <meta name=\"theme-color\" content=\"#000000\" />\n        <meta\n          name=\"google-site-verification\"\n          content=\"NB5Gz6YQzn4N-x--CS5dS4h0MsbnRgSfrekYnuv9gQs\"\n        />\n        <script\n          async\n          src=\"https://cdn.seline.so/seline.js\"\n          data-token=\"1c09c6616a10952\"\n        />\n      </>\n    );\n  },\n  logo: () => {\n    const { resolvedTheme } = useTheme();\n\n    return (\n      <svg\n        width=\"48\"\n        height=\"48\"\n        viewBox=\"0 0 500 500\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <path\n          d=\"M44 128C62.3333 124 78.8333 122 93.5 122C108.167 122 120.333 122.333 130 123V148C138 141.333 148 135.667 160 131C172 126.333 182.833 124 192.5 124C230.5 124 255.833 133.5 268.5 152.5C276.833 144.5 287.833 137.833 301.5 132.5C315.167 126.833 327.833 124 339.5 124C376.167 124 400.833 132.333 413.5 149C426.167 165.333 432.5 196.167 432.5 241.5V322.5C445.5 327.5 454.667 333.167 460 339.5L455 378H340L335 339.5C339.667 333.167 348.833 327.5 362.5 322.5V223.5C362.5 205.167 360 193 355 187C350 181 340 178 325 178C310.333 178 296.333 183.5 283 194.5C284.667 205.833 285.5 221.5 285.5 241.5V322.5C298.5 327.5 307.667 333.167 313 339.5L308 378H193L188 339.5C192.667 333.167 201.833 327.5 215.5 322.5V223.5C215.5 205.167 213 193 208 187C203 181 193.167 178 178.5 178C163.833 178 149.833 183.333 136.5 194V322.5C149.5 327.5 158.667 333.167 164 339.5L159 378H44L39 339.5C43.6667 333.167 52.8333 327.5 66.5 322.5V183.5C54.8333 179.5 45.6667 173.833 39 166.5L44 128Z\"\n          fill={resolvedTheme === \"dark\" ? \"#fff\" : \"#000\"}\n        />\n      </svg>\n    );\n  },\n  project: {\n    link: \"https://github.com/oktaysenkan/monicon\",\n  },\n  // TODO: Change this after v2 release\n  docsRepositoryBase:\n    \"https://github.com/oktaysenkan/monicon/tree/main/apps/docs\",\n  footer: {\n    content: <p>MIT {new Date().getFullYear()} © Monicon</p>,\n  },\n};\n\nexport default config;\n"
  },
  {
    "path": "apps/legacy-docs/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"strict\": false,\n    \"forceConsistentCasingInFileNames\": true,\n    \"noEmit\": true,\n    \"incremental\": true,\n    \"esModuleInterop\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"jsx\": \"preserve\"\n  },\n  \"include\": [\"next-env.d.ts\", \"**/*.ts\", \"**/*.tsx\"],\n  \"exclude\": [\"node_modules\"]\n}\n"
  },
  {
    "path": "examples/next/.eslintrc.json",
    "content": "{\n  \"extends\": \"next/core-web-vitals\"\n}\n"
  },
  {
    "path": "examples/next/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n\n# testing\n/coverage\n\n# next.js\n/.next/\n/out/\n\n# production\n/build\n\n# misc\n.DS_Store\n*.pem\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# vercel\n.vercel\n"
  },
  {
    "path": "examples/next/README.md",
    "content": "## Getting Started\n\nFirst, run the development server:\n\n```bash\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.\n\nTo create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3000/api/hello](http://localhost:3000/api/hello).\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n"
  },
  {
    "path": "examples/next/app/layout.tsx",
    "content": "import \"../styles/global.css\";\n\nexport default function RootLayout({\n  children,\n}: {\n  children: React.ReactNode;\n}) {\n  return (\n    <html lang=\"en\">\n      <body>{children}</body>\n    </html>\n  );\n}\n"
  },
  {
    "path": "examples/next/app/page.tsx",
    "content": "import styles from \"../styles/index.module.css\";\n\nimport BadgeCheckIcon from \"../components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"../components/icons/lucide/cloud-download\";\nimport AccountIcon from \"../components/icons/mdi/account\";\nimport HomeIcon from \"../components/icons/mdi/home\";\nimport AtomIcon from \"../components/icons/logos/atom-icon\";\nimport ApacheLogo from \"../components/icons/logos/apache\";\n\nexport default function Web() {\n  return (\n    <main className={styles.container}>\n      <ApacheLogo color=\"white\" width={50} />\n      <BadgeCheckIcon color=\"white\" width={50} />\n      <CloudDownloadIcon color=\"white\" width={50} />\n      <AccountIcon color=\"white\" width={50} />\n      <HomeIcon color=\"white\" width={50} />\n      <AtomIcon color=\"white\" width={50} />\n    </main>\n  );\n}\n"
  },
  {
    "path": "examples/next/components/icons/feather/activity.tsx",
    "content": "import React from \"react\";\n\nconst FeatherActivityIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n        d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n      />\n    </svg>\n  );\n};\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/next/components/icons/feather/alert-circle.tsx",
    "content": "import React from \"react\";\n\nconst FeatherAlertCircleIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <circle cx=\"12\" cy=\"12\" r=\"10\" />\n        <path d=\"M12 8v4m0 4h.01\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/next/components/icons/logos/active-campaign.tsx",
    "content": "import React from \"react\";\n\nconst LogosActiveCampaignIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n      <path\n        fill=\"#004CFF\"\n        d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/next/components/icons/logos/apache.tsx",
    "content": "import React from \"react\";\n\nconst LogosApacheIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#F69923\" />\n          <stop offset=\"31.23%\" stopColor=\"#F79A23\" />\n          <stop offset=\"83.83%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/next/components/icons/logos/atom-icon.tsx",
    "content": "import React from \"react\";\n\nconst LogosAtomIconIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/next/components/icons/lucide/badge-check.tsx",
    "content": "import React from \"react\";\n\nconst LucideBadgeCheckIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n        <path d=\"m9 12l2 2l4-4\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/next/components/icons/lucide/cloud-download.tsx",
    "content": "import React from \"react\";\n\nconst LucideCloudDownloadIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n        <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/next/components/icons/mdi/account-badge-outline.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountBadgeOutlineIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/next/components/icons/mdi/account.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/next/components/icons/mdi/home.tsx",
    "content": "import React from \"react\";\n\nconst MdiHomeIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/next/monicon.config.ts",
    "content": "import { debuggerPlugin, react, clean } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"components/icons\"] }),\n    react({ outputPath: \"components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/next/next-env.d.ts",
    "content": "/// <reference types=\"next\" />\n/// <reference types=\"next/image-types/global\" />\n\n// NOTE: This file should not be edited\n// see https://nextjs.org/docs/basic-features/typescript for more information.\n"
  },
  {
    "path": "examples/next/next.config.mjs",
    "content": "import { MoniconPlugin } from \"@monicon/webpack\";\n\nconst nextConfig = {\n  reactStrictMode: true,\n  webpack: (config, { dev }) => {\n    config.resolve.alias = {\n      ...(config.resolve.alias || {}),\n      // Transform all direct `react-native` imports to `react-native-web`\n      \"react-native$\": \"react-native-web\",\n    };\n\n    config.resolve.extensions = [\n      \".web.js\",\n      \".web.jsx\",\n      \".web.ts\",\n      \".web.tsx\",\n      ...config.resolve.extensions,\n    ];\n\n    config.plugins.push(new MoniconPlugin({ watch: dev }));\n\n    return config;\n  },\n};\n\nexport default nextConfig;\n"
  },
  {
    "path": "examples/next/package.json",
    "content": "{\n  \"name\": \"@monicon/next\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next build\",\n    \"start\": \"next start\",\n    \"lint\": \"next lint\"\n  },\n  \"dependencies\": {\n    \"next\": \"^14.0.4\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\",\n    \"react-native-web\": \"^0.19.10\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"@monicon/webpack\": \"*\",\n    \"@types/node\": \"^20.10.6\",\n    \"@types/react\": \"^18.2.46\",\n    \"@types/react-dom\": \"^18.2.18\",\n    \"babel-plugin-react-native-web\": \"^0.19.10\",\n    \"eslint\": \"^8.56.0\",\n    \"eslint-config-next\": \"14.0.4\",\n    \"typescript\": \"^5.3.3\"\n  }\n}\n"
  },
  {
    "path": "examples/next/styles/global.css",
    "content": "body {\n  font-family: \"SF Pro Text\", \"SF Pro Icons\", \"Helvetica Neue\", \"Helvetica\",\n    \"Arial\", sans-serif;\n  display: flex;\n  height: 100vh;\n  align-items: center;\n  justify-content: center;\n  background-color: #000;\n}\n"
  },
  {
    "path": "examples/next/styles/index.module.css",
    "content": ".container {\n  height: 100vh;\n  width: 100vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  gap: 1rem;\n}\n"
  },
  {
    "path": "examples/next/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/nextjs.json\",\n  \"compilerOptions\": {\n    \"plugins\": [{ \"name\": \"next\" }]\n  },\n  \"include\": [\"next-env.d.ts\", \"**/*.ts\", \"**/*.tsx\", \".next/types/**/*.ts\"],\n  \"exclude\": [\"node_modules\"]\n}\n"
  },
  {
    "path": "examples/nuxt-app/.gitignore",
    "content": "# Nuxt dev/build outputs\n.output\n.data\n.nuxt\n.nitro\n.cache\ndist\n\n# Node dependencies\nnode_modules\n\n# Logs\nlogs\n*.log\n\n# Misc\n.DS_Store\n\n# Local env files\n.env\n.env.*\n!.env.example\n"
  },
  {
    "path": "examples/nuxt-app/README.md",
    "content": "## Getting Started\n\nFirst, run the development server:\n\n```bash\npnpm dev\n```\n\nOpen [http://localhost:3001](http://localhost:3001) with your browser to see the result.\n\nYou can start editing the page by modifying `app.vue`. The page auto-updates as you edit the file.\n\nTo create [API routes](https://nuxt.com/docs/guide/directory-structure/server), add an `api/` or a `routes` directory to the `server/` directory and create `your-file.ts` which will contain your api logic. Like `server/api/hello.ts` would map to [http://localhost:3001/api/hello](http://localhost:3001/api/hello).\n\n> See the guide for more details -> [directory-structure/server](https://nuxt.com/docs/guide/directory-structure/server)\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [NuxtJs Official documentation](https://nuxt.com/docs/getting-started/introduction) - learn about Nuxt to create production-grade full-stack web apps and websites features and API.\n\n## Deploy on Vercel\n\nYou can easily deploy your Nuxt app by using the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme).\n\nCheck out our [Nuxt deployment documentation](https://vercel.com/docs/frameworks/nuxt) for more details.\n"
  },
  {
    "path": "examples/nuxt-app/app.vue",
    "content": "<script setup lang=\"ts\">\nimport BadgeCheckIcon from \"@/components/icons/lucide/badge-check.vue\";\nimport CloudDownloadIcon from \"@/components/icons/lucide/cloud-download.vue\";\nimport AccountIcon from \"@/components/icons/mdi/account.vue\";\nimport HomeIcon from \"@/components/icons/mdi/home.vue\";\nimport AtomIcon from \"@/components/icons/logos/atom-icon.vue\";\nimport ApacheLogo from \"@/components/icons/logos/apache.vue\";\n\nuseHead({\n  title: \"Nuxt App\",\n  meta: [{ name: \"description\", content: \"Generated by create turbo\" }],\n});\n</script>\n\n<template>\n  <main>\n    <ApacheLogo color=\"white\" width=\"50\" />\n    <BadgeCheckIcon color=\"white\" width=\"50\" />\n    <CloudDownloadIcon color=\"white\" width=\"50\" />\n    <AccountIcon color=\"white\" width=\"50\" />\n    <HomeIcon color=\"white\" width=\"50\" />\n    <AtomIcon color=\"white\" width=\"50\" />\n  </main>\n</template>\n\n<style>\nhtml,\nbody {\n  margin: 0;\n  padding: 0;\n}\n\nmain {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  height: 100vh;\n  background-color: #242424;\n  color: rgba(255, 255, 255, 0.87);\n  gap: 1rem;\n}\n</style>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/feather/activity.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n      d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"FeatherActivityIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/feather/alert-circle.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <circle cx=\"12\" cy=\"12\" r=\"10\" />\n      <path d=\"M12 8v4m0 4h.01\" />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"FeatherAlertCircleIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/logos/active-campaign.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" v-bind=\"props\">\n    <path\n      fill=\"#004CFF\"\n      d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LogosActiveCampaignIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/logos/apache.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" v-bind=\"props\">\n    <defs>\n      <linearGradient\n        id=\"SVGRnKYad4R\"\n        x1=\"16.363%\"\n        x2=\"159.99%\"\n        y1=\"63.905%\"\n        y2=\"20.213%\"\n      >\n        <stop offset=\"0%\" stop-color=\"#F69923\" />\n        <stop offset=\"31.23%\" stop-color=\"#F79A23\" />\n        <stop offset=\"83.83%\" stop-color=\"#E97826\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVG8liAebqn\"\n        x1=\"-217.651%\"\n        x2=\"74.743%\"\n        y1=\"394.672%\"\n        y2=\"13.846%\"\n      >\n        <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n        <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n        <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n        <stop offset=\"100%\" stop-color=\"#E97826\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVGlj4FDdaL\"\n        x1=\"-80.044%\"\n        x2=\"146.24%\"\n        y1=\"170.418%\"\n        y2=\"-44.299%\"\n      >\n        <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n        <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n        <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n        <stop offset=\"100%\" stop-color=\"#E97826\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVGYvEIQelX\"\n        x1=\"-18.316%\"\n        x2=\"165.002%\"\n        y1=\"77.36%\"\n        y2=\"-41.416%\"\n      >\n        <stop offset=\"0%\" stop-color=\"#282662\" />\n        <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n        <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n        <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVG0bBOHeKe\"\n        x1=\"-129.783%\"\n        x2=\"66.456%\"\n        y1=\"463.715%\"\n        y2=\"17.19%\"\n      >\n        <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n        <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n        <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n        <stop offset=\"100%\" stop-color=\"#E97826\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVGCq1NQ68u\"\n        x1=\"-34.88%\"\n        x2=\"110.599%\"\n        y1=\"187.706%\"\n        y2=\"-51.1%\"\n      >\n        <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n        <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n        <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n        <stop offset=\"100%\" stop-color=\"#E97826\" />\n      </linearGradient>\n      <linearGradient\n        id=\"SVGcSolSb7E\"\n        x1=\"-20.619%\"\n        x2=\"125.26%\"\n        y1=\"192.564%\"\n        y2=\"-136.906%\"\n      >\n        <stop offset=\"0%\" stop-color=\"#282662\" />\n        <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n        <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n        <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n      </linearGradient>\n    </defs>\n    <path\n      fill=\"url(#SVGRnKYad4R)\"\n      d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n    />\n    <path\n      fill=\"url(#SVG8liAebqn)\"\n      d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n    />\n    <path\n      fill=\"url(#SVGlj4FDdaL)\"\n      d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n    />\n    <path\n      fill=\"url(#SVGYvEIQelX)\"\n      d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n    />\n    <path\n      fill=\"url(#SVG0bBOHeKe)\"\n      d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n    />\n    <path\n      fill=\"url(#SVGCq1NQ68u)\"\n      d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n    />\n    <path\n      fill=\"url(#SVGcSolSb7E)\"\n      d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LogosApacheIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/logos/atom-icon.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" v-bind=\"props\">\n    <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n    <path\n      fill=\"#FFF\"\n      d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LogosAtomIconIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/lucide/badge-check.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <path\n        d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"\n      />\n      <path d=\"m9 12l2 2l4-4\" />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LucideBadgeCheckIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/lucide/cloud-download.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n      <path\n        d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\"\n      />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LucideCloudDownloadIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/mdi/account-badge-outline.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"currentColor\"\n      d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiAccountBadgeOutlineIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/mdi/account.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"currentColor\"\n      d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiAccountIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/components/icons/mdi/home.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiHomeIcon\" };\n</script>\n"
  },
  {
    "path": "examples/nuxt-app/monicon.config.ts",
    "content": "import { debuggerPlugin, clean, vue } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { type MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"components/icons\"] }),\n    vue({ outputPath: \"components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/nuxt-app/nuxt.config.ts",
    "content": "export default defineNuxtConfig({\n  devtools: { enabled: true },\n  compatibilityDate: \"2024-10-05\",\n  modules: [\"@monicon/nuxt\"],\n});\n"
  },
  {
    "path": "examples/nuxt-app/package.json",
    "content": "{\n  \"name\": \"@monicon/nuxt-app\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"nuxt build\",\n    \"dev\": \"nuxt dev --port 3001\",\n    \"generate\": \"nuxt generate\",\n    \"preview\": \"nuxt preview\",\n    \"lint\": \"eslint .\",\n    \"prepare\": \"nuxt prepare\"\n  },\n  \"dependencies\": {\n    \"@monicon/nuxt\": \"*\"\n  },\n  \"devDependencies\": {\n    \"@nuxt/devtools\": \"latest\",\n    \"@nuxtjs/eslint-config-typescript\": \"^12.1.0\",\n    \"eslint\": \"^8.57.0\",\n    \"nuxt\": \"^3.13.2\",\n    \"vue\": \"^3.4.21\",\n    \"vue-router\": \"^4.3.0\"\n  }\n}\n"
  },
  {
    "path": "examples/nuxt-app/server/tsconfig.json",
    "content": "{\n  \"extends\": \"../.nuxt/tsconfig.server.json\"\n}\n"
  },
  {
    "path": "examples/nuxt-app/tsconfig.json",
    "content": "{\n  // https://nuxt.com/docs/guide/concepts/typescript\n  \"extends\": \"./.nuxt/tsconfig.json\"\n}\n"
  },
  {
    "path": "examples/qwik-app/.eslintignore",
    "content": "**/*.log\n**/.DS_Store\n*.\n.vscode/settings.json\n.history\n.yarn\nbazel-*\nbazel-bin\nbazel-out\nbazel-qwik\nbazel-testlogs\ndist\ndist-dev\nlib\nlib-types\netc\nexternal\nnode_modules\ntemp\ntsc-out\ntsdoc-metadata.json\ntarget\noutput\nrollup.config.js\nbuild\n.cache\n.vscode\n.rollup.cache\ndist\ntsconfig.tsbuildinfo\nvite.config.ts\n*.spec.tsx\n*.spec.ts\n.netlify\npnpm-lock.yaml\npackage-lock.json\nyarn.lock\nserver\n"
  },
  {
    "path": "examples/qwik-app/.eslintrc.cjs",
    "content": "module.exports = {\n  root: true,\n  env: {\n    browser: true,\n    es2021: true,\n    node: true,\n  },\n  extends: [\n    \"eslint:recommended\",\n    \"plugin:@typescript-eslint/recommended\",\n    \"plugin:qwik/recommended\",\n  ],\n  parser: \"@typescript-eslint/parser\",\n  parserOptions: {\n    tsconfigRootDir: __dirname,\n    project: [\"./tsconfig.json\"],\n    ecmaVersion: 2021,\n    sourceType: \"module\",\n    ecmaFeatures: {\n      jsx: true,\n    },\n  },\n  plugins: [\"@typescript-eslint\"],\n  rules: {\n    \"@typescript-eslint/no-explicit-any\": \"off\",\n    \"@typescript-eslint/explicit-module-boundary-types\": \"off\",\n    \"@typescript-eslint/no-inferrable-types\": \"off\",\n    \"@typescript-eslint/no-non-null-assertion\": \"off\",\n    \"@typescript-eslint/no-empty-interface\": \"off\",\n    \"@typescript-eslint/no-namespace\": \"off\",\n    \"@typescript-eslint/no-empty-function\": \"off\",\n    \"@typescript-eslint/no-this-alias\": \"off\",\n    \"@typescript-eslint/ban-types\": \"off\",\n    \"@typescript-eslint/ban-ts-comment\": \"off\",\n    \"prefer-spread\": \"off\",\n    \"no-case-declarations\": \"off\",\n    \"no-console\": \"off\",\n    \"@typescript-eslint/no-unused-vars\": [\"error\"],\n    \"@typescript-eslint/consistent-type-imports\": \"warn\",\n    \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n  },\n};\n"
  },
  {
    "path": "examples/qwik-app/.gitignore",
    "content": "# Build\n/dist\n/lib\n/lib-types\n/server\n\n# Development\nnode_modules\n.env\n*.local\n\n# Cache\n.cache\n.mf\n.rollup.cache\ntsconfig.tsbuildinfo\n\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\n# Editor\n.vscode/*\n!.vscode/launch.json\n!.vscode/*.code-snippets\n\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\n# Yarn\n.yarn/*\n!.yarn/releases\n"
  },
  {
    "path": "examples/qwik-app/.prettierignore",
    "content": "**/*.log\n**/.DS_Store\n*.\n.vscode/settings.json\n.history\n.yarn\nbazel-*\nbazel-bin\nbazel-out\nbazel-qwik\nbazel-testlogs\ndist\ndist-dev\nlib\nlib-types\netc\nexternal\nnode_modules\ntemp\ntsc-out\ntsdoc-metadata.json\ntarget\noutput\nrollup.config.js\nbuild\n.cache\n.vscode\n.rollup.cache\ntsconfig.tsbuildinfo\nvite.config.ts\n*.spec.tsx\n*.spec.ts\n.netlify\npnpm-lock.yaml\npackage-lock.json\nyarn.lock\nserver\n"
  },
  {
    "path": "examples/qwik-app/README.md",
    "content": "# Qwik City App ⚡️\n\n- [Qwik Docs](https://qwik.dev/)\n- [Discord](https://qwik.dev/chat)\n- [Qwik GitHub](https://github.com/QwikDev/qwik)\n- [@QwikDev](https://twitter.com/QwikDev)\n- [Vite](https://vitejs.dev/)\n\n---\n\n## Project Structure\n\nThis project is using Qwik with [QwikCity](https://qwik.dev/qwikcity/overview/). QwikCity is just an extra set of tools on top of Qwik to make it easier to build a full site, including directory-based routing, layouts, and more.\n\nInside your project, you'll see the following directory structure:\n\n```\n├── public/\n│   └── ...\n└── src/\n    ├── components/\n    │   └── ...\n    └── routes/\n        └── ...\n```\n\n- `src/routes`: Provides the directory-based routing, which can include a hierarchy of `layout.tsx` layout files, and an `index.tsx` file as the page. Additionally, `index.ts` files are endpoints. Please see the [routing docs](https://qwik.dev/qwikcity/routing/overview/) for more info.\n\n- `src/components`: Recommended directory for components.\n\n- `public`: Any static assets, like images, can be placed in the public directory. Please see the [Vite public directory](https://vitejs.dev/guide/assets.html#the-public-directory) for more info.\n\n## Add Integrations and deployment\n\nUse the `npm run qwik add` command to add additional integrations. Some examples of integrations includes: Cloudflare, Netlify or Express Server, and the [Static Site Generator (SSG)](https://qwik.dev/qwikcity/guides/static-site-generation/).\n\n```shell\nnpm run qwik add # or `yarn qwik add`\n```\n\n## Development\n\nDevelopment mode uses [Vite's development server](https://vitejs.dev/). The `dev` command will server-side render (SSR) the output during development.\n\n```shell\nnpm start # or `yarn start`\n```\n\n> Note: during dev mode, Vite may request a significant number of `.js` files. This does not represent a Qwik production build.\n\n## Preview\n\nThe preview command will create a production build of the client modules, a production build of `src/entry.preview.tsx`, and run a local server. The preview server is only for convenience to preview a production build locally and should not be used as a production server.\n\n```shell\nnpm run preview # or `yarn preview`\n```\n\n## Production\n\nThe production build will generate client and server modules by running both client and server build commands. The build command will use Typescript to run a type check on the source code.\n\n```shell\nnpm run build # or `yarn build`\n```\n"
  },
  {
    "path": "examples/qwik-app/monicon.config.ts",
    "content": "import { debuggerPlugin, qwik, clean } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { type MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  collections: [],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    qwik({ outputPath: \"src/components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/qwik-app/package.json",
    "content": "{\n  \"name\": \"@monicon/qwik-app\",\n  \"version\": \"0.0.0\",\n  \"description\": \"Blank project with routing included\",\n  \"engines\": {\n    \"node\": \"^18.17.0 || ^20.3.0 || >=21.0.0\"\n  },\n  \"engines-annotation\": \"Mostly required by sharp which needs a Node-API v9 compatible runtime\",\n  \"private\": true,\n  \"trustedDependencies\": [\n    \"sharp\"\n  ],\n  \"trustedDependencies-annotation\": \"Needed for bun to allow running install scripts\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"qwik build\",\n    \"build.client\": \"vite build\",\n    \"build.preview\": \"vite build --ssr src/entry.preview.tsx\",\n    \"postbuild.types\": \"tsc --incremental --noEmit\",\n    \"deploy\": \"echo 'Run \\\"npm run qwik add\\\" to install a server adapter'\",\n    \"dev\": \"vite --mode ssr\",\n    \"dev.debug\": \"node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force\",\n    \"fmt\": \"prettier --write .\",\n    \"fmt.check\": \"prettier --check .\",\n    \"lint\": \"eslint \\\"src/**/*.ts*\\\"\",\n    \"preview\": \"qwik build preview && vite preview --open\",\n    \"start\": \"vite --open --mode ssr\",\n    \"qwik\": \"qwik\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@builder.io/qwik\": \"^1.9.1\",\n    \"@builder.io/qwik-city\": \"^1.9.1\",\n    \"@types/eslint\": \"8.56.10\",\n    \"@types/node\": \"20.14.11\",\n    \"@typescript-eslint/eslint-plugin\": \"7.16.1\",\n    \"@typescript-eslint/parser\": \"7.16.1\",\n    \"eslint\": \"8.57.0\",\n    \"eslint-plugin-qwik\": \"^1.9.1\",\n    \"prettier\": \"3.3.3\",\n    \"@monicon/vite\": \"*\",\n    \"typescript\": \"5.4.5\",\n    \"undici\": \"*\",\n    \"vite\": \"^6.0.2\",\n    \"vite-tsconfig-paths\": \"^4.2.1\"\n  }\n}\n"
  },
  {
    "path": "examples/qwik-app/public/manifest.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/web-manifest-combined.json\",\n  \"name\": \"qwik-project-name\",\n  \"short_name\": \"Welcome to Qwik\",\n  \"start_url\": \".\",\n  \"display\": \"standalone\",\n  \"background_color\": \"#fff\",\n  \"description\": \"A Qwik project app.\"\n}\n"
  },
  {
    "path": "examples/qwik-app/public/robots.txt",
    "content": ""
  },
  {
    "path": "examples/qwik-app/qwik.env.d.ts",
    "content": "// This file can be used to add references for global types like `vite/client`.\n\n// Add global `vite/client` types. For more info, see: https://vitejs.dev/guide/features#client-types\n/// <reference types=\"vite/client\" />\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/feather/activity.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst FeatherActivityIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n        <path\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          stroke-width=\"2\"\n          d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n        />\n      </svg>\n    );\n  },\n);\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/feather/alert-circle.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst FeatherAlertCircleIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n        <g\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          stroke-width=\"2\"\n        >\n          <circle cx=\"12\" cy=\"12\" r=\"10\" />\n          <path d=\"M12 8v4m0 4h.01\" />\n        </g>\n      </svg>\n    );\n  },\n);\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/logos/active-campaign.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst LogosActiveCampaignIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n        <path\n          fill=\"#004CFF\"\n          d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n        />\n      </svg>\n    );\n  },\n);\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/logos/apache.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst LogosApacheIcon = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stop-color=\"#F69923\" />\n          <stop offset=\"31.23%\" stop-color=\"#F79A23\" />\n          <stop offset=\"83.83%\" stop-color=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n          <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n          <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n          <stop offset=\"100%\" stop-color=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n          <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n          <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n          <stop offset=\"100%\" stop-color=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stop-color=\"#282662\" />\n          <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n          <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n          <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n          <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n          <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n          <stop offset=\"100%\" stop-color=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n          <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n          <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n          <stop offset=\"100%\" stop-color=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stop-color=\"#282662\" />\n          <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n          <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n          <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n});\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/logos/atom-icon.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst LogosAtomIconIcon = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n});\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/lucide/badge-check.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst LucideBadgeCheckIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n        <g\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          stroke-width=\"2\"\n        >\n          <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n          <path d=\"m9 12l2 2l4-4\" />\n        </g>\n      </svg>\n    );\n  },\n);\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/lucide/cloud-download.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst LucideCloudDownloadIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n        <g\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          stroke-width=\"2\"\n        >\n          <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n          <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n        </g>\n      </svg>\n    );\n  },\n);\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/mdi/account-badge-outline.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst MdiAccountBadgeOutlineIcon = component$(\n  (props: QwikIntrinsicElements[\"svg\"]) => {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n        <path\n          fill=\"currentColor\"\n          d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n        />\n      </svg>\n    );\n  },\n);\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/mdi/account.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst MdiAccountIcon = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n});\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/icons/mdi/home.tsx",
    "content": "import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst MdiHomeIcon = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n});\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/qwik-app/src/components/router-head/router-head.tsx",
    "content": "import { component$ } from \"@builder.io/qwik\";\nimport { useDocumentHead, useLocation } from \"@builder.io/qwik-city\";\n\n/**\n * The RouterHead component is placed inside of the document `<head>` element.\n */\nexport const RouterHead = component$(() => {\n  const head = useDocumentHead();\n  const loc = useLocation();\n\n  return (\n    <>\n      <title>{head.title}</title>\n\n      <link rel=\"canonical\" href={loc.url.href} />\n      <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n      <link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\" />\n\n      {head.meta.map((m) => (\n        <meta key={m.key} {...m} />\n      ))}\n\n      {head.links.map((l) => (\n        <link key={l.key} {...l} />\n      ))}\n\n      {head.styles.map((s) => (\n        <style\n          key={s.key}\n          {...s.props}\n          {...(s.props?.dangerouslySetInnerHTML\n            ? {}\n            : { dangerouslySetInnerHTML: s.style })}\n        />\n      ))}\n\n      {head.scripts.map((s) => (\n        <script\n          key={s.key}\n          {...s.props}\n          {...(s.props?.dangerouslySetInnerHTML\n            ? {}\n            : { dangerouslySetInnerHTML: s.script })}\n        />\n      ))}\n    </>\n  );\n});\n"
  },
  {
    "path": "examples/qwik-app/src/entry.dev.tsx",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * Development entry point using only client-side modules:\n * - Do not use this mode in production!\n * - No SSR\n * - No portion of the application is pre-rendered on the server.\n * - All of the application is running eagerly in the browser.\n * - More code is transferred to the browser than in SSR mode.\n * - Optimizer/Serialization/Deserialization code is not exercised!\n */\nimport { render, type RenderOptions } from \"@builder.io/qwik\";\nimport Root from \"./root\";\n\nexport default function (opts: RenderOptions) {\n  return render(document, <Root />, opts);\n}\n"
  },
  {
    "path": "examples/qwik-app/src/entry.preview.tsx",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * It's the bundle entry point for `npm run preview`.\n * That is, serving your app built in production mode.\n *\n * Feel free to modify this file, but don't remove it!\n *\n * Learn more about Vite's preview command:\n * - https://vitejs.dev/config/preview-options.html#preview-options\n *\n */\nimport { createQwikCity } from \"@builder.io/qwik-city/middleware/node\";\nimport qwikCityPlan from \"@qwik-city-plan\";\n// make sure qwikCityPlan is imported before entry\nimport render from \"./entry.ssr\";\n\n/**\n * The default export is the QwikCity adapter used by Vite preview.\n */\nexport default createQwikCity({ render, qwikCityPlan });\n"
  },
  {
    "path": "examples/qwik-app/src/entry.ssr.tsx",
    "content": "/**\n * WHAT IS THIS FILE?\n *\n * SSR entry point, in all cases the application is rendered outside the browser, this\n * entry point will be the common one.\n *\n * - Server (express, cloudflare...)\n * - npm run start\n * - npm run preview\n * - npm run build\n *\n */\nimport {\n  renderToStream,\n  type RenderToStreamOptions,\n} from \"@builder.io/qwik/server\";\nimport { manifest } from \"@qwik-client-manifest\";\nimport Root from \"./root\";\n\nexport default function (opts: RenderToStreamOptions) {\n  return renderToStream(<Root />, {\n    manifest,\n    ...opts,\n    // Use container attributes to set attributes on the html tag.\n    containerAttributes: {\n      lang: \"en-us\",\n      ...opts.containerAttributes,\n    },\n    serverData: {\n      ...opts.serverData,\n    },\n  });\n}\n"
  },
  {
    "path": "examples/qwik-app/src/global.css",
    "content": "body {\n  margin: 0;\n}\n\n.home {\n  display: flex;\n  gap: 1rem;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: center;\n  min-height: 100vh;\n  background-color: #1a202c;\n}\n"
  },
  {
    "path": "examples/qwik-app/src/root.tsx",
    "content": "import { component$ } from \"@builder.io/qwik\";\nimport {\n  QwikCityProvider,\n  RouterOutlet,\n  ServiceWorkerRegister,\n} from \"@builder.io/qwik-city\";\nimport { RouterHead } from \"./components/router-head/router-head\";\nimport { isDev } from \"@builder.io/qwik/build\";\n\nimport \"./global.css\";\n\nexport default component$(() => {\n  /**\n   * The root of a QwikCity site always start with the <QwikCityProvider> component,\n   * immediately followed by the document's <head> and <body>.\n   *\n   * Don't remove the `<head>` and `<body>` elements.\n   */\n\n  return (\n    <QwikCityProvider>\n      <head>\n        <meta charset=\"utf-8\" />\n        {!isDev && (\n          <link\n            rel=\"manifest\"\n            href={`${import.meta.env.BASE_URL}manifest.json`}\n          />\n        )}\n        <RouterHead />\n      </head>\n      <body lang=\"en\">\n        <RouterOutlet />\n        {!isDev && <ServiceWorkerRegister />}\n      </body>\n    </QwikCityProvider>\n  );\n});\n"
  },
  {
    "path": "examples/qwik-app/src/routes/index.tsx",
    "content": "import { component$ } from \"@builder.io/qwik\";\nimport type { DocumentHead } from \"@builder.io/qwik-city\";\n\nimport ApacheLogo from \"~/components/icons/logos/apache\";\nimport BadgeCheckIcon from \"~/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"~/components/icons/lucide/cloud-download\";\nimport AccountIcon from \"~/components/icons/mdi/account\";\nimport HomeIcon from \"~/components/icons/mdi/home\";\nimport AtomIcon from \"~/components/icons/logos/atom-icon\";\n\nexport default component$(() => {\n  return (\n    <div class=\"home\">\n      <ApacheLogo color=\"white\" width={50} />\n      <BadgeCheckIcon color=\"white\" width={50} />\n      <CloudDownloadIcon color=\"white\" width={50} />\n      <AccountIcon color=\"white\" width={50} />\n      <HomeIcon color=\"white\" width={50} />\n      <AtomIcon color=\"white\" width={50} />\n    </div>\n  );\n});\n\nexport const head: DocumentHead = {\n  title: \"Welcome to Qwik\",\n  meta: [\n    {\n      name: \"description\",\n      content: \"Qwik site description\",\n    },\n  ],\n};\n"
  },
  {
    "path": "examples/qwik-app/src/routes/layout.tsx",
    "content": "import { component$, Slot } from \"@builder.io/qwik\";\nimport type { RequestHandler } from \"@builder.io/qwik-city\";\n\nexport const onGet: RequestHandler = async ({ cacheControl }) => {\n  // Control caching for this request for best performance and to reduce hosting costs:\n  // https://qwik.dev/docs/caching/\n  cacheControl({\n    // Always serve a cached response by default, up to a week stale\n    staleWhileRevalidate: 60 * 60 * 24 * 7,\n    // Max once every 5 seconds, revalidate on the server to get a fresh version of this page\n    maxAge: 5,\n  });\n};\n\nexport default component$(() => {\n  return <Slot />;\n});\n"
  },
  {
    "path": "examples/qwik-app/src/routes/service-worker.ts",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * The service-worker.ts file is used to have state of the art prefetching.\n * https://qwik.dev/qwikcity/prefetching/overview/\n *\n * Qwik uses a service worker to speed up your site and reduce latency, ie, not used in the traditional way of offline.\n * You can also use this file to add more functionality that runs in the service worker.\n */\nimport { setupServiceWorker } from \"@builder.io/qwik-city/service-worker\";\n\nsetupServiceWorker();\n\naddEventListener(\"install\", () => self.skipWaiting());\n\naddEventListener(\"activate\", () => self.clients.claim());\n\ndeclare const self: ServiceWorkerGlobalScope;\n"
  },
  {
    "path": "examples/qwik-app/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"allowJs\": true,\n    \"target\": \"ES2017\",\n    \"module\": \"ES2022\",\n    \"lib\": [\"es2022\", \"DOM\", \"WebWorker\", \"DOM.Iterable\"],\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"@builder.io/qwik\",\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"moduleResolution\": \"Bundler\",\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"incremental\": true,\n    \"isolatedModules\": true,\n    \"outDir\": \"tmp\",\n    \"noEmit\": true,\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    }\n  },\n  \"files\": [\"./.eslintrc.cjs\"],\n  \"include\": [\"src\", \"./*.d.ts\", \"./*.config.ts\"]\n}\n"
  },
  {
    "path": "examples/qwik-app/vite.config.ts",
    "content": "/**\n * This is the base config for vite.\n * When building, the adapter config is used which loads this file and extends it.\n */\nimport { defineConfig, type UserConfig } from \"vite\";\nimport { qwikVite } from \"@builder.io/qwik/optimizer\";\nimport { qwikCity } from \"@builder.io/qwik-city/vite\";\nimport { monicon } from \"@monicon/vite\";\nimport tsconfigPaths from \"vite-tsconfig-paths\";\nimport pkg from \"./package.json\";\n\ntype PkgDep = Record<string, string>;\nconst { dependencies = {}, devDependencies = {} } = pkg as any as {\n  dependencies: PkgDep;\n  devDependencies: PkgDep;\n  [key: string]: unknown;\n};\nerrorOnDuplicatesPkgDeps(devDependencies, dependencies);\n\n/**\n * Note that Vite normally starts from `index.html` but the qwikCity plugin makes start at `src/entry.ssr.tsx` instead.\n */\nexport default defineConfig((): UserConfig => {\n  return {\n    plugins: [qwikCity(), qwikVite(), tsconfigPaths(), monicon()],\n    // This tells Vite which dependencies to pre-build in dev mode.\n    optimizeDeps: {\n      // Put problematic deps that break bundling here, mostly those with binaries.\n      // For example ['better-sqlite3'] if you use that in server functions.\n      exclude: [],\n    },\n\n    /**\n     * This is an advanced setting. It improves the bundling of your server code. To use it, make sure you understand when your consumed packages are dependencies or dev dependencies. (otherwise things will break in production)\n     */\n    // ssr:\n    //   command === \"build\" && mode === \"production\"\n    //     ? {\n    //         // All dev dependencies should be bundled in the server build\n    //         noExternal: Object.keys(devDependencies),\n    //         // Anything marked as a dependency will not be bundled\n    //         // These should only be production binary deps (including deps of deps), CLI deps, and their module graph\n    //         // If a dep-of-dep needs to be external, add it here\n    //         // For example, if something uses `bcrypt` but you don't have it as a dep, you can write\n    //         // external: [...Object.keys(dependencies), 'bcrypt']\n    //         external: Object.keys(dependencies),\n    //       }\n    //     : undefined,\n\n    server: {\n      headers: {\n        // Don't cache the server response in dev mode\n        \"Cache-Control\": \"public, max-age=0\",\n      },\n    },\n    preview: {\n      headers: {\n        // Do cache the server response in preview (non-adapter production build)\n        \"Cache-Control\": \"public, max-age=600\",\n      },\n    },\n  };\n});\n\n// *** utils ***\n\n/**\n * Function to identify duplicate dependencies and throw an error\n * @param {Object} devDependencies - List of development dependencies\n * @param {Object} dependencies - List of production dependencies\n */\nfunction errorOnDuplicatesPkgDeps(\n  devDependencies: PkgDep,\n  dependencies: PkgDep\n) {\n  let msg = \"\";\n  // Create an array 'duplicateDeps' by filtering devDependencies.\n  // If a dependency also exists in dependencies, it is considered a duplicate.\n  const duplicateDeps = Object.keys(devDependencies).filter(\n    (dep) => dependencies[dep]\n  );\n\n  // include any known qwik packages\n  const qwikPkg = Object.keys(dependencies).filter((value) =>\n    /qwik/i.test(value)\n  );\n\n  // any errors for missing \"qwik-city-plan\"\n  // [PLUGIN_ERROR]: Invalid module \"@qwik-city-plan\" is not a valid package\n  msg = `Move qwik packages ${qwikPkg.join(\", \")} to devDependencies`;\n\n  if (qwikPkg.length > 0) {\n    throw new Error(msg);\n  }\n\n  // Format the error message with the duplicates list.\n  // The `join` function is used to represent the elements of the 'duplicateDeps' array as a comma-separated string.\n  msg = `\n    Warning: The dependency \"${duplicateDeps.join(\", \")}\" is listed in both \"devDependencies\" and \"dependencies\".\n    Please move the duplicated dependencies to \"devDependencies\" only and remove it from \"dependencies\"\n  `;\n\n  // Throw an error with the constructed message.\n  if (duplicateDeps.length > 0) {\n    throw new Error(msg);\n  }\n}\n"
  },
  {
    "path": "examples/react-native-app/.gitignore",
    "content": "# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files\n\n# dependencies\nnode_modules/\n\n# Expo\n.expo/\ndist/\nweb-build/\nexpo-env.d.ts\n\n# Native\n.kotlin/\n*.orig.*\n*.jks\n*.p8\n*.p12\n*.key\n*.mobileprovision\n\n# Metro\n.metro-health-check*\n\n# debug\nnpm-debug.*\nyarn-debug.*\nyarn-error.*\n\n# macOS\n.DS_Store\n*.pem\n\n# local env files\n.env*.local\n\n# typescript\n*.tsbuildinfo\n\napp-example\n"
  },
  {
    "path": "examples/react-native-app/README.md",
    "content": "# Welcome to your Expo app 👋\n\nThis is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).\n\n## Get started\n\n1. Install dependencies\n\n   ```bash\n   npm install\n   ```\n\n2. Start the app\n\n   ```bash\n   npx expo start\n   ```\n\nIn the output, you'll find options to open the app in a\n\n- [development build](https://docs.expo.dev/develop/development-builds/introduction/)\n- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)\n- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)\n- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo\n\nYou can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).\n\n## Get a fresh project\n\nWhen you're ready, run:\n\n```bash\nnpm run reset-project\n```\n\nThis command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.\n\n## Learn more\n\nTo learn more about developing your project with Expo, look at the following resources:\n\n- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).\n- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.\n\n## Join the community\n\nJoin our community of developers creating universal apps.\n\n- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.\n- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.\n"
  },
  {
    "path": "examples/react-native-app/app/(tabs)/_layout.tsx",
    "content": "import { Tabs } from 'expo-router';\nimport React from 'react';\nimport { Platform } from 'react-native';\n\nimport { HapticTab } from '@/components/HapticTab';\nimport { IconSymbol } from '@/components/ui/IconSymbol';\nimport TabBarBackground from '@/components/ui/TabBarBackground';\nimport { Colors } from '@/constants/Colors';\nimport { useColorScheme } from '@/hooks/useColorScheme';\n\nexport default function TabLayout() {\n  const colorScheme = useColorScheme();\n\n  return (\n    <Tabs\n      screenOptions={{\n        tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,\n        headerShown: false,\n        tabBarButton: HapticTab,\n        tabBarBackground: TabBarBackground,\n        tabBarStyle: Platform.select({\n          ios: {\n            // Use a transparent background on iOS to show the blur effect\n            position: 'absolute',\n          },\n          default: {},\n        }),\n      }}>\n      <Tabs.Screen\n        name=\"index\"\n        options={{\n          title: 'Home',\n          tabBarIcon: ({ color }) => <IconSymbol size={28} name=\"house.fill\" color={color} />,\n        }}\n      />\n      <Tabs.Screen\n        name=\"explore\"\n        options={{\n          title: 'Explore',\n          tabBarIcon: ({ color }) => <IconSymbol size={28} name=\"paperplane.fill\" color={color} />,\n        }}\n      />\n    </Tabs>\n  );\n}\n"
  },
  {
    "path": "examples/react-native-app/app/(tabs)/explore.tsx",
    "content": "import { Image } from 'expo-image';\nimport { Platform, StyleSheet } from 'react-native';\n\nimport { Collapsible } from '@/components/Collapsible';\nimport { ExternalLink } from '@/components/ExternalLink';\nimport ParallaxScrollView from '@/components/ParallaxScrollView';\nimport { ThemedText } from '@/components/ThemedText';\nimport { ThemedView } from '@/components/ThemedView';\nimport { IconSymbol } from '@/components/ui/IconSymbol';\n\nexport default function TabTwoScreen() {\n  return (\n    <ParallaxScrollView\n      headerBackgroundColor={{ light: '#D0D0D0', dark: '#353636' }}\n      headerImage={\n        <IconSymbol\n          size={310}\n          color=\"#808080\"\n          name=\"chevron.left.forwardslash.chevron.right\"\n          style={styles.headerImage}\n        />\n      }>\n      <ThemedView style={styles.titleContainer}>\n        <ThemedText type=\"title\">Explore</ThemedText>\n      </ThemedView>\n      <ThemedText>This app includes example code to help you get started.</ThemedText>\n      <Collapsible title=\"File-based routing\">\n        <ThemedText>\n          This app has two screens:{' '}\n          <ThemedText type=\"defaultSemiBold\">app/(tabs)/index.tsx</ThemedText> and{' '}\n          <ThemedText type=\"defaultSemiBold\">app/(tabs)/explore.tsx</ThemedText>\n        </ThemedText>\n        <ThemedText>\n          The layout file in <ThemedText type=\"defaultSemiBold\">app/(tabs)/_layout.tsx</ThemedText>{' '}\n          sets up the tab navigator.\n        </ThemedText>\n        <ExternalLink href=\"https://docs.expo.dev/router/introduction\">\n          <ThemedText type=\"link\">Learn more</ThemedText>\n        </ExternalLink>\n      </Collapsible>\n      <Collapsible title=\"Android, iOS, and web support\">\n        <ThemedText>\n          You can open this project on Android, iOS, and the web. To open the web version, press{' '}\n          <ThemedText type=\"defaultSemiBold\">w</ThemedText> in the terminal running this project.\n        </ThemedText>\n      </Collapsible>\n      <Collapsible title=\"Images\">\n        <ThemedText>\n          For static images, you can use the <ThemedText type=\"defaultSemiBold\">@2x</ThemedText> and{' '}\n          <ThemedText type=\"defaultSemiBold\">@3x</ThemedText> suffixes to provide files for\n          different screen densities\n        </ThemedText>\n        <Image source={require('@/assets/images/react-logo.png')} style={{ alignSelf: 'center' }} />\n        <ExternalLink href=\"https://reactnative.dev/docs/images\">\n          <ThemedText type=\"link\">Learn more</ThemedText>\n        </ExternalLink>\n      </Collapsible>\n      <Collapsible title=\"Custom fonts\">\n        <ThemedText>\n          Open <ThemedText type=\"defaultSemiBold\">app/_layout.tsx</ThemedText> to see how to load{' '}\n          <ThemedText style={{ fontFamily: 'SpaceMono' }}>\n            custom fonts such as this one.\n          </ThemedText>\n        </ThemedText>\n        <ExternalLink href=\"https://docs.expo.dev/versions/latest/sdk/font\">\n          <ThemedText type=\"link\">Learn more</ThemedText>\n        </ExternalLink>\n      </Collapsible>\n      <Collapsible title=\"Light and dark mode components\">\n        <ThemedText>\n          This template has light and dark mode support. The{' '}\n          <ThemedText type=\"defaultSemiBold\">useColorScheme()</ThemedText> hook lets you inspect\n          what the user&apos;s current color scheme is, and so you can adjust UI colors accordingly.\n        </ThemedText>\n        <ExternalLink href=\"https://docs.expo.dev/develop/user-interface/color-themes/\">\n          <ThemedText type=\"link\">Learn more</ThemedText>\n        </ExternalLink>\n      </Collapsible>\n      <Collapsible title=\"Animations\">\n        <ThemedText>\n          This template includes an example of an animated component. The{' '}\n          <ThemedText type=\"defaultSemiBold\">components/HelloWave.tsx</ThemedText> component uses\n          the powerful <ThemedText type=\"defaultSemiBold\">react-native-reanimated</ThemedText>{' '}\n          library to create a waving hand animation.\n        </ThemedText>\n        {Platform.select({\n          ios: (\n            <ThemedText>\n              The <ThemedText type=\"defaultSemiBold\">components/ParallaxScrollView.tsx</ThemedText>{' '}\n              component provides a parallax effect for the header image.\n            </ThemedText>\n          ),\n        })}\n      </Collapsible>\n    </ParallaxScrollView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  headerImage: {\n    color: '#808080',\n    bottom: -90,\n    left: -35,\n    position: 'absolute',\n  },\n  titleContainer: {\n    flexDirection: 'row',\n    gap: 8,\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/app/(tabs)/index.tsx",
    "content": "import { StyleSheet, View } from \"react-native\";\n\nimport ApacheLogo from \"@/components/icons/logos/apache\";\nimport BadgeCheckIcon from \"@/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"@/components/icons/lucide/cloud-download\";\nimport AccountIcon from \"@/components/icons/mdi/account\";\nimport HomeIcon from \"@/components/icons/mdi/home\";\nimport AtomIcon from \"@/components/icons/logos/atom-icon\";\n\nexport default function HomeScreen() {\n  return (\n    <View style={styles.container}>\n      <ApacheLogo width={32} height={32} />\n      <BadgeCheckIcon color=\"aqua\" width={32} height={32} />\n      <CloudDownloadIcon color=\"aqua\" width={32} height={32} />\n      <AccountIcon color=\"aqua\" width={32} height={32} />\n      <HomeIcon color=\"aqua\" width={32} height={32} />\n      <AtomIcon width={32} height={32} />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    flexDirection: \"row\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    gap: 10,\n  },\n  reactLogo: {\n    height: 178,\n    width: 290,\n    bottom: 0,\n    left: 0,\n    position: \"absolute\",\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/app/+not-found.tsx",
    "content": "import { Link, Stack } from 'expo-router';\nimport { StyleSheet } from 'react-native';\n\nimport { ThemedText } from '@/components/ThemedText';\nimport { ThemedView } from '@/components/ThemedView';\n\nexport default function NotFoundScreen() {\n  return (\n    <>\n      <Stack.Screen options={{ title: 'Oops!' }} />\n      <ThemedView style={styles.container}>\n        <ThemedText type=\"title\">This screen does not exist.</ThemedText>\n        <Link href=\"/\" style={styles.link}>\n          <ThemedText type=\"link\">Go to home screen!</ThemedText>\n        </Link>\n      </ThemedView>\n    </>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center',\n    padding: 20,\n  },\n  link: {\n    marginTop: 15,\n    paddingVertical: 15,\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/app/_layout.tsx",
    "content": "import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';\nimport { useFonts } from 'expo-font';\nimport { Stack } from 'expo-router';\nimport { StatusBar } from 'expo-status-bar';\nimport 'react-native-reanimated';\n\nimport { useColorScheme } from '@/hooks/useColorScheme';\n\nexport default function RootLayout() {\n  const colorScheme = useColorScheme();\n  const [loaded] = useFonts({\n    SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),\n  });\n\n  if (!loaded) {\n    // Async font loading only occurs in development.\n    return null;\n  }\n\n  return (\n    <ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>\n      <Stack>\n        <Stack.Screen name=\"(tabs)\" options={{ headerShown: false }} />\n        <Stack.Screen name=\"+not-found\" />\n      </Stack>\n      <StatusBar style=\"auto\" />\n    </ThemeProvider>\n  );\n}\n"
  },
  {
    "path": "examples/react-native-app/app.json",
    "content": "{\n  \"expo\": {\n    \"name\": \"react-native-app\",\n    \"slug\": \"react-native-app\",\n    \"version\": \"1.0.0\",\n    \"orientation\": \"portrait\",\n    \"icon\": \"./assets/images/icon.png\",\n    \"scheme\": \"reactnativeapp\",\n    \"userInterfaceStyle\": \"automatic\",\n    \"newArchEnabled\": true,\n    \"ios\": {\n      \"supportsTablet\": true\n    },\n    \"android\": {\n      \"adaptiveIcon\": {\n        \"foregroundImage\": \"./assets/images/adaptive-icon.png\",\n        \"backgroundColor\": \"#ffffff\"\n      },\n      \"edgeToEdgeEnabled\": true\n    },\n    \"web\": {\n      \"bundler\": \"metro\",\n      \"output\": \"static\",\n      \"favicon\": \"./assets/images/favicon.png\"\n    },\n    \"plugins\": [\n      \"expo-router\",\n      [\n        \"expo-splash-screen\",\n        {\n          \"image\": \"./assets/images/splash-icon.png\",\n          \"imageWidth\": 200,\n          \"resizeMode\": \"contain\",\n          \"backgroundColor\": \"#ffffff\"\n        }\n      ],\n      \"expo-font\"\n    ],\n    \"experiments\": {\n      \"typedRoutes\": true\n    }\n  }\n}\n"
  },
  {
    "path": "examples/react-native-app/components/Collapsible.tsx",
    "content": "import { PropsWithChildren, useState } from 'react';\nimport { StyleSheet, TouchableOpacity } from 'react-native';\n\nimport { ThemedText } from '@/components/ThemedText';\nimport { ThemedView } from '@/components/ThemedView';\nimport { IconSymbol } from '@/components/ui/IconSymbol';\nimport { Colors } from '@/constants/Colors';\nimport { useColorScheme } from '@/hooks/useColorScheme';\n\nexport function Collapsible({ children, title }: PropsWithChildren & { title: string }) {\n  const [isOpen, setIsOpen] = useState(false);\n  const theme = useColorScheme() ?? 'light';\n\n  return (\n    <ThemedView>\n      <TouchableOpacity\n        style={styles.heading}\n        onPress={() => setIsOpen((value) => !value)}\n        activeOpacity={0.8}>\n        <IconSymbol\n          name=\"chevron.right\"\n          size={18}\n          weight=\"medium\"\n          color={theme === 'light' ? Colors.light.icon : Colors.dark.icon}\n          style={{ transform: [{ rotate: isOpen ? '90deg' : '0deg' }] }}\n        />\n\n        <ThemedText type=\"defaultSemiBold\">{title}</ThemedText>\n      </TouchableOpacity>\n      {isOpen && <ThemedView style={styles.content}>{children}</ThemedView>}\n    </ThemedView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  heading: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 6,\n  },\n  content: {\n    marginTop: 6,\n    marginLeft: 24,\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/components/ExternalLink.tsx",
    "content": "import { Href, Link } from 'expo-router';\nimport { openBrowserAsync } from 'expo-web-browser';\nimport { type ComponentProps } from 'react';\nimport { Platform } from 'react-native';\n\ntype Props = Omit<ComponentProps<typeof Link>, 'href'> & { href: Href & string };\n\nexport function ExternalLink({ href, ...rest }: Props) {\n  return (\n    <Link\n      target=\"_blank\"\n      {...rest}\n      href={href}\n      onPress={async (event) => {\n        if (Platform.OS !== 'web') {\n          // Prevent the default behavior of linking to the default browser on native.\n          event.preventDefault();\n          // Open the link in an in-app browser.\n          await openBrowserAsync(href);\n        }\n      }}\n    />\n  );\n}\n"
  },
  {
    "path": "examples/react-native-app/components/HapticTab.tsx",
    "content": "import { BottomTabBarButtonProps } from '@react-navigation/bottom-tabs';\nimport { PlatformPressable } from '@react-navigation/elements';\nimport * as Haptics from 'expo-haptics';\n\nexport function HapticTab(props: BottomTabBarButtonProps) {\n  return (\n    <PlatformPressable\n      {...props}\n      onPressIn={(ev) => {\n        if (process.env.EXPO_OS === 'ios') {\n          // Add a soft haptic feedback when pressing down on the tabs.\n          Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);\n        }\n        props.onPressIn?.(ev);\n      }}\n    />\n  );\n}\n"
  },
  {
    "path": "examples/react-native-app/components/HelloWave.tsx",
    "content": "import { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n  useAnimatedStyle,\n  useSharedValue,\n  withRepeat,\n  withSequence,\n  withTiming,\n} from 'react-native-reanimated';\n\nimport { ThemedText } from '@/components/ThemedText';\n\nexport function HelloWave() {\n  const rotationAnimation = useSharedValue(0);\n\n  useEffect(() => {\n    rotationAnimation.value = withRepeat(\n      withSequence(withTiming(25, { duration: 150 }), withTiming(0, { duration: 150 })),\n      4 // Run the animation 4 times\n    );\n  }, [rotationAnimation]);\n\n  const animatedStyle = useAnimatedStyle(() => ({\n    transform: [{ rotate: `${rotationAnimation.value}deg` }],\n  }));\n\n  return (\n    <Animated.View style={animatedStyle}>\n      <ThemedText style={styles.text}>👋</ThemedText>\n    </Animated.View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  text: {\n    fontSize: 28,\n    lineHeight: 32,\n    marginTop: -6,\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/components/ParallaxScrollView.tsx",
    "content": "import type { PropsWithChildren, ReactElement } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n  interpolate,\n  useAnimatedRef,\n  useAnimatedStyle,\n  useScrollViewOffset,\n} from 'react-native-reanimated';\n\nimport { ThemedView } from '@/components/ThemedView';\nimport { useBottomTabOverflow } from '@/components/ui/TabBarBackground';\nimport { useColorScheme } from '@/hooks/useColorScheme';\n\nconst HEADER_HEIGHT = 250;\n\ntype Props = PropsWithChildren<{\n  headerImage: ReactElement;\n  headerBackgroundColor: { dark: string; light: string };\n}>;\n\nexport default function ParallaxScrollView({\n  children,\n  headerImage,\n  headerBackgroundColor,\n}: Props) {\n  const colorScheme = useColorScheme() ?? 'light';\n  const scrollRef = useAnimatedRef<Animated.ScrollView>();\n  const scrollOffset = useScrollViewOffset(scrollRef);\n  const bottom = useBottomTabOverflow();\n  const headerAnimatedStyle = useAnimatedStyle(() => {\n    return {\n      transform: [\n        {\n          translateY: interpolate(\n            scrollOffset.value,\n            [-HEADER_HEIGHT, 0, HEADER_HEIGHT],\n            [-HEADER_HEIGHT / 2, 0, HEADER_HEIGHT * 0.75]\n          ),\n        },\n        {\n          scale: interpolate(scrollOffset.value, [-HEADER_HEIGHT, 0, HEADER_HEIGHT], [2, 1, 1]),\n        },\n      ],\n    };\n  });\n\n  return (\n    <ThemedView style={styles.container}>\n      <Animated.ScrollView\n        ref={scrollRef}\n        scrollEventThrottle={16}\n        scrollIndicatorInsets={{ bottom }}\n        contentContainerStyle={{ paddingBottom: bottom }}>\n        <Animated.View\n          style={[\n            styles.header,\n            { backgroundColor: headerBackgroundColor[colorScheme] },\n            headerAnimatedStyle,\n          ]}>\n          {headerImage}\n        </Animated.View>\n        <ThemedView style={styles.content}>{children}</ThemedView>\n      </Animated.ScrollView>\n    </ThemedView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n  },\n  header: {\n    height: HEADER_HEIGHT,\n    overflow: 'hidden',\n  },\n  content: {\n    flex: 1,\n    padding: 32,\n    gap: 16,\n    overflow: 'hidden',\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/components/ThemedText.tsx",
    "content": "import { StyleSheet, Text, type TextProps } from 'react-native';\n\nimport { useThemeColor } from '@/hooks/useThemeColor';\n\nexport type ThemedTextProps = TextProps & {\n  lightColor?: string;\n  darkColor?: string;\n  type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link';\n};\n\nexport function ThemedText({\n  style,\n  lightColor,\n  darkColor,\n  type = 'default',\n  ...rest\n}: ThemedTextProps) {\n  const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text');\n\n  return (\n    <Text\n      style={[\n        { color },\n        type === 'default' ? styles.default : undefined,\n        type === 'title' ? styles.title : undefined,\n        type === 'defaultSemiBold' ? styles.defaultSemiBold : undefined,\n        type === 'subtitle' ? styles.subtitle : undefined,\n        type === 'link' ? styles.link : undefined,\n        style,\n      ]}\n      {...rest}\n    />\n  );\n}\n\nconst styles = StyleSheet.create({\n  default: {\n    fontSize: 16,\n    lineHeight: 24,\n  },\n  defaultSemiBold: {\n    fontSize: 16,\n    lineHeight: 24,\n    fontWeight: '600',\n  },\n  title: {\n    fontSize: 32,\n    fontWeight: 'bold',\n    lineHeight: 32,\n  },\n  subtitle: {\n    fontSize: 20,\n    fontWeight: 'bold',\n  },\n  link: {\n    lineHeight: 30,\n    fontSize: 16,\n    color: '#0a7ea4',\n  },\n});\n"
  },
  {
    "path": "examples/react-native-app/components/ThemedView.tsx",
    "content": "import { View, type ViewProps } from 'react-native';\n\nimport { useThemeColor } from '@/hooks/useThemeColor';\n\nexport type ThemedViewProps = ViewProps & {\n  lightColor?: string;\n  darkColor?: string;\n};\n\nexport function ThemedView({ style, lightColor, darkColor, ...otherProps }: ThemedViewProps) {\n  const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, 'background');\n\n  return <View style={[{ backgroundColor }, style]} {...otherProps} />;\n}\n"
  },
  {
    "path": "examples/react-native-app/components/icons/feather/activity.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst ActivityIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M22 12h-4l-3 9L9 3l-3 9H2\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default ActivityIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/feather/alert-circle.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst AlertCircleIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 8v4m0 4h.01\"/></g></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default AlertCircleIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/logos/active-campaign.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst ActiveCampaignIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\"><path fill=\"#004CFF\" d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default ActiveCampaignIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/logos/apache.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst ApacheIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><defs><linearGradient id=\"logosApache0\" x1=\"16.363%\" x2=\"159.99%\" y1=\"63.905%\" y2=\"20.213%\"><stop offset=\"0%\" stop-color=\"#F69923\"/><stop offset=\"31.23%\" stop-color=\"#F79A23\"/><stop offset=\"83.83%\" stop-color=\"#E97826\"/></linearGradient><linearGradient id=\"logosApache1\" x1=\"-217.651%\" x2=\"74.743%\" y1=\"394.672%\" y2=\"13.846%\"><stop offset=\"32.33%\" stop-color=\"#9E2064\"/><stop offset=\"63.02%\" stop-color=\"#C92037\"/><stop offset=\"75.14%\" stop-color=\"#CD2335\"/><stop offset=\"100%\" stop-color=\"#E97826\"/></linearGradient><linearGradient id=\"logosApache2\" x1=\"-80.044%\" x2=\"146.24%\" y1=\"170.418%\" y2=\"-44.299%\"><stop offset=\"32.33%\" stop-color=\"#9E2064\"/><stop offset=\"63.02%\" stop-color=\"#C92037\"/><stop offset=\"75.14%\" stop-color=\"#CD2335\"/><stop offset=\"100%\" stop-color=\"#E97826\"/></linearGradient><linearGradient id=\"logosApache3\" x1=\"-18.316%\" x2=\"165.002%\" y1=\"77.36%\" y2=\"-41.416%\"><stop offset=\"0%\" stop-color=\"#282662\"/><stop offset=\"9.548%\" stop-color=\"#662E8D\"/><stop offset=\"78.82%\" stop-color=\"#9F2064\"/><stop offset=\"94.87%\" stop-color=\"#CD2032\"/></linearGradient><linearGradient id=\"logosApache4\" x1=\"-129.783%\" x2=\"66.456%\" y1=\"463.715%\" y2=\"17.19%\"><stop offset=\"32.33%\" stop-color=\"#9E2064\"/><stop offset=\"63.02%\" stop-color=\"#C92037\"/><stop offset=\"75.14%\" stop-color=\"#CD2335\"/><stop offset=\"100%\" stop-color=\"#E97826\"/></linearGradient><linearGradient id=\"logosApache5\" x1=\"-34.88%\" x2=\"110.599%\" y1=\"187.706%\" y2=\"-51.1%\"><stop offset=\"32.33%\" stop-color=\"#9E2064\"/><stop offset=\"63.02%\" stop-color=\"#C92037\"/><stop offset=\"75.14%\" stop-color=\"#CD2335\"/><stop offset=\"100%\" stop-color=\"#E97826\"/></linearGradient><linearGradient id=\"logosApache6\" x1=\"-20.619%\" x2=\"125.26%\" y1=\"192.564%\" y2=\"-136.906%\"><stop offset=\"0%\" stop-color=\"#282662\"/><stop offset=\"9.548%\" stop-color=\"#662E8D\"/><stop offset=\"78.82%\" stop-color=\"#9F2064\"/><stop offset=\"94.87%\" stop-color=\"#CD2032\"/></linearGradient></defs><path fill=\"url(#logosApache0)\" d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"/><path fill=\"url(#logosApache1)\" d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"/><path fill=\"url(#logosApache2)\" d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"/><path fill=\"url(#logosApache3)\" d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"/><path fill=\"url(#logosApache4)\" d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"/><path fill=\"url(#logosApache5)\" d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"/><path fill=\"url(#logosApache6)\" d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default ApacheIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/logos/atom-icon.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst AtomIconIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\"/><path fill=\"#FFF\" d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default AtomIconIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/lucide/badge-check.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst BadgeCheckIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"/><path d=\"m9 12l2 2l4-4\"/></g></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default BadgeCheckIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/lucide/cloud-download.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst CloudDownloadIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12 13v8l-4-4m4 4l4-4\"/><path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\"/></g></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default CloudDownloadIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/mdi/account-badge-outline.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst AccountBadgeOutlineIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default AccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/mdi/account.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst AccountIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default AccountIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/icons/mdi/home.tsx",
    "content": "import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst HomeIcon = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\"/></svg>`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default HomeIcon;\n"
  },
  {
    "path": "examples/react-native-app/components/ui/IconSymbol.ios.tsx",
    "content": "import { SymbolView, SymbolViewProps, SymbolWeight } from 'expo-symbols';\nimport { StyleProp, ViewStyle } from 'react-native';\n\nexport function IconSymbol({\n  name,\n  size = 24,\n  color,\n  style,\n  weight = 'regular',\n}: {\n  name: SymbolViewProps['name'];\n  size?: number;\n  color: string;\n  style?: StyleProp<ViewStyle>;\n  weight?: SymbolWeight;\n}) {\n  return (\n    <SymbolView\n      weight={weight}\n      tintColor={color}\n      resizeMode=\"scaleAspectFit\"\n      name={name}\n      style={[\n        {\n          width: size,\n          height: size,\n        },\n        style,\n      ]}\n    />\n  );\n}\n"
  },
  {
    "path": "examples/react-native-app/components/ui/IconSymbol.tsx",
    "content": "// Fallback for using MaterialIcons on Android and web.\n\nimport MaterialIcons from '@expo/vector-icons/MaterialIcons';\nimport { SymbolWeight, SymbolViewProps } from 'expo-symbols';\nimport { ComponentProps } from 'react';\nimport { OpaqueColorValue, type StyleProp, type TextStyle } from 'react-native';\n\ntype IconMapping = Record<SymbolViewProps['name'], ComponentProps<typeof MaterialIcons>['name']>;\ntype IconSymbolName = keyof typeof MAPPING;\n\n/**\n * Add your SF Symbols to Material Icons mappings here.\n * - see Material Icons in the [Icons Directory](https://icons.expo.fyi).\n * - see SF Symbols in the [SF Symbols](https://developer.apple.com/sf-symbols/) app.\n */\nconst MAPPING = {\n  'house.fill': 'home',\n  'paperplane.fill': 'send',\n  'chevron.left.forwardslash.chevron.right': 'code',\n  'chevron.right': 'chevron-right',\n} as IconMapping;\n\n/**\n * An icon component that uses native SF Symbols on iOS, and Material Icons on Android and web.\n * This ensures a consistent look across platforms, and optimal resource usage.\n * Icon `name`s are based on SF Symbols and require manual mapping to Material Icons.\n */\nexport function IconSymbol({\n  name,\n  size = 24,\n  color,\n  style,\n}: {\n  name: IconSymbolName;\n  size?: number;\n  color: string | OpaqueColorValue;\n  style?: StyleProp<TextStyle>;\n  weight?: SymbolWeight;\n}) {\n  return <MaterialIcons color={color} size={size} name={MAPPING[name]} style={style} />;\n}\n"
  },
  {
    "path": "examples/react-native-app/components/ui/TabBarBackground.ios.tsx",
    "content": "import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs';\nimport { BlurView } from 'expo-blur';\nimport { StyleSheet } from 'react-native';\n\nexport default function BlurTabBarBackground() {\n  return (\n    <BlurView\n      // System chrome material automatically adapts to the system's theme\n      // and matches the native tab bar appearance on iOS.\n      tint=\"systemChromeMaterial\"\n      intensity={100}\n      style={StyleSheet.absoluteFill}\n    />\n  );\n}\n\nexport function useBottomTabOverflow() {\n  return useBottomTabBarHeight();\n}\n"
  },
  {
    "path": "examples/react-native-app/components/ui/TabBarBackground.tsx",
    "content": "// This is a shim for web and Android where the tab bar is generally opaque.\nexport default undefined;\n\nexport function useBottomTabOverflow() {\n  return 0;\n}\n"
  },
  {
    "path": "examples/react-native-app/constants/Colors.ts",
    "content": "/**\n * Below are the colors that are used in the app. The colors are defined in the light and dark mode.\n * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.\n */\n\nconst tintColorLight = '#0a7ea4';\nconst tintColorDark = '#fff';\n\nexport const Colors = {\n  light: {\n    text: '#11181C',\n    background: '#fff',\n    tint: tintColorLight,\n    icon: '#687076',\n    tabIconDefault: '#687076',\n    tabIconSelected: tintColorLight,\n  },\n  dark: {\n    text: '#ECEDEE',\n    background: '#151718',\n    tint: tintColorDark,\n    icon: '#9BA1A6',\n    tabIconDefault: '#9BA1A6',\n    tabIconSelected: tintColorDark,\n  },\n};\n"
  },
  {
    "path": "examples/react-native-app/eslint.config.js",
    "content": "// https://docs.expo.dev/guides/using-eslint/\nconst { defineConfig } = require('eslint/config');\nconst expoConfig = require('eslint-config-expo/flat');\n\nmodule.exports = defineConfig([\n  expoConfig,\n  {\n    ignores: ['dist/*'],\n  },\n]);\n"
  },
  {
    "path": "examples/react-native-app/hooks/useColorScheme.ts",
    "content": "export { useColorScheme } from 'react-native';\n"
  },
  {
    "path": "examples/react-native-app/hooks/useColorScheme.web.ts",
    "content": "import { useEffect, useState } from 'react';\nimport { useColorScheme as useRNColorScheme } from 'react-native';\n\n/**\n * To support static rendering, this value needs to be re-calculated on the client side for web\n */\nexport function useColorScheme() {\n  const [hasHydrated, setHasHydrated] = useState(false);\n\n  useEffect(() => {\n    setHasHydrated(true);\n  }, []);\n\n  const colorScheme = useRNColorScheme();\n\n  if (hasHydrated) {\n    return colorScheme;\n  }\n\n  return 'light';\n}\n"
  },
  {
    "path": "examples/react-native-app/hooks/useThemeColor.ts",
    "content": "/**\n * Learn more about light and dark modes:\n * https://docs.expo.dev/guides/color-schemes/\n */\n\nimport { Colors } from '@/constants/Colors';\nimport { useColorScheme } from '@/hooks/useColorScheme';\n\nexport function useThemeColor(\n  props: { light?: string; dark?: string },\n  colorName: keyof typeof Colors.light & keyof typeof Colors.dark\n) {\n  const theme = useColorScheme() ?? 'light';\n  const colorFromProps = props[theme];\n\n  if (colorFromProps) {\n    return colorFromProps;\n  } else {\n    return Colors[theme][colorName];\n  }\n}\n"
  },
  {
    "path": "examples/react-native-app/metro.config.js",
    "content": "// Learn more https://docs.expo.io/guides/customizing-metro\nconst { getDefaultConfig } = require(\"expo/metro-config\");\nconst { withMonicon } = require(\"@monicon/metro\");\nconst path = require(\"path\");\n\n// Find the workspace root, this can be replaced with `find-yarn-workspace-root`\nconst workspaceRoot = path.resolve(__dirname, \"../..\");\nconst projectRoot = __dirname;\n\nconst config = getDefaultConfig(projectRoot);\n\nconst configWithMonicon = withMonicon(config);\n\n// 1. Watch all files within the monorepo\nconfigWithMonicon.watchFolders = [workspaceRoot];\n// 2. Let Metro know where to resolve packages, and in what order\nconfigWithMonicon.resolver.nodeModulesPaths = [\n  path.resolve(projectRoot, \"node_modules\"),\n  path.resolve(workspaceRoot, \"node_modules\"),\n];\n// 3. Force Metro to resolve (sub)dependencies only from the `nodeModulesPaths`\nconfigWithMonicon.resolver.disableHierarchicalLookup = true;\n\nmodule.exports = configWithMonicon;\n"
  },
  {
    "path": "examples/react-native-app/monicon.config.ts",
    "content": "import { debuggerPlugin, reactNative, clean } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { type MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  collections: [],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"components/icons\"] }),\n    reactNative({ outputPath: \"components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/react-native-app/package.json",
    "content": "{\n  \"name\": \"@monicon/react-native-app\",\n  \"main\": \"expo-router/entry\",\n  \"version\": \"1.0.0\",\n  \"scripts\": {\n    \"start\": \"expo start\",\n    \"android\": \"expo start --android\",\n    \"ios\": \"expo start --ios\",\n    \"web\": \"expo start --web\",\n    \"lint\": \"expo lint\"\n  },\n  \"dependencies\": {\n    \"@expo/vector-icons\": \"~14.0.4\",\n    \"@monicon/metro\": \"*\",\n    \"@monicon/webpack\": \"*\",\n    \"@monicon/core\": \"*\",\n    \"@react-navigation/bottom-tabs\": \"^7.3.10\",\n    \"@react-navigation/elements\": \"^2.3.8\",\n    \"@react-navigation/native\": \"^7.1.6\",\n    \"expo\": \"52\",\n    \"expo-blur\": \"~14.0.3\",\n    \"expo-constants\": \"~17.0.8\",\n    \"expo-font\": \"~13.0.4\",\n    \"expo-haptics\": \"~14.0.1\",\n    \"expo-image\": \"~2.0.7\",\n    \"expo-linking\": \"~7.0.5\",\n    \"expo-router\": \"~4.0.21\",\n    \"expo-splash-screen\": \"~0.29.24\",\n    \"expo-status-bar\": \"~2.0.1\",\n    \"expo-symbols\": \"~0.2.2\",\n    \"expo-system-ui\": \"~4.0.9\",\n    \"expo-web-browser\": \"~14.0.2\",\n    \"react\": \"18.3.1\",\n    \"react-dom\": \"18.3.1\",\n    \"react-native\": \"0.76.9\",\n    \"react-native-gesture-handler\": \"~2.20.2\",\n    \"react-native-reanimated\": \"~3.16.1\",\n    \"react-native-safe-area-context\": \"4.12.0\",\n    \"react-native-screens\": \"~4.4.0\",\n    \"react-native-svg\": \"15.8.0\",\n    \"react-native-web\": \"~0.19.13\",\n    \"react-native-webview\": \"13.12.5\"\n  },\n  \"devDependencies\": {\n    \"@babel/core\": \"^7.25.2\",\n    \"@types/react\": \"~18.3.12\",\n    \"eslint\": \"^9.25.0\",\n    \"eslint-config-expo\": \"~8.0.1\",\n    \"typescript\": \"~5.8.3\"\n  },\n  \"private\": true\n}\n"
  },
  {
    "path": "examples/react-native-app/tsconfig.json",
    "content": "{\n  \"extends\": \"expo/tsconfig.base\",\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"paths\": {\n      \"@/*\": [\n        \"./*\"\n      ]\n    }\n  },\n  \"include\": [\n    \"**/*.ts\",\n    \"**/*.tsx\",\n    \".expo/types/**/*.ts\",\n    \"expo-env.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "examples/remix/.eslintrc.cjs",
    "content": "/**\n * This is intended to be a basic starting point for linting in your app.\n * It relies on recommended configs out of the box for simplicity, but you can\n * and should modify this configuration to best suit your team's needs.\n */\n\nconst path = require(\"path\");\n\n/** @type {import('eslint').Linter.Config} */\nmodule.exports = {\n  root: true,\n  parserOptions: {\n    ecmaVersion: \"latest\",\n    sourceType: \"module\",\n    ecmaFeatures: {\n      jsx: true,\n    },\n  },\n  env: {\n    browser: true,\n    commonjs: true,\n    es6: true,\n  },\n  ignorePatterns: [\"!**/.server\", \"!**/.client\"],\n\n  // Base config\n  extends: [\"eslint:recommended\"],\n\n  overrides: [\n    // React\n    {\n      files: [\"**/*.{js,jsx,ts,tsx}\"],\n      plugins: [\"react\", \"jsx-a11y\"],\n      extends: [\n        \"plugin:react/recommended\",\n        \"plugin:react/jsx-runtime\",\n        \"plugin:react-hooks/recommended\",\n        \"plugin:jsx-a11y/recommended\",\n      ],\n      settings: {\n        react: {\n          version: \"detect\",\n        },\n        formComponents: [\"Form\"],\n        linkComponents: [\n          { name: \"Link\", linkAttribute: \"to\" },\n          { name: \"NavLink\", linkAttribute: \"to\" },\n        ],\n      },\n    },\n\n    // Typescript\n    {\n      files: [\"**/*.{ts,tsx}\"],\n      plugins: [\"@typescript-eslint\", \"import\"],\n      parser: \"@typescript-eslint/parser\",\n      parserOptions: {\n        project: path.resolve(__dirname, \"./tsconfig.json\"),\n      },\n      settings: {\n        \"import/internal-regex\": \"^~/\",\n        \"import/resolver\": {\n          typescript: {\n            alwaysTryTypes: true,\n            project: path.resolve(__dirname, \"./tsconfig.json\"),\n            extensions: [\".ts\", \".tsx\", \".js\", \".jsx\"],\n          },\n        },\n        \"import/extensions\": [\".ts\", \".tsx\", \".js\", \".jsx\"],\n      },\n      extends: [\n        \"plugin:@typescript-eslint/recommended\",\n        \"plugin:import/recommended\",\n        \"plugin:import/typescript\",\n      ],\n    },\n\n    // Node\n    {\n      files: [\".eslintrc.cjs\"],\n      env: {\n        node: true,\n      },\n    },\n  ],\n};\n"
  },
  {
    "path": "examples/remix/.gitignore",
    "content": "node_modules\n\n/.cache\n/build\n.env\n"
  },
  {
    "path": "examples/remix/README.md",
    "content": "# Welcome to Remix!\n\n- 📖 [Remix docs](https://remix.run/docs)\n\n## Development\n\nRun the dev server:\n\n```shellscript\nnpm run dev\n```\n\n## Deployment\n\nFirst, build your app for production:\n\n```sh\nnpm run build\n```\n\nThen run the app in production mode:\n\n```sh\nnpm start\n```\n\nNow you'll need to pick a host to deploy it to.\n\n### DIY\n\nIf you're familiar with deploying Node applications, the built-in Remix app server is production-ready.\n\nMake sure to deploy the output of `npm run build`\n\n- `build/server`\n- `build/client`\n\n## Styling\n\nThis template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever css framework you prefer. See the [Vite docs on css](https://vitejs.dev/guide/features.html#css) for more information.\n"
  },
  {
    "path": "examples/remix/app/components/icons/feather/activity.tsx",
    "content": "import React from \"react\";\n\nconst FeatherActivityIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n        d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n      />\n    </svg>\n  );\n};\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/feather/alert-circle.tsx",
    "content": "import React from \"react\";\n\nconst FeatherAlertCircleIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <circle cx=\"12\" cy=\"12\" r=\"10\" />\n        <path d=\"M12 8v4m0 4h.01\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/logos/active-campaign.tsx",
    "content": "import React from \"react\";\n\nconst LogosActiveCampaignIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n      <path\n        fill=\"#004CFF\"\n        d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/logos/apache.tsx",
    "content": "import React from \"react\";\n\nconst LogosApacheIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#F69923\" />\n          <stop offset=\"31.23%\" stopColor=\"#F79A23\" />\n          <stop offset=\"83.83%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/logos/atom-icon.tsx",
    "content": "import React from \"react\";\n\nconst LogosAtomIconIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/lucide/badge-check.tsx",
    "content": "import React from \"react\";\n\nconst LucideBadgeCheckIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n        <path d=\"m9 12l2 2l4-4\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/lucide/cloud-download.tsx",
    "content": "import React from \"react\";\n\nconst LucideCloudDownloadIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n        <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/mdi/account-badge-outline.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountBadgeOutlineIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/mdi/account.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/remix/app/components/icons/mdi/home.tsx",
    "content": "import React from \"react\";\n\nconst MdiHomeIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/remix/app/entry.client.tsx",
    "content": "/**\n * By default, Remix will handle hydrating your app on the client for you.\n * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨\n * For more information, see https://remix.run/file-conventions/entry.client\n */\n\nimport { RemixBrowser } from \"@remix-run/react\";\nimport { startTransition, StrictMode } from \"react\";\nimport { hydrateRoot } from \"react-dom/client\";\n\nstartTransition(() => {\n  hydrateRoot(\n    document,\n    <StrictMode>\n      <RemixBrowser />\n    </StrictMode>\n  );\n});\n"
  },
  {
    "path": "examples/remix/app/entry.server.tsx",
    "content": "/**\n * By default, Remix will handle generating the HTTP Response for you.\n * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨\n * For more information, see https://remix.run/file-conventions/entry.server\n */\n\nimport { PassThrough } from \"node:stream\";\n\nimport type { AppLoadContext, EntryContext } from \"@remix-run/node\";\nimport { createReadableStreamFromReadable } from \"@remix-run/node\";\nimport { RemixServer } from \"@remix-run/react\";\nimport { isbot } from \"isbot\";\nimport { renderToPipeableStream } from \"react-dom/server\";\n\nconst ABORT_DELAY = 5_000;\n\nexport default function handleRequest(\n  request: Request,\n  responseStatusCode: number,\n  responseHeaders: Headers,\n  remixContext: EntryContext,\n  // This is ignored so we can keep it in the template for visibility.  Feel\n  // free to delete this parameter in your app if you're not using it!\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  loadContext: AppLoadContext\n) {\n  return isbot(request.headers.get(\"user-agent\") || \"\")\n    ? handleBotRequest(\n        request,\n        responseStatusCode,\n        responseHeaders,\n        remixContext\n      )\n    : handleBrowserRequest(\n        request,\n        responseStatusCode,\n        responseHeaders,\n        remixContext\n      );\n}\n\nfunction handleBotRequest(\n  request: Request,\n  responseStatusCode: number,\n  responseHeaders: Headers,\n  remixContext: EntryContext\n) {\n  return new Promise((resolve, reject) => {\n    let shellRendered = false;\n    const { pipe, abort } = renderToPipeableStream(\n      <RemixServer\n        context={remixContext}\n        url={request.url}\n        abortDelay={ABORT_DELAY}\n      />,\n      {\n        onAllReady() {\n          shellRendered = true;\n          const body = new PassThrough();\n          const stream = createReadableStreamFromReadable(body);\n\n          responseHeaders.set(\"Content-Type\", \"text/html\");\n\n          resolve(\n            new Response(stream, {\n              headers: responseHeaders,\n              status: responseStatusCode,\n            })\n          );\n\n          pipe(body);\n        },\n        onShellError(error: unknown) {\n          reject(error);\n        },\n        onError(error: unknown) {\n          responseStatusCode = 500;\n          // Log streaming rendering errors from inside the shell.  Don't log\n          // errors encountered during initial shell rendering since they'll\n          // reject and get logged in handleDocumentRequest.\n          if (shellRendered) {\n            console.error(error);\n          }\n        },\n      }\n    );\n\n    setTimeout(abort, ABORT_DELAY);\n  });\n}\n\nfunction handleBrowserRequest(\n  request: Request,\n  responseStatusCode: number,\n  responseHeaders: Headers,\n  remixContext: EntryContext\n) {\n  return new Promise((resolve, reject) => {\n    let shellRendered = false;\n    const { pipe, abort } = renderToPipeableStream(\n      <RemixServer\n        context={remixContext}\n        url={request.url}\n        abortDelay={ABORT_DELAY}\n      />,\n      {\n        onShellReady() {\n          shellRendered = true;\n          const body = new PassThrough();\n          const stream = createReadableStreamFromReadable(body);\n\n          responseHeaders.set(\"Content-Type\", \"text/html\");\n\n          resolve(\n            new Response(stream, {\n              headers: responseHeaders,\n              status: responseStatusCode,\n            })\n          );\n\n          pipe(body);\n        },\n        onShellError(error: unknown) {\n          reject(error);\n        },\n        onError(error: unknown) {\n          responseStatusCode = 500;\n          // Log streaming rendering errors from inside the shell.  Don't log\n          // errors encountered during initial shell rendering since they'll\n          // reject and get logged in handleDocumentRequest.\n          if (shellRendered) {\n            console.error(error);\n          }\n        },\n      }\n    );\n\n    setTimeout(abort, ABORT_DELAY);\n  });\n}\n"
  },
  {
    "path": "examples/remix/app/root.tsx",
    "content": "import {\n  Links,\n  Meta,\n  Outlet,\n  Scripts,\n  ScrollRestoration,\n} from \"@remix-run/react\";\nimport type { LinksFunction } from \"@remix-run/node\";\n\nimport stylesheet from \"./tailwind.css?url\";\n\nexport const links: LinksFunction = () => [\n  { rel: \"preconnect\", href: \"https://fonts.googleapis.com\" },\n  {\n    rel: \"preconnect\",\n    href: \"https://fonts.gstatic.com\",\n    crossOrigin: \"anonymous\",\n  },\n  {\n    rel: \"stylesheet\",\n    href: \"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap\",\n  },\n  { rel: \"stylesheet\", href: stylesheet },\n];\n\nexport function Layout({ children }: { children: React.ReactNode }) {\n  return (\n    <html lang=\"en\">\n      <head>\n        <meta charSet=\"utf-8\" />\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n        <Meta />\n        <Links />\n      </head>\n      <body>\n        {children}\n        <ScrollRestoration />\n        <Scripts />\n      </body>\n    </html>\n  );\n}\n\nexport default function App() {\n  return <Outlet />;\n}\n"
  },
  {
    "path": "examples/remix/app/routes/_index.tsx",
    "content": "import type { MetaFunction } from \"@remix-run/node\";\n\nimport HomeIcon from \"~/components/icons/mdi/home\";\nimport BadgeCheckIcon from \"~/components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"~/components/icons/lucide/cloud-download\";\nimport AccountIcon from \"~/components/icons/mdi/account\";\nimport ApacheLogo from \"~/components/icons/logos/apache\";\nimport AtomIcon from \"~/components/icons/logos/atom-icon\";\n\nexport const meta: MetaFunction = () => {\n  return [\n    { title: \"New Remix App\" },\n    { name: \"description\", content: \"Welcome to Remix!\" },\n  ];\n};\n\nexport default function Index() {\n  return (\n    <div className=\"flex h-screen items-center justify-center gap-4\">\n      <ApacheLogo className=\"size-10\" />\n      <BadgeCheckIcon className=\"size-10\" />\n      <CloudDownloadIcon className=\"size-10\" />\n      <AccountIcon className=\"size-10\" />\n      <HomeIcon className=\"size-10\" />\n      <AtomIcon className=\"size-10\" />\n    </div>\n  );\n}\n"
  },
  {
    "path": "examples/remix/app/tailwind.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nhtml,\nbody {\n  @apply bg-white dark:bg-gray-950;\n\n  @media (prefers-color-scheme: dark) {\n    color-scheme: dark;\n  }\n}\n"
  },
  {
    "path": "examples/remix/monicon.config.ts",
    "content": "import { debuggerPlugin, react, clean } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"app/components/icons\"] }),\n    react({ outputPath: \"app/components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/remix/package.json",
    "content": "{\n  \"name\": \"@monicon/remix\",\n  \"private\": true,\n  \"sideEffects\": false,\n  \"type\": \"module\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"build\": \"remix vite:build\",\n    \"dev\": \"remix vite:dev\",\n    \"lint\": \"eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .\",\n    \"start\": \"remix-serve ./build/server/index.js\",\n    \"typecheck\": \"tsc\"\n  },\n  \"dependencies\": {\n    \"@remix-run/node\": \"^2.12.1\",\n    \"@remix-run/react\": \"^2.12.1\",\n    \"@remix-run/serve\": \"^2.12.1\",\n    \"isbot\": \"^4.1.0\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\"\n  },\n  \"devDependencies\": {\n    \"@iconify/json\": \"^2.2.256\",\n    \"@remix-run/dev\": \"^2.12.1\",\n    \"@types/react\": \"^18.2.20\",\n    \"@types/react-dom\": \"^18.2.7\",\n    \"@typescript-eslint/eslint-plugin\": \"^6.7.4\",\n    \"@typescript-eslint/parser\": \"^6.7.4\",\n    \"autoprefixer\": \"^10.4.19\",\n    \"eslint\": \"^8.38.0\",\n    \"eslint-import-resolver-typescript\": \"^3.6.1\",\n    \"eslint-plugin-import\": \"^2.28.1\",\n    \"eslint-plugin-jsx-a11y\": \"^6.7.1\",\n    \"eslint-plugin-react\": \"^7.33.2\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"postcss\": \"^8.4.38\",\n    \"tailwindcss\": \"^3.4.4\",\n    \"typescript\": \"^5.1.6\",\n    \"vite\": \"^6.0.2\",\n    \"vite-tsconfig-paths\": \"^4.2.1\",\n    \"@monicon/vite\": \"*\"\n  },\n  \"engines\": {\n    \"node\": \">=20.0.0\"\n  }\n}\n"
  },
  {
    "path": "examples/remix/postcss.config.js",
    "content": "export default {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n};\n"
  },
  {
    "path": "examples/remix/tailwind.config.ts",
    "content": "import type { Config } from \"tailwindcss\";\n\nexport default {\n  content: [\"./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}\"],\n  theme: {\n    extend: {\n      fontFamily: {\n        sans: [\n          '\"Inter\"',\n          \"ui-sans-serif\",\n          \"system-ui\",\n          \"sans-serif\",\n          '\"Apple Color Emoji\"',\n          '\"Segoe UI Emoji\"',\n          '\"Segoe UI Symbol\"',\n          '\"Noto Color Emoji\"',\n        ],\n      },\n    },\n  },\n  plugins: [],\n} satisfies Config;\n"
  },
  {
    "path": "examples/remix/tsconfig.json",
    "content": "{\n  \"include\": [\n    \"**/*.ts\",\n    \"**/*.tsx\",\n    \"**/.server/**/*.ts\",\n    \"**/.server/**/*.tsx\",\n    \"**/.client/**/*.ts\",\n    \"**/.client/**/*.tsx\"\n  ],\n  \"compilerOptions\": {\n    \"lib\": [\"DOM\", \"DOM.Iterable\", \"ES2022\"],\n    \"types\": [\"@remix-run/node\", \"vite/client\"],\n    \"isolatedModules\": true,\n    \"esModuleInterop\": true,\n    \"jsx\": \"react-jsx\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"Bundler\",\n    \"resolveJsonModule\": true,\n    \"target\": \"ES2022\",\n    \"strict\": true,\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"~/*\": [\"./app/*\"]\n    },\n\n    // Vite takes care of building everything, not tsc.\n    \"noEmit\": true\n  }\n}\n"
  },
  {
    "path": "examples/remix/vite.config.ts",
    "content": "import { vitePlugin as remix } from \"@remix-run/dev\";\nimport { defineConfig } from \"vite\";\nimport tsconfigPaths from \"vite-tsconfig-paths\";\nimport monicon from \"@monicon/vite\";\n\nexport default defineConfig({\n  plugins: [remix(), tsconfigPaths(), monicon()],\n});\n"
  },
  {
    "path": "examples/rollup-react/.babelrc",
    "content": "{\n  \"presets\": [\"@babel/preset-react\", \"@babel/preset-env\"]\n}\n"
  },
  {
    "path": "examples/rollup-react/.gitignore",
    "content": "public/bundle.js\n"
  },
  {
    "path": "examples/rollup-react/monicon.config.js",
    "content": "const { debuggerPlugin, react, clean } = require(\"@monicon/core/plugins\");\n\nmodule.exports = {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    react({ outputPath: \"src/components/icons\", format: \"jsx\" }),\n    clean({ patterns: [\"src/components/icons\"] }),\n    debuggerPlugin(),\n  ],\n};\n"
  },
  {
    "path": "examples/rollup-react/package.json",
    "content": "{\n  \"name\": \"@monicon/rollup-react\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"main\": \"index.js\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"build\": \"rollup -c --dev\",\n    \"dev\": \"rollup -c --watch\"\n  },\n  \"dependencies\": {\n    \"react\": \"^18.3.1\",\n    \"react-dom\": \"^18.3.1\"\n  },\n  \"devDependencies\": {\n    \"@babel/preset-env\": \"^7.25.7\",\n    \"@babel/preset-react\": \"^7.25.7\",\n    \"@monicon/rollup\": \"*\",\n    \"@rollup/plugin-babel\": \"^6.0.4\",\n    \"@rollup/plugin-commonjs\": \"^28.0.0\",\n    \"@rollup/plugin-node-resolve\": \"^15.3.0\",\n    \"@rollup/plugin-replace\": \"^6.0.1\",\n    \"rollup-plugin-serve\": \"^1.1.1\",\n    \"babel-core\": \"^6.26.3\",\n    \"babel-loader\": \"^9.2.1\",\n    \"rollup\": \"^4.24.0\",\n    \"typescript\": \"^5.6.2\"\n  }\n}\n"
  },
  {
    "path": "examples/rollup-react/public/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Rollup React App</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"bundle.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "examples/rollup-react/rollup.config.mjs",
    "content": "import nodeResolve from \"@rollup/plugin-node-resolve\";\nimport commonjs from \"@rollup/plugin-commonjs\";\nimport babel from \"@rollup/plugin-babel\";\nimport replace from \"@rollup/plugin-replace\";\nimport monicon from \"@monicon/rollup\";\nimport serve from \"rollup-plugin-serve\";\n\nconst isDev = process.env.NODE_ENV === \"development\";\n\n/** @type {import('rollup')} */\nexport default {\n  input: \"src/index.js\",\n  output: {\n    file: \"public/bundle.js\",\n    format: \"iife\",\n    inlineDynamicImports: true,\n  },\n  plugins: [\n    nodeResolve({\n      extensions: [\".js\", \".jsx\"],\n    }),\n    monicon(),\n    babel(),\n    commonjs(),\n    replace({\n      preventAssignment: false,\n      \"process.env.NODE_ENV\": '\"development\"',\n    }),\n    isDev ? serve({ contentBase: \"public\", port: 3000 }) : null,\n  ],\n};\n"
  },
  {
    "path": "examples/rollup-react/src/App.jsx",
    "content": "import React from \"react\";\n\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport AccountIcon from \"./components/icons/mdi/account\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport AtomIcon from \"./components/icons/logos/atom-icon\";\nimport ApacheLogo from \"./components/icons/logos/apache\";\n\nconst App = () => {\n  return (\n    <main\n      style={{\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        height: \"100vh\",\n        backgroundColor: \"black\",\n        gap: \"1rem\",\n      }}\n    >\n      <ApacheLogo color=\"white\" width={50} />\n      <BadgeCheckIcon color=\"white\" width={50} />\n      <CloudDownloadIcon color=\"white\" width={50} />\n      <AccountIcon color=\"white\" width={50} />\n      <HomeIcon color=\"white\" width={50} />\n      <AtomIcon color=\"white\" width={50} />\n    </main>\n  );\n};\n\nexport default App;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/feather/activity.jsx",
    "content": "import React from \"react\";\n\nconst FeatherActivityIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n        d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n      />\n    </svg>\n  );\n};\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/feather/alert-circle.jsx",
    "content": "import React from \"react\";\n\nconst FeatherAlertCircleIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <circle cx=\"12\" cy=\"12\" r=\"10\" />\n        <path d=\"M12 8v4m0 4h.01\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/logos/active-campaign.jsx",
    "content": "import React from \"react\";\n\nconst LogosActiveCampaignIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n      <path\n        fill=\"#004CFF\"\n        d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/logos/apache.jsx",
    "content": "import React from \"react\";\n\nconst LogosApacheIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#F69923\" />\n          <stop offset=\"31.23%\" stopColor=\"#F79A23\" />\n          <stop offset=\"83.83%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/logos/atom-icon.jsx",
    "content": "import React from \"react\";\n\nconst LogosAtomIconIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/lucide/badge-check.jsx",
    "content": "import React from \"react\";\n\nconst LucideBadgeCheckIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n        <path d=\"m9 12l2 2l4-4\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/lucide/cloud-download.jsx",
    "content": "import React from \"react\";\n\nconst LucideCloudDownloadIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n        <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/mdi/account-badge-outline.jsx",
    "content": "import React from \"react\";\n\nconst MdiAccountBadgeOutlineIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/mdi/account.jsx",
    "content": "import React from \"react\";\n\nconst MdiAccountIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/components/icons/mdi/home.jsx",
    "content": "import React from \"react\";\n\nconst MdiHomeIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/rollup-react/src/index.js",
    "content": "import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\n\nimport App from \"./App\";\n\nconst container = document.getElementById(\"root\");\nconst root = createRoot(container);\nroot.render(<App />);\n"
  },
  {
    "path": "examples/rspack-react/.gitignore",
    "content": "# Local\n.DS_Store\n*.local\n*.log*\n\n# Dist\nnode_modules\ndist/\n\n# IDE\n.vscode/*\n!.vscode/extensions.json\n.idea\n"
  },
  {
    "path": "examples/rspack-react/README.md",
    "content": "# Rspack Project\n\n## Setup\n\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\n## Get Started\n\nStart the dev server:\n\n```bash\nnpm run dev\n```\n\nBuild the app for production:\n\n```bash\nnpm run build\n```\n"
  },
  {
    "path": "examples/rspack-react/index.html",
    "content": "<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"UTF-8\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\t\t<title>Rspack + React</title>\n\t</head>\n\t<body>\n\t\t<div id=\"root\"></div>\n\t</body>\n</html>\n"
  },
  {
    "path": "examples/rspack-react/monicon.config.mjs",
    "content": "import { debuggerPlugin, react, clean } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\", format: \"jsx\" }),\n    debuggerPlugin(),\n  ],\n};\n"
  },
  {
    "path": "examples/rspack-react/package.json",
    "content": "{\n  \"name\": \"@monicon/rspack-react\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"cross-env NODE_ENV=development rspack dev\",\n    \"start\": \"cross-env NODE_ENV=development rspack serve\",\n    \"build\": \"cross-env NODE_ENV=production rspack build\"\n  },\n  \"dependencies\": {\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\"\n  },\n  \"devDependencies\": {\n    \"@rspack/plugin-react-refresh\": \"1.0.0\",\n    \"@rspack/cli\": \"^1.0.8\",\n    \"@rspack/core\": \"^1.0.8\",\n    \"@types/react\": \"^18.2.48\",\n    \"@types/react-dom\": \"^18.2.18\",\n    \"cross-env\": \"^7.0.3\",\n    \"react-refresh\": \"^0.14.0\",\n    \"@monicon/rspack\": \"*\"\n  }\n}\n"
  },
  {
    "path": "examples/rspack-react/rspack.config.mjs",
    "content": "import { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"@rspack/cli\";\nimport { rspack } from \"@rspack/core\";\nimport RefreshPlugin from \"@rspack/plugin-react-refresh\";\nimport MoniconPlugin from \"@monicon/rspack\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst isDev = process.env.NODE_ENV === \"development\";\n\n// Target browsers, see: https://github.com/browserslist/browserslist\nconst targets = [\"chrome >= 87\", \"edge >= 88\", \"firefox >= 78\", \"safari >= 14\"];\n\nexport default defineConfig({\n  context: __dirname,\n  entry: {\n    main: \"./src/main.jsx\",\n  },\n  resolve: {\n    extensions: [\"...\", \".ts\", \".tsx\", \".jsx\"],\n  },\n  watch: isDev,\n  module: {\n    rules: [\n      {\n        test: /\\.svg$/,\n        type: \"asset\",\n      },\n      {\n        test: /\\.(jsx?|tsx?)$/,\n        use: [\n          {\n            loader: \"builtin:swc-loader\",\n            options: {\n              jsc: {\n                parser: {\n                  syntax: \"typescript\",\n                  tsx: true,\n                },\n                transform: {\n                  react: {\n                    runtime: \"automatic\",\n                    development: isDev,\n                    refresh: isDev,\n                  },\n                },\n              },\n              env: { targets },\n            },\n          },\n        ],\n      },\n    ],\n  },\n  plugins: [\n    new rspack.HtmlRspackPlugin({\n      template: \"./index.html\",\n    }),\n    isDev ? new RefreshPlugin() : null,\n    new MoniconPlugin(),\n  ].filter(Boolean),\n  optimization: {\n    minimizer: [\n      new rspack.SwcJsMinimizerRspackPlugin(),\n      new rspack.LightningCssMinimizerRspackPlugin({\n        minimizerOptions: { targets },\n      }),\n    ],\n  },\n  experiments: {\n    css: true,\n  },\n});\n"
  },
  {
    "path": "examples/rspack-react/src/App.css",
    "content": "#root {\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 2rem;\n  text-align: center;\n}\n\n.logo {\n  height: 6em;\n  padding: 1.5em;\n  will-change: filter;\n}\n.logo:hover {\n  filter: drop-shadow(0 0 2em #646cffaa);\n}\n.logo.react:hover {\n  filter: drop-shadow(0 0 2em #61dafbaa);\n}\n\n@keyframes logo-spin {\n  from {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(360deg);\n  }\n}\n\n@media (prefers-reduced-motion: no-preference) {\n  a > .logo {\n    animation: logo-spin infinite 20s linear;\n  }\n}\n\n.card {\n  padding: 2em;\n}\n\n.read-the-docs {\n  color: #888;\n}\n\n.App {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  height: 100vh;\n  gap: 1rem;\n}\n"
  },
  {
    "path": "examples/rspack-react/src/App.jsx",
    "content": "import React from \"react\";\n\nimport \"./App.css\";\n\nimport BadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport AccountIcon from \"./components/icons/mdi/account\";\nimport HomeIcon from \"./components/icons/mdi/home\";\nimport AtomIcon from \"./components/icons/logos/atom-icon\";\nimport ApacheLogo from \"./components/icons/logos/apache\";\n\nfunction App() {\n  return (\n    <div className=\"App\">\n      <ApacheLogo color=\"white\" width={50} />\n      <BadgeCheckIcon color=\"white\" width={50} />\n      <CloudDownloadIcon color=\"white\" width={50} />\n      <AccountIcon color=\"white\" width={50} />\n      <HomeIcon color=\"white\" width={50} />\n      <AtomIcon color=\"white\" width={50} />\n    </div>\n  );\n}\n\nexport default App;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/feather/activity.jsx",
    "content": "import React from \"react\";\n\nconst FeatherActivityIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n        d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n      />\n    </svg>\n  );\n};\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/feather/alert-circle.jsx",
    "content": "import React from \"react\";\n\nconst FeatherAlertCircleIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <circle cx=\"12\" cy=\"12\" r=\"10\" />\n        <path d=\"M12 8v4m0 4h.01\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/logos/active-campaign.jsx",
    "content": "import React from \"react\";\n\nconst LogosActiveCampaignIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n      <path\n        fill=\"#004CFF\"\n        d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/logos/apache.jsx",
    "content": "import React from \"react\";\n\nconst LogosApacheIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#F69923\" />\n          <stop offset=\"31.23%\" stopColor=\"#F79A23\" />\n          <stop offset=\"83.83%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/logos/atom-icon.jsx",
    "content": "import React from \"react\";\n\nconst LogosAtomIconIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/lucide/badge-check.jsx",
    "content": "import React from \"react\";\n\nconst LucideBadgeCheckIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n        <path d=\"m9 12l2 2l4-4\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/lucide/cloud-download.jsx",
    "content": "import React from \"react\";\n\nconst LucideCloudDownloadIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n        <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/mdi/account-badge-outline.jsx",
    "content": "import React from \"react\";\n\nconst MdiAccountBadgeOutlineIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/mdi/account.jsx",
    "content": "import React from \"react\";\n\nconst MdiAccountIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/components/icons/mdi/home.jsx",
    "content": "import React from \"react\";\n\nconst MdiHomeIcon = (props) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/rspack-react/src/index.css",
    "content": ":root {\n  font-family: Inter, Avenir, Helvetica, Arial, sans-serif;\n  font-size: 16px;\n  line-height: 24px;\n  font-weight: 400;\n\n  color-scheme: light dark;\n  color: rgba(255, 255, 255, 0.87);\n  background-color: #242424;\n\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-text-size-adjust: 100%;\n}\n\na {\n  font-weight: 500;\n  color: #646cff;\n  text-decoration: inherit;\n}\na:hover {\n  color: #535bf2;\n}\n\nbody {\n  margin: 0;\n  display: flex;\n  place-items: center;\n  min-width: 320px;\n  min-height: 100vh;\n}\n\nh1 {\n  font-size: 3.2em;\n  line-height: 1.1;\n}\n\nbutton {\n  border-radius: 8px;\n  border: 1px solid transparent;\n  padding: 0.6em 1.2em;\n  font-size: 1em;\n  font-weight: 500;\n  font-family: inherit;\n  background-color: #1a1a1a;\n  cursor: pointer;\n  transition: border-color 0.25s;\n}\nbutton:hover {\n  border-color: #646cff;\n}\nbutton:focus,\nbutton:focus-visible {\n  outline: 4px auto -webkit-focus-ring-color;\n}\n\n@media (prefers-color-scheme: light) {\n  :root {\n    color: #213547;\n    background-color: #ffffff;\n  }\n  a:hover {\n    color: #747bff;\n  }\n  button {\n    background-color: #f9f9f9;\n  }\n}\n"
  },
  {
    "path": "examples/rspack-react/src/main.jsx",
    "content": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')).render(\n  <React.StrictMode>\n    <App />\n  </React.StrictMode>\n)\n"
  },
  {
    "path": "examples/svelte-app/.gitignore",
    "content": "node_modules\n\n# Output\n.output\n.vercel\n.netlify\n.wrangler\n/.svelte-kit\n/build\n\n# OS\n.DS_Store\nThumbs.db\n\n# Env\n.env\n.env.*\n!.env.example\n!.env.test\n\n# Vite\nvite.config.js.timestamp-*\nvite.config.ts.timestamp-*\n"
  },
  {
    "path": "examples/svelte-app/.npmrc",
    "content": "engine-strict=true\n"
  },
  {
    "path": "examples/svelte-app/.prettierignore",
    "content": "# Package Managers\npackage-lock.json\npnpm-lock.yaml\nyarn.lock\n"
  },
  {
    "path": "examples/svelte-app/.prettierrc",
    "content": "{\n\t\"useTabs\": true,\n\t\"singleQuote\": true,\n\t\"trailingComma\": \"none\",\n\t\"printWidth\": 100,\n\t\"plugins\": [\n\t\t\"prettier-plugin-svelte\"\n\t],\n\t\"overrides\": [\n\t\t{\n\t\t\t\"files\": \"*.svelte\",\n\t\t\t\"options\": {\n\t\t\t\t\"parser\": \"svelte\"\n\t\t\t}\n\t\t}\n\t]\n}\n"
  },
  {
    "path": "examples/svelte-app/README.md",
    "content": "# sv\n\nEverything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).\n\n## Creating a project\n\nIf you're seeing this, you've probably already done this step. Congrats!\n\n```bash\n# create a new project in the current directory\nnpx sv create\n\n# create a new project in my-app\nnpx sv create my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nTo create a production version of your app:\n\n```bash\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.\n"
  },
  {
    "path": "examples/svelte-app/eslint.config.js",
    "content": "import prettier from \"eslint-config-prettier\";\nimport js from '@eslint/js';\nimport { includeIgnoreFile } from '@eslint/compat';\nimport svelte from 'eslint-plugin-svelte';\nimport globals from 'globals';\nimport { fileURLToPath } from 'node:url';\nimport ts from 'typescript-eslint';\nconst gitignorePath = fileURLToPath(new URL(\"./.gitignore\", import.meta.url));\n\nexport default ts.config(\n  includeIgnoreFile(gitignorePath),\n  js.configs.recommended,\n  ...ts.configs.recommended,\n  ...svelte.configs[\"flat/recommended\"],\n  prettier,\n  ...svelte.configs['flat/prettier'],\n  {\n    languageOptions: {\n\t  globals: {\n\t    ...globals.browser,\n\t    ...globals.node\n\t  }\n\t}\n  },\n  {\n    files: [\"**/*.svelte\"],\n\n    languageOptions: {\n\t  parserOptions: {\n\t    parser: ts.parser\n\t  }\n\t}\n  }\n);\n"
  },
  {
    "path": "examples/svelte-app/monicon.config.ts",
    "content": "import { debuggerPlugin, clean, svelte } from '@monicon/core/plugins';\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from '@monicon/core';\n\nexport default {\n\ticons: [\n\t\t'mdi:home',\n\t\t'mdi:account',\n\t\t'mdi:account-badge-outline',\n\t\t'feather:activity',\n\t\t'feather:alert-circle',\n\t\t'logos:active-campaign',\n\t\t'logos:atom-icon',\n\t\t'logos:apache',\n\t\t'lucide:badge-check',\n\t\t'lucide:cloud-download',\n\t\t'lucide:attachment-2'\n\t],\n\t// collections: [\"lucide\"],\n\tloaders: {\n\t\t// local: loadLocalCollection(\"../../packages/icons\"),\n\t\t// json: loadJSONCollection(\n\t\t//   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n\t\t// ),\n\t\t// remote: loadRemoteCollection({\n\t\t//   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n\t\t//   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n\t\t// }),\n\t},\n\tplugins: [\n\t\tclean({ patterns: ['src/lib/components/icons'] }),\n\t\tsvelte({ outputPath: 'src/lib/components/icons' }),\n\t\tdebuggerPlugin()\n\t]\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/svelte-app/package.json",
    "content": "{\n\t\"name\": \"@monicon/svelte-app\",\n\t\"version\": \"0.0.0\",\n\t\"type\": \"module\",\n\t\"scripts\": {\n\t\t\"dev\": \"vite dev\",\n\t\t\"build\": \"vite build\",\n\t\t\"preview\": \"vite preview\",\n\t\t\"check\": \"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json\",\n\t\t\"check:watch\": \"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch\",\n\t\t\"format\": \"prettier --write .\",\n\t\t\"lint\": \"prettier --check . && eslint .\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@eslint/compat\": \"^1.2.3\",\n\t\t\"@sveltejs/adapter-auto\": \"^3.0.0\",\n\t\t\"@sveltejs/kit\": \"^2.9.0\",\n\t\t\"@sveltejs/vite-plugin-svelte\": \"^5.0.0\",\n\t\t\"eslint\": \"^9.7.0\",\n\t\t\"eslint-config-prettier\": \"^9.1.0\",\n\t\t\"eslint-plugin-svelte\": \"^2.36.0\",\n\t\t\"globals\": \"^15.0.0\",\n\t\t\"prettier\": \"^3.3.2\",\n\t\t\"prettier-plugin-svelte\": \"^3.2.6\",\n\t\t\"svelte\": \"^5.0.0\",\n\t\t\"svelte-check\": \"^4.0.0\",\n\t\t\"typescript\": \"^5.0.0\",\n\t\t\"typescript-eslint\": \"^8.0.0\",\n\t\t\"vite\": \"^6.0.2\"\n\t},\n\t\"dependencies\": {\n\t\t\"@monicon/vite\": \"*\"\n\t}\n}\n"
  },
  {
    "path": "examples/svelte-app/src/app.d.ts",
    "content": "// See https://svelte.dev/docs/kit/types#app.d.ts\n// for information about these interfaces\ndeclare global {\n\tnamespace App {\n\t\t// interface Error {}\n\t\t// interface Locals {}\n\t\t// interface PageData {}\n\t\t// interface PageState {}\n\t\t// interface Platform {}\n\t}\n}\n\nexport {};\n"
  },
  {
    "path": "examples/svelte-app/src/app.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"%sveltekit.assets%/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t%sveltekit.head%\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">%sveltekit.body%</div>\n\t</body>\n</html>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/feather/activity.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <path\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width=\"2\"\n    d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/feather/alert-circle.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <g\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width=\"2\"\n  >\n    <circle cx=\"12\" cy=\"12\" r=\"10\" />\n    <path d=\"M12 8v4m0 4h.01\" />\n  </g>\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/logos/active-campaign.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...$$restProps}>\n  <path\n    fill=\"#004CFF\"\n    d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/logos/apache.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...$$restProps}>\n  <defs>\n    <linearGradient\n      id=\"SVGRnKYad4R\"\n      x1=\"16.363%\"\n      x2=\"159.99%\"\n      y1=\"63.905%\"\n      y2=\"20.213%\"\n    >\n      <stop offset=\"0%\" stop-color=\"#F69923\" />\n      <stop offset=\"31.23%\" stop-color=\"#F79A23\" />\n      <stop offset=\"83.83%\" stop-color=\"#E97826\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVG8liAebqn\"\n      x1=\"-217.651%\"\n      x2=\"74.743%\"\n      y1=\"394.672%\"\n      y2=\"13.846%\"\n    >\n      <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n      <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n      <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n      <stop offset=\"100%\" stop-color=\"#E97826\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVGlj4FDdaL\"\n      x1=\"-80.044%\"\n      x2=\"146.24%\"\n      y1=\"170.418%\"\n      y2=\"-44.299%\"\n    >\n      <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n      <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n      <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n      <stop offset=\"100%\" stop-color=\"#E97826\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVGYvEIQelX\"\n      x1=\"-18.316%\"\n      x2=\"165.002%\"\n      y1=\"77.36%\"\n      y2=\"-41.416%\"\n    >\n      <stop offset=\"0%\" stop-color=\"#282662\" />\n      <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n      <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n      <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVG0bBOHeKe\"\n      x1=\"-129.783%\"\n      x2=\"66.456%\"\n      y1=\"463.715%\"\n      y2=\"17.19%\"\n    >\n      <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n      <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n      <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n      <stop offset=\"100%\" stop-color=\"#E97826\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVGCq1NQ68u\"\n      x1=\"-34.88%\"\n      x2=\"110.599%\"\n      y1=\"187.706%\"\n      y2=\"-51.1%\"\n    >\n      <stop offset=\"32.33%\" stop-color=\"#9E2064\" />\n      <stop offset=\"63.02%\" stop-color=\"#C92037\" />\n      <stop offset=\"75.14%\" stop-color=\"#CD2335\" />\n      <stop offset=\"100%\" stop-color=\"#E97826\" />\n    </linearGradient>\n    <linearGradient\n      id=\"SVGcSolSb7E\"\n      x1=\"-20.619%\"\n      x2=\"125.26%\"\n      y1=\"192.564%\"\n      y2=\"-136.906%\"\n    >\n      <stop offset=\"0%\" stop-color=\"#282662\" />\n      <stop offset=\"9.548%\" stop-color=\"#662E8D\" />\n      <stop offset=\"78.82%\" stop-color=\"#9F2064\" />\n      <stop offset=\"94.87%\" stop-color=\"#CD2032\" />\n    </linearGradient>\n  </defs>\n  <path\n    fill=\"url(#SVGRnKYad4R)\"\n    d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n  />\n  <path\n    fill=\"url(#SVG8liAebqn)\"\n    d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n  />\n  <path\n    fill=\"url(#SVGlj4FDdaL)\"\n    d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n  />\n  <path\n    fill=\"url(#SVGYvEIQelX)\"\n    d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n  />\n  <path\n    fill=\"url(#SVG0bBOHeKe)\"\n    d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n  />\n  <path\n    fill=\"url(#SVGCq1NQ68u)\"\n    d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n  />\n  <path\n    fill=\"url(#SVGcSolSb7E)\"\n    d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/logos/atom-icon.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...$$restProps}>\n  <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n  <path\n    fill=\"#FFF\"\n    d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/lucide/badge-check.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <g\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width=\"2\"\n  >\n    <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n    <path d=\"m9 12l2 2l4-4\" />\n  </g>\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/lucide/cloud-download.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <g\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width=\"2\"\n  >\n    <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n    <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n  </g>\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/mdi/account-badge-outline.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <path\n    fill=\"currentColor\"\n    d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/mdi/account.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <path\n    fill=\"currentColor\"\n    d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n  />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/components/icons/mdi/home.svelte",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...$$restProps}>\n  <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n</svg>\n"
  },
  {
    "path": "examples/svelte-app/src/lib/index.ts",
    "content": "// place files you want to import through the `$lib` alias in this folder.\n"
  },
  {
    "path": "examples/svelte-app/src/routes/+page.svelte",
    "content": "<script>\n\timport BadgeCheckIcon from '$lib/components/icons/feather/activity.svelte';\n\timport CloudDownloadIcon from '$lib/components/icons/lucide/cloud-download.svelte';\n\timport AccountIcon from '$lib/components/icons/mdi/account.svelte';\n\timport HomeIcon from '$lib/components/icons/mdi/home.svelte';\n\timport AtomIcon from '$lib/components/icons/logos/atom-icon.svelte';\n\timport ApacheLogo from '$lib/components/icons/logos/apache.svelte';\n</script>\n\n<main>\n\t<BadgeCheckIcon height={50} />\n\t<CloudDownloadIcon height={50} />\n\t<AccountIcon height={50} />\n\t<HomeIcon height={50} />\n\t<AtomIcon height={50} />\n\t<ApacheLogo height={50} />\n</main>\n\n<style>\n\t:global(html),\n\t:global(body) {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\tmain {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\theight: 100vh;\n\t\tbackground-color: #242424;\n\t\tcolor: rgba(255, 255, 255, 0.87);\n\t\tgap: 20px;\n\t}\n</style>\n"
  },
  {
    "path": "examples/svelte-app/svelte.config.js",
    "content": "import adapter from '@sveltejs/adapter-auto';\nimport { vitePreprocess } from '@sveltejs/vite-plugin-svelte';\n\n/** @type {import('@sveltejs/kit').Config} */\nconst config = {\n\t// Consult https://svelte.dev/docs/kit/integrations\n\t// for more information about preprocessors\n\tpreprocess: vitePreprocess(),\n\n\tkit: {\n\t\t// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.\n\t\t// If your environment is not supported, or you settled on a specific environment, switch out the adapter.\n\t\t// See https://svelte.dev/docs/kit/adapters for more information about adapters.\n\t\tadapter: adapter()\n\t}\n};\n\nexport default config;\n"
  },
  {
    "path": "examples/svelte-app/tsconfig.json",
    "content": "{\n\t\"extends\": \"./.svelte-kit/tsconfig.json\",\n\t\"compilerOptions\": {\n\t\t\"allowJs\": true,\n\t\t\"checkJs\": true,\n\t\t\"esModuleInterop\": true,\n\t\t\"forceConsistentCasingInFileNames\": true,\n\t\t\"resolveJsonModule\": true,\n\t\t\"skipLibCheck\": true,\n\t\t\"sourceMap\": true,\n\t\t\"strict\": true,\n\t\t\"moduleResolution\": \"bundler\"\n\t}\n\t// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias\n\t// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files\n\t//\n\t// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes\n\t// from the referenced tsconfig.json - TypeScript does not merge them in\n}\n"
  },
  {
    "path": "examples/svelte-app/vite.config.ts",
    "content": "import { sveltekit } from '@sveltejs/kit/vite';\nimport { defineConfig } from 'vite';\nimport { monicon } from '@monicon/vite';\n\nexport default defineConfig({\n\tplugins: [sveltekit(), monicon()]\n});\n"
  },
  {
    "path": "examples/vite-react/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "examples/vite-react/README.md",
    "content": "# React + TypeScript + Vite\n\nThis template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.\n\nCurrently, two official plugins are available:\n\n- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh\n- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh\n\n## Expanding the ESLint configuration\n\nIf you are developing a production application, we recommend updating the configuration to enable type aware lint rules:\n\n- Configure the top-level `parserOptions` property like this:\n\n```js\nexport default tseslint.config({\n  languageOptions: {\n    // other options...\n    parserOptions: {\n      project: ['./tsconfig.node.json', './tsconfig.app.json'],\n      tsconfigRootDir: import.meta.dirname,\n    },\n  },\n})\n```\n\n- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`\n- Optionally add `...tseslint.configs.stylisticTypeChecked`\n- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:\n\n```js\n// eslint.config.js\nimport react from 'eslint-plugin-react'\n\nexport default tseslint.config({\n  // Set the react version\n  settings: { react: { version: '18.3' } },\n  plugins: {\n    // Add the react plugin\n    react,\n  },\n  rules: {\n    // other rules...\n    // Enable its recommended rules\n    ...react.configs.recommended.rules,\n    ...react.configs['jsx-runtime'].rules,\n  },\n})\n```\n"
  },
  {
    "path": "examples/vite-react/eslint.config.js",
    "content": "import js from '@eslint/js'\nimport globals from 'globals'\nimport reactHooks from 'eslint-plugin-react-hooks'\nimport reactRefresh from 'eslint-plugin-react-refresh'\nimport tseslint from 'typescript-eslint'\n\nexport default tseslint.config(\n  { ignores: ['dist'] },\n  {\n    extends: [js.configs.recommended, ...tseslint.configs.recommended],\n    files: ['**/*.{ts,tsx}'],\n    languageOptions: {\n      ecmaVersion: 2020,\n      globals: globals.browser,\n    },\n    plugins: {\n      'react-hooks': reactHooks,\n      'react-refresh': reactRefresh,\n    },\n    rules: {\n      ...reactHooks.configs.recommended.rules,\n      'react-refresh/only-export-components': [\n        'warn',\n        { allowConstantExport: true },\n      ],\n    },\n  },\n)\n"
  },
  {
    "path": "examples/vite-react/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/vite.svg\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Vite + React + TS</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script type=\"module\" src=\"/src/main.tsx\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "examples/vite-react/monicon.config.ts",
    "content": "import { debuggerPlugin, react, clean } from \"@monicon/core/plugins\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n    \"material-symbols:10k\"\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    // local: loadLocalCollection(\"../../packages/icons\"),\n    // json: loadJSONCollection(\n    //   \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    // ),\n    // remote: loadRemoteCollection({\n    //   download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n    //   attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    // }),\n  },\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n    debuggerPlugin(),\n  ],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/vite-react/package.json",
    "content": "{\n  \"name\": \"@monicon/vite-react\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vite build\",\n    \"lint\": \"eslint .\",\n    \"preview\": \"vite preview\",\n    \"test\": \"vitest\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\",\n    \"@tailwindcss/vite\": \"^4.1.7\",\n    \"react\": \"^18.3.1\",\n    \"react-dom\": \"^18.3.1\",\n    \"tailwindcss\": \"^4.1.7\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^9.9.0\",\n    \"@monicon/vite\": \"*\",\n    \"@testing-library/dom\": \"^10.4.0\",\n    \"@testing-library/jest-dom\": \"^6.6.3\",\n    \"@testing-library/react\": \"^16.1.0\",\n    \"@types/react\": \"^18.3.3\",\n    \"@types/react-dom\": \"^18.3.0\",\n    \"@vitejs/plugin-react\": \"^4.3.1\",\n    \"eslint\": \"^9.9.0\",\n    \"eslint-plugin-react-hooks\": \"^5.1.0-rc.0\",\n    \"eslint-plugin-react-refresh\": \"^0.4.9\",\n    \"globals\": \"^15.9.0\",\n    \"jsdom\": \"^25.0.1\",\n    \"typescript\": \"^5.5.3\",\n    \"typescript-eslint\": \"^8.0.1\",\n    \"vite\": \"^6.0.2\",\n    \"vitest\": \"^2.1.8\"\n  }\n}\n"
  },
  {
    "path": "examples/vite-react/src/App.tsx",
    "content": "import LogosActiveCampaignIcon from \"./components/icons/logos/active-campaign\";\nimport LogosAtomIconIcon from \"./components/icons/logos/atom-icon\";\nimport LucideBadgeCheckIcon from \"./components/icons/lucide/badge-check\";\nimport LucideCloudDownloadIcon from \"./components/icons/lucide/cloud-download\";\nimport MdiAccountIcon from \"./components/icons/mdi/account\";\nimport MdiHomeIcon from \"./components/icons/mdi/home\";\n\nfunction App() {\n  return (\n    <main className=\"flex gap-4 items-center justify-center min-h-screen bg-gray-900\">\n      <LogosActiveCampaignIcon className=\"size-10\" />\n      <LucideBadgeCheckIcon className=\"size-10\" />\n      <LucideCloudDownloadIcon className=\"size-10\" />\n      <MdiAccountIcon className=\"size-10\" />\n      <MdiHomeIcon className=\"size-10\" />\n      <LogosAtomIconIcon className=\"size-10\" />\n    </main>\n  );\n}\n\nexport default App;\n"
  },
  {
    "path": "examples/vite-react/src/__tests__/App.test.tsx",
    "content": "import { describe, it, expect } from \"vitest\";\nimport { render } from \"@testing-library/react\";\n\nimport App from \"../App\";\n\ndescribe(\"App\", () => {\n  it(\"should mount the App component\", () => {\n    const { container } = render(<App />);\n\n    expect(container.querySelectorAll(\"svg\")).toHaveLength(4);\n  });\n});\n"
  },
  {
    "path": "examples/vite-react/src/__tests__/setup.ts",
    "content": "import \"@testing-library/jest-dom\";\nimport { cleanup } from \"@testing-library/react\";\nimport { afterEach } from \"vitest\";\n\nafterEach(() => {\n  cleanup();\n});\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/feather/activity.tsx",
    "content": "import React from \"react\";\n\nconst FeatherActivityIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n        d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n      />\n    </svg>\n  );\n};\n\nexport default FeatherActivityIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/feather/alert-circle.tsx",
    "content": "import React from \"react\";\n\nconst FeatherAlertCircleIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <circle cx=\"12\" cy=\"12\" r=\"10\" />\n        <path d=\"M12 8v4m0 4h.01\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default FeatherAlertCircleIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/logos/active-campaign.tsx",
    "content": "import React from \"react\";\n\nconst LogosActiveCampaignIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 52\" {...props}>\n      <path\n        fill=\"#004CFF\"\n        d=\"M384.111.398c1.847 0 2.236 1.107 2.236 2.039v3.428h-3.53c-1.766 0-2.136-1.054-2.136-1.94V.402h3.43zm-.3 11.233c1.464 0 2.238.738 2.238 2.137v28.78h-3.182v-.112c-1.14-.102-1.888-.93-1.888-2.124v-28.68zm-168.424 22.44c1.09.99 1.403 1.402 1.414 1.42l.127.168l-.145.152c-4.908 5.14-9.837 7.334-16.483 7.334c-11.93 0-20.927-9.253-20.927-21.522C179.373 9.498 188.609 0 200.399 0c8.092 0 12.556 3.187 16.176 6.63l.176.167l-.163.18a57 57 0 0 1-1.797 1.897c-1.01 1.124-2.382.848-3.222.112c-3.427-2.875-7.008-4.215-11.27-4.215c-8.926 0-15.657 7.16-15.657 16.652c0 9.448 6.878 16.85 15.658 16.85c4.424 0 7.749-1.25 11.472-4.317c.917-.814 2.458-1.042 3.615.116m75.574-23.235c7.144 0 11.581 4.78 11.581 12.476V42.35h-2.635c-2.058 0-2.336-1.283-2.336-2.536V24.306c0-5.655-2.773-8.896-7.604-8.896c-4.083 0-8.203 2.842-8.203 9.194V42.35h-2.733c-1.443 0-2.238-.795-2.238-2.238V24.207c0-5.51-2.842-8.797-7.603-8.797c-4.753 0-8.2 3.908-8.2 9.294v15.408c0 1.787-.785 2.138-2.14 2.138h-2.832V11.333h2.734c1.484 0 2.335.85 2.335 2.336v2.185c1.908-2.677 4.6-5.215 9.594-5.215c5.803 0 8.575 3.485 9.778 5.824c2.689-3.783 6.129-5.627 10.5-5.627zm35.888.1c7.155 0 14.762 5.626 14.762 16.054c0 10.429-7.607 16.055-14.764 16.055c-4.612 0-8.34-1.947-11.381-5.95v14.7h-2.833c-1.4 0-2.138-.775-2.138-2.238V11.532h2.436c1.658 0 2.533.842 2.533 2.435v3.19c3.044-4.186 6.774-6.221 11.385-6.221m9.592 16.054c0-7.603-5.277-11.58-10.488-11.58c-5.302 0-10.785 4.294-10.785 11.48c0 7.25 5.482 11.582 10.785 11.582c6.176 0 10.488-4.72 10.488-11.482m82.412-13.22c0-1.507 1.38-2.337 2.335-2.337h2.734v25.4c0 9.57-5.707 15.06-15.657 15.06c-5.213 0-9.908-1.455-13.962-4.32l-.173-.124l.096-.19c.011-.025.31-.621 1.103-1.909c.423-.689.966-1.01 1.57-1.001c.5.012 1.052.229 1.854.721a19.3 19.3 0 0 0 9.413 2.45c6.854 0 10.785-3.86 10.785-10.588v-2.868c-3.256 3.967-7.086 5.899-11.68 5.899c-7.06 0-14.563-5.106-14.563-14.565c0-4.22 1.603-8.036 4.516-10.745c2.677-2.49 6.338-3.918 10.047-3.918c5.845 0 9.477 2.947 11.582 5.659zm.199 11.828c0-6.618-5.61-10.19-10.885-10.19c-5.963 0-10.291 4.245-10.291 10.09c0 5.81 4.424 10.19 10.291 10.19c5.351 0 10.885-3.774 10.885-10.09m28.283-14.662c7.215 0 11.878 4.857 11.878 12.375v19.136h-3.033c-1.39 0-2.035-.676-2.035-2.135V24.406c0-5.572-3.067-8.897-8.203-8.897c-5.239 0-8.897 3.822-8.897 9.294l.101 17.644h-5.072V11.532h2.734c1.163 0 2.337.66 2.337 2.137V16.3c2.427-3.562 5.85-5.365 10.19-5.365m-87.085.198c8.46 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.723 3.161-6.438 4.825-10.785 4.825c-7.957 0-11.583-5.076-11.583-9.792c0-6.223 4.838-9.791 13.273-9.791h5.118V25.2c0 1.438-.73 2.137-2.236 2.137h-2.485c-5.546 0-8.6 2.066-8.6 5.815c0 3.997 3.84 5.816 7.406 5.816c5.732 0 9.89-3.366 9.89-8.002v-7.358c0-5.162-3.122-8.002-8.795-8.002c-2.557 0-4.86.455-7.465 1.475c-.948.315-2.1.288-2.51-.736a87 87 0 0 1-.897-2.395l-.077-.215l.209-.096c3.815-1.733 7.25-2.506 11.137-2.506m-125.159 0c8.458 0 13.172 4.393 13.273 12.374V42.35h-2.735c-1.458 0-2.138-.648-2.138-2.038V38.22c-2.722 3.161-6.436 4.825-10.785 4.825c-7.957 0-11.582-5.076-11.582-9.792c0-6.223 4.838-9.791 13.273-9.791h5.082V25.2c0 1.438-.733 2.137-2.237 2.137h-2.449c-5.546 0-8.598 2.066-8.598 5.815c0 3.997 3.839 5.816 7.405 5.816c5.733 0 9.891-3.366 9.891-8.002v-7.358c0-5.162-3.124-8.002-8.797-8.002c-2.557 0-4.859.455-7.465 1.475c-.953.319-2.1.288-2.508-.736a79 79 0 0 1-.897-2.395l-.08-.218l.213-.093c2.95-1.302 6.341-2.506 11.134-2.506m275.22 11.481c1.118.786 1.689 1.757 1.689 2.884v.56c-.013.87-.325 2.094-1.69 3.119l-.004.003c-.658.47-7.347 5.104-14.429 10.012c-6.928 4.801-14.735 10.211-15.689 10.886v.781l-.463-.78c-.022-.04-.043-.073-.02-.127h-.013v-4.075c0-1.39.153-2.058 1.7-3.09c1.292-.83 21.743-15.011 24.457-16.89c-2.693-1.87-22.88-15.886-24.264-16.899l-.164-.118c-1.023-.741-1.827-1.324-1.827-2.867v-4.85l.388.272c1.207.84 29.538 20.588 30.328 21.18m-17.709 5.486c-.7 0-1.395-.244-2.125-.73c-1.77-1.181-10.848-7.494-10.94-7.558l-.105-.074v-3.113c0-.715.308-1.28.848-1.555c.579-.295 1.301-.198 1.933.26c1.366.879 14.575 10.044 14.708 10.14l.3.206l-.305.203s-.893.595-1.884 1.288c-.848.622-1.641.933-2.43.933m-421.66 7.261c.97.97 1.467 1.37 1.472 1.376l.2.16l-.166.195c-2.416 2.817-6.02 6.052-12.517 6.052c-8.742 0-15.856-7.203-15.856-16.056c0-9.058 6.965-16.153 15.856-16.153c4.997 0 8.794 1.68 12.311 5.447l.154.166l-.152.169a56 56 0 0 1-1.7 1.8c-.974.971-1.996.915-3.317-.184c-1.783-1.446-4.06-2.926-7.395-2.926c-5.936 0-10.588 5.088-10.588 11.582s4.782 11.583 10.885 11.583c2.816 0 5.402-1.05 7.688-3.118c.671-.538 2.067-1.15 3.125-.091zM103.971.4c1.359 0 2.236.917 2.236 2.337v3.131h-3.528c-1.767 0-2.139-1.055-2.139-1.94V.401h3.43zm-.398 11.234c1.464 0 2.236.737 2.236 2.137v28.78h-3.18v-.112c-1.141-.103-1.89-.93-1.89-2.124V11.63h2.834zm32.676 1.64c.489-1.174 1.377-1.743 2.714-1.743h3.462l-.152.348c-.122.28-12.135 27.85-12.627 28.931c-.521 1.148-1.273 1.638-2.512 1.638h-.598c-1.28 0-2.074-.245-2.614-1.543c-.49-1.077-12.504-28.846-12.624-29.127l-.15-.348h3.558c1.358 0 2.305.622 2.815 1.844c.36 1.082 7.893 19.358 9.313 22.806c1.424-3.447 8.967-21.732 9.415-22.806m31.146 11.878c.288 0 .502-.077.625-.23c.173-.203.215-.573.124-1.07c-.41-5.12-4.107-8.544-9.2-8.544c-5.053 0-8.998 4.16-9.594 10.115c-.002.018-.098.704-.098 1.666c0 .865.096 1.55.096 1.556c.635 6.06 4.85 10.125 10.49 10.125c3.275 0 5.952-.986 8.184-3.017c.593-.593 1.72-.96 2.908-.011a207 207 0 0 0 1.497 1.298l.195.167l-.173.189c-3.624 3.975-7.544 5.748-12.71 5.748c-8.812 0-15.458-6.946-15.458-16.153c0-9.211 6.39-16.155 14.862-16.155c7.734 0 13.426 5.241 14.165 13.048c.124 1.669-.253 3.025-1.09 3.926c-.81.873-2.032 1.318-3.63 1.318c-2.72 0-9.282.01-14.934.099l-.252.003v-1.943c0-1.337.799-2.137 2.137-2.137h11.856zM24.468 1.931c.59 1.28 17.919 39.777 18.095 40.165l.157.351h-2.969c-.631 0-2.552 0-3.308-1.636c-.549-1.191-13.225-29.963-15.085-34.184l-9.06 20.313h13.41v2.238c0 1.457-1.057 2.435-2.633 2.435H10.286c-.482 1.064-3.462 7.616-4.01 8.802c-.77 1.43-1.667 2.034-3.01 2.034H0l.157-.353c.176-.39 17.7-39.374 18.093-40.259c.545-.984 1.422-1.539 2.414-1.539h1.193c1.342 0 1.999.412 2.608 1.629l.003.006zm68.897 36.14c.28.209.614.629.614 1.443c0 1.095-.096 1.978-.1 2.017l-.015.133l-.12.06c-1.578.79-4.1 1.32-6.276 1.32c-5.673 0-8.798-3.126-8.798-8.8V.498h2.437c1.539 0 2.533.917 2.533 2.337v8.797h7.01c1.268 0 2.633.731 2.633 2.336v2.137h-9.642l.1 17.447c0 3.2 1.622 4.822 4.82 4.822c1.05 0 1.803-.185 2.917-.488c.738-.22 1.427-.154 1.887.188z\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosActiveCampaignIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/logos/apache.tsx",
    "content": "import React from \"react\";\n\nconst LogosApacheIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\" {...props}>\n      <defs>\n        <linearGradient\n          id=\"SVGRnKYad4R\"\n          x1=\"16.363%\"\n          x2=\"159.99%\"\n          y1=\"63.905%\"\n          y2=\"20.213%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#F69923\" />\n          <stop offset=\"31.23%\" stopColor=\"#F79A23\" />\n          <stop offset=\"83.83%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG8liAebqn\"\n          x1=\"-217.651%\"\n          x2=\"74.743%\"\n          y1=\"394.672%\"\n          y2=\"13.846%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGlj4FDdaL\"\n          x1=\"-80.044%\"\n          x2=\"146.24%\"\n          y1=\"170.418%\"\n          y2=\"-44.299%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGYvEIQelX\"\n          x1=\"-18.316%\"\n          x2=\"165.002%\"\n          y1=\"77.36%\"\n          y2=\"-41.416%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVG0bBOHeKe\"\n          x1=\"-129.783%\"\n          x2=\"66.456%\"\n          y1=\"463.715%\"\n          y2=\"17.19%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGCq1NQ68u\"\n          x1=\"-34.88%\"\n          x2=\"110.599%\"\n          y1=\"187.706%\"\n          y2=\"-51.1%\"\n        >\n          <stop offset=\"32.33%\" stopColor=\"#9E2064\" />\n          <stop offset=\"63.02%\" stopColor=\"#C92037\" />\n          <stop offset=\"75.14%\" stopColor=\"#CD2335\" />\n          <stop offset=\"100%\" stopColor=\"#E97826\" />\n        </linearGradient>\n        <linearGradient\n          id=\"SVGcSolSb7E\"\n          x1=\"-20.619%\"\n          x2=\"125.26%\"\n          y1=\"192.564%\"\n          y2=\"-136.906%\"\n        >\n          <stop offset=\"0%\" stopColor=\"#282662\" />\n          <stop offset=\"9.548%\" stopColor=\"#662E8D\" />\n          <stop offset=\"78.82%\" stopColor=\"#9F2064\" />\n          <stop offset=\"94.87%\" stopColor=\"#CD2032\" />\n        </linearGradient>\n      </defs>\n      <path\n        fill=\"url(#SVGRnKYad4R)\"\n        d=\"M218.048 2.889c-7.969 4.681-21.316 18.129-37.254 37.553v1.195l13.945 25.8l.698.498c10.26-14.643 20.619-27.891 31.178-39.147c.797-.897 1.195-1.295 1.195-1.295c-.398.398-.797.896-1.195 1.295c-3.387 3.785-13.747 15.738-29.286 39.645l1.793.398s36.358-3.586 53.89-6.574l.996-.897c5.578-31.278-5.479-45.621-5.479-45.621s-13.945-22.513-30.48-12.85\"\n      />\n      <path\n        fill=\"url(#SVG8liAebqn)\"\n        d=\"M152.405 139.156c4.482-8.267 8.965-16.435 13.447-24.305c4.682-8.168 9.463-16.137 14.344-23.807c.299-.398.598-.896.797-1.394a548 548 0 0 1 14.444-21.715l-14.643-27.593c-1.096 1.295-2.192 2.69-3.287 4.084c-4.184 5.28-8.567 10.858-13.05 16.835a769 769 0 0 0-15.539 21.516a829 829 0 0 0-14.742 21.814c-4.184 6.475-8.467 13.05-12.65 19.923c-.2.298-.3.498-.499.797v1.095l18.229 36.159l.797.299c4.084-7.97 8.168-15.938 12.352-23.708\"\n      />\n      <path\n        fill=\"url(#SVGlj4FDdaL)\"\n        d=\"M73.015 316.165c3.287-8.567 6.773-17.233 10.26-25.998c3.386-8.368 6.773-16.835 10.36-25.302c3.486-8.467 7.171-16.933 10.857-25.5c3.785-8.666 7.57-17.332 11.455-25.899c3.885-8.467 7.77-16.934 11.754-25.301a377 377 0 0 1 4.383-9.065c2.49-5.18 5.08-10.36 7.57-15.44c.1-.298.3-.497.399-.796l-19.026-37.553l-.896 1.494c-4.383 7.271-8.866 14.642-13.149 22.213a873 873 0 0 0-12.85 23.309c-3.586 6.674-6.972 13.348-10.36 20.121c-.697 1.395-1.294 2.69-1.991 4.084a514 514 0 0 0-11.256 24.704q-5.678 13.447-10.16 25.7c-1.993 5.378-3.686 10.459-5.38 15.44a609 609 0 0 0-3.785 12.65a360 360 0 0 0-7.272 29.783l.3 1.196l18.228 36.258l.598.299c2.49-6.774 5.08-13.547 7.77-20.52c.697-1.992 1.494-3.885 2.19-5.877\"\n      />\n      <path\n        fill=\"url(#SVGYvEIQelX)\"\n        d=\"M43.73 306.104c-2.391 12.053-4.085 24.106-4.981 36.06c0 .398-.1.796-.1 1.294c-5.977-9.562-21.914-18.826-21.914-18.826c11.455 16.535 20.121 32.971 21.416 49.108c-6.076 1.295-14.444-.598-24.205-4.084c10.06 9.264 17.63 11.854 20.619 12.551c-9.264.598-18.926 6.973-28.688 14.244c14.244-5.777 25.7-8.068 33.967-6.275C26.795 427.132 13.746 467.972.598 511.203c3.984-1.195 6.375-3.885 7.77-7.57c2.29-7.87 17.83-59.269 42.035-126.905c.697-1.892 1.395-3.884 2.092-5.777c.2-.498.398-1.096.598-1.594c2.59-7.072 5.18-14.344 7.968-21.715c.598-1.693 1.295-3.387 1.893-5.08v-.1L43.928 304.81c0 .498-.1.897-.199 1.295\"\n      />\n      <path\n        fill=\"url(#SVG0bBOHeKe)\"\n        d=\"M197.33 68.532c-4.284 6.575-8.966 14.045-14.046 22.512c-.299.399-.498.897-.797 1.295a836 836 0 0 0-13.846 24.206a1001 1001 0 0 0-13.148 24.604a924 924 0 0 0-12.253 24.404l.897.399l46.319-4.98l1.096-.798c14.045-6.474 20.32-12.351 26.397-20.818a230 230 0 0 0 4.88-7.272c4.981-7.77 9.862-16.237 14.145-24.703c4.184-8.169 7.87-16.337 10.758-23.608c1.793-4.682 3.287-8.965 4.284-12.75q1.344-5.08 2.091-9.563c-18.726 3.287-41.737 6.375-56.778 7.072\"\n      />\n      <path\n        fill=\"url(#SVGCq1NQ68u)\"\n        d=\"M141.447 169.438c-1.593 3.387-3.287 6.873-4.98 10.36c-1.793 3.785-3.686 7.77-5.479 11.754c-.896 1.992-1.892 4.084-2.789 6.076c-2.888 6.176-5.678 12.551-8.666 19.125a1713 1713 0 0 0-10.957 25.202c-3.586 8.367-7.172 16.934-10.758 25.899a1436 1436 0 0 0-10.46 26.197c-3.187 8.069-6.374 16.237-9.562 24.803c-.2.399-.299.797-.498 1.196c-3.187 8.467-6.296 17.08-9.584 25.945c-.1.2-.277.718-.377.917l.688.153l13.855-1.49l.782-.324c-.299-.1-.483-.498-.782-.597c18.329-2.291 42.733-16.038 58.571-32.972c7.272-7.77 13.846-17.033 20.022-27.79c4.582-8.07 8.766-16.935 12.85-26.796c3.586-8.567 6.973-17.93 10.26-27.99c-4.184 2.19-9.065 3.884-14.344 4.98c-.897.199-1.893.398-2.889.597c-.996.2-1.992.3-2.889.498c17.134-6.574 27.892-19.324 35.76-34.863c-4.482 3.087-11.853 7.072-20.619 9.064c-1.195.299-2.39.498-3.685.697c-.3 0-.598.1-.897.1c5.977-2.49 10.957-5.28 15.34-8.567c.897-.697 1.793-1.394 2.69-2.191c1.295-1.195 2.59-2.39 3.785-3.586c.797-.797 1.494-1.594 2.291-2.49a56 56 0 0 0 4.781-6.575c.498-.697.897-1.494 1.395-2.191c.598-1.096 1.096-2.191 1.594-3.287c2.39-4.781 4.283-9.065 5.777-12.85c.797-1.893 1.395-3.586 1.992-5.28c.2-.597.399-1.294.698-1.892c.597-1.793 1.095-3.387 1.494-4.88a43 43 0 0 0 1.096-4.981c-.598.498-1.196.896-1.993 1.394c-5.18 3.088-14.045 5.877-21.217 7.172l14.145-1.594l-14.145 1.594c-.996.2-1.693.299-2.49.498q.099-.099-47.926 5.067c-.2.2-1.381 2.703-1.88 3.898\"\n      />\n      <path\n        fill=\"url(#SVGcSolSb7E)\"\n        d=\"M65.843 350.63c-2.49 6.874-5.08 13.946-7.57 21.118c0 .1-.1.2-.1.299c-.399.996-.698 1.992-1.096 3.088c-1.693 4.88-3.188 9.164-6.574 19.125c5.578 2.59 10.06 9.264 14.344 16.934c-.399-7.87-3.686-15.34-9.961-21.018c27.592 1.195 51.399-5.778 63.651-25.899a51 51 0 0 0 2.988-5.678c-5.578 7.073-12.55 10.06-25.5 9.364h-.1h.1c19.225-8.567 28.787-16.835 37.354-30.481a170 170 0 0 0 5.977-10.659c-16.835 17.233-36.259 22.114-56.679 18.428l-15.34 1.694c-.498 1.095-.996 2.39-1.494 3.685\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosApacheIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/logos/atom-icon.tsx",
    "content": "import React from \"react\";\n\nconst LogosAtomIconIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n      <circle cx=\"128.002\" cy=\"128.002\" r=\"128.002\" fill=\"#60B57D\" />\n      <path\n        fill=\"#FFF\"\n        d=\"M117.82 59.143a3.605 3.605 0 0 1-4.515 5.62c-9.397-7.547-17.224-10.04-22.051-7.575c-5.618 2.865-7.797 12.083-6.663 24.946l.17 1.737q.144 1.319.33 2.682l.269 1.839q.5 3.227 1.235 6.67c6.767-1.05 14.05-1.735 21.698-2.02a198 198 0 0 1 10.079-11.969l1.698-1.83c4.246-4.513 8.505-8.553 12.696-12.049l1.673-1.37c15.295-12.285 29.531-17.146 38.738-11.168c8.02 5.203 10.17 16.989 7.19 32.783a3.605 3.605 0 1 1-7.084-1.336c2.495-13.227.852-22.232-4.03-25.4c-6.348-4.12-18.142.623-31.44 11.701l-1.484 1.257a127 127 0 0 0-2.246 1.982l-1.51 1.383a150 150 0 0 0-4.571 4.446l-1.535 1.577q-.384.4-.769.805l-1.54 1.647l-1.54 1.691l-1.541 1.736q-.772.879-1.54 1.78l-1.54 1.822l-.299.363c3.586.019 7.235.123 10.932.315l1.435.08l2.852.182q3.551.25 7.017.599l2.758.295q.685.078 1.368.159l2.711.341q3.371.445 6.635.984l2.592.444l2.555.473l2.515.501c8.32 1.716 15.97 3.888 22.71 6.434l1.996.775c17.704 7.074 28.614 16.812 28.054 27.576c-.464 8.898-8.44 16.244-21.81 21.507a3.605 3.605 0 1 1-2.64-6.708c11.024-4.34 16.971-9.817 17.25-15.174c.358-6.858-7.848-13.951-21.507-19.672l-1.7-.694q-1.726-.687-3.557-1.343l-1.856-.649q-.94-.32-1.904-.632l-1.954-.615l-2-.598q-.505-.147-1.017-.292l-2.068-.57q-.522-.14-1.05-.278l-2.133-.54a175 175 0 0 0-6.645-1.498l-2.293-.456l-1.16-.22l-2.348-.42l-2.382-.398l-1.204-.19l-2.432-.36q-1.224-.174-2.463-.334l-2.495-.309l-2.523-.282a217 217 0 0 0-3.837-.37l-2.59-.213q-1.302-.099-2.616-.182l-2.639-.154l-2.64-.121l-2.62-.09a217 217 0 0 0-8.993-.068l-2.06.038l-.81 1.074a214 214 0 0 0-1.505 2.045l-1.496 2.082a221 221 0 0 0-6.566 9.801l-1.388 2.224a217 217 0 0 0-4.232 7.177q.184.453.375.908l.98 2.314q.249.58.504 1.162l1.036 2.331l1.074 2.342l1.112 2.349l1.15 2.356l1.186 2.362l1.215 2.348l1.233 2.314l1.249 2.28l.63 1.126l1.272 2.227q.64 1.104 1.285 2.19l1.298 2.152q.652 1.065 1.31 2.113l1.32 2.075l1.329 2.034a192 192 0 0 0 3.356 4.904l1.353 1.886a175 175 0 0 0 2.717 3.64l1.362 1.75l1.363 1.705q.341.42.682.834l1.362 1.632l1.36 1.583a129 129 0 0 0 4.06 4.446l1.342 1.377l1.334 1.324a99 99 0 0 0 1.985 1.884l1.31 1.186a82 82 0 0 0 1.945 1.673l1.28 1.042c8.703 6.925 16.414 9.722 21.534 7.11c4.807-2.45 7.102-9.608 6.932-19.757l-.043-1.545a73 73 0 0 0-.081-1.588l-.118-1.63a86 86 0 0 0-.154-1.672l-.192-1.712l-.109-.87l-.246-1.769l-.284-1.805l-.32-1.84a128 128 0 0 0-.959-4.747l-.448-1.954l-.484-1.983q-.126-.5-.256-1.002l-.539-2.025l-.575-2.052l-.302-1.035l-.63-2.088l-.666-2.111q-.513-1.593-1.067-3.208l-.757-2.163l-.793-2.182a200 200 0 0 0-1.694-4.415l-.902-2.23l-.937-2.243l-.482-1.126l-.991-2.261l-1.028-2.272q-.261-.569-.527-1.139l-1.08-2.284l-.555-1.145a3.605 3.605 0 1 1 6.48-3.159l1.196 2.49q.588 1.243 1.156 2.482l1.118 2.474a220 220 0 0 1 3.112 7.356l.957 2.426q.235.605.464 1.208l.896 2.403q.219.598.433 1.195l.835 2.376a185 185 0 0 1 1.545 4.694l.71 2.315c8.5 28.409 7.41 51.515-5.34 58.016c-10.313 5.26-24.936-2.046-39.655-17.456l-1.523-1.622a138 138 0 0 1-3.044-3.415l-1.518-1.79c-4.046-4.844-8.055-10.257-11.938-16.147l-1.45-2.231a226 226 0 0 1-10.398-18.043l-.657-1.279a239 239 0 0 1-1.288-2.564l-1.247-2.559a230 230 0 0 1-2.826-6.112l-.582 1.151q-.27.54-.533 1.08l-1.038 2.147l-.997 2.132l-.958 2.114q-.234.527-.463 1.051l-.896 2.087q-.219.518-.433 1.035l-.836 2.056q-.204.51-.402 1.019l-.774 2.02q-.188.502-.37 1.002l-.712 1.983l-.67 1.956q-.487 1.456-.926 2.88l-.565 1.883l-.522 1.851q-.125.459-.245.913l-.458 1.8a92 92 0 0 0-.956 4.344l-.307 1.67c-2.04 11.83-.71 20.554 4.345 23.835c5.092 3.303 14.533.79 26.183-7.62a3.605 3.605 0 1 1 4.22 5.845c-13.807 9.968-26.013 13.216-34.327 7.822c-10.046-6.519-10.752-23.757-4.066-45.202l.694-2.158q.717-2.172 1.532-4.395l.838-2.233a173 173 0 0 1 3.825-9.143l1.072-2.33l1.117-2.346a208 208 0 0 1 4.582-8.897q-.324-.828-.641-1.653l-.933-2.475a189 189 0 0 1-3.296-9.713l-.714-2.374a163 163 0 0 1-1.24-4.466q-.667.134-1.322.272l-1.96.431l-1.913.453q-.472.116-.938.234l-1.84.483l-1.787.504q-.882.257-1.736.523l-1.683.542q-.828.276-1.628.561l-1.572.579c-10.803 4.113-17.383 9.51-17.69 15.388c-.279 5.358 5.068 11.423 15.584 16.883a3.605 3.605 0 1 1-3.322 6.398C46.567 140.033 39.395 131.898 39.86 123c.645-12.406 16.305-21.875 39.597-26.656c-4.714-22.525-2.315-40.051 8.52-45.577c8.009-4.088 18.472-.757 29.842 8.377m19.753 67.051c1.196 5.536-2.322 10.99-7.857 12.188c-5.536 1.196-10.99-2.322-12.188-7.858c-1.194-5.535 2.322-10.989 7.858-12.187c5.535-1.196 10.989 2.322 12.187 7.857m-34.898-25.606l-.65.045q-.746.053-1.484.113l-2.345.202l-2.31.228q-.573.06-1.141.124l-2.256.267l-1.113.143l-2.198.304l-.872.133l.308 1.151a167 167 0 0 0 1.568 5.342l.694 2.18l.362 1.1l.752 2.213q.31.895.633 1.798a239 239 0 0 1 3.54-5.705l.78-1.208a235 235 0 0 1 5.732-8.43\"\n      />\n    </svg>\n  );\n};\n\nexport default LogosAtomIconIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/lucide/badge-check.tsx",
    "content": "import React from \"react\";\n\nconst LucideBadgeCheckIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\" />\n        <path d=\"m9 12l2 2l4-4\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideBadgeCheckIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/lucide/cloud-download.tsx",
    "content": "import React from \"react\";\n\nconst LucideCloudDownloadIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <g\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        strokeWidth={2}\n      >\n        <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n        <path d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\" />\n      </g>\n    </svg>\n  );\n};\n\nexport default LucideCloudDownloadIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/material-symbols/10k.tsx",
    "content": "import React from \"react\";\n\nconst MaterialSymbols10kIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M6 15h1.5V9H5v1.5h1zm3.5 0H12q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9H9.5q-.425 0-.712.288T8.5 10v4q0 .425.288.713T9.5 15m.5-1.5v-3h1.5v3zm4 1.5h1.5v-2.25L17.25 15H19l-2.25-3L19 9h-1.75l-1.75 2.25V9H14zm-9 6q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21z\"\n      />\n    </svg>\n  );\n};\n\nexport default MaterialSymbols10kIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/mdi/account-badge-outline.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountBadgeOutlineIcon = (\n  props: React.ComponentPropsWithoutRef<\"svg\">,\n) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountBadgeOutlineIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/mdi/account.tsx",
    "content": "import React from \"react\";\n\nconst MdiAccountIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        fill=\"currentColor\"\n        d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n      />\n    </svg>\n  );\n};\n\nexport default MdiAccountIcon;\n"
  },
  {
    "path": "examples/vite-react/src/components/icons/mdi/home.tsx",
    "content": "import React from \"react\";\n\nconst MdiHomeIcon = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...props}>\n      <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n    </svg>\n  );\n};\n\nexport default MdiHomeIcon;\n"
  },
  {
    "path": "examples/vite-react/src/index.css",
    "content": "@import \"tailwindcss\";\n"
  },
  {
    "path": "examples/vite-react/src/main.tsx",
    "content": "import { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport App from './App.tsx'\nimport './index.css'\n\ncreateRoot(document.getElementById('root')!).render(\n  <StrictMode>\n    <App />\n  </StrictMode>,\n)\n"
  },
  {
    "path": "examples/vite-react/src/vite-env.d.ts",
    "content": "/// <reference types=\"vite/client\" />\n"
  },
  {
    "path": "examples/vite-react/tsconfig.app.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"module\": \"ESNext\",\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"isolatedModules\": true,\n    \"moduleDetection\": \"force\",\n    \"noEmit\": true,\n    \"jsx\": \"react-jsx\",\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"src\", \".monicon/*.d.ts\"]\n}\n"
  },
  {
    "path": "examples/vite-react/tsconfig.app.tsbuildinfo",
    "content": "{\"root\":[\"./src/app.tsx\",\"./src/main.tsx\",\"./src/vite-env.d.ts\",\"./src/__tests__/app.test.tsx\",\"./src/__tests__/setup.ts\"],\"errors\":true,\"version\":\"5.6.2\"}"
  },
  {
    "path": "examples/vite-react/tsconfig.json",
    "content": "{\n  \"files\": [],\n  \"references\": [\n    { \"path\": \"./tsconfig.app.json\" },\n    { \"path\": \"./tsconfig.node.json\" }\n  ]\n}\n"
  },
  {
    "path": "examples/vite-react/tsconfig.node.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"lib\": [\"ES2023\"],\n    \"module\": \"ESNext\",\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"isolatedModules\": true,\n    \"moduleDetection\": \"force\",\n    \"noEmit\": true,\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n}\n"
  },
  {
    "path": "examples/vite-react/tsconfig.node.tsbuildinfo",
    "content": "{\"root\":[\"./vite.config.ts\"],\"version\":\"5.6.2\"}"
  },
  {
    "path": "examples/vite-react/vite.config.ts",
    "content": "import { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\nimport monicon from \"@monicon/vite\";\nimport tailwindcss from \"@tailwindcss/vite\";\n\nexport default defineConfig({\n  plugins: [react(), tailwindcss(), monicon()],\n});\n"
  },
  {
    "path": "examples/vite-react/vitest.config.ts",
    "content": "import { mergeConfig } from \"vitest/config\";\nimport viteConfig from \"./vite.config\";\n\nexport default mergeConfig(viteConfig, {\n  test: {\n    globals: true,\n    environment: \"jsdom\",\n    setupFiles: [\"./src/__tests__/setup.ts\"],\n    include: [\"src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}\"],\n  },\n});\n"
  },
  {
    "path": "examples/vite-vue/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "examples/vite-vue/.vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\"Vue.volar\"]\n}\n"
  },
  {
    "path": "examples/vite-vue/README.md",
    "content": "# Vue 3 + TypeScript + Vite\n\nThis template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.\n\nLearn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).\n"
  },
  {
    "path": "examples/vite-vue/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/vite.svg\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Vite + Vue + TS</title>\n  </head>\n  <body>\n    <div id=\"app\"></div>\n    <script type=\"module\" src=\"/src/main.ts\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "examples/vite-vue/monicon.config.ts",
    "content": "import { vue, debuggerPlugin } from \"@monicon/core/plugins\";\nimport {\n  loadJSONCollection,\n  loadLocalCollection,\n  loadRemoteCollection,\n} from \"@monicon/core/loaders\";\nimport { MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  // collections: [\"lucide\"],\n  loaders: {\n    local: loadLocalCollection(\"../../packages/icons\"),\n    json: loadJSONCollection(\n      \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n    ),\n    remote: loadRemoteCollection({\n      download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n      attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n    }),\n  },\n  plugins: [vue(), debuggerPlugin()],\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "examples/vite-vue/package.json",
    "content": "{\n  \"name\": \"@monicon/vite-vue\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vite build && vue-tsc -b\",\n    \"preview\": \"vite preview\",\n    \"test\": \"vitest\"\n  },\n  \"dependencies\": {\n    \"vue\": \"^3.5.10\"\n  },\n  \"devDependencies\": {\n    \"@vitejs/plugin-vue\": \"^5.1.4\",\n    \"@vitest/coverage-v8\": \"^2.1.8\",\n    \"@vitest/ui\": \"^2.1.8\",\n    \"@vue/test-utils\": \"^2.4.6\",\n    \"jsdom\": \"^25.0.1\",\n    \"typescript\": \"^5.5.3\",\n    \"vite\": \"^6.0.2\",\n    \"vitest\": \"^2.1.8\",\n    \"vue-tsc\": \"^2.1.6\",\n    \"@monicon/vite\": \"*\"\n  }\n}\n"
  },
  {
    "path": "examples/vite-vue/src/App.vue",
    "content": "<script setup lang=\"ts\">\nimport ActivityIcon from \"./components/icons/feather/activity.vue\";\nimport AlertCircleIcon from \"./components/icons/feather/alert-circle.vue\";\nimport CloudDownloadIcon from \"./components/icons/lucide/cloud-download.vue\";\nimport AttachmentIcon from \"./components/icons/remote/attachment.vue\";\nimport FolderIcon from \"./components/icons/local/folder.vue\";\nimport NetworkIcon from \"./components/icons/json/network.vue\";\n</script>\n\n<template>\n  <main>\n    <ActivityIcon class=\"size-10\" />\n    <AlertCircleIcon height=\"40\" color=\"red\" />\n    <CloudDownloadIcon class=\"size-10\" />\n    <AttachmentIcon class=\"size-10\" />\n    <FolderIcon class=\"size-10\" />\n    <NetworkIcon width=\"40\" height=\"40\" />\n  </main>\n</template>\n"
  },
  {
    "path": "examples/vite-vue/src/__tests__/App.test.ts",
    "content": "import { describe, it, expect } from \"vitest\";\nimport { mount } from \"@vue/test-utils\";\n\nimport App from \"../App.vue\";\n\ndescribe(\"App\", () => {\n  it(\"should mount the App component\", () => {\n    const wrapper = mount(App);\n\n    expect(wrapper.findAll(\"svg\")).toHaveLength(4);\n  });\n});\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/feather/activity.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n      d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"FeatherActivityIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/feather/alert-circle.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <circle cx=\"12\" cy=\"12\" r=\"10\" />\n      <path d=\"M12 8v4m0 4h.01\" />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"FeatherAlertCircleIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/json/network.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <rect x=\"16\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\" />\n    <rect x=\"2\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\" />\n    <rect x=\"9\" y=\"2\" width=\"6\" height=\"6\" rx=\"1\" />\n    <path d=\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\" />\n    <path d=\"M12 12V8\" />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"JsonNetworkIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/local/folder.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LocalFolderIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/local/nested-folder.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LocalNestedFolderIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/lucide/badge-check.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <path\n        d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"\n      />\n      <path d=\"m9 12l2 2l4-4\" />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LucideBadgeCheckIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/lucide/cloud-download.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n      <path\n        d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\"\n      />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"LucideCloudDownloadIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/mdi/account-badge-outline.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"currentColor\"\n      d=\"M14 20H4v-3c0-2.7 5.3-4 8-4c1.5 0 3.9.4 5.7 1.3c-.8.3-1.4.7-2 1.2c-1.1-.4-2.4-.6-3.7-.6c-3 0-6.1 1.5-6.1 2.1v1.1h8.3c-.1.4-.2.9-.2 1.4zm9-.5c0 1.9-1.6 3.5-3.5 3.5S16 21.4 16 19.5s1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5M12 6c1.1 0 2 .9 2 2s-.9 2-2 2s-2-.9-2-2s.9-2 2-2m0-2C9.8 4 8 5.8 8 8s1.8 4 4 4s4-1.8 4-4s-1.8-4-4-4\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiAccountBadgeOutlineIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/mdi/account.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"currentColor\"\n      d=\"M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiAccountIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/mdi/home.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\" />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"MdiHomeIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/remote/attachment.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <path\n      fill=\"currentColor\"\n      d=\"m14.829 7.757l-5.657 5.657a1 1 0 1 0 1.414 1.414l5.657-5.656A3 3 0 0 0 12 4.929l-5.657 5.657a5 5 0 0 0 7.071 7.07L19.071 12l1.414 1.414l-5.656 5.657a7 7 0 0 1-9.9-9.9l5.657-5.656a5 5 0 0 1 7.071 7.07L12 16.244A3 3 0 0 1 7.758 12l5.656-5.657z\"\n    />\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"RemoteAttachmentIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/components/icons/remote/download.vue",
    "content": "<script setup lang=\"ts\">\nconst props = defineProps();\n</script>\n\n<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" v-bind=\"props\">\n    <g\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width=\"2\"\n    >\n      <path d=\"M12 13v8l-4-4m4 4l4-4\" />\n      <path\n        d=\"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284\"\n      />\n    </g>\n  </svg>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"RemoteDownloadIcon\" };\n</script>\n"
  },
  {
    "path": "examples/vite-vue/src/main.ts",
    "content": "import { createApp } from \"vue\";\n\nimport App from \"./App.vue\";\nimport \"./style.css\";\n\nconst app = createApp(App);\n\napp.mount(\"#app\");\n"
  },
  {
    "path": "examples/vite-vue/src/style.css",
    "content": ":root {\n  font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n  line-height: 1.5;\n  font-weight: 400;\n\n  color-scheme: light dark;\n  color: rgba(255, 255, 255, 0.87);\n  background-color: #242424;\n\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\na {\n  font-weight: 500;\n  color: #646cff;\n  text-decoration: inherit;\n}\na:hover {\n  color: #535bf2;\n}\n\nbody {\n  margin: 0;\n  display: flex;\n  place-items: center;\n  min-width: 320px;\n  min-height: 100vh;\n}\n\nh1 {\n  font-size: 3.2em;\n  line-height: 1.1;\n}\n\nbutton {\n  border-radius: 8px;\n  border: 1px solid transparent;\n  padding: 0.6em 1.2em;\n  font-size: 1em;\n  font-weight: 500;\n  font-family: inherit;\n  background-color: #1a1a1a;\n  cursor: pointer;\n  transition: border-color 0.25s;\n}\nbutton:hover {\n  border-color: #646cff;\n}\nbutton:focus,\nbutton:focus-visible {\n  outline: 4px auto -webkit-focus-ring-color;\n}\n\n.card {\n  padding: 2em;\n}\n\n#app {\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 2rem;\n  text-align: center;\n}\n\n@media (prefers-color-scheme: light) {\n  :root {\n    color: #213547;\n    background-color: #ffffff;\n  }\n  a:hover {\n    color: #747bff;\n  }\n  button {\n    background-color: #f9f9f9;\n  }\n}\n"
  },
  {
    "path": "examples/vite-vue/src/vite-env.d.ts",
    "content": "/// <reference types=\"vite/client\" />\n"
  },
  {
    "path": "examples/vite-vue/tsconfig.app.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"isolatedModules\": true,\n    \"moduleDetection\": \"force\",\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.tsx\", \"src/**/*.vue\"]\n}\n"
  },
  {
    "path": "examples/vite-vue/tsconfig.app.tsbuildinfo",
    "content": "{\"root\":[\"./src/main.ts\",\"./src/vite-env.d.ts\",\"./src/__tests__/app.test.ts\",\"./src/app.vue\",\"./src/components/icons/feather/activity.vue\",\"./src/components/icons/feather/alert-circle.vue\",\"./src/components/icons/json/network.vue\",\"./src/components/icons/local/folder.vue\",\"./src/components/icons/local/nested-folder.vue\",\"./src/components/icons/lucide/badge-check.vue\",\"./src/components/icons/lucide/cloud-download.vue\",\"./src/components/icons/mdi/account-badge-outline.vue\",\"./src/components/icons/mdi/account.vue\",\"./src/components/icons/mdi/home.vue\",\"./src/components/icons/remote/attachment.vue\",\"./src/components/icons/remote/download.vue\"],\"version\":\"5.6.2\"}"
  },
  {
    "path": "examples/vite-vue/tsconfig.json",
    "content": "{\n  \"files\": [],\n  \"references\": [\n    { \"path\": \"./tsconfig.app.json\" },\n    { \"path\": \"./tsconfig.node.json\" }\n  ]\n}\n"
  },
  {
    "path": "examples/vite-vue/tsconfig.node.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"lib\": [\"ES2023\"],\n    \"module\": \"ESNext\",\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"isolatedModules\": true,\n    \"moduleDetection\": \"force\",\n    \"noEmit\": true,\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n}\n"
  },
  {
    "path": "examples/vite-vue/tsconfig.node.tsbuildinfo",
    "content": "{\"root\":[\"./vite.config.ts\"],\"version\":\"5.6.2\"}"
  },
  {
    "path": "examples/vite-vue/vite.config.ts",
    "content": "import { defineConfig } from \"vite\";\nimport vue from \"@vitejs/plugin-vue\";\nimport monicon from \"@monicon/vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n  plugins: [vue(), monicon()],\n});\n"
  },
  {
    "path": "examples/vite-vue/vitest.config.ts",
    "content": "import { configDefaults, mergeConfig } from \"vitest/config\";\nimport viteConfig from \"./vite.config\";\n\nexport default mergeConfig(viteConfig, {\n  test: {\n    globals: true,\n    environment: \"jsdom\",\n    exclude: [...configDefaults.exclude, \"e2e/**\"],\n    coverage: {\n      provider: \"v8\",\n      reporter: [\"text\", \"json\", \"html\"],\n    },\n  },\n});\n"
  },
  {
    "path": "lefthook.yml",
    "content": "# EXAMPLE USAGE:\n#\n#   Refer for explanation to following link:\n#   https://github.com/evilmartians/lefthook/blob/master/docs/configuration.md\n#\n# pre-push:\n#   commands:\n#     packages-audit:\n#       tags: frontend security\n#       run: yarn audit\n#     gems-audit:\n#       tags: backend security\n#       run: bundle audit\n#\n# pre-commit:\n#   parallel: true\n#   commands:\n#     eslint:\n#       glob: \"*.{js,ts,jsx,tsx}\"\n#       run: yarn eslint {staged_files}\n#     rubocop:\n#       tags: backend style\n#       glob: \"*.rb\"\n#       exclude: '(^|/)(application|routes)\\.rb$'\n#       run: bundle exec rubocop --force-exclusion {all_files}\n#     govet:\n#       tags: backend style\n#       files: git ls-files -m\n#       glob: \"*.go\"\n#       run: go vet {files}\n#   scripts:\n#     \"hello.js\":\n#       runner: node\n#     \"any.go\":\n#       runner: go run\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"monicon\",\n  \"private\": true,\n  \"workspaces\": [\n    \"packages/*\",\n    \"examples/*\",\n    \"apps/*\"\n  ],\n  \"files\": [],\n  \"scripts\": {\n    \"dev\": \"turbo run dev\",\n    \"build\": \"turbo run build\",\n    \"build:pkgs\": \"turbo run build --filter='./packages/*'\",\n    \"build:examples\": \"turbo run build --filter='./examples/*'\",\n    \"clean\": \"turbo run clean\",\n    \"format\": \"prettier --write \\\"**/*.{ts,tsx,js,jsx,json,md}\\\" --ignore-path .gitignore\",\n    \"changeset\": \"changeset\",\n    \"bump\": \"changeset version\",\n    \"release\": \"yarn build:pkgs && changeset publish\",\n    \"sync\": \"syncpack fix-mismatches\"\n  },\n  \"devDependencies\": {\n    \"@changesets/changelog-github\": \"^0.5.0\",\n    \"@changesets/cli\": \"^2.27.9\",\n    \"prettier\": \"^3.3.3\",\n    \"turbo\": \"2.1.3\"\n  },\n  \"packageManager\": \"yarn@1.22.19\",\n  \"engines\": {\n    \"node\": \">=20\"\n  },\n  \"dependencies\": {\n    \"syncpack\": \"^13.0.0\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo\n\n# monicon\n.monicon\nlocal"
  },
  {
    "path": "packages/cli/CHANGELOG.md",
    "content": "# @monicon/cli\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n  - @monicon/typescript-config@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n  - @monicon/typescript-config@2.0.0\n"
  },
  {
    "path": "packages/cli/monicon.config.ts",
    "content": "import { debuggerPlugin, react, clean } from \"@monicon/core/plugins\";\nimport { type MoniconConfig } from \"@monicon/core\";\n\nexport default {\n  icons: [\n    \"mdi:home\",\n    \"mdi:account\",\n    \"mdi:account-badge-outline\",\n    \"feather:activity\",\n    \"feather:alert-circle\",\n    \"logos:active-campaign\",\n    \"logos:atom-icon\",\n    \"logos:apache\",\n    \"lucide:badge-check\",\n    \"lucide:cloud-download\",\n    \"lucide:attachment-2\",\n  ],\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    react({ outputPath: \"src/components/icons\" }),\n    debuggerPlugin(),\n  ],\n  watch: true,\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "packages/cli/package.json",
    "content": "{\n  \"name\": \"@monicon/cli\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"bin\": {\n    \"monicon\": \"./dist/index.cjs\"\n  },\n  \"exports\": {\n    \".\": {\n      \"require\": \"./dist/index.cjs\",\n      \"import\": \"./dist/index.mjs\",\n      \"types\": \"./dist/index.d.ts\",\n      \"default\": \"./dist/index.mjs\"\n    },\n    \"./*\": {\n      \"require\": \"./dist/*/index.cjs\",\n      \"import\": \"./dist/*/index.mjs\",\n      \"types\": \"./dist/*/index.d.ts\"\n    }\n  },\n  \"typesVersions\": {\n    \"*\": {\n      \"*\": [\n        \"./dist/*/index.d.ts\",\n        \"./dist/index.d.ts\"\n      ]\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"start\": \"tsx src/index.ts\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\",\n    \"prettier\": \"^3.5.3\",\n    \"@monicon/typescript-config\": \"*\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\",\n    \"cac\": \"^6.7.14\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/index.ts",
    "content": "#!/usr/bin/env node\n\nimport pkg from \"../package.json\" assert { type: \"json\" };\nimport cac from \"cac\";\nimport { bootstrap } from \"@monicon/core\";\nimport { loadConfigFile } from \"@monicon/core/utils\";\n\nconst cli = cac(\"monicon\");\n\ncli.command(\"\").action(() => cli.outputHelp());\n\ncli\n  .command(\"generate\", \"Generate icons\")\n  .option(\"-w, --watch\", \"Watch for changes\")\n  .action(async (options) => {\n    const config = await loadConfigFile();\n\n    if (!config.config) {\n      console.error(\n        \"[Monicon] No config file found, please create a config file (monicon.config.ts). See https://monicon.dev/docs/configuration for more information.\"\n      );\n      process.exit(1);\n    }\n\n    await bootstrap({\n      watch: false,\n      ...config.config,\n      ...options,\n    });\n  });\n\ncli.version(pkg.version);\ncli.help();\ncli.parse();\n"
  },
  {
    "path": "packages/cli/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: [\"src/index.ts\"],\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  dts: true,\n  minify: false,\n  outDir: \"dist/\",\n  sourcemap: false,\n  bundle: true,\n  splitting: false,\n  outExtension(ctx) {\n    return {\n      dts: \".d.ts\",\n      js: ctx.format === \"cjs\" ? \".cjs\" : \".mjs\",\n    };\n  },\n  treeshake: false,\n  target: \"es6\",\n  platform: \"node\",\n  tsconfig: \"./tsconfig.json\",\n  cjsInterop: true,\n  keepNames: true,\n  skipNodeModulesBundle: false,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/core/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo\n\n# monicon\n.monicon\nlocal"
  },
  {
    "path": "packages/core/CHANGELOG.md",
    "content": "# @monicon/core\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n"
  },
  {
    "path": "packages/core/monicon.config.ts",
    "content": "import type { MoniconConfig } from \"@monicon/core\";\n// import {\n//   loadJSONCollection,\n//   loadLocalCollection,\n//   loadRemoteCollection,\n// } from \"@monicon/core/loaders\";\nimport { debuggerPlugin, react, vue, svg, clean } from \"@monicon/core/plugins\";\n\nexport default {\n  icons: [\"ic:baseline-chat\", \"mdi:home\"],\n  // collections: [\"ei\", \"fad\"],\n  plugins: [\n    clean({ patterns: [\"src/components/icons\"] }),\n    svg(),\n    react(),\n    vue(),\n    debuggerPlugin(),\n  ],\n  // loaders: {\n  //   local: loadLocalCollection(\"local\"),\n  //   json: loadJSONCollection(\n  //     \"https://gist.githubusercontent.com/oktaysenkan/39681ecdb066dc44c52fa840dacc7562/raw/6aa7b8f8bf9d806742be0e1c4759809391d00bcd/icons.json\"\n  //   ),\n  //   remote: loadRemoteCollection({\n  //     download: \"https://api.iconify.design/lucide:cloud-download.svg\",\n  //     attachment: \"https://api.iconify.design/ri:attachment-2.svg\",\n  //   }),\n  // },\n  watch: true,\n} satisfies MoniconConfig;\n"
  },
  {
    "path": "packages/core/package.json",
    "content": "{\n  \"name\": \"@monicon/core\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"require\": \"./dist/index.cjs\",\n      \"import\": \"./dist/index.mjs\",\n      \"types\": \"./dist/index.d.ts\",\n      \"default\": \"./dist/index.mjs\"\n    },\n    \"./*\": {\n      \"require\": \"./dist/*/index.cjs\",\n      \"import\": \"./dist/*/index.mjs\",\n      \"types\": \"./dist/*/index.d.ts\"\n    }\n  },\n  \"typesVersions\": {\n    \"*\": {\n      \"*\": [\n        \"./dist/*/index.d.ts\",\n        \"./dist/index.d.ts\"\n      ]\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@iconify/json\": \"^2.2.251\",\n    \"@iconify/types\": \"^2.0.0\",\n    \"@monicon/typescript-config\": \"*\",\n    \"@types/jsdom\": \"^21.1.7\",\n    \"@types/lodash\": \"^4.17.14\",\n    \"@types/pascalcase\": \"^1.0.3\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@iconify/utils\": \"^2.1.33\",\n    \"change-case-all\": \"^2.1.0\",\n    \"chokidar\": \"^4.0.3\",\n    \"cosmiconfig\": \"^9.0.0\",\n    \"deepmerge\": \"^4.3.1\",\n    \"eta\": \"^3.5.0\",\n    \"fuuu\": \"^0.0.8\",\n    \"glob\": \"^11.0.2\",\n    \"html-to-jsx-transform\": \"^1.2.0\",\n    \"jsdom\": \"^26.0.0\",\n    \"lodash\": \"^4.17.21\",\n    \"pascalcase\": \"^2.0.0\",\n    \"prettier\": \"^3.5.3\",\n    \"radashi\": \"^12.7.1\",\n    \"svgson\": \"^5.3.1\"\n  }\n}\n"
  },
  {
    "path": "packages/core/src/index.ts",
    "content": "import _ from \"lodash\";\nimport merge from \"deepmerge\";\nexport * from \"./types\";\n\nimport { MoniconPluginContext, MoniconPluginFunction } from \"./plugins\";\nimport type { MoniconConfig } from \"./types\";\nimport { loadConfigFile, watchConfigFile } from \"./utils/config-loader\";\nimport { writeFiles } from \"./utils/file-system\";\nimport { generateIcons } from \"./utils/icon-processor\";\nimport { loadPlugins, runPlugins } from \"./utils/plugin-loader\";\n\n/**\n * Prepare the icon files\n * @param config - The config\n * @param configModified - Whether the config has been modified\n */\nconst prepareIconFiles = async (\n  config: Required<MoniconConfig>,\n  context: MoniconPluginContext\n) => {\n  const icons = await generateIcons(config);\n\n  const plugins = await loadPlugins(config, context, icons);\n\n  const files = await runPlugins(plugins, context, icons);\n\n  await Promise.all(\n    plugins.map(async (plugin) =>\n      plugin.beforeWriteFiles?.({ ...context, files })\n    )\n  );\n\n  await writeFiles(files);\n\n  await Promise.all(\n    plugins.map(async (plugin) =>\n      plugin.afterWriteFiles?.({ ...context, files })\n    )\n  );\n};\n\nconst resolvePlugins = (plugins: MoniconPluginFunction[]) => {\n  const resolvedPlugins = new Map<string, MoniconPluginFunction>();\n\n  plugins.forEach((plugin) => {\n    const pluginInstance = plugin({ icons: [] });\n\n    resolvedPlugins.set(pluginInstance.name, plugin);\n  });\n\n  return Array.from(resolvedPlugins.values());\n};\n\n/**\n * Bootstrap the icon generator\n * @param options - The options\n */\nexport const bootstrap = async (options?: MoniconConfig) => {\n  const defaultConfig: Required<MoniconConfig> = {\n    icons: [],\n    watch: true,\n    plugins: [],\n    loaders: {},\n    collections: [],\n  };\n\n  const loadedConfig = await loadConfigFile();\n\n  const config = merge.all<Required<MoniconConfig>>([\n    defaultConfig,\n    loadedConfig?.config ?? {},\n    options ?? {},\n  ]);\n\n  config.plugins = resolvePlugins(config.plugins);\n\n  console.log(\"[Monicon] Starting icon generation...\");\n\n  if (config.watch) console.log(\"[Monicon] Watching for config changes...\");\n\n  await prepareIconFiles(config, {\n    configFilePath: loadedConfig.filepath,\n    configUpdated: false,\n  });\n\n  if (config.watch) {\n    watchConfigFile({\n      onUpdate: async (newConfig) => {\n        console.log(\"[Monicon] Config updated, re-generating icons...\");\n\n        await prepareIconFiles(\n          { ...defaultConfig, ...newConfig },\n          {\n            configFilePath: loadedConfig.filepath,\n            configUpdated: true,\n          }\n        );\n      },\n    });\n  }\n};\n"
  },
  {
    "path": "packages/core/src/loaders/index.ts",
    "content": "export {\n  loadJSONCollection,\n  type JSONCollectionLoaderOptions,\n} from \"./json-collection\";\nexport {\n  loadLocalCollection,\n  type LocalCollectionLoaderOptions,\n} from \"./local-collection\";\nexport {\n  loadRemoteCollection,\n  type RemoteCollectionLoaderOptions,\n} from \"./remote-collection\";\nexport { type Content, type Loader, type LoaderResult } from \"./types\";\nexport { isValidSvg } from \"./utils\";\n"
  },
  {
    "path": "packages/core/src/loaders/json-collection.ts",
    "content": "import * as f from \"fuuu\";\nimport { Loader, LoaderResult } from \"./types\";\nimport { isValidSvg } from \"./utils\";\n\nexport type JSONCollectionLoaderOptions =\n  | string\n  | {\n      url: string;\n      options?: RequestInit;\n    };\n\nexport const loadJSONCollection: Loader<JSONCollectionLoaderOptions> =\n  (input) => async () => {\n    const url = typeof input === \"string\" ? input : input.url;\n\n    const options = typeof input === \"string\" ? undefined : input.options;\n\n    const response = await f.safe(() => fetch(url, options));\n\n    if (response.error) {\n      console.warn(`[Monicon] Request to \"${url}\" failed.`);\n      return {};\n    }\n\n    const content = await f.safe<LoaderResult>(() => response.data.json());\n\n    if (content.error) {\n      console.warn(`[Monicon] Unable to parse response from \"${url}\".`);\n      return {};\n    }\n\n    Object.entries(content.data).forEach(([key, value]) => {\n      if (!isValidSvg(value)) {\n        console.warn(\n          `[Monicon] The response from \"${url}\" is not a valid SVG.`\n        );\n        delete content.data[key];\n      }\n    });\n\n    return content.data satisfies LoaderResult;\n  };\n"
  },
  {
    "path": "packages/core/src/loaders/local-collection.ts",
    "content": "import * as f from \"fuuu\";\nimport { glob } from \"glob\";\nimport path from \"path\";\nimport * as _ from \"radashi\";\nimport slugify from \"slugify\";\nimport * as fs from \"fs\";\nimport { Content, Loader, LoaderResult } from \"./types\";\nimport { isValidSvg } from \"./utils\";\n\nslugify.extend({ \"/\": \"-\" });\n\nexport type LocalCollectionLoaderOptions =\n  | string\n  | {\n      directory: string;\n    };\n\nexport const loadLocalCollection: Loader<LocalCollectionLoaderOptions> =\n  (input) => () => {\n    const directory = typeof input === \"string\" ? input : input.directory;\n\n    if (!directory) throw new Error(\"directory is required\");\n\n    const directoryAbsolutePath = path.resolve(directory);\n\n    const filePaths = glob.sync(`${directory}/**/*.svg`);\n\n    if (!filePaths.length) {\n      console.warn(\n        `[Monicon] No files were found in the directory \"${directory}\".`\n      );\n    }\n\n    const files = filePaths.map((filePath) => {\n      const content = f.syncSafe(() => fs.readFileSync(filePath, \"utf-8\"));\n\n      if (content.error) {\n        console.warn(\n          `[Monicon] The file \"${filePath}\" was not found. This file might not exist, or the required icon file might not be in the correct format.`\n        );\n        return;\n      }\n\n      if (!isValidSvg(content.data)) {\n        console.warn(`[Monicon] The file \"${filePath}\" is not a valid SVG.`);\n        return;\n      }\n\n      const fileAbsolutePath = path.resolve(filePath);\n\n      const relativePath = fileAbsolutePath.replace(\n        `${directoryAbsolutePath}/`,\n        \"\"\n      );\n\n      const fileNameWithoutExtension = relativePath.slice(0, -4).trim();\n\n      const slugified = slugify(fileNameWithoutExtension, { lower: true });\n\n      return { name: slugified, content: content.data } as Content;\n    });\n\n    const filesFiltered = files.filter((item) => !!item) as Content[];\n\n    const asObject = _.objectify(\n      filesFiltered,\n      (item) => item.name,\n      (item) => item.content\n    );\n\n    return asObject satisfies LoaderResult;\n  };\n"
  },
  {
    "path": "packages/core/src/loaders/remote-collection.ts",
    "content": "import * as f from \"fuuu\";\nimport * as _ from \"radashi\";\nimport { Content, Loader, LoaderResult } from \"./types\";\nimport { isValidSvg } from \"./utils\";\n\nexport type RemoteCollectionLoaderOptions = Record<\n  string,\n  | string\n  | {\n      url: string;\n      options?: RequestInit;\n    }\n>;\n\nexport const loadRemoteCollection: Loader<RemoteCollectionLoaderOptions> =\n  (input) => async () => {\n    const asArray = await Promise.all(\n      Object.entries(input).map(async ([key, value]) => {\n        const url = typeof value === \"string\" ? value : value.url;\n\n        const options = typeof value === \"string\" ? undefined : value.options;\n\n        const response = await f.safe(() => fetch(url, options));\n\n        if (response.error) {\n          console.warn(`[Monicon] Request to \"${url}\" failed.`);\n          return;\n        }\n\n        const content = await f.safe(() => response.data.text());\n\n        if (content.error) {\n          console.warn(`[Monicon] Unable to parse response from \"${url}\".`);\n          return;\n        }\n\n        if (!isValidSvg(content.data)) {\n          console.warn(\n            `[Monicon] The response from \"${url}\" is not a valid SVG.`\n          );\n          return;\n        }\n\n        return { name: key, content: content.data } as Content;\n      })\n    );\n\n    const asArrayFiltered = asArray.filter((item) => !!item) as Content[];\n\n    const asObject = _.objectify(\n      asArrayFiltered,\n      (item) => item.name,\n      (item) => item.content\n    );\n\n    return asObject satisfies LoaderResult;\n  };\n"
  },
  {
    "path": "packages/core/src/loaders/types.ts",
    "content": "import * as _ from \"radashi\";\n\nexport type LoaderResult = Record<string, string>;\n\nexport type Loader<T = any> = (\n  input: T\n) => () => Promise<LoaderResult> | LoaderResult;\n\nexport type Content = {\n  name: string;\n  content: string;\n};\n"
  },
  {
    "path": "packages/core/src/loaders/utils.ts",
    "content": "import * as _ from \"radashi\";\nimport * as f from \"fuuu\";\nimport { parseSync } from \"svgson\";\n\nexport const isValidSvg = (svg: string) => {\n  const parsed = f.syncSafe(() => parseSync(svg));\n\n  return !parsed.error;\n};\n"
  },
  {
    "path": "packages/core/src/plugins/clean/glob.ts",
    "content": "import { glob } from \"glob\";\n\nexport default glob;\n"
  },
  {
    "path": "packages/core/src/plugins/clean/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/clean/plugin.ts",
    "content": "import fs from \"fs\";\nimport glob from \"./glob\";\nimport type { MoniconPlugin } from \"../types\";\n\nexport type CleanOptions = {\n  patterns: string[];\n  enabled?: boolean;\n};\n\n/**\n * Clean plugin to remove files and directories before generating new icons\n * @param options - The options for the plugin\n */\nexport const clean: MoniconPlugin<CleanOptions> = (options) => {\n  return () => ({\n    name: \"clean\",\n    generate: async () => {\n      return [];\n    },\n    beforeWriteFiles: async () => {\n      const enabled = options.enabled ?? true;\n\n      if (!enabled) return;\n\n      const files = options.patterns.flatMap((pattern) => glob.sync(pattern));\n\n      files.forEach((path) => {\n        const isExists = fs.existsSync(path);\n\n        if (!isExists) return;\n\n        const isDirectory = fs.lstatSync(path).isDirectory();\n\n        isDirectory\n          ? fs.rmSync(path, { recursive: true, force: true })\n          : fs.unlinkSync(path);\n      });\n    },\n  });\n};\n"
  },
  {
    "path": "packages/core/src/plugins/debugger/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/debugger/plugin.ts",
    "content": "import { MoniconPlugin } from \"../types\";\n\nexport type DebuggerPluginOptions = {\n  enabled?: boolean;\n} | void;\n\n/**\n * Debugger plugin to log the icons and files\n * @param options - The options for the plugin\n */\nexport const debuggerPlugin: MoniconPlugin<DebuggerPluginOptions> =\n  (options) => () => {\n    return {\n      name: \"monicon-debugger-plugin\",\n      generate: () => [],\n      onPluginsLoad: (context) => {\n        const enabled = options?.enabled ?? true;\n\n        if (!enabled) return;\n\n        console.log(\n          `[Monicon - Debugger Plugin] On plugins load ${context.plugins.length} plugins`\n        );\n      },\n      beforeGenerate: (context) => {\n        const enabled = options?.enabled ?? true;\n\n        if (!enabled) return;\n\n        console.log(\n          `[Monicon - Debugger Plugin] Before generate ${context.icons.length} icons`\n        );\n      },\n      afterGenerate: (context) => {\n        const enabled = options?.enabled ?? true;\n\n        if (!enabled) return;\n\n        console.log(\n          `[Monicon - Debugger Plugin] After generate ${context.icons.length} icons`\n        );\n      },\n      beforeWriteFiles: (context) => {\n        const enabled = options?.enabled ?? true;\n\n        if (!enabled) return;\n\n        console.log(\n          `[Monicon - Debugger Plugin] Before write files ${context.files.length} files`\n        );\n      },\n      afterWriteFiles: (context) => {\n        const enabled = options?.enabled ?? true;\n\n        if (!enabled) return;\n\n        console.log(\n          `[Monicon - Debugger Plugin] After write files ${context.files.length} files`\n        );\n      },\n    };\n  };\n"
  },
  {
    "path": "packages/core/src/plugins/generic/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/generic/plugin.ts",
    "content": "import path from \"path\";\nimport slugify from \"slugify\";\nimport type { Icon } from \"../../types\";\nimport {\n  MoniconPlugin,\n  MoniconPluginFile,\n  MoniconPluginInstance,\n} from \"../types\";\n\nslugify.extend({ \":\": \"/\" });\n\nexport type FileCreationOptions = {\n  outputPath?: ((icon: Icon) => string | undefined) | string;\n  fileName?: ((icon: Icon) => string | undefined) | string;\n  extension?: ((icon: Icon) => string | undefined) | string;\n  content?: ((icon: Icon) => string | Promise<string>) | string\n};\n\ntype HasRequiredKey<T extends object> = {} extends T ? false : true;\n\ntype NormalizeOptions<T extends object> =\n  HasRequiredKey<T> extends true ? T : T | void;\n\nexport type GenericPluginOptions<T extends object = object> = NormalizeOptions<\n  Partial<MoniconPluginInstance> & FileCreationOptions & T\n>;\n\n/**\n * Get the file name for the icon\n * @param icon - The icon to get the file name for\n * @param options - The options for the plugin\n * @returns The file name for the icon\n */\nconst getFileName = (icon: Icon, options: GenericPluginOptions) => {\n  const defaultFileName = slugify(icon.name, { lower: true, remove: /:/g });\n\n  const fileName =\n    typeof options?.fileName === \"function\"\n      ? (options.fileName(icon) ?? defaultFileName)\n      : (options?.fileName ?? defaultFileName);\n\n  const extension =\n    typeof options?.extension === \"function\"\n      ? (options.extension(icon) ?? \"svg\")\n      : (options?.extension ?? \"svg\");\n\n  return `${fileName}.${extension}`;\n};\n\n/**\n * Get the output path for the icon\n * @param icon - The icon to get the output path for\n * @param options - The options for the plugin\n * @returns The output path for the icon\n */\nconst getOutputPath = (icon: Icon, options: GenericPluginOptions) => {\n  const defaultOutputPath = \"src/components/icons\";\n\n  if (!options?.outputPath) {\n    return defaultOutputPath;\n  }\n\n  return typeof options.outputPath === \"function\"\n    ? (options.outputPath(icon) ?? defaultOutputPath)\n    : (options.outputPath ?? defaultOutputPath);\n};\n\n/**\n * Generate icon files\n * @param icons - The icons to generate\n * @param outputPath - The path to output the icons to\n */\nconst generateIconFiles = async (icons: Icon[], options: GenericPluginOptions) => {\n  const results = await Promise.allSettled(icons.map(async (icon) => {\n    const fileName = getFileName(icon, options);\n\n    if (!fileName) return;\n\n    const outputPath = getOutputPath(icon, options);\n\n    if (!outputPath) return;\n\n    const content =\n      typeof options?.content === \"function\"\n        ? (await options?.content(icon)) ?? \"\"\n        : options?.content;\n\n    if (!content) {\n      console.warn(\n        `[Monicon] - No content found for icon \"${icon.name}\" in \"${options?.name}\" plugin`\n      );\n      return;\n    }\n\n    const filePath = path.join(outputPath, fileName);\n\n    const file: MoniconPluginFile = {\n      path: path.resolve(filePath),\n      content: content,\n    };\n\n    return file;\n  }));\n\n  const rejected = results.filter((result) => result.status === \"rejected\") as PromiseRejectedResult[];\n\n  if (rejected.length > 0) {\n    console.warn(\n      `[Monicon] - Failed to generate ${rejected.length} icons for \"${options?.name}\" plugin: ${rejected.map((result) => result.reason).join(\", \")}`\n    );\n  }\n\n  const files = results.filter((result) => result.status === \"fulfilled\") as PromiseFulfilledResult<MoniconPluginFile>[];\n\n  return files.map((result) => result.value ?? \"\");\n};\n\n/**\n * SVG plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const generic: MoniconPlugin<GenericPluginOptions> =\n  (options) => (payload) => {\n    return {\n      name: options?.name ?? \"monicon-generic-plugin\",\n      async generate() {\n        return generateIconFiles(payload.icons, this);\n      },\n      ...options,\n    };\n  };"
  },
  {
    "path": "packages/core/src/plugins/index.ts",
    "content": "export * from \"./react\";\nexport * from \"./svelte\";\nexport * from \"./native\";\nexport * from \"./qwik\";\nexport * from \"./vue\";\nexport * from \"./svg\";\nexport * from \"./debugger\";\nexport * from \"./clean\";\nexport * from \"./types\";\nexport * from \"./generic\";\n"
  },
  {
    "path": "packages/core/src/plugins/native/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/native/plugin.ts",
    "content": "import { Eta } from \"eta\";\nimport * as prettier from \"prettier\";\nimport { MoniconPlugin } from \"../types\";\nimport templates from \"./templates\";\nimport { generic, GenericPluginOptions } from \"../generic\";\nimport { ComponentNameOptions, getComponentName } from \"../../utils/name\";\n\nexport type ReactNativePluginOptionsInternal = ComponentNameOptions & {\n  format?: \"jsx\" | \"tsx\";\n}\n\nexport type ReactNativePluginOptions = GenericPluginOptions<ReactNativePluginOptionsInternal>;\n\n/**\n * React Native plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const reactNative: MoniconPlugin<ReactNativePluginOptions> =\n  (_options) => generic({\n    name: \"monicon-react-native-plugin\",\n    extension: _options?.format ?? \"tsx\",\n    content: async (icon) => {\n      const options: ReactNativePluginOptions = {\n        suffix: \"Icon\",\n        ..._options,\n      };\n\n      const eta = new Eta({ autoEscape: false });\n\n      const componentName = getComponentName(icon, options);\n\n      const fileFormat = options?.format ?? \"tsx\";\n\n      const templateContent = templates[fileFormat];\n\n      const fileContent = eta.renderString(templateContent, {\n        name: componentName,\n        code: icon.svg,\n        format: fileFormat,\n        height: icon.height,\n        width: icon.width,\n      });\n\n      const formattedCode = await prettier.format(fileContent, {\n        parser: fileFormat === \"tsx\" ? \"typescript\" : \"babel\",\n      });\n\n      return formattedCode;\n    },\n    ..._options,\n  });\n"
  },
  {
    "path": "packages/core/src/plugins/native/templates.ts",
    "content": "const tsxTemplate = `import React from \"react\";\nimport { SvgXml, type SvgProps } from \"react-native-svg\";\n\nconst <%= it.name %> = (props: Omit<SvgProps, \"xml\">) => {\n  const xml = \\`<%= it.code %>\\`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default <%= it.name %>;`;\n\nconst jsxTemplate = `import React from \"react\";\nimport { SvgXml } from \"react-native-svg\";\n\nconst <%= it.name %> = (props) => {\n  const xml = \\`<%= it.code %>\\`;\n\n  return <SvgXml xml={xml} {...props} />;\n};\n\nexport default <%= it.name %>;`;\n\nconst templates = {\n  tsx: tsxTemplate,\n  jsx: jsxTemplate,\n};\n\nexport default templates;\n"
  },
  {
    "path": "packages/core/src/plugins/qwik/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/qwik/plugin.ts",
    "content": "import { Eta } from \"eta\";\nimport * as prettier from \"prettier\";\nimport { MoniconPlugin } from \"../types\";\nimport template from \"./template\";\nimport { generic, GenericPluginOptions } from \"../generic\";\nimport { ComponentNameOptions, getComponentName } from \"../../utils/name\";\n\nexport type QwikPluginOptionsInternal = ComponentNameOptions\n\nexport type QwikPluginOptions = GenericPluginOptions<QwikPluginOptionsInternal>;\n\n/**\n * Qwik plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const qwik: MoniconPlugin<QwikPluginOptions> =\n  (_options) => generic({\n    name: \"monicon-qwik-plugin\",\n    extension: \"tsx\",\n    content: async (icon) => {\n      const options: QwikPluginOptions = {\n        suffix: \"Icon\",\n        ..._options,\n      };\n\n      const eta = new Eta({ autoEscape: false });\n\n      const componentName = getComponentName(icon, options);\n\n      const fileContent = eta.renderString(template, {\n        name: componentName,\n        code: icon.svg,\n        format: \"tsx\",\n        height: icon.height,\n        width: icon.width,\n      });\n\n      const fileContentWithProps = fileContent.replace(\n        /(<svg\\b[^>]*)(?=>)/,\n        \"$1 {...props}\"\n      );\n\n      const formattedCode = await prettier.format(fileContentWithProps, {\n        parser: \"typescript\",\n      });\n\n      return formattedCode;\n    },\n    ..._options,\n  });\n"
  },
  {
    "path": "packages/core/src/plugins/qwik/template.ts",
    "content": "const template = `import { component$, type QwikIntrinsicElements } from \"@builder.io/qwik\";\n\nconst <%= it.name %> = component$((props: QwikIntrinsicElements[\"svg\"]) => {\n  return <%= it.code %>\n});\n\nexport default <%= it.name %>;`;\n\nexport default template;\n"
  },
  {
    "path": "packages/core/src/plugins/react/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/react/plugin.ts",
    "content": "import { Eta } from \"eta\";\nimport { htmlToJsx } from \"html-to-jsx-transform\";\nimport * as prettier from \"prettier\";\nimport { MoniconPlugin } from \"../types\";\nimport templates from \"./templates\";\nimport { generic, GenericPluginOptions } from \"../generic\";\nimport { ComponentNameOptions, getComponentName } from \"../../utils/name\";\n\nexport type ReactPluginOptionsInternal = ComponentNameOptions & {\n  format?: \"jsx\" | \"tsx\";\n}\n\nexport type ReactPluginOptions = GenericPluginOptions<ReactPluginOptionsInternal>;\n\n/**\n * React plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const react: MoniconPlugin<ReactPluginOptions> =\n  (_options) => generic({\n    name: \"monicon-react-plugin\",\n    extension: _options?.format ?? \"tsx\",\n    content: async (icon) => {\n      const options: ReactPluginOptions = {\n        suffix: \"Icon\",\n        ..._options,\n      };\n\n      const eta = new Eta({ autoEscape: false });\n\n      const componentName = getComponentName(icon, options);\n\n      const fileFormat = options?.format ?? \"tsx\";\n\n      const reactCode = htmlToJsx(icon.svg);\n\n      const templateContent = templates[fileFormat];\n\n      const fileContent = eta.renderString(templateContent, {\n        name: componentName,\n        code: reactCode,\n        format: fileFormat,\n        height: icon.height,\n        width: icon.width,\n      });\n\n      const fileContentWithProps = fileContent.replace(\n        /(<svg\\b[^>]*)(?=>)/,\n        \"$1 {...props}\"\n      );\n\n      const formattedCode = await prettier.format(fileContentWithProps, {\n        parser: fileFormat === \"tsx\" ? \"typescript\" : \"babel\",\n      });\n\n      return formattedCode;\n    },\n    ..._options,\n  });\n"
  },
  {
    "path": "packages/core/src/plugins/react/templates.ts",
    "content": "const tsxTemplate = `import React from \"react\";\n\nconst <%= it.name %> = (props: React.ComponentPropsWithoutRef<\"svg\">) => {\n  return <%= it.code %>\n};\n\nexport default <%= it.name %>;`;\n\nconst jsxTemplate = `import React from \"react\";\n\nconst <%= it.name %> = (props) => {\n  return <%= it.code %>\n};\n\nexport default <%= it.name %>;`;\n\nconst templates = {\n  tsx: tsxTemplate,\n  jsx: jsxTemplate,\n};\n\nexport default templates;\n"
  },
  {
    "path": "packages/core/src/plugins/svelte/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/svelte/plugin.ts",
    "content": "import { Eta } from \"eta\";\nimport * as prettier from \"prettier\";\nimport { MoniconPlugin } from \"../types\";\nimport template from \"./templates\";\nimport { generic, GenericPluginOptions } from \"../generic\";\nimport { ComponentNameOptions, getComponentName } from \"../../utils/name\";\n\nexport type SveltePluginOptionsInternal = ComponentNameOptions\n\nexport type SveltePluginOptions = GenericPluginOptions<SveltePluginOptionsInternal>;\n\n/**\n * Svelte plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const svelte: MoniconPlugin<SveltePluginOptions> = (_options) => generic({\n  name: \"monicon-svelte-plugin\",\n  extension: \"svelte\",\n  content: async (icon) => {\n    const options: SveltePluginOptions = {\n      suffix: \"Icon\",\n      outputPath: \"'src/lib/components/icons\",\n      ..._options,\n    };\n\n    const eta = new Eta({ autoEscape: false });\n\n    const componentName = getComponentName(icon, options);\n\n    const fileContent = eta.renderString(template, {\n      name: componentName,\n      code: icon.svg,\n      height: icon.height,\n      width: icon.width,\n    });\n\n    const fileContentWithProps = fileContent.replace(\n      /(<svg\\b[^>]*)(?=>)/,\n      \"$1 {...$$$restProps}\"\n    );\n\n    const formattedCode = await prettier.format(fileContentWithProps, {\n      parser: \"babel\",\n    });\n\n    // TODO: prettier-plugin-svelte\n    const fixedCode = formattedCode.replace(\";\", \"\");\n\n    return fixedCode;\n  },\n  ..._options,\n});\n"
  },
  {
    "path": "packages/core/src/plugins/svelte/templates.ts",
    "content": "const template = `\n<%= it.code %>\n`;\n\nexport default template;\n"
  },
  {
    "path": "packages/core/src/plugins/svg/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/svg/plugin.ts",
    "content": "import { MoniconPlugin } from \"../types\";\nimport { generic, GenericPluginOptions } from \"../generic\";\n\ntype SvgPluginOptions = GenericPluginOptions;\n\n/**\n * SVG plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const svg: MoniconPlugin<SvgPluginOptions> = (options) =>\n  generic({\n    name: \"monicon-svg-plugin\",\n    content: (icon) => icon.svg,\n    ...options,\n  });\n"
  },
  {
    "path": "packages/core/src/plugins/types.ts",
    "content": "import type { Icon } from \"../types\";\n\nexport type MoniconPluginPayload = {\n  icons: Icon[];\n};\n\nexport type PromiseLike<T> = Promise<T> | T;\n\nexport type MoniconPluginFile = {\n  path: string;\n  content: string;\n};\n\nexport type MoniconPluginContext<T = any> = T & {\n  configUpdated: boolean;\n  configFilePath: string;\n};\n\nexport type MoniconPluginLoadContext = MoniconPluginContext<{\n  plugins: string[];\n}>;\n\nexport type MoniconPluginGenerateContext = MoniconPluginContext<{\n  icons: Icon[];\n}>;\n\nexport type MoniconPluginWriteFilesContext = MoniconPluginContext<{\n  files: MoniconPluginFile[];\n}>;\n\nexport type MoniconPlugin<T = any> = (opts: T) => (\n  payload: MoniconPluginPayload\n) => {\n  name: string;\n  generate: (\n    context: MoniconPluginGenerateContext\n  ) => PromiseLike<MoniconPluginFile[]>;\n  onPluginsLoad?: (context: MoniconPluginLoadContext) => PromiseLike<void>;\n  beforeGenerate?: (context: MoniconPluginGenerateContext) => PromiseLike<void>;\n  afterGenerate?: (context: MoniconPluginGenerateContext) => PromiseLike<void>;\n  beforeWriteFiles?: (\n    context: MoniconPluginWriteFilesContext\n  ) => PromiseLike<void>;\n  afterWriteFiles?: (\n    context: MoniconPluginWriteFilesContext\n  ) => PromiseLike<void>;\n};\n\nexport type MoniconPluginFunction = Awaited<ReturnType<MoniconPlugin>>;\n\nexport type MoniconPluginInstance = Awaited<ReturnType<MoniconPluginFunction>>;\n"
  },
  {
    "path": "packages/core/src/plugins/vue/index.ts",
    "content": "export * from \"./plugin\";\n"
  },
  {
    "path": "packages/core/src/plugins/vue/plugin.ts",
    "content": "import { Eta } from \"eta\";\nimport * as prettier from \"prettier\";\nimport { MoniconPlugin } from \"../types\";\nimport templates from \"./templates\";\nimport { generic, GenericPluginOptions } from \"../generic\";\nimport { ComponentNameOptions, getComponentName } from \"../../utils/name\";\n\nexport type VuePluginOptionsInternal = ComponentNameOptions & {\n  template?: \"js\" | \"ts\";\n}\n\nexport type VuePluginOptions = GenericPluginOptions<VuePluginOptionsInternal>;\n\n/**\n * Vue plugin to generate icon files\n * @param options - The options for the plugin\n */\nexport const vue: MoniconPlugin<VuePluginOptions> = (_options) => generic({\n  name: \"monicon-vue-plugin\",\n  extension: \"vue\",\n  content: async (icon) => {\n    const options: VuePluginOptions = {\n      suffix: \"Icon\",\n      template: \"ts\",\n      outputPath: \"src/components/icons\",\n      ..._options,\n    };\n\n    const eta = new Eta({ autoEscape: false });\n\n    const componentName = getComponentName(icon, options);\n\n    const fileFormat = options?.template ?? \"ts\";\n\n    const template = templates[fileFormat];\n\n    const fileContent = eta.renderString(template, {\n      name: componentName,\n      code: icon.svg,\n      height: icon.height,\n      width: icon.width,\n    });\n\n    const fileContentWithProps = fileContent.replace(\n      /(<svg\\b[^>]*)(?=>)/,\n      '$1 v-bind=\"props\"'\n    );\n\n    const formattedCode = await prettier.format(fileContentWithProps, {\n      parser: \"vue\",\n    });\n\n    return formattedCode;\n  },\n  ..._options,\n});"
  },
  {
    "path": "packages/core/src/plugins/vue/templates.ts",
    "content": "const tsTemplate = `<script setup lang=\"ts\">\nconst props = defineProps()\n</script>\n\n<template>\n  <%= it.code %>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"<%= it.name %>\" };\n</script>\n`;\n\nconst jsTemplate = `<script setup>\nconst props = defineProps();\n</script>\n\n<template>\n  <%= it.code %>\n</template>\n\n<script lang=\"ts\">\nexport default { name: \"<%= it.name %>\" };\n</script>\n`;\n\nconst templates = {\n  js: jsTemplate,\n  ts: tsTemplate,\n};\n\nexport default templates;\n"
  },
  {
    "path": "packages/core/src/types.ts",
    "content": "import { Loader } from \"./loaders\";\nimport { MoniconPluginFunction } from \"./plugins\";\n\nexport type MoniconConfig = {\n  icons?: string[];\n  watch?: boolean;\n  plugins?: MoniconPluginFunction[];\n  loaders?: Record<string, ReturnType<Loader>>;\n  collections?: string[];\n};\n\nexport type CollectionIcon = {\n  body: string;\n  width?: number;\n  height?: number;\n};\n\nexport type Collection = {\n  prefix: string;\n  lastModified: number;\n  width?: number;\n  height?: number;\n  icons: Record<string, CollectionIcon>;\n};\n\nexport type Icon = {\n  name: string;\n  body: string;\n  width: number;\n  height: number;\n  svg: string;\n};\n"
  },
  {
    "path": "packages/core/src/utils/config-loader.ts",
    "content": "import chokidar from \"chokidar\";\nimport { cosmiconfig } from \"cosmiconfig\";\nimport { loadJsSync, loadTsSync } from \"cosmiconfig/dist/loaders.js\";\n\nimport type { MoniconConfig } from \"../types\";\n\ntype WatchConfigFileParams = {\n  onUpdate: (config: MoniconConfig) => void;\n};\n\nconst explorer = cosmiconfig(\"monicon\", {\n  cache: false,\n  loaders: {\n    '.js': loadJsSync,\n    '.mjs': loadJsSync,\n    '.cjs': loadJsSync,\n    '.ts': loadTsSync,\n  }\n});\n\nexport const loadConfigFile = async () => {\n  const result = await explorer.search();\n\n  const config = (result?.config?.default || result?.config) as MoniconConfig;\n\n  return {\n    ...result,\n    config,\n  };\n};\n\nexport const watchConfigFile = async ({ onUpdate }: WatchConfigFileParams) => {\n  const result = await explorer.search();\n\n  const filepath = result?.filepath;\n\n  if (filepath) {\n    chokidar.watch(filepath).on(\"change\", async (file) => {\n      const newResult = await explorer.load(file);\n\n      onUpdate(\n        (newResult?.config?.default || newResult?.config) as MoniconConfig\n      );\n    });\n  }\n\n  return result;\n};\n"
  },
  {
    "path": "packages/core/src/utils/file-system.ts",
    "content": "import fs from \"fs/promises\";\nimport path from \"path\";\nimport { MoniconPluginFile } from \"../plugins\";\n\n/**\n * Write the files to the file system\n * @param files - The files to write\n */\nexport const writeFiles = async (files: MoniconPluginFile[]) => {\n  await Promise.all(\n    files.map(async (file) => {\n      await fs.mkdir(path.dirname(file.path), { recursive: true });\n      await fs.writeFile(file.path, file.content);\n    })\n  );\n};\n"
  },
  {
    "path": "packages/core/src/utils/icon-processor.ts",
    "content": "import { createSvg, transformIcon } from \"./svg\";\nimport type { Collection, Icon, MoniconConfig } from \"../types\";\nimport { create } from \"lodash\";\n\n/**\n * Chunk the strings into smaller arrays\n * @param strings - The strings to chunk\n * @param maxLength - The size of the chunk\n * @returns The chunked strings\n */\nexport const chunkStrings = (strings: string[], maxLength: number = 400) => {\n  const chunks: string[][] = [];\n  let currentChunk: string[] = [];\n  let currentLength: number = 0;\n\n  for (const str of strings) {\n    const stringLength = str.length;\n\n    if (currentLength + stringLength > maxLength) {\n      chunks.push(currentChunk);\n      currentChunk = [];\n      currentLength = 0;\n    }\n\n    currentChunk.push(str);\n    currentLength += stringLength;\n  }\n\n  if (currentChunk.length > 0) {\n    chunks.push(currentChunk);\n  }\n\n  return chunks;\n};\n\n/**\n * Parse the icons from the input\n * @param icons - The icons to parse eg: `[\"mdi:home\", \"mdi:user\"]`\n * @returns The parsed icons\n */\nexport const parseIcons = (icons: string[]) => {\n  return icons.map(parseIcon);\n};\n\n/**\n * Parse the icon from the input\n * @param icon - The icon to parse eg: `\"mdi:home\"`\n * @returns The parsed icon\n */\nexport const parseIcon = (icon: string) => {\n  const parts = icon.split(\":\");\n\n  if (parts.length !== 2) {\n    throw new Error(\n      `Invalid icon format: ${icon}. Expected format: \"prefix:name\"`\n    );\n  }\n\n  const [prefix, name] = parts;\n\n  return { prefix, name };\n};\n\n/**\n * Get the icons from the input\n * @param icons - The icons to get\n * @returns The icons\n */\nconst fetchIcons = async (icons: string[]) => {\n  const parsedIcons = parseIcons(Array.from(new Set(icons)));\n  const collections = new Map<string, string[]>();\n\n  parsedIcons.forEach((icon) => {\n    collections.get(icon.prefix)\n      ? collections.get(icon.prefix)?.push(icon.name)\n      : collections.set(icon.prefix, [icon.name]);\n  });\n\n  const chunkedCollections = new Map<string, string[][]>();\n\n  collections.forEach((names, prefix) =>\n    chunkedCollections.set(prefix, chunkStrings(names))\n  );\n\n  const urlMap = new Map<string, string[]>();\n\n  for (const [prefix, chunks] of chunkedCollections.entries()) {\n    for (const chunk of chunks) {\n      const searchParams = new URLSearchParams();\n\n      searchParams.set(\"icons\", chunk.join(\",\"));\n\n      const url = new URL(`https://api.iconify.design/${prefix}.json`);\n\n      url.search = searchParams.toString();\n\n      const collection = urlMap.get(prefix);\n\n      if (!collection) {\n        urlMap.set(prefix, [url.toString()]);\n        continue;\n      }\n\n      collection.push(url.toString());\n    }\n  }\n\n  const iconsByCollection = new Map<string, Collection>();\n\n  const collectionResponses = await Promise.all(\n    Array.from(urlMap.values())\n      .flat()\n      .map(async (url) => {\n        const response = await fetch(url);\n\n        return response.json() as Promise<Collection>;\n      })\n  );\n\n  for (const response of collectionResponses) {\n    const collection = iconsByCollection.get(response.prefix);\n\n    if (!collection) {\n      iconsByCollection.set(response.prefix, response);\n      continue;\n    }\n\n    iconsByCollection.set(response.prefix, {\n      ...collection,\n      icons: { ...collection.icons, ...response.icons },\n    });\n  }\n\n  const fullIcons: Icon[] = Array.from(iconsByCollection.values()).flatMap(\n    (collection) =>\n      Object.entries(collection.icons).map(([name, icon]) => {\n        const width = icon.width ?? collection.width ?? 16;\n        const height = icon.height ?? collection.height ?? 16;\n\n        const svg = createSvg({ body: icon.body, width, height });\n\n        const iconName = `${collection.prefix}:${name}`;\n\n        return {\n          name: iconName,\n          width,\n          height,\n          body: icon.body,\n          svg,\n        };\n      })\n  );\n\n  return fullIcons;\n};\n\n/**\n * Get the icons from the loaders\n * @param config - The config\n * @returns The loaded icons\n */\nconst getLoaderIcons = async (config: Required<MoniconConfig>) => {\n  const loaders = Object.entries(config.loaders);\n\n  const loadedIcons: Record<string, Icon> = {};\n\n  for await (const [loaderName, loader] of loaders) {\n    const loaderResult = await loader();\n\n    for await (const [iconName, svg] of Object.entries(loaderResult)) {\n      const icon = transformIcon(svg);\n\n      const svgAsHtml = createSvg({\n        body: icon.body,\n        width: icon.width,\n        height: icon.height,\n      });\n\n      const name = `${loaderName}:${iconName}`;\n\n      loadedIcons[name] = { ...icon, name, svg: svgAsHtml };\n    }\n  }\n\n  return Object.values(loadedIcons);\n};\n\nconst fetchCollectionIcons = async (config: Required<MoniconConfig>) => {\n  // TODO: write to file system for caching. Request iconify last modified date and compare with the local file. If it's newer, fetch the new icons.\n  const urls = config.collections.map((collection) => {\n    return `https://raw.githubusercontent.com/iconify/icon-sets/refs/heads/master/json/${collection}.json`;\n  });\n\n  const collectionResponses = await Promise.all(\n    urls.map(async (url) => {\n      const response = await fetch(url);\n\n      return response.json() as Promise<Collection>;\n    })\n  );\n\n  const icons = collectionResponses.flatMap((collection) => {\n    return Object.entries(collection.icons).map(([name, icon]) => {\n      const width = icon.width ?? collection.width ?? 16;\n      const height = icon.height ?? collection.height ?? 16;\n\n      const svg = createSvg({ body: icon.body, width, height });\n\n      return {\n        name: `${collection.prefix}:${name}`,\n        width,\n        height,\n        body: icon.body,\n        svg,\n      };\n    });\n  });\n\n  return icons;\n};\n\n/**\n * Generate icon files\n * @param config - The config\n * @param configModified - Whether the config has been modified\n * @returns The generated icons\n */\nexport const generateIcons = async (config: Required<MoniconConfig>) => {\n  const [fetchedIcons, collectionIcons, loaderIcons] = await Promise.all([\n    fetchIcons(config.icons),\n    fetchCollectionIcons(config),\n    getLoaderIcons(config),\n  ]);\n\n  const allIcons = [...fetchedIcons, ...loaderIcons, ...collectionIcons];\n\n  const uniqueIcons = new Map<string, Icon>();\n\n  allIcons.forEach((icon) => uniqueIcons.set(icon.name, icon));\n\n  return Array.from(uniqueIcons.values());\n};\n"
  },
  {
    "path": "packages/core/src/utils/index.ts",
    "content": "export * from \"./config-loader\";\nexport * from \"./file-system\";\nexport * from \"./icon-processor\";\nexport * from \"./plugin-loader\";\nexport * from \"./name\";"
  },
  {
    "path": "packages/core/src/utils/name.ts",
    "content": "import { pascalCase } from \"change-case-all\";\nimport { Icon } from \"../types\";\n\nexport type ComponentNameOptions = {\n    prefix?: ((icon: Icon) => string | undefined) | string;\n    suffix?: ((icon: Icon) => string | undefined) | string;\n    componentName?: (icon: Icon) => string | undefined;\n}\n\n/**\n * Strip leading digits from a string\n * @param input - The input string\n * @returns The string with leading digits removed\n */\nexport const alphaNumericOnly = (input: string) => {\n    return input.replace(/[^a-zA-Z0-9]/g, \"\");\n}\n\n/**\n * Generate a component name from an icon name\n * @param name - The name of the icon\n * @returns The component name\n */\nexport const generateComponentName = (iconName: string) => {\n    return alphaNumericOnly(pascalCase(iconName))\n}\n\n/**\n * Get a component name from an icon\n * @param icon - The icon\n * @param options - The options\n * @returns The component name\n */\nexport const getComponentName = (icon: Icon, options: ComponentNameOptions) => {\n    const componentName = generateComponentName(icon.name);\n\n    const prefix =\n        typeof options?.prefix === \"function\"\n            ? options.prefix(icon)\n            : (options?.prefix ?? \"\");\n\n    const suffix =\n        typeof options?.suffix === \"function\"\n            ? options.suffix(icon)\n            : (options?.suffix ?? \"\");\n\n    return `${prefix}${componentName}${suffix}`;\n};\n"
  },
  {
    "path": "packages/core/src/utils/plugin-loader.ts",
    "content": "import { MoniconPluginContext, MoniconPluginInstance } from \"../plugins\";\nimport { MoniconConfig } from \"../types\";\n\nimport { Icon } from \"../types\";\n\n/**\n * Run the plugins\n * @param config - The config\n * @param icons - The icons to run the plugins on\n * @param configModified - Whether the config has been modified\n */\nexport const loadPlugins = async (\n  config: Required<MoniconConfig>,\n  context: MoniconPluginContext,\n  icons: Icon[]\n) => {\n  const plugins = config.plugins.map((plugin) => plugin({ icons }));\n\n  const pluginNames = plugins.map((plugin) => plugin.name);\n\n  await Promise.all(\n    plugins.map((plugin) =>\n      plugin.onPluginsLoad?.({ ...context, plugins: pluginNames })\n    )\n  );\n\n  return plugins;\n};\n\n/**\n * Run the plugins\n * @param plugins - The plugins to run\n * @param configModified - Whether the config has been modified\n */\nexport const runPlugins = async (\n  plugins: MoniconPluginInstance[],\n  context: MoniconPluginContext,\n  icons: Icon[]\n) => {\n  const files = await Promise.all(\n    plugins.map(async (plugin) => {\n      await plugin.beforeGenerate?.({ ...context, icons });\n\n      const files = await plugin.generate({ ...context, icons });\n\n      await plugin.afterGenerate?.({ ...context, icons });\n\n      return files;\n    })\n  );\n\n  return files.flat();\n};\n"
  },
  {
    "path": "packages/core/src/utils/svg.ts",
    "content": "import { JSDOM } from \"jsdom\";\nimport { parseSync, stringify } from \"svgson\";\nimport type { CollectionIcon } from \"../types\";\n\nexport const toPx = (value: string) => {\n  if (value.endsWith(\"em\")) {\n    return parseFloat(value) * 16;\n  }\n\n  return parseFloat(value);\n};\n\nexport const transformIcon = (svg: string) => {\n  const svgObject = parseSync(svg);\n\n  const viewBox = svgObject.attributes?.viewBox;\n\n  const [, , widthAsString, heightAsString] = viewBox?.split(\" \") ?? [];\n\n  const width = toPx(widthAsString ?? \"1em\");\n  const height = toPx(heightAsString ?? \"1em\");\n\n  const body = svgObject.children\n    .map((child) => stringify(child, { selfClose: false }))\n    .join(\"\");\n\n  return {\n    svg,\n    body,\n    width: width,\n    height: height,\n  };\n};\n\n/**\n * Create an SVG from the icon body\n * @param icon - The icon to create the SVG from\n * @returns The SVG\n */\nexport const createSvg = (icon: Required<CollectionIcon>) => {\n  const { window } = new JSDOM();\n  const parser = new window.DOMParser();\n\n  const viewBox = `0 0 ${icon.width} ${icon.height}`;\n\n  const dom = parser.parseFromString(\n    `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\">${icon.body}</svg>`,\n    \"image/svg+xml\"\n  );\n\n  return dom.documentElement.outerHTML;\n};\n"
  },
  {
    "path": "packages/core/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\"\n  }\n}\n"
  },
  {
    "path": "packages/core/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: [\n    \"src/index.ts\",\n    \"src/plugins/index.ts\",\n    \"src/loaders/index.ts\",\n    \"src/utils/index.ts\",\n  ],\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  dts: true,\n  minify: false,\n  outDir: \"dist/\",\n  sourcemap: false,\n  bundle: true,\n  splitting: false,\n  outExtension(ctx) {\n    return {\n      dts: \".d.ts\",\n      js: ctx.format === \"cjs\" ? \".cjs\" : \".mjs\",\n    };\n  },\n  treeshake: false,\n  target: \"es2022\",\n  platform: \"node\",\n  tsconfig: \"./tsconfig.json\",\n  cjsInterop: true,\n  keepNames: true,\n  skipNodeModulesBundle: false,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/esbuild/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/esbuild/CHANGELOG.md",
    "content": "# @monicon/esbuild\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/core@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/core@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/core@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/core@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/esbuild/package.json",
    "content": "{\n  \"name\": \"@monicon/esbuild\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"peerDependencies\": {\n    \"esbuild\": \"^0.17.0\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\"\n  }\n}\n"
  },
  {
    "path": "packages/esbuild/src/index.ts",
    "content": "import { bootstrap, MoniconConfig } from \"@monicon/core\";\nimport type { Plugin } from \"esbuild\";\n\nexport const monicon = (options?: MoniconConfig): Plugin => {\n  return {\n    name: \"esbuild-monicon\",\n    setup(build) {\n      build.onStart(async () => {\n        await bootstrap(options);\n      });\n    },\n  };\n};\n\nexport default monicon;\n"
  },
  {
    "path": "packages/esbuild/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/esbuild/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/metro/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/metro/CHANGELOG.md",
    "content": "# @monicon/metro\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/core@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/core@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/core@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/core@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/metro/package.json",
    "content": "{\n  \"name\": \"@monicon/metro\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\",\n    \"metro-config\": \"^0.80.12\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\"\n  }\n}\n"
  },
  {
    "path": "packages/metro/src/index.ts",
    "content": "import type { IntermediateConfigT } from \"metro-config\";\nimport { bootstrap, MoniconConfig } from \"@monicon/core\";\n\n// @ts-expect-error __DEV__ is not defined in the globalThis object\nconst isDevelopmentMode = typeof __DEV__ !== \"undefined\" ? __DEV__ : false;\n\nexport const withMonicon = (\n  metroConfig: IntermediateConfigT,\n  config?: MoniconConfig\n): IntermediateConfigT => {\n  void bootstrap({\n    watch: isDevelopmentMode,\n    ...config,\n  });\n\n  return metroConfig;\n};\n"
  },
  {
    "path": "packages/metro/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/metro/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/nuxt/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/nuxt/CHANGELOG.md",
    "content": "# @monicon/nuxt\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n  - @monicon/vite@1.2.2\n  - @monicon/webpack@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/webpack@1.2.1\n  - @monicon/vite@1.2.1\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n  - @monicon/vite@1.2.0\n  - @monicon/webpack@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/webpack@1.1.1\n  - @monicon/core@1.1.1\n  - @monicon/vite@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/webpack@1.1.1-next.0\n  - @monicon/core@1.1.1-next.0\n  - @monicon/vite@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/vite@1.1.0\n  - @monicon/core@1.1.0\n  - @monicon/webpack@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n  - @monicon/vite@1.0.0\n  - @monicon/webpack@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n  - @monicon/vite@0.0.153\n  - @monicon/webpack@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n  - @monicon/vite@0.0.152\n  - @monicon/webpack@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n  - @monicon/vite@0.0.151\n  - @monicon/webpack@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n  - @monicon/vite@0.0.150\n  - @monicon/webpack@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n  - @monicon/vite@0.0.149\n  - @monicon/webpack@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n  - @monicon/vite@0.0.148\n  - @monicon/webpack@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n  - @monicon/vite@0.0.147\n  - @monicon/webpack@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n  - @monicon/vite@0.0.146\n  - @monicon/webpack@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n  - @monicon/vite@0.0.145\n  - @monicon/webpack@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/webpack@0.0.144\n  - @monicon/core@0.0.144\n  - @monicon/vite@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n  - @monicon/vite@0.0.140\n  - @monicon/webpack@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n  - @monicon/vite@0.0.139\n  - @monicon/webpack@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n  - @monicon/vite@0.0.138\n  - @monicon/webpack@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/nuxt/package.json",
    "content": "{\n  \"name\": \"@monicon/nuxt\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@nuxt/kit\": \"^3.11.2\",\n    \"@monicon/core\": \"*\"\n  }\n}\n"
  },
  {
    "path": "packages/nuxt/src/index.ts",
    "content": "import { defineNuxtModule } from \"@nuxt/kit\";\nimport { bootstrap, MoniconConfig } from \"@monicon/core\";\n\nconst defaultOptions: MoniconConfig = {\n  icons: [],\n};\n\nexport default defineNuxtModule<MoniconConfig>({\n  meta: {\n    name: \"nuxt-monicon\",\n    configKey: \"monicon\",\n  },\n  defaults: defaultOptions,\n  async setup(options, nuxt) {\n    nuxt.hook(\n      \"build:before\",\n      async () => await bootstrap({ watch: nuxt.options.dev, ...options })\n    );\n  },\n});\n"
  },
  {
    "path": "packages/nuxt/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/nuxt/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  externals: [\"@nuxt/schema\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/rollup/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/rollup/CHANGELOG.md",
    "content": "# @monicon/rollup\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/vite@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/vite@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/vite@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/vite@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/vite@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/vite@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/vite@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/vite@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/vite@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/vite@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/vite@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/vite@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/vite@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/vite@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/vite@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/vite@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/vite@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/vite@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/vite@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/vite@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/vite@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/vite@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/vite@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/vite@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/vite@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/vite@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/vite@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/vite@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/vite@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/vite@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/vite@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/vite@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/vite@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/vite@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/vite@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/vite@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/vite@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/vite@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/vite@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/vite@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/vite@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/vite@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/vite@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/vite@0.0.123\n"
  },
  {
    "path": "packages/rollup/package.json",
    "content": "{\n  \"name\": \"@monicon/rollup\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@monicon/vite\": \"*\"\n  }\n}\n"
  },
  {
    "path": "packages/rollup/src/index.ts",
    "content": "import { monicon } from \"@monicon/vite\";\n\nexport { monicon };\nexport default monicon;\n"
  },
  {
    "path": "packages/rollup/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/rollup/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/rspack/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\n# dist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/rspack/CHANGELOG.md",
    "content": "# @monicon/rspack\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n  - @monicon/webpack@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n  - @monicon/webpack@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n  - @monicon/webpack@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n  - @monicon/webpack@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n  - @monicon/webpack@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n  - @monicon/webpack@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n  - @monicon/webpack@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n  - @monicon/webpack@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/webpack@2.0.0\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n  - @monicon/webpack@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/webpack@1.2.1\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n  - @monicon/webpack@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/webpack@1.1.1\n  - @monicon/core@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/webpack@1.1.1-next.0\n  - @monicon/core@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/core@1.1.0\n  - @monicon/webpack@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n  - @monicon/webpack@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n  - @monicon/webpack@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n  - @monicon/webpack@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n  - @monicon/webpack@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n  - @monicon/webpack@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n  - @monicon/webpack@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n  - @monicon/webpack@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n  - @monicon/webpack@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n  - @monicon/webpack@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n  - @monicon/webpack@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/webpack@0.0.144\n  - @monicon/core@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n  - @monicon/webpack@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n  - @monicon/webpack@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n  - @monicon/webpack@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n  - @monicon/webpack@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n  - @monicon/webpack@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n  - @monicon/webpack@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n  - @monicon/webpack@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n  - @monicon/webpack@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n  - @monicon/webpack@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n  - @monicon/webpack@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/webpack@0.0.130\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/webpack@0.0.129\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/webpack@0.0.128\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/webpack@0.0.127\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/webpack@0.0.126\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/webpack@0.0.125\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/webpack@0.0.124\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/webpack@0.0.123\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/rspack/package.json",
    "content": "{\n  \"name\": \"@monicon/rspack\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\",\n    \"@monicon/webpack\": \"*\"\n  }\n}\n"
  },
  {
    "path": "packages/rspack/src/index.ts",
    "content": "import { MoniconConfig } from \"@monicon/core\";\nimport { MoniconPlugin as MoniconWebpackPlugin } from \"@monicon/webpack\";\n\nconst pluginName = \"rspack-monicon\";\n\nexport class MoniconPlugin extends MoniconWebpackPlugin {\n  name = pluginName;\n\n  constructor(config?: MoniconConfig) {\n    const opts: MoniconConfig = {\n      ...config,\n    };\n\n    super(opts);\n  }\n}\n\nexport default MoniconPlugin;\n"
  },
  {
    "path": "packages/rspack/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/rspack/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/typescript-config/CHANGELOG.md",
    "content": "# @monicon/typescript-config\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n"
  },
  {
    "path": "packages/typescript-config/base.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/tsconfig\",\n  \"display\": \"Default\",\n  \"compilerOptions\": {\n    \"composite\": false,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"esModuleInterop\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"inlineSources\": false,\n    \"isolatedModules\": true,\n    \"moduleResolution\": \"node\",\n    \"noUnusedLocals\": false,\n    \"noUnusedParameters\": false,\n    \"preserveWatchOutput\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true\n  },\n  \"exclude\": [\"node_modules\"]\n}\n"
  },
  {
    "path": "packages/typescript-config/nextjs.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/tsconfig\",\n  \"display\": \"Next.js\",\n  \"extends\": \"./base.json\",\n  \"compilerOptions\": {\n    \"allowJs\": true,\n    \"declaration\": false,\n    \"declarationMap\": false,\n    \"incremental\": true,\n    \"jsx\": \"preserve\",\n    \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n    \"module\": \"esnext\",\n    \"noEmit\": true,\n    \"resolveJsonModule\": true,\n    \"strict\": true,\n    \"target\": \"es5\"\n  },\n  \"include\": [\"src\", \"next-env.d.ts\"],\n  \"exclude\": [\"node_modules\"]\n}\n"
  },
  {
    "path": "packages/typescript-config/package.json",
    "content": "{\n  \"name\": \"@monicon/typescript-config\",\n  \"version\": \"2.0.8\",\n  \"private\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n"
  },
  {
    "path": "packages/typescript-config/react-native-library.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/tsconfig\",\n  \"display\": \"React Native Library\",\n  \"extends\": \"./base.json\",\n  \"compilerOptions\": {\n    \"allowJs\": true,\n    \"jsx\": \"react\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"noEmit\": true,\n    \"resolveJsonModule\": true,\n    \"target\": \"ESNext\"\n  }\n}\n"
  },
  {
    "path": "packages/typescript-config/vue-library.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/tsconfig\",\n  \"display\": \"Vue Library\",\n  \"extends\": \"./base.json\",\n  \"compilerOptions\": {\n    \"lib\": [\"ES2015\", \"dom\"],\n    \"module\": \"ESNext\",\n    \"target\": \"es6\",\n    \"jsx\": \"preserve\",\n    \"baseUrl\": \".\",\n  },\n  \"include\": [\n    \"src/**/*.ts\",\n    \"src/**/*.d.ts\",\n    \"src/**/*.tsx\",\n    \"src/**/*.vue\"\n  ],\n}\n"
  },
  {
    "path": "packages/vite/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\ndist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/vite/CHANGELOG.md",
    "content": "# @monicon/vite\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/core@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/core@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/core@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/core@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/vite/package.json",
    "content": "{\n  \"name\": \"@monicon/vite\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"require\": \"./dist/index.js\",\n      \"import\": \"./dist/index.mjs\"\n    },\n    \"./*\": {\n      \"require\": \"./dist/*/index.js\",\n      \"import\": \"./dist/*/index.mjs\"\n    }\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"peerDependencies\": {\n    \"vite\": \"^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"2.0.8\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"2.0.8\"\n  }\n}\n"
  },
  {
    "path": "packages/vite/src/index.ts",
    "content": "import type { PluginOption } from \"vite\";\nimport { bootstrap, MoniconConfig } from \"@monicon/core\";\n\n// Remix's vite plugin calls resolveId before buildStart, so we need to wait for the bootstrap to complete before resolving the id.\nlet bootstrapPromise: Promise<void> | null = null;\n\nexport const monicon = (config?: MoniconConfig): PluginOption => {\n  return {\n    name: \"vite-monicon\",\n    async buildStart() {\n      if (bootstrapPromise) return;\n\n      const isWatching =\n        Boolean(this?.meta?.watchMode) ||\n        process.env.NODE_ENV === \"development\";\n\n      bootstrapPromise = bootstrap({ watch: isWatching, ...config });\n    },\n    resolveId: async () => {\n      await bootstrapPromise;\n\n      return;\n    },\n    config: async () => {\n      return {\n        server: {\n          fs: {\n            allow: [\"..\"],\n          },\n        },\n      };\n    },\n  };\n};\n\nexport default monicon;\n"
  },
  {
    "path": "packages/vite/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/vite/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  splitting: false,\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "packages/webpack/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n.pnp.js\n\n\n# misc\n.DS_Store\n*.pem\n\n# build\n# dist\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# turbo\n.turbo"
  },
  {
    "path": "packages/webpack/CHANGELOG.md",
    "content": "# @monicon/webpack\n\n## 2.0.8\n\n### Patch Changes\n\n- [`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update vite peer dependencies version\n\n- Updated dependencies [[`8623e16`](https://github.com/oktaysenkan/monicon/commit/8623e16e28e6a562d7a9179e4f45eedc05f0d3bf)]:\n  - @monicon/core@2.0.8\n\n## 2.0.7\n\n### Patch Changes\n\n- [`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: use only needed loaders\n\n- Updated dependencies [[`450efa2`](https://github.com/oktaysenkan/monicon/commit/450efa221f0f33b56816d7f4c4296d637f210bc2)]:\n  - @monicon/core@2.0.7\n\n## 2.0.6\n\n### Patch Changes\n\n- [#89](https://github.com/oktaysenkan/monicon/pull/89) [`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: set default watch false for cli\n\n- Updated dependencies [[`b07677a`](https://github.com/oktaysenkan/monicon/commit/b07677a0f8ae704a439e34c0e9a824edeff328d6)]:\n  - @monicon/core@2.0.6\n\n## 2.0.5\n\n### Patch Changes\n\n- [#87](https://github.com/oktaysenkan/monicon/pull/87) [`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat: change component name generation algorithm\n\n- Updated dependencies [[`a68704f`](https://github.com/oktaysenkan/monicon/commit/a68704f9fdcb9e7de679779df61a9cfe4ffb97e9)]:\n  - @monicon/core@2.0.5\n\n## 2.0.4\n\n### Patch Changes\n\n- [`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: sanitize component names\n\n- Updated dependencies [[`9a5487c`](https://github.com/oktaysenkan/monicon/commit/9a5487c3b4babbc005de3aeeb25767c9aab613f5)]:\n  - @monicon/core@2.0.4\n\n## 2.0.3\n\n### Patch Changes\n\n- [#84](https://github.com/oktaysenkan/monicon/pull/84) [`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - chore: update cosmoconfig\n\n- Updated dependencies [[`313dde7`](https://github.com/oktaysenkan/monicon/commit/313dde7a8425df79e0d42d6cbf40883d5e56da5b)]:\n  - @monicon/core@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n- [#82](https://github.com/oktaysenkan/monicon/pull/82) [`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - refactor: add typescript config package as dev dep\n\n- Updated dependencies [[`6bff168`](https://github.com/oktaysenkan/monicon/commit/6bff1681f957d236f87330e276dfba3ecd88bd9e)]:\n  - @monicon/core@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n- [#80](https://github.com/oktaysenkan/monicon/pull/80) [`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: resolve npx executable issue\n\n- Updated dependencies [[`6b083a5`](https://github.com/oktaysenkan/monicon/commit/6b083a55396c8269c831155efe0d4c427b0a8a1d)]:\n  - @monicon/core@2.0.1\n\n## 2.0.0\n\n### Major Changes\n\n- [#70](https://github.com/oktaysenkan/monicon/pull/70) [`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - introduce generic plugin system for creating custom icon transformations and output formats. This powerful new plugin allows unlimited extensibility - generate icons in any format beyond the built-in framework plugins by controlling file paths, names, extensions, and content generation.\n\n### Patch Changes\n\n- Updated dependencies [[`ceeca33`](https://github.com/oktaysenkan/monicon/commit/ceeca334f2ad005206a2e7ce4b9276dcd23dbe35)]:\n  - @monicon/core@2.0.0\n\n## 1.2.2\n\n### Patch Changes\n\n- [#68](https://github.com/oktaysenkan/monicon/pull/68) [`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix(react): resolve kebab-case html attributes warning\n\n- Updated dependencies [[`1902f22`](https://github.com/oktaysenkan/monicon/commit/1902f229ac19e3b74aebfddb2e2fe73ae78d2834)]:\n  - @monicon/core@1.2.2\n\n## 1.2.1\n\n### Patch Changes\n\n- [#64](https://github.com/oktaysenkan/monicon/pull/64) [`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: update peer dependencies\n\n- Updated dependencies [[`400aad8`](https://github.com/oktaysenkan/monicon/commit/400aad80bad14d7fd4901a747dd34eedd65afc1c)]:\n  - @monicon/core@1.2.1\n\n## 1.2.0\n\n### Minor Changes\n\n- [#62](https://github.com/oktaysenkan/monicon/pull/62) [`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement type generation\n\n### Patch Changes\n\n- Updated dependencies [[`6a3a299`](https://github.com/oktaysenkan/monicon/commit/6a3a299398311653e7c9f7765572c1bbaf494c45)]:\n  - @monicon/core@1.2.0\n\n## 1.1.1\n\n### Patch Changes\n\n- [#59](https://github.com/oktaysenkan/monicon/pull/59) [`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - fix: change auto-generated icons folder path\n\n- Updated dependencies [[`165e338`](https://github.com/oktaysenkan/monicon/commit/165e338e4c53088bebf2e08f49816fbec2161e81)]:\n  - @monicon/core@1.1.1\n\n## 1.1.1-next.0\n\n### Patch Changes\n\n- fix: change auto-generated icons folder path\n\n- Updated dependencies []:\n  - @monicon/core@1.1.1-next.0\n\n## 1.1.0\n\n### Minor Changes\n\n- [#56](https://github.com/oktaysenkan/monicon/pull/56) [`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - feat(svelte): add svelte 5 support (#55)\n\n### Patch Changes\n\n- Updated dependencies [[`82fb3b0`](https://github.com/oktaysenkan/monicon/commit/82fb3b09cbfa74cce0d59ea7999bc87936059de3)]:\n  - @monicon/core@1.1.0\n\n## 1.0.0\n\n### Major Changes\n\n- [#52](https://github.com/oktaysenkan/monicon/pull/52) [`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - stable release\n\n### Patch Changes\n\n- Updated dependencies [[`05ae5f5`](https://github.com/oktaysenkan/monicon/commit/05ae5f59e76be1b91bcba22b62e2b928d179c217)]:\n  - @monicon/core@1.0.0\n\n## 0.0.153\n\n### Patch Changes\n\n- [#49](https://github.com/oktaysenkan/monicon/pull/49) [`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - implement custom loaders\n\n- Updated dependencies [[`3d99a2a`](https://github.com/oktaysenkan/monicon/commit/3d99a2a84c01c9b6e52da955a7915791ee4c6aca)]:\n  - @monicon/core@0.0.153\n\n## 0.0.152\n\n### Patch Changes\n\n- [#46](https://github.com/oktaysenkan/monicon/pull/46) [`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - load icons synchronously\n\n- Updated dependencies [[`bf84d7e`](https://github.com/oktaysenkan/monicon/commit/bf84d7edc2b9d4d197875437c663eae6f800e2c4)]:\n  - @monicon/core@0.0.152\n\n## 0.0.151\n\n### Patch Changes\n\n- [#44](https://github.com/oktaysenkan/monicon/pull/44) [`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - update react peer dependencies\n\n- Updated dependencies [[`da4bd96`](https://github.com/oktaysenkan/monicon/commit/da4bd969ed3af993d4d01ffb69cbad86cf32184f)]:\n  - @monicon/core@0.0.151\n\n## 0.0.150\n\n### Patch Changes\n\n- [#42](https://github.com/oktaysenkan/monicon/pull/42) [`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - Qwik support added\n\n- Updated dependencies [[`7fcefdc`](https://github.com/oktaysenkan/monicon/commit/7fcefdcab57a20b7eb8464525aecea156705f97d)]:\n  - @monicon/core@0.0.150\n\n## 0.0.149\n\n### Patch Changes\n\n- [`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - add support for loading collections\n\n- Updated dependencies [[`a096797`](https://github.com/oktaysenkan/monicon/commit/a0967972bbbb57d9ac701822fcb6e8947d7aed19)]:\n  - @monicon/core@0.0.149\n\n## 0.0.148\n\n### Patch Changes\n\n- [`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use require instead of await import\n\n- Updated dependencies [[`a3353b6`](https://github.com/oktaysenkan/monicon/commit/a3353b6239937c6523bc621b25a6c75a63ab7cb3)]:\n  - @monicon/core@0.0.148\n\n## 0.0.147\n\n### Patch Changes\n\n- [`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - remove mjs output\n\n- Updated dependencies [[`489830b`](https://github.com/oktaysenkan/monicon/commit/489830bc4f352a620f8f54ce863c2f6d8e7f075c)]:\n  - @monicon/core@0.0.147\n\n## 0.0.146\n\n### Patch Changes\n\n- [#37](https://github.com/oktaysenkan/monicon/pull/37) [`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - use await import\n\n- Updated dependencies [[`4f61546`](https://github.com/oktaysenkan/monicon/commit/4f61546635416f54cd85c2c042f7b44e119d14c4)]:\n  - @monicon/core@0.0.146\n\n## 0.0.145\n\n### Patch Changes\n\n- [#35](https://github.com/oktaysenkan/monicon/pull/35) [`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - resolve navigator.product issue\n\n- Updated dependencies [[`54ee3ff`](https://github.com/oktaysenkan/monicon/commit/54ee3ffd51df589a4d2131029a55847ed15d8f9a)]:\n  - @monicon/core@0.0.145\n\n## 0.0.144\n\n### Patch Changes\n\n- [`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2) Thanks [@oktaysenkan](https://github.com/oktaysenkan)! - revert config file feature\n\n- Updated dependencies [[`0819e8d`](https://github.com/oktaysenkan/monicon/commit/0819e8d7d31485fed596e985b7dce330f82296f2)]:\n  - @monicon/core@0.0.144\n\n## 0.0.140\n\n### Patch Changes\n\n- remove unused deps\n- Updated dependencies\n  - @monicon/core@0.0.140\n\n## 0.0.139\n\n### Patch Changes\n\n- change import path of stringToIcon\n- Updated dependencies\n  - @monicon/core@0.0.139\n\n## 0.0.138\n\n### Patch Changes\n\n- remove side effects\n- Updated dependencies\n  - @monicon/core@0.0.138\n\n## 0.0.137\n\n### Patch Changes\n\n- implement strokeWidth support\n- Updated dependencies\n  - @monicon/core@0.0.137\n\n## 0.0.136\n\n### Patch Changes\n\n- remove importIcons functions\n- Updated dependencies\n  - @monicon/core@0.0.136\n\n## 0.0.135\n\n### Patch Changes\n\n- fix import path\n- Updated dependencies\n  - @monicon/core@0.0.135\n\n## 0.0.134\n\n### Patch Changes\n\n- remove prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.134\n\n## 0.0.133\n\n### Patch Changes\n\n- fix color issue\n- Updated dependencies\n  - @monicon/core@0.0.133\n\n## 0.0.132\n\n### Patch Changes\n\n- implement prop drilling\n- Updated dependencies\n  - @monicon/core@0.0.132\n\n## 0.0.131\n\n### Patch Changes\n\n- update readme\n- Updated dependencies\n  - @monicon/core@0.0.131\n\n## 0.0.130\n\n### Patch Changes\n\n- add postinstall script\n- Updated dependencies\n  - @monicon/core@0.0.130\n\n## 0.0.129\n\n### Patch Changes\n\n- change resolve name as @monicon/runtime\n- Updated dependencies\n  - @monicon/core@0.0.129\n\n## 0.0.128\n\n### Patch Changes\n\n- change import path\n- Updated dependencies\n  - @monicon/core@0.0.128\n\n## 0.0.127\n\n### Patch Changes\n\n- change placeholder package name as icon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.127\n\n## 0.0.126\n\n### Patch Changes\n\n- change placeholder package name as monicon-runtime\n- Updated dependencies\n  - @monicon/core@0.0.126\n\n## 0.0.125\n\n### Patch Changes\n\n- add placeholder variable back\n- Updated dependencies\n  - @monicon/core@0.0.125\n\n## 0.0.124\n\n### Patch Changes\n\n- add docs website\n- Updated dependencies\n  - @monicon/core@0.0.124\n\n## 0.0.123\n\n### Patch Changes\n\n- change package name\n- Updated dependencies\n  - @monicon/core@0.0.123\n"
  },
  {
    "path": "packages/webpack/package.json",
    "content": "{\n  \"name\": \"@monicon/webpack\",\n  \"version\": \"2.0.8\",\n  \"main\": \"./dist/index.js\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.js\"\n    }\n  },\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"clean\": \"rm -rf dist\"\n  },\n  \"devDependencies\": {\n    \"@monicon/typescript-config\": \"*\",\n    \"tsup\": \"^8.0.1\",\n    \"typescript\": \"^5.3.3\",\n    \"webpack\": \"^5.0.0\"\n  },\n  \"dependencies\": {\n    \"@monicon/core\": \"*\"\n  },\n  \"peerDependencies\": {\n    \"webpack\": \"^5.0.0\"\n  }\n}\n"
  },
  {
    "path": "packages/webpack/src/index.ts",
    "content": "import { MoniconConfig, bootstrap } from \"@monicon/core\";\nimport { Compiler } from \"webpack\";\n\nconst pluginName = \"webpack-monicon\";\n\nexport class MoniconPlugin {\n  name = pluginName;\n\n  private readonly config: MoniconConfig = {};\n  private bootstrapPromise: Promise<void> | null = null;\n\n  constructor(config?: MoniconConfig) {\n    this.config = config ?? {};\n  }\n\n  async apply(compiler: Compiler) {\n    const watch = compiler.options.watch === true;\n\n    compiler.hooks.beforeCompile.tap(\"MoniconWebpackPlugin\", async () => {\n      if (!this.bootstrapPromise)\n        this.bootstrapPromise = bootstrap({ watch, ...this.config });\n\n      await this.bootstrapPromise;\n    });\n  }\n}\n\nexport default MoniconPlugin;\n"
  },
  {
    "path": "packages/webpack/tsconfig.json",
    "content": "{\n  \"extends\": \"@monicon/typescript-config/react-native-library\",\n  \"include\": [\".\"],\n  \"exclude\": [\"dist\", \"build\", \"node_modules\"],\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "packages/webpack/tsup.config.ts",
    "content": "import { defineConfig, Options } from \"tsup\";\n\nexport default defineConfig((options: Options) => ({\n  entry: {\n    index: \"src/index.ts\",\n  },\n  clean: true,\n  format: [\"cjs\", \"esm\"],\n  external: [\"react\"],\n  dts: true,\n  ...options,\n}));\n"
  },
  {
    "path": "turbo.json",
    "content": "{\n  \"$schema\": \"https://turbo.build/schema.json\",\n  \"ui\": \"tui\",\n  \"tasks\": {\n    \"build\": {\n      \"inputs\": [\"$TURBO_DEFAULT$\", \".env*\"],\n      \"outputs\": [\"dist/**\", \".next/**\", \"!.next/cache/**\", \"build/**\"],\n      \"dependsOn\": [\"^build\"]\n    },\n\n    \"cli#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n\n    \"vite#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n    \"metro#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n    \"webpack#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n    \"rollup#build\": {\n      \"dependsOn\": [\"vite#build\"]\n    },\n    \"esbuild#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n    \"rspack#build\": {\n      \"dependsOn\": [\"webpack#build\"]\n    },\n    \"nuxt#build\": {\n      \"dependsOn\": [\"core#build\"]\n    },\n\n    \"react-native-app#build\": {\n      \"dependsOn\": [\"metro#build\"]\n    },\n    \"next#build\": {\n      \"dependsOn\": [\"webpack#build\"]\n    },\n    \"remix#build\": {\n      \"dependsOn\": [\"vite#build\"]\n    },\n    \"vite-react#build\": {\n      \"dependsOn\": [\"vite#build\"]\n    },\n    \"rspack-react#build\": {\n      \"dependsOn\": [\"rspack#build\"]\n    },\n    \"rollup-react#build\": {\n      \"dependsOn\": [\"rollup#build\"]\n    },\n    \"vite-vue#build\": {\n      \"dependsOn\": [\"vite#build\"]\n    },\n    \"nuxt-app#prepare\": {},\n    \"nuxt-app#build\": {\n      \"dependsOn\": [\"nuxt-app#prepare\", \"nuxt#build\"]\n    },\n    \"svelte-app#build\": {\n      \"dependsOn\": []\n    },\n    \"qwik-app#build\": {\n      \"dependsOn\": []\n    },\n\n    \"docs#build\": {\n      \"dependsOn\": [\"core#build\", \"vite#build\"]\n    },\n\n    \"dev\": {\n      \"cache\": false,\n      \"persistent\": true\n    },\n    \"lint\": {},\n    \"clean\": {\n      \"cache\": false\n    }\n  }\n}\n"
  }
]