diff --git a/.env.example b/.env.example index 02c2bfe..b6d46df 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,2 @@ BASEPATH= -NEXT_PUBLIC_APP_URL= +NEXT_PUBLIC_APP_URL=http://localhost:3000${BASEPATH} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e3fa25..8005177 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,40 @@ All notable changes to this project will be documented in this file. +## v1.0.0 (2025-11-19) + +### Added + +- Added blocks +- Added registries for easier access to component variants, blocks and themes +- Added navigation pagination inside component pages +- Added functionality to show component variant name when hover inside a component variant section +- Added tags to component variants for better categorization and filtering in search + +### Updated + +- Updated shadcn/ui components +- Updated component variants to match the latest shadcn/ui components +- Updated shadcn/ui color theme from zinc to neutral +- Updated layouts including Sidebar, Header and Footer +- Updated animated button variant with heartbeat effect so that you can change the animation color via CSS variable. You can update the color of the animation using the `--heartbeat-color` CSS variable or inline styles like `style={{ '--heartbeat-color': 'var(--primary)' }}` +- Updated meta tags for the pages +- Updated fonts by removing Gamja Flower font and adding Kalam font +- Updated introduction docs +- Updated SVGs (including SVG component and namings) and data assets +- Updated hooks and utils + +### Removed + +- Removed unnecessary data assets +- Removed copy prompt and v0 components +- Removed `getMode` server utility function +- Removed roadmap section from the theme generator page as we have moved it to [GitHub](https://github.com/orgs/themeselection/projects/42/views/2) + +### Fixed + +- Fixed default selected item in theme presets dropdown + ## v1.0.0-beta.3 (2025-07-04) ### Added diff --git a/README.md b/README.md index 42260d4..6be7370 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ shadcn/studio logo

-[shadcn/studio](https://shadcnstudio.com) is an open-source collection of copy-and-paste shadcn components, blocks, and templates - paired with a powerful theme generator to craft, customize, and ship faster. 🚀 +[shadcn/studio](https://shadcnstudio.com) is an open-source collection of copy-and-paste shadcn components, blocks, and templates - paired with a powerful theme generator & AI Tools to craft, customize, and ship faster. 🚀

MIT License @@ -49,7 +49,7 @@ Building on the solid foundation of the Shadcn components & blocks, we've e ### Not a standard library, but a distribution of components -Following the philosophy of Shadcn, shadcn/studio isn't a conventional “install-from-NPM” library. Rather, it's an open-source distribution of components designed for maximum adaptability. You can copy the code, modify styles, adjust logic, or integrate it with other tools—free from the limitations of typical libraries. This "open code" model empowers you to customize with confidence and creativity. +Following the philosophy of Shadcn, shadcn/studio isn't a conventional "install-from-NPM" library. Rather, it's an open-source distribution of components designed for maximum adaptability. You can copy the code, modify styles, adjust logic, or integrate it with other tools—free from the limitations of typical libraries. This "open code" model empowers you to customize with confidence and creativity. ## Why should I use shadcn/studio? 💡 @@ -59,12 +59,23 @@ While this approach offers flexibility and control, it comes with some limitatio ## This is where shadcn/studio shines ✨ -An open-source collection of copy-and-paste shadcn components, blocks, and templates - paired with a powerful theme generator to craft, customize, and ship faster 🚀. It provides a robust toolkit for building stunning, interactive user interfaces with ease. +An open-source & premium collection of copy-and-paste shadcn components, blocks, and templates - paired with a powerful theme generator to craft, customize, and ship faster 🚀. It provides a robust toolkit for building stunning, interactive user interfaces with ease. + +- **Open-source:** Dive into a growing, community-driven collection of copy-and-paste [shadcn/ui components]('https://shadcnstudio.com/components'), shadcn blocks, and templates. + +- **Component & Blocks variants:** Access a diverse, collection of customizable [shadcn blocks](https://shadcnstudio.com/blocks) and component variants to quickly build and style your UI with ease. -- **Open-source:** Dive into a growing, community-driven collection of copy-and-paste components, blocks, and templates. -- **Component & Blocks variants:** Access a diverse, collection of customizable shadcn component and block variants to quickly build and style your UI with ease. - **Animated variants with Motion:** Add smooth, modern animations to your components, enhancing user experiences with minimal effort. -- **Powerful theme generator:** Tailor your UI effortlessly with real-time previews, ensuring consistent, branded designs delivered faster. + +- **Landing pages & Dashboards:** Explore 20+ premium & free [Shadcn templates](https://shadcnstudio.com/templates) for dashboards, landing pages & more. Fully customizable & easy to use. + +- **shadcn/ui for Figma:** Speed up your workflow with [Shadcn Figma](https://shadcnstudio.com/figma) UI components, blocks & templates — a full design library inspired by shadcn/ui. + +- **Powerful theme generator:** Customize your UI instantly with [Shadcn Theme Generator](https://shadcnstudio.com/theme-generator). Preview changes in real time and create consistent, on-brand designs faster. + +- **shadcn/studio MCP:** Integrate [shadcn/studio MCP](https://shadcnstudio.com/mcp) Server directly into your favorite IDE and craft stunning shadcn/ui Components, Blocks and Pages inspired by shadcn/studio. + +- **Shadcn Figma To Code Plugin:** Convert your Figma designs into production-ready code instantly with the [Shadcn Figma Plugin](https://shadcnstudio.com/figma-plugin). ## Features ✨ @@ -110,7 +121,7 @@ shadcn/studio provides an open-source collection of copy-and-paste Shadcn Compon -[Explore all components](https://shadcnstudio.com/docs/components/avatar) +[Explore all components](https://shadcnstudio.com/components) ## Community 🤝 diff --git a/package.json b/package.json index 1419158..34e3344 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "lint:fix": "next lint --fix", "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,md,mdx}\"", "check-types": "tsc --noEmit", + "registry:build": "shadcn build", "clean": "rm -rf .next *.tsbuildinfo", "clean:node_modules": "rm -rf .next node_modules *.tsbuildinfo" }, @@ -74,6 +75,7 @@ "react-use": "^17.6.0", "recharts": "^2.15.3", "server-only": "^0.0.1", + "shadcn": "^3.3.1", "shepherd.js": "^14.5.0", "sonner": "^2.0.5", "tailwind-merge": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 712187f..3311bf7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,7 +142,7 @@ importers: version: 12.18.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: specifier: ^15.3.3 - version: 15.3.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.4(@babel/core@7.28.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -179,6 +179,9 @@ importers: server-only: specifier: ^0.0.1 version: 0.0.1 + shadcn: + specifier: ^3.3.1 + version: 3.3.1(@types/node@22.15.32)(typescript@5.5.4) shepherd.js: specifier: ^14.5.0 version: 14.5.0 @@ -269,10 +272,149 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/ni@25.0.0': + resolution: {integrity: sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA==} + hasBin: true + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.3': + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.0': + resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.27.1': + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.27.6': resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} + + '@bundled-es-modules/cookie@2.0.1': + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + '@date-fns/tz@1.2.0': resolution: {integrity: sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==} @@ -304,6 +446,16 @@ packages: peerDependencies: react: '>=16.8.0' + '@dotenvx/dotenvx@1.51.0': + resolution: {integrity: sha512-CbMGzyOYSyFF7d4uaeYwO9gpSBzLTnMmSmTVpCZjvpJFV69qYbjYPpzNnCz1mb2wIvEhjWjRwQWuBzTO0jITww==} + hasBin: true + + '@ecies/ciphers@0.2.4': + resolution: {integrity: sha512-t+iX+Wf5nRKyNzk8dviW3Ikb/280+aEJAnw9YXvCp2tYGPSkMki+NRY+8aNLmVFv3eNtMdvViPNOPxS8SZNP+w==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + peerDependencies: + '@noble/ciphers': ^1.0.0 + '@emnapi/core@1.4.3': resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} @@ -504,6 +656,41 @@ packages: cpu: [x64] os: [win32] + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@internationalized/date@3.8.2': resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==} @@ -516,14 +703,28 @@ packages: '@internationalized/string@3.2.7': resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -538,6 +739,17 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@modelcontextprotocol/sdk@1.19.1': + resolution: {integrity: sha512-3Y2h3MZKjec1eAqSTBclATlX+AbC6n1LgfVzRMJLt3v6w0RCYgwLrjbxPDbhsYHt6Wdqc/aCceNJYgj448ELQQ==} + engines: {node: '>=18'} + + '@mswjs/interceptors@0.39.7': + resolution: {integrity: sha512-sURvQbbKsq5f8INV54YJgJEdk8oxBanqkTiXXd33rKmofFCwZLhLRszPduMZ9TA9b8/1CHc/IJmOlBHJk2Q5AQ==} + engines: {node: '>=18'} + '@napi-rs/wasm-runtime@0.2.11': resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} @@ -595,6 +807,18 @@ packages: cpu: [x64] os: [win32] + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -611,6 +835,15 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -1818,6 +2051,9 @@ packages: '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shikijs/core@3.7.0': resolution: {integrity: sha512-yilc0S9HvTPyahHpcum8eonYrQtmGTU0lbtwxhA6jHv4Bm1cAdlPFRCJX4AHebkCm75aKTjjRAW+DezqD1b/cg==} @@ -1839,6 +2075,10 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} @@ -1950,12 +2190,18 @@ packages: resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} + '@ts-morph/common@0.27.0': + resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} '@types/chroma-js@3.1.1': resolution: {integrity: sha512-SFCr4edNkZ1bGaLzGz7rgR1bRzVX4MmMxwsIa3/Bh6ose8v+hRpneoizHv0KChdjxaXyjRtaMq7sCuZSzPomQA==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -2030,6 +2276,9 @@ packages: '@types/react@19.1.8': resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} + '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} @@ -2198,6 +2447,10 @@ packages: '@xobotyi/scrollbar-width@1.9.5': resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2212,6 +2465,10 @@ packages: resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} engines: {node: '>=0.8'} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2219,10 +2476,18 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2273,6 +2538,10 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -2292,6 +2561,14 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + baseline-browser-mapping@2.8.10: + resolution: {integrity: sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==} + hasBin: true + + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -2302,10 +2579,19 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2328,6 +2614,9 @@ packages: caniuse-lite@1.0.30001724: resolution: {integrity: sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==} + caniuse-lite@1.0.30001747: + resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2339,6 +2628,10 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -2365,9 +2658,25 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2378,6 +2687,9 @@ packages: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + codepage@1.15.0: resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} engines: {node: '>=0.8'} @@ -2399,12 +2711,52 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@14.0.1: + resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} + engines: {node: '>=20'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -2478,6 +2830,10 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -2529,6 +2885,14 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2536,6 +2900,10 @@ packages: resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} engines: {node: '>=16.0.0'} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2544,6 +2912,10 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2558,6 +2930,10 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2573,10 +2949,24 @@ packages: dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eciesjs@0.4.15: + resolution: {integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.230: + resolution: {integrity: sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==} + embla-carousel-react@8.6.0: resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} peerDependencies: @@ -2590,13 +2980,30 @@ packages: embla-carousel@8.6.0: resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==} + emoji-regex@10.5.0: + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -2632,6 +3039,13 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2734,6 +3148,11 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} @@ -2753,9 +3172,39 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + + eventsource@3.0.7: + resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + engines: {node: '>=18.0.0'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@9.6.0: + resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + engines: {node: ^18.19.0 || >=20.5.0} + + express-rate-limit@7.5.1: + resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2794,6 +3243,14 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2802,6 +3259,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2817,6 +3278,14 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + frac@1.1.2: resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} engines: {node: '>=0.8'} @@ -2835,6 +3304,14 @@ packages: react-dom: optional: true + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-extra@11.3.2: + resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} + engines: {node: '>=14.14'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2848,6 +3325,24 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + fuzzysort@3.1.0: + resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==} + + fzf@0.5.2: + resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -2856,10 +3351,22 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-own-enumerable-keys@1.0.0: + resolution: {integrity: sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==} + engines: {node: '>=14.16'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -2901,6 +3408,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.11.0: + resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -2937,12 +3448,39 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@8.0.1: + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} + hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -2985,6 +3523,10 @@ packages: intl-messageformat@10.7.16: resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -2995,6 +3537,9 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -3040,6 +3585,10 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -3051,6 +3600,10 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3059,6 +3612,9 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -3067,14 +3623,29 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-obj@3.0.0: + resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} + engines: {node: '>=12'} + is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-regexp@3.1.0: + resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} + engines: {node: '>=12'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -3083,6 +3654,14 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -3095,6 +3674,14 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3113,6 +3700,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + iterator.prototype@1.1.5: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} @@ -3131,9 +3722,17 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -3144,6 +3743,14 @@ packages: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -3151,6 +3758,14 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -3226,6 +3841,9 @@ packages: resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + little-date@1.0.0: resolution: {integrity: sha512-41T/ktcwPzxC0OJ8E3wmaK0E1DL/QNR3n30kB9Dw6Ni6Eud24It8LZm70jK8lvDd+Mg+961fzKDcF6SQRL25cQ==} engines: {node: '>=10'} @@ -3240,6 +3858,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3247,6 +3869,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-react@0.516.0: resolution: {integrity: sha512-aybBJzLHcw1CIn3rUcRkztB37dsJATtpffLNX+0/w+ws2p21nYIlOwX/B5fqxq8F/BjqVemnJX8chKwRidvROg==} peerDependencies: @@ -3286,6 +3911,17 @@ packages: mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -3357,6 +3993,26 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3403,6 +4059,20 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msw@2.11.3: + resolution: {integrity: sha512-878imp8jxIpfzuzxYfX0qqTq1IFQz/1/RBHs/PyirSjzi+xKM/RRfIpIqHSCWjH0GxidrjhgiiXC+DWXNDvT9w==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + nano-css@5.6.2: resolution: {integrity: sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==} peerDependencies: @@ -3422,6 +4092,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + next-themes@0.4.6: resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} peerDependencies: @@ -3449,6 +4123,26 @@ packages: sass: optional: true + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -3461,6 +4155,10 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + object-treeify@1.1.33: + resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} + engines: {node: '>= 10'} + object.assign@4.1.7: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} @@ -3481,9 +4179,21 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} @@ -3494,6 +4204,13 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + engines: {node: '>=18'} + + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -3506,6 +4223,9 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + papaparse@5.5.3: resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==} @@ -3516,6 +4236,21 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3528,9 +4263,19 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -3546,6 +4291,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pkce-challenge@5.0.0: + resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==} + engines: {node: '>=16.20.0'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -3629,19 +4378,43 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} + engines: {node: '>=18'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@3.0.1: + resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} + engines: {node: '>= 0.10'} + react-aria-components@1.10.1: resolution: {integrity: sha512-Mllbk2pQax2EwlOJsXG4oTp6P7P33m82/47M9Os+zaGhSCqo2EilFvThxCFxhLa7ncjLV0ka6wFIYLmZiOcWxw==} peerDependencies: @@ -3752,6 +4525,10 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} @@ -3779,6 +4556,10 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -3798,6 +4579,13 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + rettime@0.7.0: + resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3807,6 +4595,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} @@ -3817,6 +4609,9 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -3825,6 +4620,9 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} @@ -3841,6 +4639,14 @@ packages: engines: {node: '>=10'} hasBin: true + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} @@ -3860,6 +4666,13 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shadcn@3.3.1: + resolution: {integrity: sha512-sgai5gahy/TiyTiqJEwIFpAuPhmkpt7sGVdRfcmNH53Yc3yI57+zFVmIaqbTST0jP/7tSqZuI0aSllXL2HIw5w==} + hasBin: true + shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} @@ -3898,9 +4711,19 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3945,6 +4768,18 @@ packages: stacktrace-js@2.0.2: resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -3953,6 +4788,17 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -3979,14 +4825,30 @@ packages: stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + stringify-object@5.0.0: + resolution: {integrity: sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==} + engines: {node: '>=14.16'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4055,10 +4917,20 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tldts-core@7.0.16: + resolution: {integrity: sha512-XHhPmHxphLi+LGbH0G/O7dmUH9V65OY20R7vH8gETHsp5AZCjBk9l8sqmRKLaGOxnETU7XNSDUPtewAy/K6jbA==} + + tldts@7.0.16: + resolution: {integrity: sha512-5bdPHSwbKTeHmXrgecID4Ljff8rQjv7g8zKQPkCozRo2HWWni+p310FSn5ImI+9kWw9kK4lzOB5q/a6iv0IJsw==} + hasBin: true + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -4066,6 +4938,14 @@ packages: toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -4078,9 +4958,16 @@ packages: ts-easing@0.2.0: resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + ts-morph@26.0.0: + resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==} + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -4098,6 +4985,14 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -4126,6 +5021,10 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -4141,9 +5040,26 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + unrs-resolver@1.9.1: resolution: {integrity: sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==} + until-async@3.0.2: + resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -4179,6 +5095,10 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + vaul@1.1.2: resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} peerDependencies: @@ -4194,6 +5114,10 @@ packages: victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -4215,6 +5139,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + wmf@1.0.2: resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} engines: {node: '>=0.8'} @@ -4227,6 +5156,14 @@ packages: resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} engines: {node: '>=0.8'} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -4235,14 +5172,42 @@ packages: engines: {node: '>=0.8'} hasBin: true + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@5.0.0: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zod-to-json-schema@3.24.6: + resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} + peerDependencies: + zod: ^3.24.1 + zod@3.25.67: resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==} @@ -4258,8 +5223,209 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/ni@25.0.0': + dependencies: + ansis: 4.2.0 + fzf: 0.5.2 + package-manager-detector: 1.3.0 + tinyexec: 1.0.1 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.4': {} + + '@babel/core@7.28.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.3': + dependencies: + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.28.4 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.4 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.26.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.4 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.27.1': + dependencies: + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.28.4 + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + + '@babel/parser@7.28.4': + dependencies: + '@babel/types': 7.28.4 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) + transitivePeerDependencies: + - supports-color + '@babel/runtime@7.27.6': {} + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + + '@babel/traverse@7.28.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.4': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bundled-es-modules/cookie@2.0.1': + dependencies: + cookie: 0.7.2 + + '@bundled-es-modules/statuses@1.0.1': + dependencies: + statuses: 2.0.2 + '@date-fns/tz@1.2.0': {} '@dnd-kit/accessibility@3.1.1(react@19.1.0)': @@ -4294,6 +5460,22 @@ snapshots: react: 19.1.0 tslib: 2.8.1 + '@dotenvx/dotenvx@1.51.0': + dependencies: + commander: 11.1.0 + dotenv: 17.2.3 + eciesjs: 0.4.15 + execa: 5.1.1 + fdir: 6.4.6(picomatch@4.0.2) + ignore: 5.3.2 + object-treeify: 1.1.33 + picomatch: 4.0.2 + which: 4.0.0 + + '@ecies/ciphers@0.2.4(@noble/ciphers@1.3.0)': + dependencies: + '@noble/ciphers': 1.3.0 + '@emnapi/core@1.4.3': dependencies: '@emnapi/wasi-threads': 1.0.2 @@ -4482,6 +5664,34 @@ snapshots: '@img/sharp-win32-x64@0.34.2': optional: true + '@inquirer/ansi@1.0.0': {} + + '@inquirer/confirm@5.1.18(@types/node@22.15.32)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@22.15.32) + '@inquirer/type': 3.0.8(@types/node@22.15.32) + optionalDependencies: + '@types/node': 22.15.32 + + '@inquirer/core@10.2.2(@types/node@22.15.32)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.15.32) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.32 + + '@inquirer/figures@1.0.13': {} + + '@inquirer/type@3.0.8(@types/node@22.15.32)': + optionalDependencies: + '@types/node': 22.15.32 + '@internationalized/date@3.8.2': dependencies: '@swc/helpers': 0.5.17 @@ -4499,16 +5709,32 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -4520,6 +5746,37 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@modelcontextprotocol/sdk@1.19.1': + dependencies: + ajv: 6.12.6 + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + express: 5.1.0 + express-rate-limit: 7.5.1(express@5.1.0) + pkce-challenge: 5.0.0 + raw-body: 3.0.1 + zod: 3.25.67 + zod-to-json-schema: 3.24.6(zod@3.25.67) + transitivePeerDependencies: + - supports-color + + '@mswjs/interceptors@0.39.7': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 @@ -4557,6 +5814,14 @@ snapshots: '@next/swc-win32-x64-msvc@15.3.4': optional: true + '@noble/ciphers@1.3.0': {} + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4571,6 +5836,15 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} + '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.2': {} @@ -6273,6 +7547,8 @@ snapshots: '@scarf/scarf@1.4.0': {} + '@sec-ant/readable-stream@0.4.1': {} + '@shikijs/core@3.7.0': dependencies: '@shikijs/types': 3.7.0 @@ -6306,6 +7582,8 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@standard-schema/utils@0.3.0': {} '@swc/counter@0.1.3': {} @@ -6398,6 +7676,12 @@ snapshots: '@tanstack/table-core@8.21.3': {} + '@ts-morph/common@0.27.0': + dependencies: + fast-glob: 3.3.3 + minimatch: 10.0.3 + path-browserify: 1.0.1 + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 @@ -6405,6 +7689,8 @@ snapshots: '@types/chroma-js@3.1.1': {} + '@types/cookie@0.6.0': {} + '@types/d3-array@3.2.1': {} '@types/d3-color@3.1.3': {} @@ -6480,6 +7766,8 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/statuses@2.0.6': {} + '@types/stylis@4.2.5': {} '@types/unist@2.0.11': {} @@ -6630,6 +7918,11 @@ snapshots: '@xobotyi/scrollbar-width@1.9.5': {} + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -6638,6 +7931,8 @@ snapshots: adler-32@1.3.1: {} + agent-base@7.1.4: {} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -6647,10 +7942,14 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.2.2: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansis@4.2.0: {} + argparse@2.0.1: {} aria-hidden@1.2.6: @@ -6730,6 +8029,10 @@ snapshots: ast-types-flow@0.0.8: {} + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + async-function@1.0.0: {} available-typed-arrays@1.0.7: @@ -6742,6 +8045,22 @@ snapshots: balanced-match@1.0.2: {} + baseline-browser-mapping@2.8.10: {} + + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.1 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.1 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -6755,10 +8074,20 @@ snapshots: dependencies: fill-range: 7.1.1 + browserslist@4.26.3: + dependencies: + baseline-browser-mapping: 2.8.10 + caniuse-lite: 1.0.30001747 + electron-to-chromium: 1.5.230 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.3) + busboy@1.6.0: dependencies: streamsearch: 1.1.0 + bytes@3.1.2: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -6782,6 +8111,8 @@ snapshots: caniuse-lite@1.0.30001724: {} + caniuse-lite@1.0.30001747: {} + ccount@2.0.1: {} cfb@1.2.2: @@ -6794,6 +8125,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.6.2: {} + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -6814,8 +8147,22 @@ snapshots: dependencies: clsx: 2.1.1 + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cli-width@4.1.0: {} + client-only@0.0.1: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clsx@2.1.1: {} cmdk@1.1.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -6830,6 +8177,8 @@ snapshots: - '@types/react' - '@types/react-dom' + code-block-writer@13.0.3: {} + codepage@1.15.0: {} color-convert@2.0.1: @@ -6852,12 +8201,42 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@11.1.0: {} + + commander@14.0.1: {} + concat-map@0.0.1: {} + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@9.0.0(typescript@5.5.4): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.5.4 + crc-32@1.2.2: {} cross-spawn@7.0.6: @@ -6925,6 +8304,8 @@ snapshots: damerau-levenshtein@1.0.8: {} + data-uri-to-buffer@4.0.1: {} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -6969,10 +8350,14 @@ snapshots: dependencies: character-entities: 2.0.2 + dedent@1.7.0: {} + deep-is@0.1.4: {} deepmerge-ts@7.1.5: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -6985,6 +8370,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + depd@2.0.0: {} + dequal@2.0.3: {} detect-libc@2.0.4: {} @@ -6995,6 +8382,8 @@ snapshots: dependencies: dequal: 2.0.3 + diff@8.0.2: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -7012,12 +8401,25 @@ snapshots: '@babel/runtime': 7.27.6 csstype: 3.1.3 + dotenv@17.2.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 + eciesjs@0.4.15: + dependencies: + '@ecies/ciphers': 0.2.4(@noble/ciphers@1.3.0) + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.230: {} + embla-carousel-react@8.6.0(react@19.1.0): dependencies: embla-carousel: 8.6.0 @@ -7030,13 +8432,25 @@ snapshots: embla-carousel@8.6.0: {} + emoji-regex@10.5.0: {} + + emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + encodeurl@2.0.0: {} + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.2 + env-paths@2.2.1: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 @@ -7142,6 +8556,10 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + escalade@3.2.0: {} + + escape-html@1.0.3: {} + escape-string-regexp@4.0.0: {} eslint-config-next@15.3.4(eslint@8.57.1)(typescript@5.5.4): @@ -7191,7 +8609,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: @@ -7213,7 +8631,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7332,6 +8750,8 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -7346,8 +8766,79 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + eventemitter3@4.0.7: {} + eventsource-parser@3.0.6: {} + + eventsource@3.0.7: + dependencies: + eventsource-parser: 3.0.6 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@9.6.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.3.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.2 + + express-rate-limit@7.5.1(express@5.1.0): + dependencies: + express: 5.1.0 + + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.1 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-equals@5.2.2: {} @@ -7384,6 +8875,15 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -7392,6 +8892,17 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@2.1.0: + dependencies: + debug: 4.4.1 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -7409,6 +8920,12 @@ snapshots: dependencies: is-callable: 1.2.7 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + forwarded@0.2.0: {} + frac@1.1.2: {} framer-motion@12.18.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -7421,6 +8938,14 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + fresh@2.0.0: {} + + fs-extra@11.3.2: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs.realpath@1.0.0: {} function-bind@1.1.2: {} @@ -7436,6 +8961,16 @@ snapshots: functions-have-names@1.2.3: {} + fuzzysort@3.1.0: {} + + fzf@0.5.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.4.0: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -7451,11 +8986,20 @@ snapshots: get-nonce@1.0.1: {} + get-own-enumerable-keys@1.0.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stream@6.0.1: {} + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -7507,6 +9051,8 @@ snapshots: graphemer@1.4.0: {} + graphql@16.11.0: {} + has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -7567,10 +9113,39 @@ snapshots: dependencies: '@types/hast': 3.0.4 + headers-polyfill@4.0.3: {} + html-void-elements@3.0.0: {} + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + human-signals@8.0.1: {} + hyphenate-style-name@1.1.0: {} + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + ignore@5.3.2: {} import-fresh@3.3.1: @@ -7613,6 +9188,8 @@ snapshots: '@formatjs/icu-messageformat-parser': 2.11.2 tslib: 2.8.1 + ipaddr.js@1.9.1: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -7626,6 +9203,8 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-arrayish@0.2.1: {} + is-arrayish@0.3.2: optional: true @@ -7675,6 +9254,8 @@ snapshots: dependencies: call-bound: 1.0.4 + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 @@ -7688,10 +9269,14 @@ snapshots: is-hexadecimal@2.0.1: {} + is-interactive@2.0.0: {} + is-map@2.0.3: {} is-negative-zero@2.0.3: {} + is-node-process@1.2.0: {} + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -7699,8 +9284,14 @@ snapshots: is-number@7.0.0: {} + is-obj@3.0.0: {} + is-path-inside@3.0.3: {} + is-plain-obj@4.1.0: {} + + is-promise@4.0.0: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -7708,12 +9299,18 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + is-regexp@3.1.0: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 + is-stream@2.0.1: {} + + is-stream@4.0.1: {} + is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -7729,6 +9326,10 @@ snapshots: dependencies: which-typed-array: 1.1.19 + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -7744,6 +9345,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 @@ -7763,8 +9366,12 @@ snapshots: dependencies: argparse: 2.0.1 + jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -7773,6 +9380,14 @@ snapshots: dependencies: minimist: 1.2.8 + json5@2.2.3: {} + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.9 @@ -7784,6 +9399,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + kleur@3.0.3: {} + + kleur@4.1.5: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -7840,6 +9459,8 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 + lines-and-columns@1.2.4: {} + little-date@1.0.0: dependencies: date-fns: 2.30.0 @@ -7852,12 +9473,21 @@ snapshots: lodash@4.17.21: {} + log-symbols@6.0.0: + dependencies: + chalk: 5.6.2 + is-unicode-supported: 1.3.0 + longest-streak@3.1.0: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lucide-react@0.516.0(react@19.1.0): dependencies: react: 19.1.0 @@ -7959,6 +9589,12 @@ snapshots: mdn-data@2.0.14: {} + media-typer@1.1.0: {} + + merge-descriptors@2.0.0: {} + + merge-stream@2.0.0: {} + merge2@1.4.1: {} micromark-core-commonmark@2.0.3: @@ -8099,6 +9735,20 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.54.0: {} + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + mimic-fn@2.1.0: {} + + mimic-function@5.0.1: {} + + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -8134,6 +9784,34 @@ snapshots: ms@2.1.3: {} + msw@2.11.3(@types/node@22.15.32)(typescript@5.5.4): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 5.1.18(@types/node@22.15.32) + '@mswjs/interceptors': 0.39.7 + '@open-draft/deferred-promise': 2.2.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.6 + graphql: 16.11.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + rettime: 0.7.0 + strict-event-emitter: 0.5.1 + tough-cookie: 6.0.0 + type-fest: 4.41.0 + until-async: 3.0.2 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - '@types/node' + + mute-stream@2.0.0: {} + nano-css@5.6.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -8153,12 +9831,14 @@ snapshots: natural-compare@1.4.0: {} + negotiator@1.0.0: {} + next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - next@15.3.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.4(@babel/core@7.28.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.4 '@swc/counter': 0.1.3 @@ -8168,7 +9848,7 @@ snapshots: postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.4 '@next/swc-darwin-x64': 15.3.4 @@ -8183,12 +9863,33 @@ snapshots: - '@babel/core' - babel-plugin-macros + node-domexception@1.0.0: {} + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-releases@2.0.21: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + object-assign@4.1.1: {} object-inspect@1.13.4: {} object-keys@1.1.1: {} + object-treeify@1.1.33: {} + object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -8225,10 +9926,22 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + once@1.4.0: dependencies: wrappy: 1.0.2 + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.3: @@ -8246,6 +9959,20 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + ora@8.2.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + outvariant@1.4.3: {} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 @@ -8260,6 +9987,8 @@ snapshots: dependencies: p-limit: 3.1.0 + package-manager-detector@1.3.0: {} + papaparse@5.5.3: {} parent-module@1.0.1: @@ -8276,14 +10005,33 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-ms@4.0.0: {} + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} + path-to-regexp@6.3.0: {} + + path-to-regexp@8.3.0: {} + path-type@4.0.0: {} picocolors@1.1.1: {} @@ -8292,6 +10040,8 @@ snapshots: picomatch@4.0.2: {} + pkce-challenge@5.0.0: {} + possible-typed-array-names@1.1.0: {} postcss-value-parser@4.2.0: {} @@ -8322,6 +10072,15 @@ snapshots: prettier@3.5.3: {} + pretty-ms@9.3.0: + dependencies: + parse-ms: 4.0.0 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -8330,10 +10089,28 @@ snapshots: property-information@7.1.0: {} + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + punycode@2.3.1: {} + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + queue-microtask@1.2.3: {} + range-parser@1.2.1: {} + + raw-body@3.0.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.7.0 + unpipe: 1.0.0 + react-aria-components@1.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@internationalized/date': 3.8.2 @@ -8544,6 +10321,14 @@ snapshots: react@19.1.0: {} + recast@0.23.11: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 @@ -8591,6 +10376,8 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + require-directory@2.1.1: {} + resize-observer-polyfill@1.5.1: {} resolve-from@4.0.0: {} @@ -8609,12 +10396,29 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + rettime@0.7.0: {} + reusify@1.1.0: {} rimraf@3.0.2: dependencies: glob: 7.2.3 + router@2.2.0: + dependencies: + debug: 4.4.1 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.3.0 + transitivePeerDependencies: + - supports-color + rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.27.6 @@ -8631,6 +10435,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -8642,6 +10448,8 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safer-buffer@2.1.2: {} + scheduler@0.26.0: {} screenfull@5.2.0: {} @@ -8650,6 +10458,31 @@ snapshots: semver@7.7.2: {} + send@1.2.0: + dependencies: + debug: 4.4.1 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + server-only@0.0.1: {} set-function-length@1.2.2: @@ -8676,6 +10509,46 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + setprototypeof@1.2.0: {} + + shadcn@3.3.1(@types/node@22.15.32)(typescript@5.5.4): + dependencies: + '@antfu/ni': 25.0.0 + '@babel/core': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) + '@dotenvx/dotenvx': 1.51.0 + '@modelcontextprotocol/sdk': 1.19.1 + browserslist: 4.26.3 + commander: 14.0.1 + cosmiconfig: 9.0.0(typescript@5.5.4) + dedent: 1.7.0 + deepmerge: 4.3.1 + diff: 8.0.2 + execa: 9.6.0 + fast-glob: 3.3.3 + fs-extra: 11.3.2 + fuzzysort: 3.1.0 + https-proxy-agent: 7.0.6 + kleur: 4.1.5 + msw: 2.11.3(@types/node@22.15.32)(typescript@5.5.4) + node-fetch: 3.3.2 + ora: 8.2.0 + postcss: 8.5.6 + prompts: 2.4.2 + recast: 0.23.11 + stringify-object: 5.0.0 + ts-morph: 26.0.0 + tsconfig-paths: 4.2.0 + zod: 3.25.67 + zod-to-json-schema: 3.24.6(zod@3.25.67) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - typescript + shallowequal@1.1.0: {} sharp@0.34.2: @@ -8758,11 +10631,17 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 optional: true + sisteransi@1.0.5: {} + slash@3.0.0: {} sonner@2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -8801,6 +10680,12 @@ snapshots: stack-generator: 2.0.10 stacktrace-gps: 3.1.2 + statuses@2.0.1: {} + + statuses@2.0.2: {} + + stdin-discarder@0.2.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -8808,6 +10693,20 @@ snapshots: streamsearch@1.1.0: {} + strict-event-emitter@0.5.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.5.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 @@ -8863,12 +10762,26 @@ snapshots: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + stringify-object@5.0.0: + dependencies: + get-own-enumerable-keys: 1.0.0 + is-obj: 3.0.0 + is-regexp: 3.1.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + strip-bom@3.0.0: {} + strip-final-newline@2.0.0: {} + + strip-final-newline@4.0.0: {} + strip-json-comments@3.1.1: {} style-to-js@1.1.17: @@ -8893,10 +10806,12 @@ snapshots: stylis: 4.3.2 tslib: 2.6.2 - styled-jsx@5.1.6(react@19.1.0): + styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.1.0): dependencies: client-only: 0.0.1 react: 19.1.0 + optionalDependencies: + '@babel/core': 7.28.4 stylis@4.3.2: {} @@ -8929,17 +10844,31 @@ snapshots: tiny-invariant@1.3.3: {} + tinyexec@1.0.1: {} + tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 + tldts-core@7.0.16: {} + + tldts@7.0.16: + dependencies: + tldts-core: 7.0.16 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 toggle-selection@1.0.6: {} + toidentifier@1.0.1: {} + + tough-cookie@6.0.0: + dependencies: + tldts: 7.0.16 + trim-lines@3.0.1: {} ts-api-utils@1.4.3(typescript@5.5.4): @@ -8948,6 +10877,11 @@ snapshots: ts-easing@0.2.0: {} + ts-morph@26.0.0: + dependencies: + '@ts-morph/common': 0.27.0 + code-block-writer: 13.0.3 + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -8955,6 +10889,12 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + tslib@2.6.2: {} tslib@2.8.1: {} @@ -8967,6 +10907,14 @@ snapshots: type-fest@0.20.2: {} + type-fest@4.41.0: {} + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -9011,6 +10959,8 @@ snapshots: undici-types@6.21.0: {} + unicorn-magic@0.3.0: {} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -9034,6 +10984,10 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universalify@2.0.1: {} + + unpipe@1.0.0: {} + unrs-resolver@1.9.1: dependencies: napi-postinstall: 0.2.4 @@ -9058,6 +11012,14 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.9.1 '@unrs/resolver-binding-win32-x64-msvc': 1.9.1 + until-async@3.0.2: {} + + update-browserslist-db@1.1.3(browserslist@4.26.3): + dependencies: + browserslist: 4.26.3 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -9086,6 +11048,8 @@ snapshots: dependencies: react: 19.1.0 + vary@1.1.2: {} + vaul@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -9122,6 +11086,8 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 + web-streams-polyfill@3.3.3: {} + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -9167,12 +11133,28 @@ snapshots: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.1 + wmf@1.0.2: {} word-wrap@1.2.5: {} word@0.3.0: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrappy@1.0.2: {} xlsx@0.18.5: @@ -9185,10 +11167,34 @@ snapshots: wmf: 1.0.2 word: 0.3.0 + y18n@5.0.8: {} + + yallist@3.1.1: {} + yallist@5.0.0: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yocto-queue@0.1.0: {} + yoctocolors-cjs@2.1.3: {} + + yoctocolors@2.1.2: {} + + zod-to-json-schema@3.24.6(zod@3.25.67): + dependencies: + zod: 3.25.67 + zod@3.25.67: {} zwitch@2.0.4: {} diff --git a/public/r/about-us-page-01.json b/public/r/about-us-page-01.json new file mode 100644 index 0000000..c8a2f91 --- /dev/null +++ b/public/r/about-us-page-01.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "about-us-page-01", + "type": "registry:block", + "title": "About Us 1", + "description": "Centered header with video/image section and overlapping stats grid card displaying icons, values, and descriptions", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "badge", + "button", + "card" + ], + "files": [ + { + "path": "src/app/(blank)/preview/marketing-ui/about-us-page/about-us-page-01/page.tsx", + "content": "import { MedalIcon, SparklesIcon, StarIcon, TargetIcon } from 'lucide-react'\n\nimport AboutUs from '@/components/shadcn-studio/blocks/about-us-page-01/about-us-page-01'\n\nconst stats = [\n {\n icon: SparklesIcon,\n value: '20+',\n description: 'Years of Experience'\n },\n {\n icon: TargetIcon,\n value: '70+',\n description: 'Successful Projects'\n },\n {\n icon: StarIcon,\n value: '550+',\n description: 'Customer Reviews'\n },\n {\n icon: MedalIcon,\n value: '25',\n description: 'Achieve Awards'\n }\n]\n\nconst AboutUsPage = () => {\n return \n}\n\nexport default AboutUsPage\n", + "type": "registry:page", + "target": "app/about-us-page-01/page.tsx" + }, + { + "path": "src/components/shadcn-studio/blocks/about-us-page-01/about-us-page-01.tsx", + "content": "import type { ComponentType } from 'react'\n\nimport { ArrowRightIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\ntype StatItem = {\n icon: ComponentType\n value: string\n description: string\n}[]\n\nconst AboutUs = ({ stats }: { stats: StatItem }) => {\n return (\n

\n
\n {/* Header */}\n
\n

About Us

\n

\n Our achievement story stands as a powerful testament to teamwork and perseverance. United, we have faced\n challenges, celebrated victories, and woven a narrative of growth and success.\n

\n \n
\n\n {/* Video player and stats */}\n
\n
\n \n
\n\n {/* Stats card overlapping the video section */}\n
\n {stats.map((stat, index) => (\n
\n
\n \n
\n {stat.value}\n

{stat.description}

\n
\n ))}\n
\n
\n
\n
\n )\n}\n\nexport default AboutUs\n", + "type": "registry:component", + "target": "components/shadcn-studio/blocks/about-us-page-01/about-us-page-01.tsx" + } + ], + "meta": { + "category": "marketing-ui", + "section": "about-us-page" + } +} \ No newline at end of file diff --git a/public/r/accordion-01.json b/public/r/accordion-01.json new file mode 100644 index 0000000..c51bfed --- /dev/null +++ b/public/r/accordion-01.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-01", + "type": "registry:component", + "title": "Accordion 1", + "description": "Basic accordion with default styling and collapsible FAQ items.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-01.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.title}\n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-02.json b/public/r/accordion-02.json new file mode 100644 index 0000000..8cf6ece --- /dev/null +++ b/public/r/accordion-02.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-02", + "type": "registry:component", + "title": "Accordion 2", + "description": "Card-style accordion with separated items, shadow effects, and rotated chevron icons.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-02.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionSplitDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n {item.title}\n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionSplitDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-03.json b/public/r/accordion-03.json new file mode 100644 index 0000000..8137392 --- /dev/null +++ b/public/r/accordion-03.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-03", + "type": "registry:component", + "title": "Accordion 3", + "description": "Icon-enhanced accordion with category icons displayed before each item title.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-03.tsx", + "content": "import { HeadsetIcon, PackageIcon, RefreshCwIcon } from 'lucide-react'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n icon: PackageIcon,\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n icon: RefreshCwIcon,\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n icon: HeadsetIcon,\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionLeftIconDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n {item.title}\n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionLeftIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-04.json b/public/r/accordion-04.json new file mode 100644 index 0000000..3659eed --- /dev/null +++ b/public/r/accordion-04.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-04", + "type": "registry:component", + "title": "Accordion 4", + "description": "Plus/minus icon accordion with animated icon transitions for expand/collapse states.", + "dependencies": [ + "@radix-ui/react-accordion", + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-04.tsx", + "content": "import { PlusIcon } from 'lucide-react'\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\n\nimport { Accordion, AccordionContent, AccordionItem } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionPlusMinusIconDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n {item.title}\n \n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionPlusMinusIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-05.json b/public/r/accordion-05.json new file mode 100644 index 0000000..1f900a9 --- /dev/null +++ b/public/r/accordion-05.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-05", + "type": "registry:component", + "title": "Accordion 5", + "description": "Active state accordion with amber highlighting for expanded items and borders.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-05.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionActiveItemDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n {item.title}\n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionActiveItemDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-06.json b/public/r/accordion-06.json new file mode 100644 index 0000000..7f842d1 --- /dev/null +++ b/public/r/accordion-06.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-06", + "type": "registry:component", + "title": "Accordion 6", + "description": "Icon and expand indicator accordion with category icons and plus icon for expand/collapse.", + "dependencies": [ + "@radix-ui/react-accordion", + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-06.tsx", + "content": "import { HeadsetIcon, PackageIcon, PlusIcon, RefreshCwIcon } from 'lucide-react'\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\n\nimport { Accordion, AccordionContent, AccordionItem } from '@/components/ui/accordion'\n\nconst items = [\n {\n icon: PackageIcon,\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n icon: RefreshCwIcon,\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n icon: HeadsetIcon,\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionExpandIconDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n \n {item.title}\n \n \n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionExpandIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-07.json b/public/r/accordion-07.json new file mode 100644 index 0000000..0d1fba8 --- /dev/null +++ b/public/r/accordion-07.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-07", + "type": "registry:component", + "title": "Accordion 7", + "description": "Avatar-based accordion displaying user profiles with avatar images, names, and email addresses.", + "registryDependencies": [ + "accordion", + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-07.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst items = [\n {\n name: 'Richard Payne',\n email: 'pwright@yahoo.com',\n avatarImage: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png',\n content:\n 'Richard Payne is a remarkable individual known for his exceptional skills and expertise in various fields. With a strong background in technology and a passion for innovation, Richard has made significant contributions to the industry.'\n },\n {\n name: 'Jordan Stevenson',\n email: 'wramirez@outlook.com',\n avatarImage: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-2.png',\n content:\n 'Jordan Stevenson is a talented individual with a passion for technology and innovation. Jordan has made significant contributions to various projects and has a deep understanding of programming languages and frameworks.'\n },\n {\n name: 'Nicholas Tanner',\n email: 'snguyen@icloud.com',\n avatarImage: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n content:\n 'Nicholas Tanner is a highly skilled individual with a strong passion for technology and innovation. Nicholas has made significant contributions to numerous projects and possesses a deep understanding of various programming languages and frameworks.'\n }\n]\n\nconst AccordionAvatarDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n \n \n {item.name.split(/\\s/).reduce((response, word) => (response += word.slice(0, 1)), '')}\n \n \n \n {item.name}\n {item.email}\n \n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionAvatarDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-08.json b/public/r/accordion-08.json new file mode 100644 index 0000000..42c81bd --- /dev/null +++ b/public/r/accordion-08.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-08", + "type": "registry:component", + "title": "Accordion 8", + "description": "Enhanced icon accordion with circular icon containers and subtitle descriptions for each item.", + "dependencies": [ + "@radix-ui/react-accordion", + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-08.tsx", + "content": "import { HeadsetIcon, PackageIcon, PlusIcon, RefreshCwIcon } from 'lucide-react'\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\n\nimport { Accordion, AccordionContent, AccordionItem } from '@/components/ui/accordion'\n\nconst items = [\n {\n icon: PackageIcon,\n title: 'How do I track my order?',\n subtitle: 'Shipping & Delivery',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n icon: RefreshCwIcon,\n title: 'What is your return policy?',\n subtitle: 'Returns & Refunds',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n icon: HeadsetIcon,\n title: 'How can I contact customer support?',\n subtitle: 'Help & Support',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionIconSubtitleDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n \n \n {item.title}\n {item.subtitle}\n \n \n \n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionIconSubtitleDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-09.json b/public/r/accordion-09.json new file mode 100644 index 0000000..6177e8d --- /dev/null +++ b/public/r/accordion-09.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-09", + "type": "registry:component", + "title": "Accordion 9", + "description": "Outline-style accordion with bordered items and spacing between each accordion item.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-09.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionOutlineDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.title}\n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionOutlineDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-10.json b/public/r/accordion-10.json new file mode 100644 index 0000000..cdbd83f --- /dev/null +++ b/public/r/accordion-10.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-10", + "type": "registry:component", + "title": "Accordion 10", + "description": "Box-style accordion with unified border container around all accordion items.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-10.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionBoxDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.title}\n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionBoxDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-11.json b/public/r/accordion-11.json new file mode 100644 index 0000000..eef5af6 --- /dev/null +++ b/public/r/accordion-11.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-11", + "type": "registry:component", + "title": "Accordion 11", + "description": "Tab-style accordion with accent background highlighting for expanded items.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-11.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionTabsDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.title}\n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionTabsDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-12.json b/public/r/accordion-12.json new file mode 100644 index 0000000..bda92b1 --- /dev/null +++ b/public/r/accordion-12.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-12", + "type": "registry:component", + "title": "Accordion 12", + "description": "Tab with outline accordion featuring bordered highlighting and shadow effects for expanded items.", + "dependencies": [ + "@radix-ui/react-accordion", + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-12.tsx", + "content": "import { PlusIcon } from 'lucide-react'\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\n\nimport { Accordion, AccordionContent, AccordionItem } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionTabsOutlineDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n {item.title}\n \n \n \n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionTabsOutlineDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-13.json b/public/r/accordion-13.json new file mode 100644 index 0000000..44349c4 --- /dev/null +++ b/public/r/accordion-13.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-13", + "type": "registry:component", + "title": "Accordion 13", + "description": "Media content accordion with category icons and embedded images in accordion content.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-13.tsx", + "content": "import { HeadsetIcon, PackageIcon, RefreshCwIcon } from 'lucide-react'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n icon: PackageIcon,\n title: 'How do I track my order?',\n content: \"You'll receive tracking information via email once your order ships.\",\n media: 'https://cdn.shadcnstudio.com/ss-assets/components/accordion/image-1.jpg?width=520&format=auto'\n },\n {\n icon: RefreshCwIcon,\n title: 'What is your return policy?',\n content: 'We offer a 30-day return policy for most items.',\n media: 'https://cdn.shadcnstudio.com/ss-assets/components/accordion/image-2.jpg?width=520&format=auto'\n },\n {\n icon: HeadsetIcon,\n title: 'How can I contact customer support?',\n content: 'You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567.',\n media: 'https://cdn.shadcnstudio.com/ss-assets/components/accordion/image-3.jpg?width=520&format=auto'\n }\n]\n\nconst AccordionMediaContentDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n {item.title}\n \n \n \n

{item.content}

\n {item.title}\n
\n
\n ))}\n
\n )\n}\n\nexport default AccordionMediaContentDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-13.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-14.json b/public/r/accordion-14.json new file mode 100644 index 0000000..571c0a8 --- /dev/null +++ b/public/r/accordion-14.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-14", + "type": "registry:component", + "title": "Accordion 14", + "description": "Filled header accordion with accent background triggers and separated content sections.", + "registryDependencies": [ + "accordion" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-14.tsx", + "content": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\n\nconst items = [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n }\n]\n\nconst AccordionFilledDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.title}\n {item.content}\n \n ))}\n \n )\n}\n\nexport default AccordionFilledDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-14.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-15.json b/public/r/accordion-15.json new file mode 100644 index 0000000..31d7d38 --- /dev/null +++ b/public/r/accordion-15.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-15", + "type": "registry:component", + "title": "Accordion 15", + "description": "Multi-level accordion with nested collapsible sections for hierarchical FAQ organization.", + "dependencies": [ + "@radix-ui/react-accordion", + "lucide-react" + ], + "registryDependencies": [ + "accordion", + "collapsible" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-15.tsx", + "content": "import { ChevronDownIcon, HeadsetIcon, PackageIcon, PlusIcon, RefreshCwIcon } from 'lucide-react'\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\n\nimport { Accordion, AccordionContent, AccordionItem } from '@/components/ui/accordion'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\n\nconst items = [\n {\n category: 'Shipping & Delivery',\n icon: PackageIcon,\n faqs: [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`\n },\n {\n title: 'What are your shipping options?',\n content:\n 'We offer standard shipping (3-5 business days), express shipping (1-2 business days), and overnight shipping. International shipping is also available to select countries. Shipping costs vary based on the destination and selected method.'\n },\n {\n title: 'Do you ship internationally?',\n content:\n 'Yes, we ship to most countries worldwide. International shipping typically takes 7-14 business days, depending on the destination. Please note that customs duties and taxes may apply and are the responsibility of the recipient.'\n }\n ]\n },\n {\n category: 'Returns & Refunds',\n icon: RefreshCwIcon,\n faqs: [\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.'\n },\n {\n title: 'How long do refunds take to process?',\n content:\n 'Once we receive your returned item, refunds are typically processed within 5-7 business days. The refund will be issued to your original payment method. Please note that it may take additional time for your bank or credit card company to reflect the refund in your account.'\n },\n {\n title: 'Do you offer exchanges?',\n content:\n 'Yes, we offer exchanges for different sizes, colors, or styles. You can request an exchange through our return portal or by contacting customer service. The exchange process typically takes 7-10 business days from when we receive your return.'\n }\n ]\n },\n {\n category: 'Help & Support',\n icon: HeadsetIcon,\n faqs: [\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.'\n },\n {\n title: 'What are your business hours?',\n content:\n 'Our customer service team is available 24/7 for online support. Our physical stores are open Monday through Saturday from 9 AM to 9 PM, and Sunday from 10 AM to 6 PM. Store hours may vary during holidays.'\n },\n {\n title: 'How do I report a problem with my order?',\n content:\n 'If you encounter any issues with your order, please contact our customer service team immediately. You can report problems through our website, email, or phone. Please include your order number and a detailed description of the issue for faster resolution.'\n }\n ]\n }\n]\n\nconst AccordionMultilevelDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n {item.category}\n \n \n \n \n {item.faqs.map((faq, i) => (\n \n \n \n {faq.title}\n \n \n {faq.content}\n \n \n ))}\n \n \n ))}\n \n )\n}\n\nexport default AccordionMultilevelDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-15.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/accordion-16.json b/public/r/accordion-16.json new file mode 100644 index 0000000..e3b529e --- /dev/null +++ b/public/r/accordion-16.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "accordion-16", + "type": "registry:component", + "title": "Accordion 16", + "description": "Simplified multi-level accordion with plus/minus icons for nested FAQ categories and questions.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "accordion", + "collapsible" + ], + "files": [ + { + "path": "src/components/shadcn-studio/accordion/accordion-16.tsx", + "content": "import { PlusIcon } from 'lucide-react'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\n\nconst items = [\n {\n category: 'Shipping & Delivery',\n faqs: [\n {\n title: 'How do I track my order?',\n content: `You can track your order by logging into your account and visiting the \"Orders\" section. You'll receive tracking information via email once your order ships. For real-time updates, you can also use the tracking number provided in your shipping confirmation email.`,\n open: true\n },\n {\n title: 'What are your shipping options?',\n content:\n 'We offer standard shipping (3-5 business days), express shipping (1-2 business days), and overnight shipping. International shipping is also available to select countries. Shipping costs vary based on the destination and selected method.'\n },\n {\n title: 'Do you ship internationally?',\n content:\n 'Yes, we ship to most countries worldwide. International shipping typically takes 7-14 business days, depending on the destination. Please note that customs duties and taxes may apply and are the responsibility of the recipient.'\n }\n ]\n },\n {\n category: 'Returns & Refunds',\n faqs: [\n {\n title: 'What is your return policy?',\n content:\n 'We offer a 30-day return policy for most items. Products must be unused and in their original packaging. To initiate a return, please contact our customer service team or use the return portal in your account dashboard.',\n open: true\n },\n {\n title: 'How long do refunds take to process?',\n content:\n 'Once we receive your returned item, refunds are typically processed within 5-7 business days. The refund will be issued to your original payment method. Please note that it may take additional time for your bank or credit card company to reflect the refund in your account.'\n },\n {\n title: 'Do you offer exchanges?',\n content:\n 'Yes, we offer exchanges for different sizes, colors, or styles. You can request an exchange through our return portal or by contacting customer service. The exchange process typically takes 7-10 business days from when we receive your return.'\n }\n ]\n },\n {\n category: 'Help & Support',\n faqs: [\n {\n title: 'How can I contact customer support?',\n content:\n 'Our customer support team is available 24/7. You can reach us via live chat, email at support@example.com, or by phone at 1-800-123-4567. For faster service, please have your order number ready when contacting us.',\n open: true\n },\n {\n title: 'What are your business hours?',\n content:\n 'Our customer service team is available 24/7 for online support. Our physical stores are open Monday through Saturday from 9 AM to 9 PM, and Sunday from 10 AM to 6 PM. Store hours may vary during holidays.'\n },\n {\n title: 'How do I report a problem with my order?',\n content:\n 'If you encounter any issues with your order, please contact our customer service team immediately. You can report problems through our website, email, or phone. Please include your order number and a detailed description of the issue for faster resolution.'\n }\n ]\n }\n]\n\nconst AccordionMultilevelIconDemo = () => {\n return (\n \n {items.map((item, index) => (\n \n {item.category}\n \n {item.faqs.map((faq, index) => (\n \n \n \n {faq.title}\n \n \n {faq.content}\n \n \n ))}\n \n \n ))}\n \n )\n}\n\nexport default AccordionMultilevelIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/accordion/accordion-16.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-01.json b/public/r/alert-01.json new file mode 100644 index 0000000..fd4fb08 --- /dev/null +++ b/public/r/alert-01.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-01", + "type": "registry:component", + "title": "Alert 1", + "description": "Basic alert with circle alert icon and simple title message.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-01.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertDemo = () => {\n return (\n \n \n New message!\n \n )\n}\n\nexport default AlertDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-02.json b/public/r/alert-02.json new file mode 100644 index 0000000..0f82409 --- /dev/null +++ b/public/r/alert-02.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-02", + "type": "registry:component", + "title": "Alert 2", + "description": "Avatar-enhanced alert with user profile image, and alert icon.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-02.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AlertWithAvatarDemo = () => {\n return (\n \n \n \n HR\n \n
\n Sara has replied on the uploaded image.\n 12 unread messages. Tap to see.\n
\n \n
\n )\n}\n\nexport default AlertWithAvatarDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-03.json b/public/r/alert-03.json new file mode 100644 index 0000000..8511606 --- /dev/null +++ b/public/r/alert-03.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-03", + "type": "registry:component", + "title": "Alert 3", + "description": "Closable alert with dismiss functionality using X icon and state management.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-03.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { CircleAlertIcon, XIcon } from 'lucide-react'\n\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'\n\nconst AlertClosableDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n \n \n
\n New message!\n 12 unread messages. Tap to see.\n
\n \n
\n )\n}\n\nexport default AlertClosableDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-04.json b/public/r/alert-04.json new file mode 100644 index 0000000..fd52c57 --- /dev/null +++ b/public/r/alert-04.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-04", + "type": "registry:component", + "title": "Alert 4", + "description": "Interactive alert with link button featuring arrow icon and styled border/text colors.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-04.tsx", + "content": "import { ArrowRightIcon, CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\nimport { Button } from '@/components/ui/button'\n\nconst AlertWithLinkDemo = () => {\n return (\n \n \n New message!\n \n \n Link\n \n \n \n \n )\n}\n\nexport default AlertWithLinkDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-05.json b/public/r/alert-05.json new file mode 100644 index 0000000..777bafc --- /dev/null +++ b/public/r/alert-05.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-05", + "type": "registry:component", + "title": "Alert 5", + "description": "Attached icon alert with separated icon section and destructive warning styling.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-05.tsx", + "content": "import { FileWarningIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertAttachedIconDemo = () => {\n return (\n \n
\n \n
\n This file contains virus!\n
\n )\n}\n\nexport default AlertAttachedIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-06.json b/public/r/alert-06.json new file mode 100644 index 0000000..c299ec8 --- /dev/null +++ b/public/r/alert-06.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-06", + "type": "registry:component", + "title": "Alert 6", + "description": "Focused icon alert with avatar-wrapped warning icon and destructive background styling.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-06.tsx", + "content": "import { FileWarningIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar'\n\nconst AlertFocusedIconDemo = () => {\n return (\n \n \n \n \n \n \n This file contains virus!\n \n )\n}\n\nexport default AlertFocusedIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-07.json b/public/r/alert-07.json new file mode 100644 index 0000000..74920db --- /dev/null +++ b/public/r/alert-07.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-07", + "type": "registry:component", + "title": "Alert 7", + "description": "File upload progress alert with animated progress bar, action buttons, and close functionality.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-07.tsx", + "content": "'use client'\n\nimport { useState, useEffect } from 'react'\n\nimport { UploadIcon, XIcon } from 'lucide-react'\n\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'\nimport { Button } from '@/components/ui/button'\nimport { Progress } from '@/components/ui/progress'\n\nconst AlertFileUploadDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n const [progress, setProgress] = useState(0)\n\n useEffect(() => {\n const timer = setTimeout(() => setProgress(50), 100)\n\n return () => clearTimeout(timer)\n }, [])\n\n if (!isActive) return null\n\n return (\n \n \n
\n
\n Uploading your 'Img-234.png'\n Please wait While we upload your image.\n
\n \n
\n \n \n Upload another\n \n
\n
\n \n
\n )\n}\n\nexport default AlertFileUploadDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-08.json b/public/r/alert-08.json new file mode 100644 index 0000000..fa031cb --- /dev/null +++ b/public/r/alert-08.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-08", + "type": "registry:component", + "title": "Alert 8", + "description": "Multi-action alert with primary background, multiple buttons, and dismissible interface.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-08.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { CircleAlertIcon, XIcon } from 'lucide-react'\n\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'\nimport { Button } from '@/components/ui/button'\n\nconst AlertMultipleActionDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n \n \n
\n
\n A new update is available\n \n Includes the at new dashboard View. Pages end exports will now load taster\n \n
\n
\n \n \n
\n
\n \n
\n )\n}\n\nexport default AlertMultipleActionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-09.json b/public/r/alert-09.json new file mode 100644 index 0000000..9e3dbd2 --- /dev/null +++ b/public/r/alert-09.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-09", + "type": "registry:component", + "title": "Alert 9", + "description": "Task progress alert with user avatar, progress indicator, and task completion tracking.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "avatar", + "progress" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-09.tsx", + "content": "'use client'\n\nimport { useState, useEffect } from 'react'\n\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport { Progress } from '@/components/ui/progress'\n\nconst AlertTaskDemo = () => {\n const [progress, setProgress] = useState(0)\n\n useEffect(() => {\n const timer = setTimeout(() => setProgress(50), 100)\n\n return () => clearTimeout(timer)\n }, [])\n\n return (\n \n \n \n HR\n \n
\n
\n @Rocky\n this projects task is remaining, deadline is near.\n
\n \n
\n
\n )\n}\n\nexport default AlertTaskDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-10.json b/public/r/alert-10.json new file mode 100644 index 0000000..81ce0d4 --- /dev/null +++ b/public/r/alert-10.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-10", + "type": "registry:component", + "title": "Alert 10", + "description": "Gradient background alert with email verification message and gradient styling.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "button", + "progress" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-10.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { CircleAlertIcon, XIcon } from 'lucide-react'\n\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'\n\nconst AlertGradientDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n \n \n
\n Verify your email to activate your account\n \n We've sent a confirmation link to your inbox. Check your email to complete the sign-up.\n \n
\n \n
\n )\n}\n\nexport default AlertGradientDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-11.json b/public/r/alert-11.json new file mode 100644 index 0000000..69ac93d --- /dev/null +++ b/public/r/alert-11.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-11", + "type": "registry:component", + "title": "Alert 11", + "description": "Success indicator alert with left border highlight and green success styling.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-11.tsx", + "content": "import { UserCheckIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertIndicatorSuccessDemo = () => {\n return (\n \n \n Your request to join the team is approved.\n \n )\n}\n\nexport default AlertIndicatorSuccessDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-12.json b/public/r/alert-12.json new file mode 100644 index 0000000..7ac5172 --- /dev/null +++ b/public/r/alert-12.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-12", + "type": "registry:component", + "title": "Alert 12", + "description": "Information/error indicator alert with destructive background styling and informational content.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-12.tsx", + "content": "import { UserRoundXIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertIndicatorDestructiveDemo = () => {\n return (\n \n \n Your request to join the team is denied.\n \n )\n}\n\nexport default AlertIndicatorDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-13.json b/public/r/alert-13.json new file mode 100644 index 0000000..183ce37 --- /dev/null +++ b/public/r/alert-13.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-13", + "type": "registry:component", + "title": "Alert 13", + "description": "displaying a minimal \"New message!\" notification with an attention icon and an actionable \"Open\" button", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert", + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-13.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\nimport { Button } from '@/components/ui/button'\n\nconst AlertWithActionDemo = () => {\n return (\n \n \n New message!\n \n \n )\n}\n\nexport default AlertWithActionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-13.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-14.json b/public/r/alert-14.json new file mode 100644 index 0000000..0f05f3b --- /dev/null +++ b/public/r/alert-14.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-14", + "type": "registry:component", + "title": "Alert 14", + "description": "Error indicator alert with red styling and destructive error message.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-14.tsx", + "content": "import { TriangleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertDestructiveDemo = () => {\n return (\n \n \n Something went wrong!\n \n )\n}\n\nexport default AlertDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-14.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-15.json b/public/r/alert-15.json new file mode 100644 index 0000000..9002539 --- /dev/null +++ b/public/r/alert-15.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-15", + "type": "registry:component", + "title": "Alert 15", + "description": "Pure destructive alert using built-in destructive variant with error styling.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-15.tsx", + "content": "import { TriangleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertPureDestructiveDemo = () => {\n return (\n \n \n Unable to process your payment.\n \n )\n}\n\nexport default AlertPureDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-15.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-16.json b/public/r/alert-16.json new file mode 100644 index 0000000..322fbc1 --- /dev/null +++ b/public/r/alert-16.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-16", + "type": "registry:component", + "title": "Alert 16", + "description": "Minimal alert without icon displaying simple message text only.", + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-16.tsx", + "content": "import { Alert, AlertTitle } from '@/components/ui/alert'\n\nconst AlertWithoutIconDemo = () => {\n return (\n \n New message!\n \n )\n}\n\nexport default AlertWithoutIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-16.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-17.json b/public/r/alert-17.json new file mode 100644 index 0000000..0c2192c --- /dev/null +++ b/public/r/alert-17.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-17", + "type": "registry:component", + "title": "Alert 17", + "description": "Standard alert with both title and description text providing detailed information.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-17.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertDescriptionDemo = () => {\n return (\n \n \n Creating your account\n Fill in your details to get started.\n \n )\n}\n\nexport default AlertDescriptionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-17.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-18.json b/public/r/alert-18.json new file mode 100644 index 0000000..1033d11 --- /dev/null +++ b/public/r/alert-18.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-18", + "type": "registry:component", + "title": "Alert 18", + "description": "Outline info alert with blue border and text styling for informational messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-18.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertOutlineInfoDemo = () => {\n return (\n \n \n Verify your email to activate your account\n \n We've sent a confirmation link to your inbox. Check your email to complete the sign-up.\n \n \n )\n}\n\nexport default AlertOutlineInfoDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-18.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-19.json b/public/r/alert-19.json new file mode 100644 index 0000000..cf293db --- /dev/null +++ b/public/r/alert-19.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-19", + "type": "registry:component", + "title": "Alert 19", + "description": "Outline success alert with green border and text for success messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-19.tsx", + "content": "import { CheckCheckIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertOutlineSuccessDemo = () => {\n return (\n \n \n Account created successfully\n \n You are all set! You can now log in and start exploring your dashboard.\n \n \n )\n}\n\nexport default AlertOutlineSuccessDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-19.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-20.json b/public/r/alert-20.json new file mode 100644 index 0000000..87b1e83 --- /dev/null +++ b/public/r/alert-20.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-20", + "type": "registry:component", + "title": "Alert 20", + "description": "Outline warning alert with amber border and text for warning messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-20.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertOutlineWarningDemo = () => {\n return (\n \n \n Your password is too weak\n \n Try using a mix of uppercase letters, numbers, and symbols for better security.\n \n \n )\n}\n\nexport default AlertOutlineWarningDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-20.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-21.json b/public/r/alert-21.json new file mode 100644 index 0000000..0a615a3 --- /dev/null +++ b/public/r/alert-21.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-21", + "type": "registry:component", + "title": "Alert 21", + "description": "Soft primary alert with subtle background and text styling for secondary messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-21.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSoftDemo = () => {\n return (\n \n \n File Should be PDF,DOCX,JPG, or PNG.\n If the file type is not one of this than we can't get your files\n \n )\n}\n\nexport default AlertSoftDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-21.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-22.json b/public/r/alert-22.json new file mode 100644 index 0000000..322918a --- /dev/null +++ b/public/r/alert-22.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-22", + "type": "registry:component", + "title": "Alert 22", + "description": "Soft info alert with blue background and subtle styling for information.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-22.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSoftInfoDemo = () => {\n return (\n \n \n Only certain file types are allowed\n \n You can upload PDF, DOCX, JPG, or PNG files up to 20MB.\n \n \n )\n}\n\nexport default AlertSoftInfoDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-22.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-23.json b/public/r/alert-23.json new file mode 100644 index 0000000..d3b0fd6 --- /dev/null +++ b/public/r/alert-23.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-23", + "type": "registry:component", + "title": "Alert 23", + "description": "Soft success alert with green background and subtle styling for success messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-23.tsx", + "content": "import { CheckCheckIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSoftSuccessDemo = () => {\n return (\n \n \n File uploaded successfully\n \n Your document has been saved and is now available in your files.\n \n \n )\n}\n\nexport default AlertSoftSuccessDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-23.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-24.json b/public/r/alert-24.json new file mode 100644 index 0000000..cc50af4 --- /dev/null +++ b/public/r/alert-24.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-24", + "type": "registry:component", + "title": "Alert 24", + "description": "Soft warning alert with amber background and subtle styling for warnings.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-24.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSoftWarningDemo = () => {\n return (\n \n \n This file might be too large\n \n Uploading large files may take longer or fail. Consider compressing it first.\n \n \n )\n}\n\nexport default AlertSoftWarningDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-24.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-25.json b/public/r/alert-25.json new file mode 100644 index 0000000..8409372 --- /dev/null +++ b/public/r/alert-25.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-25", + "type": "registry:component", + "title": "Alert 25", + "description": "Soft destructive alert with red background and subtle styling for errors.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-25.tsx", + "content": "import { TriangleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSoftDestructiveDemo = () => {\n return (\n \n \n Upload failed\n \n Something went wrong. Please try again or use a different file format.\n \n \n )\n}\n\nexport default AlertSoftDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-25.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-26.json b/public/r/alert-26.json new file mode 100644 index 0000000..ee33557 --- /dev/null +++ b/public/r/alert-26.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-26", + "type": "registry:component", + "title": "Alert 26", + "description": "Solid info alert with full primary background for prominent informational messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-26.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSolidDemo = () => {\n return (\n \n \n Editing your profile\n \n Changes won't be saved until you click "Update."\n \n \n )\n}\n\nexport default AlertSolidDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-26.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-27.json b/public/r/alert-27.json new file mode 100644 index 0000000..ee6f01c --- /dev/null +++ b/public/r/alert-27.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-27", + "type": "registry:component", + "title": "Alert 27", + "description": "Solid success alert with full green background for prominent success messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-27.tsx", + "content": "import { CheckCheckIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSolidSuccessDemo = () => {\n return (\n \n \n Profile updated\n Your changes have been saved successfully.\n \n )\n}\n\nexport default AlertSolidSuccessDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-27.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-28.json b/public/r/alert-28.json new file mode 100644 index 0000000..93b96f4 --- /dev/null +++ b/public/r/alert-28.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-28", + "type": "registry:component", + "title": "Alert 28", + "description": "Solid warning alert with full amber background for prominent warning messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-28.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSolidWarningDemo = () => {\n return (\n \n \n Some details are missing\n Complete your profile to get the best experience.\n \n )\n}\n\nexport default AlertSolidWarningDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-28.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-29.json b/public/r/alert-29.json new file mode 100644 index 0000000..8cfcd51 --- /dev/null +++ b/public/r/alert-29.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-29", + "type": "registry:component", + "title": "Alert 29", + "description": "Solid info alert with full blue background for prominent informational messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-29.tsx", + "content": "import { CircleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSolidInfoDemo = () => {\n return (\n \n \n Your profile is visible\n Anyone can view your basic information.\n \n )\n}\n\nexport default AlertSolidInfoDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-29.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/alert-30.json b/public/r/alert-30.json new file mode 100644 index 0000000..8e09c94 --- /dev/null +++ b/public/r/alert-30.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "alert-30", + "type": "registry:component", + "title": "Alert 30", + "description": "Solid destructive alert with full red background for prominent error messages.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "alert" + ], + "files": [ + { + "path": "src/components/shadcn-studio/alert/alert-30.tsx", + "content": "import { TriangleAlertIcon } from 'lucide-react'\n\nimport { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'\n\nconst AlertSolidDestructiveDemo = () => {\n return (\n \n \n Couldn't save changes\n Please try again or reload the page.\n \n )\n}\n\nexport default AlertSolidDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/alert/alert-30.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/app-integration-01.json b/public/r/app-integration-01.json new file mode 100644 index 0000000..3862b69 --- /dev/null +++ b/public/r/app-integration-01.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "app-integration-01", + "type": "registry:block", + "title": "App Integration 1", + "description": "Two-column layout with integration cards featuring tool logos, names, descriptions, and call-to-action for conversion-focused app showcases", + "registryDependencies": [ + "button", + "card" + ], + "files": [ + { + "path": "src/app/(blank)/preview/marketing-ui/app-integration/app-integration-01/page.tsx", + "content": "import AppIntegration from '@/components/shadcn-studio/blocks/app-integration-01/app-integration-01'\n\nconst integrations = [\n {\n name: 'Microsoft',\n description: 'Empowering Innovation and Connectivity',\n image: 'https://cdn.shadcnstudio.com/ss-assets/brand-logo/microsoft-icon.png',\n alt: 'Microsoft'\n },\n {\n name: 'Spotify',\n description: 'Your soundtrack to every moment.',\n image: 'https://cdn.shadcnstudio.com/ss-assets/brand-logo/spotify-icon.png',\n alt: 'Spotify'\n },\n {\n name: 'Github',\n description: 'Your Hub for Open Source Innovation',\n image: 'https://cdn.shadcnstudio.com/ss-assets/brand-logo/github-white.png',\n alt: 'Github'\n }\n]\n\nconst AppIntegrationPage = () => {\n return \n}\n\nexport default AppIntegrationPage\n", + "type": "registry:page", + "target": "app/app-integration-01/page.tsx" + }, + { + "path": "src/components/shadcn-studio/blocks/app-integration-01/app-integration-01.tsx", + "content": "import { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardDescription, CardTitle } from '@/components/ui/card'\n\ntype Integration = {\n name: string\n description: string\n image: string\n alt: string\n}[]\n\nconst AppIntegration = ({ integrations }: { integrations: Integration }) => {\n return (\n
\n
\n
\n
\n

\n Connects with your favourite tools to boost conversions!\n

\n

\n Harness the potential of seamless integration to boost your sales performance! Discover how connecting\n your tools can lead to greater efficiency and impressive results.\n

\n \n
\n\n
\n {integrations.map((integration, index) => (\n \n \n
\n {integration.alt}\n
\n
\n {integration.name}\n {integration.description}\n
\n
\n
\n ))}\n
\n
\n
\n
\n )\n}\n\nexport default AppIntegration\n", + "type": "registry:component", + "target": "components/shadcn-studio/blocks/app-integration-01/app-integration-01.tsx" + } + ], + "meta": { + "category": "marketing-ui", + "section": "app-integration" + } +} \ No newline at end of file diff --git a/public/r/application-shell-01.json b/public/r/application-shell-01.json new file mode 100644 index 0000000..60e6319 --- /dev/null +++ b/public/r/application-shell-01.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "application-shell-01", + "type": "registry:block", + "title": "Application Shell 1", + "description": "Classic sidebar application shell with navigation menu, user profile, and language selector for traditional dashboard layouts.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar", + "breadcrumb", + "button", + "card", + "dropdown-menu", + "separator", + "sidebar" + ], + "files": [ + { + "path": "src/app/(blank)/preview/dashboard-and-application/application-shell/application-shell-01/page.tsx", + "content": "import {\n ArrowRightLeftIcon,\n CalendarClockIcon,\n ChartNoAxesCombinedIcon,\n ChartPieIcon,\n ChartSplineIcon,\n ClipboardListIcon,\n Clock9Icon,\n CrownIcon,\n FacebookIcon,\n HashIcon,\n InstagramIcon,\n LanguagesIcon,\n LinkedinIcon,\n SettingsIcon,\n SquareActivityIcon,\n TwitterIcon,\n Undo2Icon,\n UsersIcon\n} from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Separator } from '@/components/ui/separator'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/components/ui/breadcrumb'\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger\n} from '@/components/ui/sidebar'\n\nimport LanguageDropdown from '@/components/shadcn-studio/blocks/dropdown-language'\nimport ProfileDropdown from '@/components/shadcn-studio/blocks/dropdown-profile'\n\nconst ApplicationShell = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n Dashboard\n \n \n 5\n \n \n \n \n \n Pages\n \n \n \n \n \n \n Content Performance\n \n \n \n \n \n \n \n Audience Insight\n \n \n \n \n \n \n \n Engagement Metrics\n \n \n \n \n \n \n \n Hashtag Performance\n \n \n 3\n \n \n \n \n \n Competitor Analysis\n \n \n \n \n \n \n \n Campaign Tracking\n \n \n \n \n \n \n \n Sentiment Tracking\n \n \n \n \n \n \n \n Influencer\n \n \n \n \n \n \n \n Supporting Features\n \n \n \n \n \n \n Real Time Monitoring\n \n \n \n \n \n \n \n Schedule Post & Calendar\n \n \n \n \n \n \n \n Report & Export\n \n \n \n \n \n \n \n Settings & Integrations\n \n \n \n \n \n \n \n User Management\n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n Home\n \n \n \n Dashboard\n \n \n \n Free\n \n \n \n
\n
\n \n \n \n }\n />\n \n \n \n JD\n \n \n }\n />\n
\n
\n
\n
\n \n \n
\n \n \n
\n \n
\n
\n
\n )\n}\n\nexport default ApplicationShell\n", + "type": "registry:page", + "target": "app/application-shell-01/page.tsx" + }, + { + "path": "src/components/shadcn-studio/blocks/dropdown-language.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\nimport type { ReactNode } from 'react'\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuTrigger\n} from '@/components/ui/dropdown-menu'\n\ntype Props = {\n trigger: ReactNode\n defaultOpen?: boolean\n align?: 'start' | 'center' | 'end'\n}\n\nconst LanguageDropdown = ({ defaultOpen, align, trigger }: Props) => {\n const [language, setLanguage] = useState('english')\n\n return (\n \n {trigger}\n \n \n \n English\n \n \n Deutsch\n \n \n Española\n \n \n Português\n \n \n 한국인\n \n \n \n \n )\n}\n\nexport default LanguageDropdown\n", + "type": "registry:component", + "target": "components/shadcn-studio/blocks/dropdown-language.tsx" + }, + { + "path": "src/components/shadcn-studio/blocks/dropdown-profile.tsx", + "content": "import type { ReactNode } from 'react'\n\nimport {\n UserIcon,\n SettingsIcon,\n CreditCardIcon,\n UsersIcon,\n SquarePenIcon,\n CirclePlusIcon,\n LogOutIcon\n} from 'lucide-react'\n\nimport { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger\n} from '@/components/ui/dropdown-menu'\n\ntype Props = {\n trigger: ReactNode\n defaultOpen?: boolean\n align?: 'start' | 'center' | 'end'\n}\n\nconst ProfileDropdown = ({ trigger, defaultOpen, align = 'end' }: Props) => {\n return (\n \n {trigger}\n \n \n
\n \n \n JD\n \n \n
\n
\n John Doe\n john.doe@example.com\n
\n
\n\n \n\n \n \n \n My account\n \n \n \n Settings\n \n \n \n Billing\n \n \n\n \n\n \n \n \n Manage team\n \n \n \n Customization\n \n \n \n Add team account\n \n \n\n \n\n \n \n Logout\n \n
\n
\n )\n}\n\nexport default ProfileDropdown\n", + "type": "registry:component", + "target": "components/shadcn-studio/blocks/dropdown-profile.tsx" + } + ], + "meta": { + "category": "dashboard-and-application", + "section": "application-shell" + } +} \ No newline at end of file diff --git a/public/r/art-deco.json b/public/r/art-deco.json new file mode 100644 index 0000000..42be91a --- /dev/null +++ b/public/r/art-deco.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "art-deco", + "type": "registry:style", + "cssVars": { + "theme": { + "font-sans": "Delius Swash Caps", + "font-mono": "Delius Swash Caps", + "font-serif": "Delius Swash Caps", + "radius": "0.625rem", + "tracking-tighter": "calc(var(--tracking-normal) - 0.05em)", + "tracking-tight": "calc(var(--tracking-normal) - 0.025em)", + "tracking-wide": "calc(var(--tracking-normal) + 0.025em)", + "tracking-wider": "calc(var(--tracking-normal) + 0.05em)", + "tracking-widest": "calc(var(--tracking-normal) + 0.1em)" + }, + "light": { + "background": "oklch(0.96 0.03 106.92)", + "foreground": "oklch(0.40 0.07 90.80)", + "card": "oklch(0.98 0.04 97.73)", + "card-foreground": "oklch(0.32 0 0)", + "popover": "oklch(0.98 0.04 97.73)", + "popover-foreground": "oklch(0.32 0 0)", + "primary": "oklch(0.77 0.14 91.27)", + "primary-foreground": "oklch(0 0 0)", + "secondary": "oklch(0.67 0.13 61.58)", + "secondary-foreground": "oklch(0 0 0)", + "muted": "oklch(0.93 0.03 106.94)", + "muted-foreground": "oklch(0.32 0 0)", + "accent": "oklch(0.89 0.18 95.47)", + "accent-foreground": "oklch(0.32 0 0)", + "destructive": "oklch(0.69 0.20 32.29)", + "border": "oklch(0.83 0.11 93.01)", + "input": "oklch(0.65 0.13 81.66)", + "ring": "oklch(0.75 0.15 84.05)", + "chart-1": "oklch(0.89 0.18 95.47)", + "chart-2": "oklch(0.67 0.13 61.58)", + "chart-3": "oklch(0.65 0.13 81.66)", + "chart-4": "oklch(0.75 0.15 84.05)", + "chart-5": "oklch(0.77 0.14 91.27)", + "sidebar": "oklch(0.96 0.03 106.92)", + "sidebar-foreground": "oklch(0.32 0 0)", + "sidebar-primary": "oklch(0.77 0.14 91.27)", + "sidebar-primary-foreground": "oklch(0.32 0 0)", + "sidebar-accent": "oklch(0.89 0.18 95.47)", + "sidebar-accent-foreground": "oklch(0.32 0 0)", + "sidebar-border": "oklch(0.65 0.13 81.66)", + "sidebar-ring": "oklch(0.75 0.15 84.05)", + "font-sans": "Delius Swash Caps", + "font-serif": "Delius Swash Caps", + "font-mono": "Delius Swash Caps", + "radius": "0.625rem", + "shadow-color": "oklch(0.70 0.17 28.12 / 30%)", + "shadow-opacity": "0.05", + "shadow-blur": "3px", + "shadow-spread": "0px", + "shadow-offset-x": "0px", + "shadow-offset-y": "1px", + "spacing": "0.25rem", + "shadow-2xs": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.03)", + "shadow-xs": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.03)", + "shadow-sm": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.05), 0px 1px 2px -1px oklch(0.70 0.17 28.12 / 0.05)", + "shadow": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.05), 0px 1px 2px -1px oklch(0.70 0.17 28.12 / 0.05)", + "shadow-md": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.05), 0px 2px 4px -1px oklch(0.70 0.17 28.12 / 0.05)", + "shadow-lg": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.05), 0px 4px 6px -1px oklch(0.70 0.17 28.12 / 0.05)", + "shadow-xl": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.05), 0px 8px 10px -1px oklch(0.70 0.17 28.12 / 0.05)", + "shadow-2xl": "0px 1px 3px 0px oklch(0.70 0.17 28.12 / 0.13)", + "tracking-normal": "0em" + }, + "dark": { + "background": "oklch(0.32 0 0)", + "foreground": "oklch(0.96 0.03 106.92)", + "card": "oklch(0.41 0 0)", + "card-foreground": "oklch(0.96 0.03 106.92)", + "popover": "oklch(0.41 0 0)", + "popover-foreground": "oklch(0.96 0.03 106.92)", + "primary": "oklch(0.84 0.17 83.07)", + "primary-foreground": "oklch(0 0 0)", + "secondary": "oklch(0.47 0.11 50.64)", + "secondary-foreground": "oklch(0.96 0.03 106.92)", + "muted": "oklch(0.44 0 0)", + "muted-foreground": "oklch(0.96 0.03 106.92)", + "accent": "oklch(0.66 0.14 79.74)", + "accent-foreground": "oklch(0 0 0)", + "destructive": "oklch(0.66 0.23 35.22)", + "border": "oklch(0.47 0.11 50.64)", + "input": "oklch(0.47 0.11 50.64)", + "ring": "oklch(0.65 0.13 81.66)", + "chart-1": "oklch(0.75 0.15 84.05)", + "chart-2": "oklch(0.47 0.11 50.64)", + "chart-3": "oklch(0.65 0.13 81.66)", + "chart-4": "oklch(0.75 0.15 84.05)", + "chart-5": "oklch(0.65 0.13 81.66)", + "sidebar": "oklch(0.32 0 0)", + "sidebar-foreground": "oklch(1.00 0 0)", + "sidebar-primary": "oklch(0.61 0.13 79.65)", + "sidebar-primary-foreground": "oklch(1.00 0 0)", + "sidebar-accent": "oklch(0.75 0.15 84.05)", + "sidebar-accent-foreground": "oklch(0.96 0.03 106.92)", + "sidebar-border": "oklch(0.47 0.11 50.64)", + "sidebar-ring": "oklch(0.65 0.13 81.66)", + "radius": "0.625rem", + "shadow-color": "oklch(0.00 0 0 / 0.05)", + "shadow-opacity": "0.05", + "shadow-blur": "3px", + "shadow-spread": "0px", + "shadow-offset-x": "0px", + "shadow-offset-y": "1px", + "letter-spacing": "0em", + "spacing": "0.25rem", + "font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'", + "font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif", + "font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace", + "shadow-2xs": "0px 1px 3px 0px oklch(0 0 0 / 0.03)", + "shadow-xs": "0px 1px 3px 0px oklch(0 0 0 / 0.03)", + "shadow-sm": "0px 1px 3px 0px oklch(0 0 0 / 0.05), 0px 1px 2px -1px oklch(0 0 0 / 0.05)", + "shadow": "0px 1px 3px 0px oklch(0 0 0 / 0.05), 0px 1px 2px -1px oklch(0 0 0 / 0.05)", + "shadow-md": "0px 1px 3px 0px oklch(0 0 0 / 0.05), 0px 2px 4px -1px oklch(0 0 0 / 0.05)", + "shadow-lg": "0px 1px 3px 0px oklch(0 0 0 / 0.05), 0px 4px 6px -1px oklch(0 0 0 / 0.05)", + "shadow-xl": "0px 1px 3px 0px oklch(0 0 0 / 0.05), 0px 8px 10px -1px oklch(0 0 0 / 0.05)", + "shadow-2xl": "0px 1px 3px 0px oklch(0 0 0 / 0.13)" + } + }, + "css": { + "@layer base": { + "body": { + "letter-spacing": "var(--tracking-normal)" + } + } + } +} \ No newline at end of file diff --git a/public/r/avatar-01.json b/public/r/avatar-01.json new file mode 100644 index 0000000..2af10a0 --- /dev/null +++ b/public/r/avatar-01.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-01", + "type": "registry:component", + "title": "Avatar 1", + "description": "Basic avatar with profile image and fallback initials.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-01.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarDemo = () => {\n return (\n \n \n HR\n \n )\n}\n\nexport default AvatarDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-02.json b/public/r/avatar-02.json new file mode 100644 index 0000000..53f5dea --- /dev/null +++ b/public/r/avatar-02.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-02", + "type": "registry:component", + "title": "Avatar 2", + "description": "Avatar with ring border highlighting for active or selected states.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-02.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarRingDemo = () => {\n return (\n \n \n HR\n \n )\n}\n\nexport default AvatarRingDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-03.json b/public/r/avatar-03.json new file mode 100644 index 0000000..96097e9 --- /dev/null +++ b/public/r/avatar-03.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-03", + "type": "registry:component", + "title": "Avatar 3", + "description": "Small sized avatar variant with compact dimensions.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-03.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarRoundedDemo = () => {\n return (\n \n \n HR\n \n )\n}\n\nexport default AvatarRoundedDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-04.json b/public/r/avatar-04.json new file mode 100644 index 0000000..b42af2c --- /dev/null +++ b/public/r/avatar-04.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-04", + "type": "registry:component", + "title": "Avatar 4", + "description": "Large sized avatar variant with expanded dimensions.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-04.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarSizeDemo = () => {\n return (\n \n \n HR\n \n )\n}\n\nexport default AvatarSizeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-05.json b/public/r/avatar-05.json new file mode 100644 index 0000000..be01c77 --- /dev/null +++ b/public/r/avatar-05.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-05", + "type": "registry:component", + "title": "Avatar 5", + "description": "Circular avatar with fallback initials.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-05.tsx", + "content": "import { Avatar, AvatarFallback } from '@/components/ui/avatar'\n\nconst AvatarFallbackDemo = () => {\n return (\n \n HR\n \n )\n}\n\nexport default AvatarFallbackDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-06.json b/public/r/avatar-06.json new file mode 100644 index 0000000..b05f047 --- /dev/null +++ b/public/r/avatar-06.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-06", + "type": "registry:component", + "title": "Avatar 6", + "description": "Icon avatar using Lucide icon with colored background.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-06.tsx", + "content": "import { HomeIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar'\n\nconst AvatarIconDemo = () => {\n return (\n \n \n \n \n \n )\n}\n\nexport default AvatarIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-07.json b/public/r/avatar-07.json new file mode 100644 index 0000000..3a96255 --- /dev/null +++ b/public/r/avatar-07.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-07", + "type": "registry:component", + "title": "Avatar 7", + "description": "Status avatar with busy indicator showing red status dot.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-07.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarStatusBusyDemo = () => {\n return (\n
\n \n \n HR\n \n \n Busy\n \n
\n )\n}\n\nexport default AvatarStatusBusyDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-08.json b/public/r/avatar-08.json new file mode 100644 index 0000000..719e1ae --- /dev/null +++ b/public/r/avatar-08.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-08", + "type": "registry:component", + "title": "Avatar 8", + "description": "Status avatar with online indicator showing green status dot.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-08.tsx", + "content": "import { CheckIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarStatusRingDemo = () => {\n return (\n
\n \n \n HR\n \n \n \n \n
\n )\n}\n\nexport default AvatarStatusRingDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-09.json b/public/r/avatar-09.json new file mode 100644 index 0000000..9910cd9 --- /dev/null +++ b/public/r/avatar-09.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-09", + "type": "registry:component", + "title": "Avatar 9", + "description": "Status avatar with away indicator showing amber status dot for absent/away state.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-09.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarStatusAwayDemo = () => {\n return (\n
\n \n \n HR\n \n \n Away\n \n
\n )\n}\n\nexport default AvatarStatusAwayDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-10.json b/public/r/avatar-10.json new file mode 100644 index 0000000..17db60b --- /dev/null +++ b/public/r/avatar-10.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-10", + "type": "registry:component", + "title": "Avatar 10", + "description": "Avatar with plus icon overlay for adding or editing profile functionality.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-10.tsx", + "content": "import { PlusCircleIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarPlusDemo = () => {\n return (\n
\n \n \n HR\n \n \n
\n )\n}\n\nexport default AvatarPlusDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-11.json b/public/r/avatar-11.json new file mode 100644 index 0000000..7238b5d --- /dev/null +++ b/public/r/avatar-11.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-11", + "type": "registry:component", + "title": "Avatar 11", + "description": "Avatar with notification badge showing count number for alerts and messages.", + "registryDependencies": [ + "avatar", + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-11.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport { Badge } from '@/components/ui/badge'\n\nconst AvatarNotificationBadgeDemo = () => {\n return (\n
\n \n \n HR\n \n 8\n
\n )\n}\n\nexport default AvatarNotificationBadgeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-12.json b/public/r/avatar-12.json new file mode 100644 index 0000000..b631785 --- /dev/null +++ b/public/r/avatar-12.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-12", + "type": "registry:component", + "title": "Avatar 12", + "description": "Avatar with verified badge showing check mark icon for verified accounts.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-12.tsx", + "content": "import { BadgeCheckIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst AvatarVerifiedDemo = () => {\n return (\n
\n \n \n HR\n \n \n Verified\n \n \n
\n )\n}\n\nexport default AvatarVerifiedDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-13.json b/public/r/avatar-13.json new file mode 100644 index 0000000..0421e04 --- /dev/null +++ b/public/r/avatar-13.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-13", + "type": "registry:component", + "title": "Avatar 13", + "description": "Avatar group displaying multiple overlapping users with ring borders.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-13.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n
\n )\n}\n\nexport default AvatarGroupDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-13.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-14.json b/public/r/avatar-14.json new file mode 100644 index 0000000..40eaa39 --- /dev/null +++ b/public/r/avatar-14.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-14", + "type": "registry:component", + "title": "Avatar 14", + "description": "Avatar group with count indicator showing additional users (+9) in overflow.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-14.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n }\n]\n\nconst AvatarGroupMaxDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n \n +9\n \n
\n )\n}\n\nexport default AvatarGroupMaxDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-14.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-15.json b/public/r/avatar-15.json new file mode 100644 index 0000000..b342c4e --- /dev/null +++ b/public/r/avatar-15.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-15", + "type": "registry:component", + "title": "Avatar 15", + "description": "Large-sized avatar group with bigger dimensions for prominent display.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-15.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupSizeDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n
\n )\n}\n\nexport default AvatarGroupSizeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-15.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-16.json b/public/r/avatar-16.json new file mode 100644 index 0000000..5a27200 --- /dev/null +++ b/public/r/avatar-16.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-16", + "type": "registry:component", + "title": "Avatar 16", + "description": "Avatar group with tooltip hover effects and elevation animation.", + "registryDependencies": [ + "avatar", + "tooltip" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-16.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTooltipDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n \n \n {avatar.fallback}\n \n \n {avatar.name}\n \n ))}\n
\n )\n}\n\nexport default AvatarGroupTooltipDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-16.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-17.json b/public/r/avatar-17.json new file mode 100644 index 0000000..a56ddca --- /dev/null +++ b/public/r/avatar-17.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-17", + "type": "registry:component", + "title": "Avatar 17", + "description": "Avatar group with smooth spacing transition on hover interaction.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-17.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTransitionDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n
\n )\n}\n\nexport default AvatarGroupTransitionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-17.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-18.json b/public/r/avatar-18.json new file mode 100644 index 0000000..ed2aada --- /dev/null +++ b/public/r/avatar-18.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-18", + "type": "registry:component", + "title": "Avatar 18", + "description": "Avatar group with tooltip transitions and hover spacing effects.", + "registryDependencies": [ + "avatar", + "tooltip" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-18.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTooltipTransitionDemo = () => {\n return (\n
\n {avatars.map((avatar, index) => (\n \n \n \n \n {avatar.fallback}\n \n \n {avatar.name}\n \n ))}\n
\n )\n}\n\nexport default AvatarGroupTooltipTransitionDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-18.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-19.json b/public/r/avatar-19.json new file mode 100644 index 0000000..1798db2 --- /dev/null +++ b/public/r/avatar-19.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-19", + "type": "registry:component", + "title": "Avatar 19", + "description": "Avatar group with dropdown menu showing additional users and actions.", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "avatar", + "dropdown-menu" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-19.tsx", + "content": "import { PlusIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png',\n fallback: 'DR',\n name: 'Darlene Robertson'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-2.png',\n fallback: 'LA',\n name: 'Leslie Alexander'\n }\n]\n\nconst AvatarGroupDropdownDemo = () => {\n return (\n
\n {avatars.slice(0, 3).map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n \n \n \n \n \n {avatars.slice(3).map((avatar, index) => (\n \n \n \n {avatar.fallback}\n \n {avatar.name}\n \n ))}\n \n \n
\n )\n}\n\nexport default AvatarGroupDropdownDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-19.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-20.json b/public/r/avatar-20.json new file mode 100644 index 0000000..5799dfc --- /dev/null +++ b/public/r/avatar-20.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-20", + "type": "registry:component", + "title": "Avatar 20", + "description": "Avatar group with outlined container and background styling.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-20.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupOutlineDemo = () => {\n return (\n
\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n
\n \n +3\n \n
\n )\n}\n\nexport default AvatarGroupOutlineDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-20.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/avatar-21.json b/public/r/avatar-21.json new file mode 100644 index 0000000..7a3530c --- /dev/null +++ b/public/r/avatar-21.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "avatar-21", + "type": "registry:component", + "title": "Avatar 21", + "description": "Avatar group with popularity indicator styling and text showcasing community trust.", + "registryDependencies": [ + "avatar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/avatar/avatar-21.tsx", + "content": "import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupPopularityIndicatorDemo = () => {\n return (\n
\n
\n {avatars.map((avatar, index) => (\n \n \n {avatar.fallback}\n \n ))}\n
\n

\n Loved by 10K+ developers.\n

\n
\n )\n}\n\nexport default AvatarGroupPopularityIndicatorDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/avatar/avatar-21.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-01.json b/public/r/badge-01.json new file mode 100644 index 0000000..a76a3d2 --- /dev/null +++ b/public/r/badge-01.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-01", + "type": "registry:component", + "title": "Badge 1", + "description": "Default badge demonstrating basic styling with standard text display", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-01.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeDemo = () => {\n return Default\n}\n\nexport default BadgeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-02.json b/public/r/badge-02.json new file mode 100644 index 0000000..de18bae --- /dev/null +++ b/public/r/badge-02.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-02", + "type": "registry:component", + "title": "Badge 2", + "description": "Secondary variant badge with muted styling for less prominent labels", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-02.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeSecondaryDemo = () => {\n return Secondary\n}\n\nexport default BadgeSecondaryDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-03.json b/public/r/badge-03.json new file mode 100644 index 0000000..cdc0749 --- /dev/null +++ b/public/r/badge-03.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-03", + "type": "registry:component", + "title": "Badge 3", + "description": "Destructive variant badge with red styling for error or warning states", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-03.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeDestructiveDemo = () => {\n return Destructive\n}\n\nexport default BadgeDestructiveDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-04.json b/public/r/badge-04.json new file mode 100644 index 0000000..4b62492 --- /dev/null +++ b/public/r/badge-04.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-04", + "type": "registry:component", + "title": "Badge 4", + "description": "Outline variant badge with bordered styling for subtle emphasis", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-04.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeOutlineDemo = () => {\n return Outline\n}\n\nexport default BadgeOutlineDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-05.json b/public/r/badge-05.json new file mode 100644 index 0000000..758c8aa --- /dev/null +++ b/public/r/badge-05.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-05", + "type": "registry:component", + "title": "Badge 5", + "description": "Dot indicator badge with colored circle for compact status representation", + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-05.tsx", + "content": "const BadgeDotDemo = () => {\n return (\n \n \n )\n}\n\nexport default BadgeDotDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-06.json b/public/r/badge-06.json new file mode 100644 index 0000000..72e796c --- /dev/null +++ b/public/r/badge-06.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-06", + "type": "registry:component", + "title": "Badge 6", + "description": "Rounded badge with full border radius for pill-shaped appearance", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-06.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeRoundedDemo = () => {\n return Rounded\n}\n\nexport default BadgeRoundedDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-07.json b/public/r/badge-07.json new file mode 100644 index 0000000..fdb53c9 --- /dev/null +++ b/public/r/badge-07.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-07", + "type": "registry:component", + "title": "Badge 7", + "description": "Number badge with circular design for count and notification displays", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-07.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeNumberDemo = () => {\n return 8\n}\n\nexport default BadgeNumberDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-08.json b/public/r/badge-08.json new file mode 100644 index 0000000..ca4ad50 --- /dev/null +++ b/public/r/badge-08.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-08", + "type": "registry:component", + "title": "Badge 8", + "description": "Large size badge with increased padding for prominence", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-08.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeLargeDemo = () => {\n return Large\n}\n\nexport default BadgeLargeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-09.json b/public/r/badge-09.json new file mode 100644 index 0000000..ebc436f --- /dev/null +++ b/public/r/badge-09.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-09", + "type": "registry:component", + "title": "Badge 9", + "description": "Small size badge with reduced padding for compact display areas", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-09.tsx", + "content": "import { Badge } from '@/components/ui/badge'\n\nconst BadgeSmallDemo = () => {\n return Small\n}\n\nexport default BadgeSmallDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-10.json b/public/r/badge-10.json new file mode 100644 index 0000000..c5fe8bd --- /dev/null +++ b/public/r/badge-10.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-10", + "type": "registry:component", + "title": "Badge 10", + "description": "Badge with icon integration for enhanced visual context", + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-10.tsx", + "content": "import { StarIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/ui/badge'\n\nconst BadgeWithIconDemo = () => {\n return (\n \n \n With Icon\n \n )\n}\n\nexport default BadgeWithIconDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-11.json b/public/r/badge-11.json new file mode 100644 index 0000000..582da55 --- /dev/null +++ b/public/r/badge-11.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-11", + "type": "registry:component", + "title": "Badge 11", + "description": "Link badge that can be used as clickable navigation element", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-11.tsx", + "content": "import { ArrowRightIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/ui/badge'\n\nconst BadgeLinkDemo = () => {\n return (\n \n \n Link \n \n \n )\n}\n\nexport default BadgeLinkDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-12.json b/public/r/badge-12.json new file mode 100644 index 0000000..0cf94ec --- /dev/null +++ b/public/r/badge-12.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-12", + "type": "registry:component", + "title": "Badge 12", + "description": "Closable badge with X button for dismissible notifications", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "badge" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-12.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { XIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/ui/badge'\n\nconst BadgeClosableDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n \n Closable\n setIsActive(false)}\n >\n \n )\n}\n\nexport default BadgeClosableDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/badge/badge-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/badge-13.json b/public/r/badge-13.json new file mode 100644 index 0000000..00f13fc --- /dev/null +++ b/public/r/badge-13.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "badge-13", + "type": "registry:component", + "title": "Badge 13", + "description": "Selectable badge with checkbox functionality for interactive selection", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "badge", + "checkbox" + ], + "files": [ + { + "path": "src/components/shadcn-studio/badge/badge-13.tsx", + "content": "'use client'\n\nimport { useState, useId } from 'react'\n\nimport { CheckCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/ui/badge'\nimport { Checkbox } from '@/components/ui/checkbox'\n\nconst BadgeSelectableDemo = () => {\n const [selected, setSelected] = useState(false)\n\n const id = useId()\n\n return (\n \n setSelected(!!checked)}\n />\n \n \n )\n}\n\nexport { ShimmerButton, type ShimmerButtonProps }\n", + "type": "registry:ui", + "target": "components/ui/shimmer-button.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-44.json b/public/r/button-44.json new file mode 100644 index 0000000..7a5d1df --- /dev/null +++ b/public/r/button-44.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-44", + "type": "registry:component", + "title": "Button 44", + "description": "Button with bounce hover effect on mouse interaction", + "dependencies": [ + "class-variance-authority", + "motion" + ], + "registryDependencies": [ + "button", + "utils" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button/button-44.tsx", + "content": "import { BounceButton } from '@/components/ui/bounce-button'\n\nconst ButtonBounceHoverDemo = () => {\n return Bounce Button\n}\n\nexport default ButtonBounceHoverDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button/button-44.tsx" + }, + { + "path": "src/components/ui/bounce-button.tsx", + "content": "'use client'\n\nimport * as React from 'react'\n\nimport { motion, type HTMLMotionProps } from 'motion/react'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\nimport { buttonVariants } from '@/components/ui/button'\n\ninterface BounceButtonProps extends HTMLMotionProps<'button'>, VariantProps {\n children: React.ReactNode\n}\n\nfunction BounceButton({ children, className, size, variant, ...props }: BounceButtonProps) {\n return (\n \n {children}\n \n )\n}\n\nexport { BounceButton, type BounceButtonProps }\n", + "type": "registry:ui", + "target": "components/ui/bounce-button.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-45.json b/public/r/button-45.json new file mode 100644 index 0000000..6186127 --- /dev/null +++ b/public/r/button-45.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-45", + "type": "registry:component", + "title": "Button 45", + "description": "Button with magnetic effect that follows mouse movement", + "dependencies": [ + "class-variance-authority", + "motion" + ], + "registryDependencies": [ + "button", + "utils" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button/button-45.tsx", + "content": "import { MagneticButton } from '@/components/ui/magnetic-button'\n\nconst ButtonMagneticEffectDemo = () => {\n return Magnetic Button\n}\n\nexport default ButtonMagneticEffectDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button/button-45.tsx" + }, + { + "path": "src/components/ui/magnetic-button.tsx", + "content": "'use client'\n\nimport * as React from 'react'\n\nimport { motion, type HTMLMotionProps, type Transition } from 'motion/react'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\nimport { buttonVariants } from '@/components/ui/button'\n\ninterface Position {\n x: number\n y: number\n}\n\ninterface MagneticButtonProps extends HTMLMotionProps<'button'>, VariantProps {\n children: React.ReactNode\n scale?: number\n transition?: Transition\n}\n\nfunction MagneticButton({ children, className, size, variant, ...props }: MagneticButtonProps) {\n const ref = React.useRef(null)\n const [position, setPosition] = React.useState({ x: 0, y: 0 })\n\n const handleMouse = (e: React.MouseEvent) => {\n if (ref.current) {\n const { clientX, clientY } = e\n const { height, width, left, top } = ref.current.getBoundingClientRect()\n const middleX = clientX - (left + width / 2)\n const middleY = clientY - (top + height / 2)\n\n setPosition({ x: middleX, y: middleY })\n }\n }\n\n const reset = () => {\n setPosition({ x: 0, y: 0 })\n }\n\n const { x, y } = position\n\n return (\n \n {children}\n \n )\n}\n\nexport { MagneticButton, type MagneticButtonProps }\n", + "type": "registry:ui", + "target": "components/ui/magnetic-button.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-46.json b/public/r/button-46.json new file mode 100644 index 0000000..fe70758 --- /dev/null +++ b/public/r/button-46.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-46", + "type": "registry:component", + "title": "Button 46", + "description": "Destructive button with heartbeat pulse animation effect", + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button/button-46.tsx", + "content": "import { Button } from '@/components/ui/button'\n\nconst ButtonHeartbeatEffectDemo = () => {\n return (\n \n )\n}\n\nexport default ButtonHeartbeatEffectDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button/button-46.tsx" + } + ], + "cssVars": { + "theme": { + "animate-heartbeat": "heartbeat 2s infinite ease-in-out" + } + }, + "css": { + "@keyframes heartbeat": { + "0%": { + "box-shadow": "0 0 0 0 var(--heartbeat-color, var(--destructive))", + "transform": "scale(1)" + }, + "50%": { + "box-shadow": "0 0 0 7px transparent", + "transform": "scale(1.05)" + }, + "100%": { + "box-shadow": "0 0 0 0 transparent", + "transform": "scale(1)" + } + } + }, + "meta": { + "isAnimated": true, + "badge": "Updated" + } +} \ No newline at end of file diff --git a/public/r/button-47.json b/public/r/button-47.json new file mode 100644 index 0000000..05a8c4f --- /dev/null +++ b/public/r/button-47.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-47", + "type": "registry:component", + "title": "Button 47", + "description": "Button with stitched border design using layered shadow effects", + "files": [ + { + "path": "src/components/shadcn-studio/button/button-47.tsx", + "content": "const ButtonStitchesDemo = () => {\n return (\n \n )\n}\n\nexport default ButtonStitchesDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button/button-47.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-group-01.json b/public/r/button-group-01.json new file mode 100644 index 0000000..1ef7108 --- /dev/null +++ b/public/r/button-group-01.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-01", + "type": "registry:component", + "title": "Button Group 1", + "description": "Download button group with action button and download count display", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-01.tsx", + "content": "import { DownloadIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupDownloadDemo = () => {\n return (\n
\n \n \n 15k\n \n
\n )\n}\n\nexport default ButtonGroupDownloadDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-02.json b/public/r/button-group-02.json new file mode 100644 index 0000000..ee0f165 --- /dev/null +++ b/public/r/button-group-02.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-02", + "type": "registry:component", + "title": "Button Group 2", + "description": "Interactive like button group with toggle state and dynamic count", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "utils" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-02.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { HeartIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nimport { cn } from '@/lib/utils'\n\nconst ButtonGroupLikeDemo = () => {\n const [isLiked, setIsLiked] = useState(true)\n\n return (\n
\n setIsLiked(!isLiked)}\n >\n \n Like\n \n \n {isLiked ? 46 : 45}\n \n
\n )\n}\n\nexport default ButtonGroupLikeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-03.json b/public/r/button-group-03.json new file mode 100644 index 0000000..c5e3189 --- /dev/null +++ b/public/r/button-group-03.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-03", + "type": "registry:component", + "title": "Button Group 3", + "description": "Toolbar button group with tooltips for design tools and actions", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "tooltip" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-03.tsx", + "content": "import { CopyIcon, CropIcon, EllipsisVerticalIcon, MousePointerIcon, SquareIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'\n\nconst ButtonGroupTooltipDemo = () => {\n return (\n
\n \n \n \n \n Select\n \n \n \n \n \n Shapes\n \n \n \n \n \n Crop\n \n \n \n \n \n Duplicate\n \n \n \n \n \n More\n \n
\n )\n}\n\nexport default ButtonGroupTooltipDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-04.json b/public/r/button-group-04.json new file mode 100644 index 0000000..5ba2780 --- /dev/null +++ b/public/r/button-group-04.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-04", + "type": "registry:component", + "title": "Button Group 4", + "description": "Rounded media control button group with play, pause, and skip functions", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "tooltip" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-04.tsx", + "content": "import { PauseIcon, PlayIcon, SkipBackIcon, SkipForwardIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'\n\nconst ButtonGroupRoundedDemo = () => {\n return (\n
\n \n \n \n \n Skip Back\n \n \n \n \n \n Play\n \n \n \n \n \n Pause\n \n \n \n \n \n Skip Forward\n \n
\n )\n}\n\nexport default ButtonGroupRoundedDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-05.json b/public/r/button-group-05.json new file mode 100644 index 0000000..c8a537f --- /dev/null +++ b/public/r/button-group-05.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-05", + "type": "registry:component", + "title": "Button Group 5", + "description": "Social media links button group with branded colors and hover effects", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-05.tsx", + "content": "import { DribbbleIcon, FacebookIcon, InstagramIcon, TwitchIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupSocialDemo = () => {\n return (\n \n )\n}\n\nexport default ButtonGroupSocialDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-06.json b/public/r/button-group-06.json new file mode 100644 index 0000000..ae70b56 --- /dev/null +++ b/public/r/button-group-06.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-06", + "type": "registry:component", + "title": "Button Group 6", + "description": "Zoom control button group with increment/decrement and percentage display", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-06.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { ZoomInIcon, ZoomOutIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupZoomDemo = () => {\n const [zoom, setZoom] = useState(95)\n\n const handleZoomIn = () => {\n if (zoom < 100) {\n setZoom(zoom + 5)\n }\n }\n\n const handleZoomOut = () => {\n if (zoom > 0) {\n setZoom(zoom - 5)\n }\n }\n\n return (\n
\n \n \n Zoom out\n \n \n {`${zoom}%`}\n \n \n \n Zoom in\n \n
\n )\n}\n\nexport default ButtonGroupZoomDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-07.json b/public/r/button-group-07.json new file mode 100644 index 0000000..c856dcc --- /dev/null +++ b/public/r/button-group-07.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-07", + "type": "registry:component", + "title": "Button Group 7", + "description": "Number input button group with plus/minus controls and value display", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-07.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupNumberDemo = () => {\n const [value, setValue] = useState(216)\n\n return (\n
\n {\n setValue(value - 1)\n }}\n >\n \n Minus\n \n \n {`${value}px`}\n \n {\n setValue(value + 1)\n }}\n >\n \n Plus\n \n
\n )\n}\n\nexport default ButtonGroupNumberDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-08.json b/public/r/button-group-08.json new file mode 100644 index 0000000..5d35c51 --- /dev/null +++ b/public/r/button-group-08.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-08", + "type": "registry:component", + "title": "Button Group 8", + "description": "Preview link button group with primary action and external link icon", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-08.tsx", + "content": "import { ExternalLinkIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupPreviewDemo = () => {\n return (\n \n )\n}\n\nexport default ButtonGroupPreviewDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-09.json b/public/r/button-group-09.json new file mode 100644 index 0000000..0353d06 --- /dev/null +++ b/public/r/button-group-09.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-09", + "type": "registry:component", + "title": "Button Group 9", + "description": "Action button group with edit, duplicate, and delete functions", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-09.tsx", + "content": "import { CopyIcon, SquarePenIcon, Trash2Icon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupActionsDemo = () => {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default ButtonGroupActionsDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-10.json b/public/r/button-group-10.json new file mode 100644 index 0000000..ece484f --- /dev/null +++ b/public/r/button-group-10.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-10", + "type": "registry:component", + "title": "Button Group 10", + "description": "Flip transformation button group with horizontal and vertical controls", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-10.tsx", + "content": "import { FlipHorizontalIcon, FlipVerticalIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupDemo = () => {\n return (\n
\n \n \n
\n )\n}\n\nexport default ButtonGroupDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-11.json b/public/r/button-group-11.json new file mode 100644 index 0000000..4878ff9 --- /dev/null +++ b/public/r/button-group-11.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-11", + "type": "registry:component", + "title": "Button Group 11", + "description": "Git merge button group with dropdown menu for merge strategy selection", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "dropdown-menu" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-11.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { ChevronDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuTrigger\n} from '@/components/ui/dropdown-menu'\n\nconst options = [\n {\n label: 'Merge pull request',\n description: 'All commits from this branch will be added to the base branch via a commit version.'\n },\n {\n label: 'Squash and merge',\n description: 'The 6 commits from this branch will be combined into one commit in the base branch.'\n },\n {\n label: 'Rebase and merge',\n description: 'The 6 commits from this branch will be rebased and added to the base branch.'\n }\n]\n\nconst ButtonGroupDropdownDemo = () => {\n const [selectedIndex, setSelectedIndex] = useState('0')\n\n return (\n
\n \n \n \n \n \n \n \n {options.map((option, index) => (\n \n
\n {option.label}\n {option.description}\n
\n
\n ))}\n
\n
\n
\n
\n )\n}\n\nexport default ButtonGroupDropdownDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-12.json b/public/r/button-group-12.json new file mode 100644 index 0000000..029c65a --- /dev/null +++ b/public/r/button-group-12.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-12", + "type": "registry:component", + "title": "Button Group 12", + "description": "Ghost variant button group for navigation between settings, dashboard, and analytics", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-12.tsx", + "content": "import { BoxIcon, ChartBarBigIcon, SettingsIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupGhostDemo = () => {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default ButtonGroupGhostDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/button-group-13.json b/public/r/button-group-13.json new file mode 100644 index 0000000..a55c431 --- /dev/null +++ b/public/r/button-group-13.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-13", + "type": "registry:component", + "title": "Button Group 13", + "description": "Email action button group with ripple animation effects", + "dependencies": [ + "class-variance-authority", + "lucide-react", + "motion" + ], + "registryDependencies": [ + "button", + "utils" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-13.tsx", + "content": "import { ArchiveIcon, InboxIcon, SendHorizonalIcon } from 'lucide-react'\n\nimport { RippleButton } from '@/components/ui/ripple-button'\n\nconst ButtonGroupRippleDemo = () => {\n return (\n
\n \n \n Inbox\n \n \n \n Archived\n \n \n \n Sent\n \n
\n )\n}\n\nexport default ButtonGroupRippleDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-13.tsx" + }, + { + "path": "src/components/ui/ripple-button.tsx", + "content": "'use client'\n\nimport * as React from 'react'\n\nimport { motion, type HTMLMotionProps, type Transition } from 'motion/react'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\nimport { buttonVariants } from '@/components/ui/button'\n\ninterface Ripple {\n id: number\n x: number\n y: number\n}\n\ninterface RippleButtonProps extends HTMLMotionProps<'button'>, VariantProps {\n children: React.ReactNode\n scale?: number\n transition?: Transition\n}\n\nfunction RippleButton({\n ref,\n children,\n onClick,\n className,\n variant,\n size,\n scale = 10,\n transition = { duration: 0.6, ease: 'easeOut' },\n ...props\n}: RippleButtonProps) {\n const [ripples, setRipples] = React.useState([])\n const buttonRef = React.useRef(null)\n\n React.useImperativeHandle(ref, () => buttonRef.current as HTMLButtonElement)\n\n const createRipple = React.useCallback((event: React.MouseEvent) => {\n const button = buttonRef.current\n\n if (!button) return\n\n const rect = button.getBoundingClientRect()\n const x = event.clientX - rect.left\n const y = event.clientY - rect.top\n\n const newRipple: Ripple = {\n id: Date.now(),\n x,\n y\n }\n\n setRipples(prev => [...prev, newRipple])\n\n setTimeout(() => {\n setRipples(prev => prev.filter(r => r.id !== newRipple.id))\n }, 600)\n }, [])\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent) => {\n createRipple(event)\n\n if (onClick) {\n onClick(event)\n }\n },\n [createRipple, onClick]\n )\n\n return (\n \n {children}\n {ripples.map(ripple => (\n \n ))}\n \n )\n}\n\nexport { RippleButton, type RippleButtonProps }\n", + "type": "registry:ui", + "target": "components/ui/ripple-button.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-group-14.json b/public/r/button-group-14.json new file mode 100644 index 0000000..8027fa5 --- /dev/null +++ b/public/r/button-group-14.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-14", + "type": "registry:component", + "title": "Button Group 14", + "description": "Like/dislike button group with expandable hover reveal animation", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-14.tsx", + "content": "import { ThumbsDownIcon, ThumbsUpIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupRevealDemo = () => {\n return (\n
\n \n \n Like\n \n \n Dislike\n \n \n
\n )\n}\n\nexport default ButtonGroupRevealDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-14.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-group-15.json b/public/r/button-group-15.json new file mode 100644 index 0000000..d3a5af0 --- /dev/null +++ b/public/r/button-group-15.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-15", + "type": "registry:component", + "title": "Button Group 15", + "description": "Navigation button group with scale animation on press using Framer Motion", + "dependencies": [ + "lucide-react", + "motion" + ], + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-15.tsx", + "content": "import * as motion from 'motion/react-client'\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\n\nconst ButtonGroupScaleDemo = () => {\n return (\n
\n \n \n
\n )\n}\n\nexport default ButtonGroupScaleDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-15.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/button-group-16.json b/public/r/button-group-16.json new file mode 100644 index 0000000..13953cf --- /dev/null +++ b/public/r/button-group-16.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "button-group-16", + "type": "registry:component", + "title": "Button Group 16", + "description": "File action button group with animated shine/shimmer hover effect", + "registryDependencies": [ + "button" + ], + "files": [ + { + "path": "src/components/shadcn-studio/button-group/button-group-16.tsx", + "content": "import { Button } from '@/components/ui/button'\n\nconst ButtonGroupShineDemo = () => {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default ButtonGroupShineDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/button-group/button-group-16.tsx" + } + ], + "meta": { + "isAnimated": true + } +} \ No newline at end of file diff --git a/public/r/caffeine.json b/public/r/caffeine.json new file mode 100644 index 0000000..aae7451 --- /dev/null +++ b/public/r/caffeine.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "caffeine", + "type": "registry:style", + "cssVars": { + "theme": { + "font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'", + "font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace", + "font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif", + "radius": "0.5rem", + "tracking-tighter": "calc(var(--tracking-normal) - 0.05em)", + "tracking-tight": "calc(var(--tracking-normal) - 0.025em)", + "tracking-wide": "calc(var(--tracking-normal) + 0.025em)", + "tracking-wider": "calc(var(--tracking-normal) + 0.05em)", + "tracking-widest": "calc(var(--tracking-normal) + 0.1em)" + }, + "light": { + "background": "oklch(0.98 0 0)", + "foreground": "oklch(0.24 0 0)", + "card": "oklch(0.99 0 0)", + "card-foreground": "oklch(0.24 0 0)", + "popover": "oklch(0.99 0 0)", + "popover-foreground": "oklch(0.24 0 0)", + "primary": "oklch(0.43 0.04 42.00)", + "primary-foreground": "oklch(1.00 0 0)", + "secondary": "oklch(0.92 0.07 76.67)", + "secondary-foreground": "oklch(0.35 0.07 41.41)", + "muted": "oklch(0.95 0 0)", + "muted-foreground": "oklch(0.50 0 0)", + "accent": "oklch(0.93 0 0)", + "accent-foreground": "oklch(0.24 0 0)", + "destructive": "oklch(0.63 0.19 33.26)", + "border": "oklch(0.88 0 0)", + "input": "oklch(0.88 0 0)", + "ring": "oklch(0.43 0.04 42.00)", + "chart-1": "oklch(0.43 0.04 42.00)", + "chart-2": "oklch(0.92 0.07 76.67)", + "chart-3": "oklch(0.93 0 0)", + "chart-4": "oklch(0.94 0.05 75.02)", + "chart-5": "oklch(0.43 0.04 42.00)", + "sidebar": "oklch(0.99 0 0)", + "sidebar-foreground": "oklch(0.26 0 0)", + "sidebar-primary": "oklch(0.33 0 0)", + "sidebar-primary-foreground": "oklch(0.99 0 0)", + "sidebar-accent": "oklch(0.98 0 0)", + "sidebar-accent-foreground": "oklch(0.33 0 0)", + "sidebar-border": "oklch(0.94 0 0)", + "sidebar-ring": "oklch(0.77 0 0)", + "font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'", + "font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif", + "font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace", + "radius": "0.5rem", + "shadow-color": "hsl(0 0% 0%)", + "shadow-opacity": "0.1", + "shadow-blur": "3px", + "shadow-spread": "0px", + "shadow-offset-x": "0", + "shadow-offset-y": "1px", + "spacing": "0.25rem", + "shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)", + "shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)", + "shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)", + "shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)", + "shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)", + "shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)", + "shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)", + "shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)", + "tracking-normal": "0em" + }, + "dark": { + "background": "oklch(0.18 0 0)", + "foreground": "oklch(0.95 0 0)", + "card": "oklch(0.21 0 0)", + "card-foreground": "oklch(0.95 0 0)", + "popover": "oklch(0.21 0 0)", + "popover-foreground": "oklch(0.95 0 0)", + "primary": "oklch(0.92 0.05 67.14)", + "primary-foreground": "oklch(0.20 0.02 201.14)", + "secondary": "oklch(0.32 0.02 67.00)", + "secondary-foreground": "oklch(0.92 0.05 67.14)", + "muted": "oklch(0.25 0 0)", + "muted-foreground": "oklch(0.77 0 0)", + "accent": "oklch(0.29 0 0)", + "accent-foreground": "oklch(0.95 0 0)", + "destructive": "oklch(0.63 0.19 33.26)", + "border": "oklch(0.24 0.01 88.77)", + "input": "oklch(0.40 0 0)", + "ring": "oklch(0.92 0.05 67.14)", + "chart-1": "oklch(0.92 0.05 67.14)", + "chart-2": "oklch(0.32 0.02 67.00)", + "chart-3": "oklch(0.29 0 0)", + "chart-4": "oklch(0.35 0.02 67.11)", + "chart-5": "oklch(0.92 0.05 67.14)", + "sidebar": "oklch(0.21 0.01 285.56)", + "sidebar-foreground": "oklch(0.97 0 0)", + "sidebar-primary": "oklch(0.49 0.22 264.43)", + "sidebar-primary-foreground": "oklch(1.00 0 0)", + "sidebar-accent": "oklch(0.27 0.01 285.81)", + "sidebar-accent-foreground": "oklch(0.97 0 0)", + "sidebar-border": "oklch(0.27 0.01 285.81)", + "sidebar-ring": "oklch(0.87 0.01 286.27)", + "radius": "0.625rem", + "shadow-color": "hsl(0 0% 0%)", + "shadow-opacity": "0.1", + "shadow-blur": "3px", + "shadow-spread": "0px", + "shadow-offset-x": "0", + "shadow-offset-y": "1px", + "letter-spacing": "0em", + "spacing": "0.25rem", + "font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'", + "font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif", + "font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace", + "shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)", + "shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)", + "shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)", + "shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)", + "shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)", + "shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)", + "shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)", + "shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)" + } + }, + "css": { + "@layer base": { + "body": { + "letter-spacing": "var(--tracking-normal)" + } + } + } +} \ No newline at end of file diff --git a/public/r/calendar-01.json b/public/r/calendar-01.json new file mode 100644 index 0000000..3838b7a --- /dev/null +++ b/public/r/calendar-01.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-01", + "type": "registry:component", + "title": "Calendar 1", + "description": "Basic single date selection calendar with default month display", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-01.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Default Month\n

\n
\n )\n}\n\nexport default CalendarDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-01.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-02.json b/public/r/calendar-02.json new file mode 100644 index 0000000..1703a55 --- /dev/null +++ b/public/r/calendar-02.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-02", + "type": "registry:component", + "title": "Calendar 2", + "description": "Multi-month calendar displaying two months side by side for single date selection", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-02.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarMultiMonthDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Multi month calendar\n

\n
\n )\n}\n\nexport default CalendarMultiMonthDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-02.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-03.json b/public/r/calendar-03.json new file mode 100644 index 0000000..c4ce38d --- /dev/null +++ b/public/r/calendar-03.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-03", + "type": "registry:component", + "title": "Calendar 3", + "description": "Single month calendar with date range selection capability", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-03.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarRangeSingleMonthDemo = () => {\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 5, 4),\n to: new Date(2025, 5, 17)\n })\n\n return (\n
\n \n

\n Single month calendar with range selection\n

\n
\n )\n}\n\nexport default CalendarRangeSingleMonthDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-03.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-04.json b/public/r/calendar-04.json new file mode 100644 index 0000000..5c2fb3e --- /dev/null +++ b/public/r/calendar-04.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-04", + "type": "registry:component", + "title": "Calendar 4", + "description": "Multi-month calendar with date range selection across multiple months", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-04.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarRangeCalendarMultiMonthDemo = () => {\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 4, 22),\n to: new Date(2025, 5, 17)\n })\n\n return (\n
\n \n

\n Multi month calendar with range selection\n

\n
\n )\n}\n\nexport default CalendarRangeCalendarMultiMonthDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-04.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-05.json b/public/r/calendar-05.json new file mode 100644 index 0000000..29cabe7 --- /dev/null +++ b/public/r/calendar-05.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-05", + "type": "registry:component", + "title": "Calendar 5", + "description": "Range selection calendar with minimum days constraint (5 days minimum)", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-05.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarRangeWithMinimumDaysDemo = () => {\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 5, 8),\n to: new Date(2025, 5, 17)\n })\n\n return (\n
\n \n

\n Minimum 5 days selection\n

\n
\n )\n}\n\nexport default CalendarRangeWithMinimumDaysDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-05.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-06.json b/public/r/calendar-06.json new file mode 100644 index 0000000..7d50a58 --- /dev/null +++ b/public/r/calendar-06.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-06", + "type": "registry:component", + "title": "Calendar 6", + "description": "Calendar with disabled dates before a specific date for restricted selection", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-06.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarDisableDayDemo = () => {\n const [date, setDate] = useState(new Date(2025, 5, 18))\n\n return (\n
\n \n

\n Disabled day calendar\n

\n
\n )\n}\n\nexport default CalendarDisableDayDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-06.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-07.json b/public/r/calendar-07.json new file mode 100644 index 0000000..572e3cf --- /dev/null +++ b/public/r/calendar-07.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-07", + "type": "registry:component", + "title": "Calendar 7", + "description": "Range calendar with disabled weekends for business day selection only", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-07.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarDisabledWeekendsDemo = () => {\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 5, 17),\n to: new Date(2025, 5, 20)\n })\n\n return (\n
\n \n

\n Disabled weekend calendar\n

\n
\n )\n}\n\nexport default CalendarDisabledWeekendsDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-07.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-08.json b/public/r/calendar-08.json new file mode 100644 index 0000000..3474929 --- /dev/null +++ b/public/r/calendar-08.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-08", + "type": "registry:component", + "title": "Calendar 8", + "description": "Localized calendar with language switching between English and Hindi", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar", + "card", + "select" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-08.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\nimport { enUS, hi } from 'react-day-picker/locale'\n\nimport { Calendar } from '@/components/ui/calendar'\nimport { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\nconst localizedStrings = {\n en: {\n title: 'Book an appointment',\n description: 'Select the dates for your appointment'\n },\n hi: {\n title: 'अपॉइंटमेंट बुक करें',\n description: 'अपनी अपॉइंटमेंट के लिए तारीखें चुनें'\n }\n} as const\n\nexport function CalendarLocalizationDemo() {\n const [locale, setLocale] = useState('en')\n\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 8, 9),\n to: new Date(2025, 8, 17)\n })\n\n return (\n
\n \n \n {localizedStrings[locale].title}\n {localizedStrings[locale].description}\n \n \n \n \n \n \n \n \n

\n Localize calendar\n

\n
\n )\n}\n\nexport default CalendarLocalizationDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-08.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-09.json b/public/r/calendar-09.json new file mode 100644 index 0000000..53fabd7 --- /dev/null +++ b/public/r/calendar-09.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-09", + "type": "registry:component", + "title": "Calendar 9", + "description": "Calendar with month and year dropdown selectors for easy navigation", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-09.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarWithMonthYearDropdownDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Month and year dropdown calendar\n

\n
\n )\n}\n\nexport default CalendarWithMonthYearDropdownDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-09.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-10.json b/public/r/calendar-10.json new file mode 100644 index 0000000..263deeb --- /dev/null +++ b/public/r/calendar-10.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-10", + "type": "registry:component", + "title": "Calendar 10", + "description": "Variable size calendar with responsive cell sizing for different screen sizes", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-10.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarVariableSizeDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Variable size calendar\n

\n
\n )\n}\n\nexport default CalendarVariableSizeDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-10.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-11.json b/public/r/calendar-11.json new file mode 100644 index 0000000..76bc950 --- /dev/null +++ b/public/r/calendar-11.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-11", + "type": "registry:component", + "title": "Calendar 11", + "description": "Event calendar with integrated event list display and add event functionality", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "calendar", + "card" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-11.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { formatDateRange } from 'little-date'\nimport { PlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Card, CardContent, CardFooter } from '@/components/ui/card'\n\nconst events = [\n {\n title: 'Team Sync Meeting',\n from: '2025-06-12T09:00:00',\n to: '2025-06-12T10:00:00'\n },\n {\n title: 'Design Review',\n from: '2025-06-12T11:30:00',\n to: '2025-06-12T12:30:00'\n },\n {\n title: 'Client Presentation',\n from: '2025-06-12T14:00:00',\n to: '2025-06-12T15:00:00'\n }\n]\n\nconst CalendarEventListDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n \n \n \n \n
\n
\n {date?.toLocaleDateString('en-US', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n })}\n
\n \n
\n
\n {events.map(event => (\n \n
{event.title}
\n
\n {formatDateRange(new Date(event.from), new Date(event.to))}\n
\n
\n ))}\n
\n \n \n

\n Calendar with event list\n

\n \n )\n}\n\nexport default CalendarEventListDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-11.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-12.json b/public/r/calendar-12.json new file mode 100644 index 0000000..dc1d6af --- /dev/null +++ b/public/r/calendar-12.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-12", + "type": "registry:component", + "title": "Calendar 12", + "description": "Multi-select calendar allowing selection of multiple individual dates", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-12.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarMultiSelectDemo = () => {\n const [dates, setDates] = useState([new Date(2025, 5, 12), new Date(2025, 5, 17)])\n\n return (\n
\n \n

\n Multi day select calendar\n

\n
\n )\n}\n\nexport default CalendarMultiSelectDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-12.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-13.json b/public/r/calendar-13.json new file mode 100644 index 0000000..a63bdf7 --- /dev/null +++ b/public/r/calendar-13.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-13", + "type": "registry:component", + "title": "Calendar 13", + "description": "Custom styled calendar with sky blue theme for selected dates", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-13.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarCustomSelectDayDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Custom day select calendar\n

\n
\n )\n}\n\nexport default CalendarCustomSelectDayDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-13.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-14.json b/public/r/calendar-14.json new file mode 100644 index 0000000..6d84ab1 --- /dev/null +++ b/public/r/calendar-14.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-14", + "type": "registry:component", + "title": "Calendar 14", + "description": "Custom styled range calendar with sky blue theme for date range selection", + "dependencies": [ + "react-day-picker" + ], + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-14.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarCustomRangeSelectDemo = () => {\n const [dateRange, setDateRange] = useState({\n from: new Date(2025, 5, 4),\n to: new Date(2025, 5, 17)\n })\n\n return (\n
\n \n

\n Custom range selection calendar\n

\n
\n )\n}\n\nexport default CalendarCustomRangeSelectDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-14.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-15.json b/public/r/calendar-15.json new file mode 100644 index 0000000..5dfc6dc --- /dev/null +++ b/public/r/calendar-15.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-15", + "type": "registry:component", + "title": "Calendar 15", + "description": "Calendar with right-aligned navigation controls for alternative layout", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-15.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarRightYearMonthDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Right side month year navigation calendar\n

\n
\n )\n}\n\nexport default CalendarRightYearMonthDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-15.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-16.json b/public/r/calendar-16.json new file mode 100644 index 0000000..9ce5279 --- /dev/null +++ b/public/r/calendar-16.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-16", + "type": "registry:component", + "title": "Calendar 16", + "description": "Calendar with left-aligned navigation controls for alternative layout", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-16.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarLeftYearMonthDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Left side month year navigation calendar\n

\n
\n )\n}\n\nexport default CalendarLeftYearMonthDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-16.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-17.json b/public/r/calendar-17.json new file mode 100644 index 0000000..4a45aed --- /dev/null +++ b/public/r/calendar-17.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-17", + "type": "registry:component", + "title": "Calendar 17", + "description": "Calendar with week numbers displayed for week-based scheduling", + "registryDependencies": [ + "calendar" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-17.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/ui/calendar'\n\nconst CalendarWeekNumberDemo = () => {\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n

\n Week number calendar\n

\n
\n )\n}\n\nexport default CalendarWeekNumberDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-17.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-18.json b/public/r/calendar-18.json new file mode 100644 index 0000000..b94b50c --- /dev/null +++ b/public/r/calendar-18.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-18", + "type": "registry:component", + "title": "Calendar 18", + "description": "Calendar with \"Today\" quick action button for fast current date selection", + "registryDependencies": [ + "button", + "calendar", + "card" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-18.tsx", + "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\n\nconst CalendarWithTodayMonthButtonDemo = () => {\n const [date, setDate] = useState(new Date(2025, 5, 15))\n const [month, setMonth] = useState(new Date())\n\n return (\n
\n \n \n Book the show\n Find a date\n \n {\n setMonth(new Date())\n setDate(new Date())\n }}\n >\n Today\n \n \n \n \n \n \n \n

\n Calendar with today button\n

\n
\n )\n}\n\nexport default CalendarWithTodayMonthButtonDemo\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-18.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-19.json b/public/r/calendar-19.json new file mode 100644 index 0000000..c6e39f6 --- /dev/null +++ b/public/r/calendar-19.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-19", + "type": "registry:component", + "title": "Calendar 19", + "description": "Calendar with synchronized date input field for manual date entry", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "calendar", + "card", + "input", + "label" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-19.tsx", + "content": "'use client'\n\nimport { useEffect, useId, useState } from 'react'\n\nimport { format } from 'date-fns'\nimport { CalendarIcon } from 'lucide-react'\n\nimport { Calendar } from '@/components/ui/calendar'\nimport { Card, CardContent, CardHeader } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\n\nconst CalendarWithDateInput = () => {\n const id = useId()\n const today = new Date()\n const [month, setMonth] = useState(today)\n const [date, setDate] = useState(today)\n const [inputValue, setInputValue] = useState('')\n\n const handleDayPickerSelect = (date: Date | undefined) => {\n if (!date) {\n setInputValue('')\n setDate(undefined)\n } else {\n setDate(date)\n setMonth(date)\n setInputValue(format(date, 'yyyy-MM-dd'))\n }\n }\n\n const handleInputChange = (e: React.ChangeEvent) => {\n const value = e.target.value\n\n setInputValue(value)\n\n if (value) {\n const parsedDate = new Date(value)\n\n setDate(parsedDate)\n setMonth(parsedDate)\n } else {\n setDate(undefined)\n }\n }\n\n useEffect(() => {\n setInputValue(format(today, 'yyyy-MM-dd'))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n
\n \n \n \n
\n \n
\n
\n
\n
\n \n \n \n
\n

\n Calendar with date input\n

\n
\n )\n}\n\nexport default CalendarWithDateInput\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-19.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-20.json b/public/r/calendar-20.json new file mode 100644 index 0000000..b5c33ad --- /dev/null +++ b/public/r/calendar-20.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-20", + "type": "registry:component", + "title": "Calendar 20", + "description": "Calendar with integrated time input for complete datetime selection", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "calendar", + "card", + "input", + "label" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-20.tsx", + "content": "'use client'\n\nimport { useId, useState } from 'react'\n\nimport { ClockIcon } from 'lucide-react'\n\nimport { Calendar } from '@/components/ui/calendar'\nimport { Card, CardContent, CardHeader } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\n\nconst CalendarWithTimeInput = () => {\n const id = useId()\n const [date, setDate] = useState(new Date())\n\n return (\n
\n \n \n \n
\n \n
\n
\n
\n
\n \n \n \n
\n

\n Calendar with time input\n

\n
\n )\n}\n\nexport default CalendarWithTimeInput\n", + "type": "registry:component", + "target": "components/shadcn-studio/calendar/calendar-20.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/calendar-21.json b/public/r/calendar-21.json new file mode 100644 index 0000000..0f4d91b --- /dev/null +++ b/public/r/calendar-21.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "calendar-21", + "type": "registry:component", + "title": "Calendar 21", + "description": "Advanced calendar with collapsible year/month selection and custom navigation", + "dependencies": [ + "lucide-react" + ], + "registryDependencies": [ + "button", + "calendar", + "collapsible", + "scroll-area" + ], + "files": [ + { + "path": "src/components/shadcn-studio/calendar/calendar-21.tsx", + "content": "'use client'\n\nimport { useEffect, useRef, useState } from 'react'\n\nimport { eachMonthOfInterval, eachYearOfInterval, endOfYear, format, isAfter, isBefore, startOfYear } from 'date-fns'\nimport { ChevronDownIcon } from 'lucide-react'\nimport type { CaptionLabelProps, MonthGridProps } from 'react-day-picker'\n\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\nimport { ScrollArea } from '@/components/ui/scroll-area'\n\nconst CalendarWithAdvanceSelectionDemo = () => {\n const today = new Date()\n const [month, setMonth] = useState(today)\n const [date, setDate] = useState(today)\n const [isYearView, setIsYearView] = useState(false)\n const startDate = new Date(1980, 6)\n const endDate = new Date(2030, 6)\n\n const years = eachYearOfInterval({\n start: startOfYear(startDate),\n end: endOfYear(endDate)\n })\n\n return (\n
\n (\n \n ),\n MonthGrid: (props: MonthGridProps) => {\n return (\n {\n setMonth(selectedMonth)\n setIsYearView(false)\n }}\n >\n {props.children}\n \n )\n }\n }}\n />\n

\n Calendar with advance selection{' '}\n \n Origin UI\n \n

\n
\n )\n}\n\nfunction MonthGrid({\n className,\n children,\n isYearView,\n startDate,\n endDate,\n years,\n currentYear,\n currentMonth,\n onMonthSelect\n}: {\n className?: string\n children: React.ReactNode\n isYearView: boolean\n setIsYearView: React.Dispatch>\n startDate: Date\n endDate: Date\n years: Date[]\n currentYear: number\n currentMonth: number\n onMonthSelect: (date: Date) => void\n}) {\n const currentYearRef = useRef(null)\n const currentMonthButtonRef = useRef(null)\n const scrollAreaRef = useRef(null)\n\n useEffect(() => {\n if (isYearView && currentYearRef.current && scrollAreaRef.current) {\n const viewport = scrollAreaRef.current.querySelector('[data-radix-scroll-area-viewport]') as HTMLElement\n\n if (viewport) {\n const yearTop = currentYearRef.current.offsetTop\n\n viewport.scrollTop = yearTop\n }\n\n setTimeout(() => {\n currentMonthButtonRef.current?.focus()\n }, 100)\n }\n }, [isYearView])\n\n return (\n
\n {children}
\n {isYearView && (\n
\n \n {years.map(year => {\n const months = eachMonthOfInterval({\n start: startOfYear(year),\n end: endOfYear(year)\n })\n\n const isCurrentYear = year.getFullYear() === currentYear\n\n return (\n
\n \n
\n {months.map(month => {\n const isDisabled = isBefore(month, startDate) || isAfter(month, endDate)\n const isCurrentMonth = month.getMonth() === currentMonth && year.getFullYear() === currentYear\n\n return (\n onMonthSelect(month)}\n >\n {format(month, 'MMM')}\n \n )\n })}\n
\n
\n
\n )\n })}\n
\n
\n )}\n
\n )\n}\n\nfunction CaptionLabel({\n children,\n isYearView,\n setIsYearView\n}: {\n isYearView: boolean\n setIsYearView: React.Dispatch>\n} & React.HTMLAttributes) {\n return (\n setIsYearView(prev => !prev)}\n data-state={isYearView ? 'open' : 'closed'}\n >\n {children}\n