commit de9c2dea791a78c4e93dea43b62970a3212a49e6 Author: Arturo Corro Date: Fri May 30 02:01:51 2025 -0600 first commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..078441f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[*.{js,json,ts,vue}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1805660 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,40 @@ +# Normaliza los saltos de línea para todos los sistemas operativos +* text=auto eol=lf + +# Reglas de diferencia por tipo de archivo +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.js diff=javascript +*.ts diff=typescript +*.vue diff=html +*.md diff=markdown +*.php diff=php +*.json diff=json +*.yml diff=yaml +*.yaml diff=yaml +*.stub diff=php + +# Archivos que NO deben exportarse con Composer create-project +/.github export-ignore +/.gitignore export-ignore +/.git export-ignore +.gitattributes export-ignore +.editorconfig export-ignore +.prettierrc.json export-ignore +.prettierignore export-ignore +.eslintrc.json export-ignore +CHANGELOG.md export-ignore +CONTRIBUTING.md export-ignore +README.md export-ignore +phpunit.xml export-ignore +phpunit.xml.dist export-ignore +composer.lock export-ignore +package-lock.json export-ignore +vite.config.js export-ignore +tailwind.config.js export-ignore +webpack.mix.js export-ignore +tests/ export-ignore +resources/assets/ export-ignore +resources/sass/ export-ignore +node_modules export-ignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..b15c0d1 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,25 @@ +# CODEOWNERS para koneko/laravel-vuexy-admin + +# Asignar todos los archivos a Arturo Corro Pacheco (mantenedor principal) +* @koneko-mx + +# Archivos legales y de documentación +/LICENSE* @koneko-mx +/NOTICE.md @koneko-mx +/README* @koneko-mx +/CHANGELOG* @koneko-mx +/.github/SECURITY.md @koneko-mx +/.github/CODE_OF_CONDUCT.md @koneko-mx +/.github/ISSUE_TEMPLATE/ @koneko-mx +/.github/PULL_REQUEST_TEMPLATE.md @koneko-mx + +# Código principal +/src/ @koneko-mx +/config/ @koneko-mx +/resources/ @koneko-mx +/routes/ @koneko-mx +/tests/ @koneko-mx + +# Archivos del paquete +/composer.json @koneko-mx +/package.json @koneko-mx diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..e00e004 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,24 @@ +# Código de Conducta de Contribuyentes + +Como participantes y colaboradores de este proyecto, nos comprometemos a fomentar una comunidad abierta, inclusiva, y respetuosa. + +## Comportamiento Esperado + +- Usar un lenguaje amable e inclusivo. +- Respetar diferentes puntos de vista y experiencias. +- Aceptar con gracia las críticas constructivas. +- Enfocarse en lo que es mejor para la comunidad. + +## Comportamiento Inaceptable + +- Uso de lenguaje ofensivo o insultante. +- Conducta de acoso en público o privado. +- Comentarios despectivos relacionados con género, raza, orientación, religión, discapacidad o condición médica. + +## Aplicación + +Las violaciones a este código pueden ser reportadas a: **arturo@koneko.mx** + +Nos reservamos el derecho de advertir, suspender o expulsar a cualquier contribuyente que no respete este código. + +Inspirado en el [Contributor Covenant](https://www.contributor-covenant.org/) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..e8ed90c --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,10 @@ +--- +name: "FUNDING.yml" +about: "Opciones de patrocinio del proyecto" +title: "Patrocinio" +labels: [funding] +assignees: [] + +--- + +Opciones de patrocinio del proyecto \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..115f54f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,30 @@ +--- +name: "🐛 Bug Report" +about: Reporta un error, fallo o comportamiento inesperado. +title: "[BUG] " +labels: [bug] +assignees: [] + +--- + +## Descripción +Describe claramente el problema. + +## Pasos para reproducir +1. Ir a '...' +2. Hacer clic en '...' +3. Ver error '...' + +## Comportamiento esperado +Una descripción clara y concisa de lo que debería pasar. + +## Capturas de pantalla +(Si aplica, añade imágenes para ayudar a explicar tu problema.) + +## Entorno +- Versión de Laravel: +- Versión del componente: +- Navegador / Sistema operativo: + +## Información adicional +Agrega cualquier otro dato que consideres relevante. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..570f677 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,51 @@ +--- +name: "🧩 Feature Request" +about: Proponer una nueva funcionalidad o mejora para el sistema +title: "[Feature] " +labels: ["feature", "enhancement"] +assignees: [] + +--- + +## 📌 Descripción + +Por favor, proporciona una descripción clara y concisa de la funcionalidad que deseas agregar. + +--- + +## 🤔 Motivación + +¿Cuál es el problema que esta nueva funcionalidad resolverá o qué mejora ofrecerá? + +--- + +## 🧩 Solución Propuesta + +Describe cómo debería funcionar la nueva característica. Si tienes una idea de la implementación técnica, inclúyela. + +--- + +## 🛠️ Requisitos Técnicos (opcional) + +- ¿Requiere cambios en base de datos? +- ¿Afecta al rendimiento? +- ¿Involucra cambios en la UI o API? +- ¿Es compatible con la versión actual del sistema? + +--- + +## 💡 Alternativas consideradas + +Si evaluaste otras soluciones, por favor menciónalas y explica por qué las descartaste. + +--- + +## 📎 Recursos adicionales + +Agrega enlaces, capturas de pantalla o documentación que respalden tu solicitud. + +--- + +## 👤 Autor(a) + +- GitHub: @ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4fb229d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,55 @@ +# 📝 Pull Request + +Gracias por tu contribución a **Koneko Laravel Vuexy Admin**. + +Por favor, completa la siguiente información para ayudarnos a revisar tu PR. + +--- + +## 📋 Descripción + + + +--- + +## 🚀 Cambios realizados + +- [ ] Bugfix 🐞 +- [ ] Nueva característica ✨ +- [ ] Mejora/refactorización 🔧 +- [ ] Documentación 📚 +- [ ] Tests 🧪 +- [ ] Otro (especificar): + +--- + +## ✅ Checklist + +- [ ] He probado los cambios localmente +- [ ] He ejecutado las migraciones correctamente (si aplica) +- [ ] No he incluido datos sensibles ni secretos +- [ ] Los tests existentes no fallan +- [ ] He actualizado documentación relevante (si aplica) +- [ ] Incluye etiquetas útiles (`good first issue`, `bug`, `enhancement`, etc.) + +--- + +## 📎 Referencias + + +Closes # + +--- + +## 🌍 Idioma base + +- [ ] Español 🇲🇽 +- [ ] Inglés 🌐 +- [ ] Ambos + +--- + +## 👤 Autor(a) + +- GitHub: @ +- Nombre opcional: diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 0000000..9e3ac22 --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,11 @@ +# Reporte de Vulnerabilidades de Seguridad + +Agradecemos el interés por ayudarnos a mantener este proyecto seguro. + +Si encuentras una vulnerabilidad de seguridad, por favor repórtala de manera responsable enviando un correo a: + +**arturo@koneko.mx** + +No abras un issue público hasta que hayamos tenido tiempo de analizar el reporte y preparar una solución. + +Gracias por apoyar la seguridad del ecosistema Koneko ERP. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0f224d --- /dev/null +++ b/.gitignore @@ -0,0 +1,60 @@ +# ⚙️ Laravel Package Defaults +/vendor/ +composer.lock + +# 🧪 PHPUnit +.phpunit.result.cache +/.phpunit.cache +phpunit.xml +phpunit.xml.dist + +# 🧹 Cache y logs +/.cache +/storage/*.key +/storage/pail +*.log +*.dump +*.bak +*.tmp +*.swp + +# 🔐 Entornos y configuraciones +.env +.env.* +auth.json +.phpactor.json +.php-cs-fixer.cache +phpstan.neon.local +homestead.yaml +Homestead.json + +# 🧱 Compilación frontend (Vite, Mix, Webpack, Tailwind) +/node_modules/ +node_modules +public/build/ +public/hot/ +public/storage/ +.vite + +# 🧪 Tests y mocks (solo si generas temporalmente) +/coverage/ +*.test.* +*.spec.* + +# 🛠️ IDEs y herramientas de desarrollo +/.idea/ +/.vscode/ +/.nova/ +/.zed/ +/.fleet/ +*.sublime-workspace +*.sublime-project + +# 📦 Archivos del sistema +.DS_Store +Thumbs.db + +# 🚀 Entornos de staging / producción +*.local.* +*.production.* +*.staging.* diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..5d3dfee --- /dev/null +++ b/.prettierignore @@ -0,0 +1,16 @@ +# Dependencias de Composer y Node.js +/vendor/ +/node_modules/ + +# Caché y logs +/storage/ +*.log +*.cache + +# Archivos del sistema +.DS_Store +Thumbs.db + +# Configuración de editores +.idea/ +.vscode/ diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..5f11c9c --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,29 @@ +{ + "arrowParens": "avoid", + "bracketSpacing": true, + "bracketSameLine": true, + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxSingleQuote": true, + "printWidth": 120, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": true, + "tabWidth": 4, + "trailingComma": "none", + "useTabs": false, + "endOfLine": "lf", + "embeddedLanguageFormatting": "auto", + "overrides": [ + { + "files": [ + "resources/assets/**/*.js" + ], + "options": { + "semi": false + } + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..642d7fa --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,38 @@ +# 📦 CHANGELOG + +Todos los cambios relevantes de este proyecto se documentan en este archivo. +Este proyecto sigue [Semantic Versioning](https://semver.org/lang/es/). + +--- + +## 🚧 En desarrollo (`dev-develop`) + +Este layout está en fase activa de desarrollo. No se ha publicado aún una versión beta o estable. + +**Añadido** + +- Estructura de layout minimalista para sitios web institucionales y MVP +- Compatibilidad con el módulo `laravel-vuexy-website-admin` +- Variantes visuales integradas: `landwind`, `notus`, `maximus`, `anonymous`, `samuel-coming-soon` +- Publicación de assets con `vendor:publish` +- Vista `page.blade.php` base y componentes Blade por layout +- Integración con el renderizado dinámico de páginas vía slug +- Registro automático como layout visual dentro del ecosistema Vuexy Koneko + +**Notas** + +- Esta versión no es estable y puede cambiar sin previo aviso +- Se recomienda usar exclusivamente con la rama `dev-develop` de `laravel-vuexy-website-admin` + +--- + +## 🛣️ Planeación futura + +- `1.0.0-beta`: Primer versión beta con documentación, variantes completas y assets optimizados +- `1.0.0`: Publicación estable con fallback automático de templates, validaciones y optimización SEO + +--- + +## 📁 Histórico + +*Ninguna versión anterior registrada.* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ce2666c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,77 @@ +# 🤝 Guía para Contribuidores + +¡Gracias por tu interés en colaborar con **Koneko ERP**! +Este proyecto busca ofrecer una suite profesional de administración web y ERP orientado al mercado mexicano y LATAM, bajo licencia **Business Source License 1.1** con transición futura a MIT. + +--- + +## 📌 Requisitos básicos + +* Conocimiento de **PHP 8.2+** y **Laravel 11** +* Respeto por las buenas prácticas, código limpio y trabajo en equipo +* Preferentemente, experiencia en: + + * Livewire + * Spatie Permissions & Roles + * Laravel Fortify y Sanctum + * Desarrollo modular con Composer + +--- + +## 🌱 Primeros pasos + +1. **Forkea** este repositorio y clónalo localmente. + +2. Instala las dependencias con Composer: + + ```bash + composer install + ``` + +3. Copia el archivo `.env.example` a `.env` y ajusta tus credenciales locales: + + ```bash + cp .env.example .env + php artisan key:generate + ``` + +4. Ejecuta las migraciones y seeders (si aplica): + + ```bash + php artisan migrate --seed + ``` + +5. Inicia el servidor: + + ```bash + php artisan serve + ``` + +--- + +## 📀 Convenciones del Proyecto + +Antes de contribuir, asegúrate de leer nuestras +📁 [Convenciones de Componentes](CONVENTIONS.md), +donde definimos estructura de carpetas, estilo de código y otras buenas prácticas clave para mantener la consistencia del ecosistema **Koneko ERP**. + +--- + +## 📝 Código de Conducta + +Consulta nuestro [Código de Conducta](CODE_OF_CONDUCT.md) para conocer las expectativas y reglas que garantizan un ambiente colaborativo, profesional y respetuoso. + +--- + +## 🚀 ¡Listo para colaborar! + +Una vez que tengas tu entorno configurado: + +* Busca issues etiquetados como `good first issue` o `help wanted` +* Lee el archivo [`CONTRIBUTING.md`](CONTRIBUTING.md) del módulo específico si estás trabajando en un subpaquete +* No olvides seguir las convenciones de estilo PSR-12 y usar `php-cs-fixer` si lo tienes disponible + +--- + +Gracias por ser parte de **Koneko ERP** 💙 +¡Esperamos tu contribución! diff --git a/CONVENTIONS.md b/CONVENTIONS.md new file mode 100644 index 0000000..909b433 --- /dev/null +++ b/CONVENTIONS.md @@ -0,0 +1,105 @@ +# ![Koneko ERP](https://git.koneko.mx/koneko-st/koneko-st/raw/branch/main/logo-images/horizontal-05.png) Convenciones de Estructura de Componentes + +📅 *Última actualización:* 2025-04-03 +🔧 *Aplicable a todos los módulos Composer de Koneko ERP* + +--- + +## 📁 Estructura General de un Componente + +```plaintext +component-root/ +├── config/ ← Configuraciones del módulo +├── Database/ +│ ├── data/ ← Archivos JSON, CSV, XLSX +│ ├── factories/ ← Factories para testing y seeders +│ ├── migrations/ ← Migraciones del esquema del módulo +│ └── Seeders/ ← Seeders base y de datos fake +├── Enums/ ← Enums (PSR-4) usados por el módulo +├── Events/ ← Eventos del módulo +├── Http/ +│ ├── Controllers/ ← Controladores +│ └── Middleware/ ← Middlewares específicos del módulo +├── Livewire/ ← Componentes Livewire organizados por dominio +├── Models/ ← Modelos Eloquent +├── Notifications/ ← Notificaciones personalizadas +├── Providers/ ← Service Providers del módulo +├── Services/ ← Servicios (lógica de negocio) +├── Support/ +│ ├── Base/ ← Clases base abstractas +│ ├── Builders/ ← Configuradores de vistas tipo índice +│ ├── Macros/ ← Macros de Str, Collection, etc. +│ ├── Queries/ ← Query Builders avanzados +│ ├── Registries/ ← Registro dinámico de configuración +│ └── Validation/ ← Validaciones personalizadas +├── Traits/ +│ ├── Audit/ ← Traits para auditoría y tracking +│ ├── Metadata/ ← Traits para metadatos del modelo +│ ├── Users/ ← Traits relacionados con usuarios +│ └── Indexing/ ← Traits usados por configuradores de índices +├── resources/ +│ ├── assets/ ← JS, SCSS, íconos o fuentes específicos +│ ├── faker-images/ ← Imágenes utilizadas en datos de prueba +│ ├── lang/ ← Archivos de traducción +│ └── views/ ← Vistas Blade +├── routes/ +│ └── admin.php ← Rutas internas del módulo +├── storage/ ← Recursos adicionales (ej. fuentes) +└── README.md ← Documentación del componente +``` + +--- + +## 🧠 Convenciones Generales + +- Todos los módulos deben seguir PSR-4. +- Los archivos deben nombrarse en *PascalCase* excepto `config/*.php` y rutas. +- Los `Seeder` deben ser agrupados por módulo si el componente los agrupa (ej. `vuexyAdmin`, `vuexyWarehouse`). +- Los `Factory` deben ser compatibles con `SeederWithFakeImages`. + +--- + +## 🖼️ Imágenes Faker + +- Carpeta: `resources/faker-images/` +- Subcarpetas válidas: `users/`, `stores/`, `products/`, etc. +- Las imágenes se usan exclusivamente para entornos de testing/demostración. +- Nunca se publican al frontend ni se exponen directamente. + +--- + +## 🧪 Factories + +- Todas las `factories` deben estar en `Database/factories/`. +- Si se extiende un modelo (`Koneko\VuexyAdmin\Models\User`), usar `new (User::class)` dinámico. +- Compatible con `SeederOrchestrator` y `config/seeder.php`. + +--- + +## 📊 Configuradores de Índice + +- Los index deben implementar `BaseModelIndexConfig` o su extensión. +- Pueden usar Traits como `HandlesFactory`, `HandlesIndexColumns`, `HandlesQueryBuilder`, etc. +- Se recomienda usar `Support/Builders/` para los configuradores y `Support/Registries/` si son extendibles. + +--- + +## 📚 Traducciones + +- Usar `resources/lang/es/` con archivos separados por dominio (`auth.php`, `validation.php`, etc.). +- `es_MX.json` puede usarse para traducciones inline. + +--- + +## 📌 Tips + +- Si un componente tiene `Service`, `Seeder`, `Factory` y `Livewire`, deben estar todos organizados en sus carpetas respectivas. +- La estructura del componente debe ser lo suficientemente clara para no depender de documentación externa. + +--- + +## 🤝 ¿Dudas o sugerencias? + +Este documento está en constante mejora. Si tienes sugerencias o deseas proponer mejoras, por favor abre un [issue de tipo mejora](.github/ISSUE_TEMPLATE/feature_request.md) o contribuye con un Pull Request. + +--- diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7df177c --- /dev/null +++ b/LICENSE @@ -0,0 +1,74 @@ +Business Source License 1.1 (Koneko Custom Edition) + +Licensor: Koneko Soluciones Tecnológicas +Licensed Work: laravel-vuexy-admin +License Effective Date: 2025-05-29 +Change Date: 2028-05-29 (3 years after the Effective Date) + +--- + +## 1. Definitions + +**"Licensor"** refers to Koneko Soluciones Tecnológicas, represented legally by Arturo Corro Pacheco (RFC: COPA810622V65). + +**"Licensed Work"** refers to the source code of the repository `koneko/laravel-vuexy-admin` hosted at [https://github.com/koneko-mx](https://github.com/koneko-mx) and [https://git.koneko.mx](https://git.koneko.mx). + +**"Change Date"** is the date on which this license automatically transitions to the MIT license. + +**"Use"**, **"Commercial Use"**, and other terms are interpreted according to common software licensing practices. + +--- + +## 2. Usage Permissions + +This software is provided under the Business Source License 1.1 with the following additional conditions: + +* **Personal, Educational, Community, and Internal Development Use**: ALLOWED without restrictions. +* **Commercial Deployment**: ALLOWED ONLY under an active commercial license or a specific agreement with the Licensor. +* **Profit-oriented Projects (clients, product sales, SaaS, services)**: REQUIRE a commercial license. +* **Redistribution as part of a commercial product or automated service**: REQUIRES a commercial license. + +--- + +## 3. Automatic Transition to MIT License + +On the **Change Date**, this license automatically transitions to the standard MIT License: + +``` +MIT License +Copyright (c) 2025 Koneko Soluciones Tecnológicas +Permission is hereby granted, free of charge, to any person obtaining a copy... +``` + +--- + +## 4. Contact and Commercial Licensing + +For commercial licenses, partnerships, contributions, or specific agreements: + +**Official Email:** [opensource@koneko.mx](mailto:opensource@koneko.mx) +**Website:** [https://koneko.mx](https://koneko.mx) / [https://erp.koneko.mx](https://erp.koneko.mx) + +--- + +## 5. Important Disclaimers + +* This project integrates the **Vuexy template**, which is a paid product. A **valid Themeforest license** is required to legally use it in production. +* This project does NOT distribute the template, it only facilitates its integration. +* The licensee is responsible for complying with the terms of use of said template and other third-party dependencies. + +--- + +## 6. Disclaimer of Warranty + +This software is provided "AS IS", without any warranty. The Licensor is not liable for any direct or indirect damages resulting from the use of this software. + +--- + +## 7. Contributions + +Contributions to this repository must follow the policies defined in `CONTRIBUTING.md`. By submitting code, you agree to license it under the same terms of this license. + +--- + +Copyright (c) 2025 - Koneko Soluciones Tecnológicas diff --git a/LICENSE.es.md b/LICENSE.es.md new file mode 100644 index 0000000..a1b910d --- /dev/null +++ b/LICENSE.es.md @@ -0,0 +1,74 @@ +Licencia Business Source 1.1 (Edición Personalizada de Koneko) + +Licenciante: Koneko Soluciones Tecnológicas +Trabajo Licenciado: laravel-vuexy-admin +Fecha de Entrada en Vigencia de la Licencia: 2025-05-29 +Fecha de Cambio: 2028-05-29 (3 años después de la fecha de vigencia) + +--- + +## 1. Definiciones + +**"Licenciante"** se refiere a Koneko Soluciones Tecnológicas, representada legalmente por Arturo Corro Pacheco (RFC: COPA810622V65). + +**"Trabajo Licenciado"** se refiere al código fuente del repositorio `koneko/laravel-vuexy-admin` alojado en [https://github.com/koneko-mx](https://github.com/koneko-mx) y [https://git.koneko.mx](https://git.koneko.mx). + +**"Fecha de Cambio"** es la fecha en la que esta licencia se convierte automáticamente en la licencia MIT. + +**"Uso"**, **"Uso Comercial"** y otros términos se interpretan conforme a las prácticas comunes en licenciamiento de software. + +--- + +## 2. Permisos de Uso + +Este software se proporciona bajo la Licencia Business Source 1.1 con las siguientes condiciones adicionales: + +* **Uso Personal, Educativo, Comunitario o de Desarrollo Interno**: PERMITIDO sin restricciones. +* **Implementación Comercial**: PERMITIDO SOLO bajo una licencia comercial activa o un acuerdo específico con el Licenciante. +* **Proyectos con Fines de Lucro (clientes, ventas de productos, SaaS, servicios)**: REQUIEREN una licencia comercial. +* **Redistribución como parte de un producto comercial o servicio automatizado**: REQUIERE una licencia comercial. + +--- + +## 3. Transición Automática a Licencia MIT + +En la **Fecha de Cambio**, esta licencia se convierte automáticamente en la Licencia MIT estándar: + +``` +Licencia MIT +Copyright (c) 2025 Koneko Soluciones Tecnológicas +Se concede permiso, sin cargo, a cualquier persona que obtenga una copia... +``` + +--- + +## 4. Contacto y Licenciamiento Comercial + +Para licencias comerciales, asociaciones, contribuciones o acuerdos específicos: + +**Correo Oficial:** [opensource@koneko.mx](mailto:opensource@koneko.mx) +**Sitio Web:** [https://koneko.mx](https://koneko.mx) / [https://erp.koneko.mx](https://erp.koneko.mx) + +--- + +## 5. Avisos Importantes + +* Este proyecto integra el **template Vuexy**, que es un producto de pago. Se requiere una **licencia válida de Themeforest** para utilizarlo legalmente en producción. +* Este proyecto NO distribuye dicho template, solo facilita su integración. +* El licenciatario es responsable de cumplir con los términos de uso de dicho template y otras dependencias de terceros. + +--- + +## 6. Renuncia de Garantía + +Este software se proporciona "TAL CUAL", sin garantía de ningún tipo. El Licenciante no se hace responsable de ningún daño directo o indirecto derivado del uso de este software. + +--- + +## 7. Contribuciones + +Las contribuciones a este repositorio deben seguir las políticas definidas en `CONTRIBUTING.md`. Al enviar código, aceptas licenciarlo bajo los mismos términos de esta licencia. + +--- + +Copyright (c) 2025 - Koneko Soluciones Tecnológicas diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..337b20a --- /dev/null +++ b/README.en.md @@ -0,0 +1,94 @@ +# 🧩 Laravel Vuexy Website Layout: Simple Koneko + +

+ + Koneko Soluciones Tecnológicas Logo + +

+ +

+ Website + License + Issues +

+ +--- + +## 📝 Description + +**Laravel Vuexy Website Layout: Simple Koneko** is a minimal, fast and flexible website template designed for integration with the [Laravel Vuexy Website Admin](https://github.com/koneko-mx/laravel-vuexy-website-admin) module. Ideal for MVPs, institutional websites, landing pages and rapid deployments. + +This layout offers a clean structure, customizable banners and sections, and a plug-and-play approach for publishing content dynamically through Koneko’s ecosystem. + +--- + +## 🚀 Quick Installation + +```bash +composer require koneko/laravel-vuexy-website-layout-simple-koneko:dev-develop +php artisan vendor:publish --tag=vuexy-website-layout-simple-koneko-assets +``` + +--- + +## 📦 Features + +* Minimal and professional layout structure +* Multiple view variants: Notus, Landwind, Maximus, Samuel Coming Soon, etc. +* Custom Blade components and blocks +* Banner and asset management per template +* Seamless integration with Laravel Vuexy Admin and Vuexy Website Admin + +--- + +## 📁 Folder Structure Highlights + +``` +resources/ +├── views/templates/ +│ ├── notus/ +│ ├── maximus/ +│ ├── samuel-coming-soon/ +│ └── vuexy-website-layout-simple-koneko/ +├── public/templates/ +└── img/module-cover.png +``` + +--- + +## ⚙️ Integration with Koneko Admin Ecosystem + +This package registers itself automatically in Koneko’s Vuexy Admin system using the provided ServiceProvider. It is recognized as a visual plugin-type component, and can be selected from the admin panel UI to control public site appearance. + +--- + +## 🛠️ Requirements + +* PHP `^8.2` +* Laravel `^11.31` +* [koneko/laravel-vuexy-website-admin](https://github.com/koneko-mx/laravel-vuexy-website-admin) +* Node + Vite for SCSS customization (optional but recommended) + +--- + +## 📄 License + +This package is licensed under the [custom Business Source License 1.1](LICENSE), transitioning to MIT after 3 years. For commercial usage, redistribution, or extended usage, please contact: + +📧 [opensource@koneko.mx](mailto:opensource@koneko.mx) + +--- + +## 📚 More Information + +* [Vuexy Website Admin Module](https://github.com/koneko-mx/laravel-vuexy-website-admin) +* [Vuexy Admin Core](https://github.com/koneko-mx/laravel-vuexy-admin) +* [Documentation in Spanish](README.md) +* [Koneko ST Official Website](https://koneko.mx) +* [Contact Email](mailto:opensource@koneko.mx) + +--- + +

+ Made with ❤️ in Mexico by Koneko Soluciones Tecnológicas +

diff --git a/README.md b/README.md new file mode 100644 index 0000000..838e5e2 --- /dev/null +++ b/README.md @@ -0,0 +1,94 @@ +# 🧩 Laravel Vuexy Website Layout: Simple Koneko + +

+ + Koneko Soluciones Tecnológicas Logo + +

+ +

+ Sitio Web + Licencia + Issues +

+ +--- + +## 📌 Descripción + +**Laravel Vuexy Website Layout: Simple Koneko** es una plantilla de sitio web minimalista, rápida y flexible, diseñada para integrarse con el módulo [Laravel Vuexy Website Admin](https://github.com/koneko-mx/laravel-vuexy-website-admin). Ideal para MVPs, sitios institucionales, landing pages y despliegues rápidos. + +Esta plantilla ofrece una estructura limpia, secciones personalizables, banners y un enfoque plug-and-play para publicar contenido de forma dinámica dentro del ecosistema Koneko. + +--- + +## 🚀 Instalación Rápida + +```bash +composer require koneko/laravel-vuexy-website-layout-simple-koneko:dev-develop +php artisan vendor:publish --tag=vuexy-website-layout-simple-koneko-assets +``` + +--- + +## 📦 Características + +* Estructura profesional y minimalista +* Múltiples variantes visuales: Notus, Landwind, Maximus, Samuel Coming Soon, entre otras +* Componentes Blade personalizados por plantilla +* Gestor de banners y recursos por template +* Integración directa con Laravel Vuexy Admin y Website Admin + +--- + +## 📁 Estructura de Carpetas Destacada + +``` +resources/ +├── views/templates/ +│ ├── notus/ +│ ├── maximus/ +│ ├── samuel-coming-soon/ +│ └── vuexy-website-layout-simple-koneko/ +├── public/templates/ +└── img/module-cover.png +``` + +--- + +## ⚙️ Integración con el Ecosistema Admin Koneko + +Este paquete se registra automáticamente en el sistema Vuexy Admin de Koneko usando su ServiceProvider. Se reconoce como un componente visual tipo plugin, y puede ser seleccionado desde la UI del panel de administración para controlar la apariencia del sitio público. + +--- + +## 🛠️ Requisitos + +* PHP `^8.2` +* Laravel `^11.31` +* [koneko/laravel-vuexy-website-admin](https://github.com/koneko-mx/laravel-vuexy-website-admin) +* Node + Vite para personalización con SCSS (opcional pero recomendado) + +--- + +## 📄 Licencia + +Este paquete se distribuye bajo la [Licencia Business Source 1.1 personalizada](LICENSE.es), con transición automática a MIT a los 3 años. Para uso comercial, redistribución o integraciones ampliadas, contacta a: + +📧 [opensource@koneko.mx](mailto:opensource@koneko.mx) + +--- + +## 📚 Más Información + +* [Módulo Website Admin](https://github.com/koneko-mx/laravel-vuexy-website-admin) +* [Core Vuexy Admin](https://github.com/koneko-mx/laravel-vuexy-admin) +* [Documentación en inglés](README.en.md) +* [Sitio Oficial Koneko ST](https://koneko.mx) +* [Correo de Contacto](mailto:opensource@koneko.mx) + +--- + +

+ Hecho con ❤️ en México por Koneko Soluciones Tecnológicas +

diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..e733e2a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,30 @@ +# 🛡️ Política de Seguridad + +Koneko Soluciones Tecnológicas se toma muy en serio la seguridad de este proyecto y de sus usuarios. + +## 🔒 Reporte responsable de vulnerabilidades + +Si encuentras alguna vulnerabilidad de seguridad, **no abras un issue público**. En lugar de ello, por favor repórtala de forma privada por cualquiera de los siguientes medios: + +- 📧 Correo oficial: [opensource@koneko.mx](mailto:opensource@koneko.mx) + +Por favor incluye los siguientes detalles: + +- Descripción del problema +- Versión afectada del paquete +- Instrucciones claras para reproducir el fallo (si es posible) + +Nos comprometemos a responder dentro de **5 días hábiles**. + +## 🛡️ Alcance + +Este procedimiento aplica únicamente al paquete: + +- `koneko/laravel-vuexy-admin` +Y a sus repositorios relacionados dentro del ecosistema oficial Koneko. + +## ✅ Reconocimientos + +Se podrá otorgar reconocimiento público (con tu permiso) en futuras notas de versión a quienes reporten vulnerabilidades de manera responsable. + +Gracias por ayudar a hacer más seguro el ecosistema de Koneko ERP. diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..574e33a --- /dev/null +++ b/composer.json @@ -0,0 +1,39 @@ +{ + "name": "koneko/laravel-vuexy-website-layout-simple-koneko", + "description": "Minimal and flexible website template for Laravel Vuexy Website Admin. Ideal for MVPs, institutional websites, and fast deployment projects.", + "keywords": [ + "laravel", "template", "minimal", "website-layout", "simple", "vuexy", "mvp", + "sitio institucional", "landing-page", "koneko", "mexico" + ], + "type": "library", + "license": "BUSL-1.1-custom", + "require": { + "php": "^8.2", + "koneko/laravel-vuexy-admin": "dev-develop", + "laravel/framework": "^11.31" + }, + "autoload": { + "psr-4": { + "Koneko\\VuexyWebsiteLayoutSimpleKoneko\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Koneko\\VuexyWebsiteLayoutSimpleKoneko\\Providers\\VuexyWebsiteLayoutSimpleKonekoServiceProvider" + ] + } + }, + "authors": [ + { + "name": "Arturo Corro Pacheco", + "email": "arturo@koneko.mx" + } + ], + "support": { + "source": "https://github.com/koneko-mx/laravel-vuexy-website-layout-simple-koneko", + "issues": "https://github.com/koneko-mx/laravel-vuexy-website-layout-simple-koneko/issues" + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/config/vuexy_website_layout_simple_koneko_menu.php b/config/vuexy_website_layout_simple_koneko_menu.php new file mode 100644 index 0000000..fdec35c --- /dev/null +++ b/config/vuexy_website_layout_simple_koneko_menu.php @@ -0,0 +1,42 @@ + [ + 'submenu' => [ + 'Anonymous Template' => [ + 'icon' => 'ti ti-template', + 'description' => 'Gestiona la plantilla Anonymous Template, sus widgets y elementos de diseño.', + 'route' => 'admin.website-layout-simple-koneko.settings.template.index', + 'can' => 'admin.website-layout-simple-koneko.settings.template.view', + ], + 'Creative Tim Notus' => [ + 'icon' => 'ti ti-template', + 'description' => 'Gestiona la plantilla Creative Tim Notus, sus widgets y elementos de diseño.', + 'route' => 'admin.website-layout-simple-koneko.settings.template.index', + 'can' => 'admin.website-layout-simple-koneko.settings.template.view', + ], + 'Limaa M Simple Landing Page' => [ + 'icon' => 'ti ti-template', + 'description' => 'Gestiona la plantilla Limaa M Simple Landing Page, sus widgets y elementos de diseño.', + 'route' => 'admin.website-layout-simple-koneko.settings.template.index', + 'can' => 'admin.website-layout-simple-koneko.settings.template.view', + ], + 'Maximus Landing Page 2' => [ + 'icon' => 'ti ti-template', + 'description' => 'Gestiona la plantilla Maximus Landing Page 2, sus widgets y elementos de diseño.', + 'route' => 'admin.website-layout-simple-koneko.settings.template.index', + 'can' => 'admin.website-layout-simple-koneko.settings.template.view', + ], + 'Samuel33 Coming Soon' => [ + 'icon' => 'ti ti-template', + 'description' => 'Gestiona la plantilla Samuel33 Coming Soon, sus widgets y elementos de diseño.', + 'route' => 'admin.website-layout-simple-koneko.settings.template.index', + 'can' => 'admin.website-layout-simple-koneko.settings.template.view', + ], + ], + ], +]; diff --git a/docs/anonymous-template/README.md b/docs/anonymous-template/README.md new file mode 100644 index 0000000..90a097a --- /dev/null +++ b/docs/anonymous-template/README.md @@ -0,0 +1,20 @@ +# Porto Corporate + +Este template incluye: + +- Diseño responsive +- Sliders animados +- Integración con CMS Koneko +- Compatibilidad multisite +- Bloques tipo Blade cacheables + +## Layouts disponibles + +- `master.blade.php` (con zonas `header`, `content`, `footer`) +- `landing.blade.php` (zonas reducidas para campañas) + +## Recomendaciones + +- Instalar `website-admin` +- Activar `hero-slider` como bloque por defecto +- Usar bloque `footer` fijo para todas las páginas diff --git a/docs/creative-tim-notus/README.md b/docs/creative-tim-notus/README.md new file mode 100644 index 0000000..90a097a --- /dev/null +++ b/docs/creative-tim-notus/README.md @@ -0,0 +1,20 @@ +# Porto Corporate + +Este template incluye: + +- Diseño responsive +- Sliders animados +- Integración con CMS Koneko +- Compatibilidad multisite +- Bloques tipo Blade cacheables + +## Layouts disponibles + +- `master.blade.php` (con zonas `header`, `content`, `footer`) +- `landing.blade.php` (zonas reducidas para campañas) + +## Recomendaciones + +- Instalar `website-admin` +- Activar `hero-slider` como bloque por defecto +- Usar bloque `footer` fijo para todas las páginas diff --git a/docs/limaa-m-simple-landing-page/README.md b/docs/limaa-m-simple-landing-page/README.md new file mode 100644 index 0000000..90a097a --- /dev/null +++ b/docs/limaa-m-simple-landing-page/README.md @@ -0,0 +1,20 @@ +# Porto Corporate + +Este template incluye: + +- Diseño responsive +- Sliders animados +- Integración con CMS Koneko +- Compatibilidad multisite +- Bloques tipo Blade cacheables + +## Layouts disponibles + +- `master.blade.php` (con zonas `header`, `content`, `footer`) +- `landing.blade.php` (zonas reducidas para campañas) + +## Recomendaciones + +- Instalar `website-admin` +- Activar `hero-slider` como bloque por defecto +- Usar bloque `footer` fijo para todas las páginas diff --git a/docs/maximus-landing-page-2/README.md b/docs/maximus-landing-page-2/README.md new file mode 100644 index 0000000..90a097a --- /dev/null +++ b/docs/maximus-landing-page-2/README.md @@ -0,0 +1,20 @@ +# Porto Corporate + +Este template incluye: + +- Diseño responsive +- Sliders animados +- Integración con CMS Koneko +- Compatibilidad multisite +- Bloques tipo Blade cacheables + +## Layouts disponibles + +- `master.blade.php` (con zonas `header`, `content`, `footer`) +- `landing.blade.php` (zonas reducidas para campañas) + +## Recomendaciones + +- Instalar `website-admin` +- Activar `hero-slider` como bloque por defecto +- Usar bloque `footer` fijo para todas las páginas diff --git a/docs/samuel33-coming-soon/README.md b/docs/samuel33-coming-soon/README.md new file mode 100644 index 0000000..90a097a --- /dev/null +++ b/docs/samuel33-coming-soon/README.md @@ -0,0 +1,20 @@ +# Porto Corporate + +Este template incluye: + +- Diseño responsive +- Sliders animados +- Integración con CMS Koneko +- Compatibilidad multisite +- Bloques tipo Blade cacheables + +## Layouts disponibles + +- `master.blade.php` (con zonas `header`, `content`, `footer`) +- `landing.blade.php` (zonas reducidas para campañas) + +## Recomendaciones + +- Instalar `website-admin` +- Activar `hero-slider` como bloque por defecto +- Usar bloque `footer` fijo para todas las páginas diff --git a/resources/assets/templates/anonymous/css/app.css b/resources/assets/templates/anonymous/css/app.css new file mode 100644 index 0000000..11ad168 --- /dev/null +++ b/resources/assets/templates/anonymous/css/app.css @@ -0,0 +1,28 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + + +:root { + --c-bg: snow; + --c-scrollbar: lightsteelblue; + --c-scrollbar-hover: #000; +} + +::-webkit-scrollbar { + width: 6px; +} +::-webkit-scrollbar:horizontal { + height: 6px; +} +::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { + background: var(--c-bg); + border-radius: 10px; +} +::-webkit-scrollbar-thumb { + background: var(--c-scrollbar); + border-radius: 10px; +} +::-webkit-scrollbar-thumb:hover { + background: var(--c-scrollbar-hover); +} diff --git a/resources/assets/templates/anonymous/js/app.js b/resources/assets/templates/anonymous/js/app.js new file mode 100644 index 0000000..9eaeda7 --- /dev/null +++ b/resources/assets/templates/anonymous/js/app.js @@ -0,0 +1,20 @@ +var code = `tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }` + +try { + eval(code) + +} catch (e) { + console.log('Error in tailwind css config') + + eval(`tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }`) +} diff --git a/resources/assets/templates/landwind/css/app.css b/resources/assets/templates/landwind/css/app.css new file mode 100644 index 0000000..714f3b9 --- /dev/null +++ b/resources/assets/templates/landwind/css/app.css @@ -0,0 +1,2447 @@ +/* +! tailwindcss v3.1.4 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #E5E7EB; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: 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"; + /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9CA3AF; + /* 2 */ +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + opacity: 1; + /* 1 */ + color: #9CA3AF; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9CA3AF; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #6B7280; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; +} + +[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #1C64F2; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: #1C64F2; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + color: #6B7280; + opacity: 1; +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + color: #6B7280; + opacity: 1; +} + +input::placeholder,textarea::placeholder { + color: #6B7280; + opacity: 1; +} + +::-webkit-datetime-edit-fields-wrapper { + padding: 0; +} + +::-webkit-date-and-time-value { + min-height: 1.5em; +} + +select { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position: right 0.5rem center; + background-repeat: no-repeat; + background-size: 1.5em 1.5em; + padding-right: 2.5rem; + print-color-adjust: exact; +} + +[multiple] { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + print-color-adjust: unset; +} + +[type='checkbox'],[type='radio'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + print-color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #1C64F2; + background-color: #fff; + border-color: #6B7280; + border-width: 1px; + --tw-shadow: 0 0 #0000; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + +[type='checkbox']:focus,[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #1C64F2; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} + +[type='checkbox']:checked,[type='radio']:checked,.dark [type='checkbox']:checked,.dark [type='radio']:checked { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px auto inherit; +} + +input[type=file]::-webkit-file-upload-button { + color: white; + background: #1F2937; + border: 0; + font-weight: 500; + font-size: 0.875rem; + cursor: pointer; + padding-top: 0.625rem; + padding-bottom: 0.625rem; + padding-left: 2rem; + padding-right: 1rem; + -webkit-margin-start: -1rem; + margin-inline-start: -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +input[type=file]::file-selector-button { + color: white; + background: #1F2937; + border: 0; + font-weight: 500; + font-size: 0.875rem; + cursor: pointer; + padding-top: 0.625rem; + padding-bottom: 0.625rem; + padding-left: 2rem; + padding-right: 1rem; + -webkit-margin-start: -1rem; + margin-inline-start: -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +input[type=file]::-webkit-file-upload-button:hover { + background: #374151; +} + +input[type=file]::file-selector-button:hover { + background: #374151; +} + +.dark input[type=file]::-webkit-file-upload-button { + color: white; + background: #4B5563; +} + +.dark input[type=file]::file-selector-button { + color: white; + background: #4B5563; +} + +.dark input[type=file]::-webkit-file-upload-button:hover { + background: #6B7280; +} + +.dark input[type=file]::file-selector-button:hover { + background: #6B7280; +} + +input[type="range"]::-webkit-slider-thumb { + height: 1.25rem; + width: 1.25rem; + background: #1C64F2; + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; +} + +input[type="range"]:disabled::-webkit-slider-thumb { + background: #9CA3AF; +} + +.dark input[type="range"]:disabled::-webkit-slider-thumb { + background: #6B7280; +} + +input[type="range"]:focus::-webkit-slider-thumb { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + --tw-ring-opacity: 1px; + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); +} + +input[type="range"]::-moz-range-thumb { + height: 1.25rem; + width: 1.25rem; + background: #1C64F2; + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; +} + +input[type="range"]:disabled::-moz-range-thumb { + background: #9CA3AF; +} + +.dark input[type="range"]:disabled::-moz-range-thumb { + background: #6B7280; +} + +input[type="range"]::-moz-range-progress { + background: #3F83F8; +} + +input[type="range"]::-ms-fill-lower { + background: #3F83F8; +} + +.toggle-bg:after { + content: ""; + position: absolute; + top: 0.125rem; + left: 0.125rem; + background: white; + border-color: #D1D5DB; + border-width: 1px; + border-radius: 9999px; + height: 1.25rem; + width: 1.25rem; + transition-property: background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter; + transition-duration: .15s; + box-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); +} + +input:checked + .toggle-bg:after { + transform: translateX(100%);; + border-color: white; +} + +input:checked + .toggle-bg { + background: #1C64F2; + border-color: #1C64F2; +} + +.tooltip-arrow,.tooltip-arrow:before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; +} + +.tooltip-arrow { + visibility: hidden; +} + +.tooltip-arrow:before { + content: ""; + visibility: visible; + transform: rotate(45deg); +} + +[data-tooltip-style^='light'] + .tooltip > .tooltip-arrow:before { + border-style: solid; + border-color: #E5E7EB; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='top'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-right-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='right'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-left-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='bottom'] > .tooltip-arrow:before { + border-top-width: 1px; + border-left-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='left'] > .tooltip-arrow:before { + border-top-width: 1px; + border-right-width: 1px; +} + +.tooltip[data-popper-placement^='top'] > .tooltip-arrow { + bottom: -4px; +} + +.tooltip[data-popper-placement^='bottom'] > .tooltip-arrow { + top: -4px; +} + +.tooltip[data-popper-placement^='left'] > .tooltip-arrow { + right: -4px; +} + +.tooltip[data-popper-placement^='right'] > .tooltip-arrow { + left: -4px; +} + +.tooltip.invisible > .tooltip-arrow:before { + visibility: hidden; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(63 131 248 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::-webkit-backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(63 131 248 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(63 131 248 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.visible { + visibility: visible; +} + +.invisible { + visibility: hidden; +} + +.static { + position: static; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.inset-0 { + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; +} + +.top-0 { + top: 0px; +} + +.left-0 { + left: 0px; +} + +.z-20 { + z-index: 20; +} + +.z-10 { + z-index: 10; +} + +.z-40 { + z-index: 40; +} + +.col-span-2 { + grid-column: span 2 / span 2; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-7 { + margin-top: 1.75rem; + margin-bottom: 1.75rem; +} + +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.my-6 { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mr-4 { + margin-right: 1rem; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mr-auto { + margin-right: auto; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.inline { + display: inline; +} + +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-6 { + height: 1.5rem; +} + +.h-4 { + height: 1rem; +} + +.h-9 { + height: 2.25rem; +} + +.h-8 { + height: 2rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-10 { + height: 2.5rem; +} + +.h-12 { + height: 3rem; +} + +.w-full { + width: 100%; +} + +.w-6 { + width: 1.5rem; +} + +.w-4 { + width: 1rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-10 { + width: 2.5rem; +} + +.w-64 { + width: 16rem; +} + +.w-1\/2 { + width: 50%; +} + +.max-w-screen-xl { + max-width: 1280px; +} + +.max-w-2xl { + max-width: 42rem; +} + +.max-w-screen-md { + max-width: 768px; +} + +.max-w-lg { + max-width: 32rem; +} + +.max-w-screen-sm { + max-width: 640px; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.flex-shrink { + flex-shrink: 1; +} + +.shrink-0 { + flex-shrink: 0; +} + +.-translate-x-full { + --tw-translate-x: -100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-x-full { + --tw-translate-x: 100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-x-0 { + --tw-translate-x: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.rotate-180 { + --tw-rotate: 180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.cursor-default { + cursor: default; +} + +.cursor-not-allowed { + cursor: not-allowed; +} + +.cursor-pointer { + cursor: pointer; +} + +.resize { + resize: both; +} + +.list-disc { + list-style-type: disc; +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.items-start { + align-items: flex-start; +} + +.items-end { + align-items: flex-end; +} + +.items-center { + align-items: center; +} + +.items-baseline { + align-items: baseline; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.gap-8 { + gap: 2rem; +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.space-y-12 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(3rem * var(--tw-space-y-reverse)); +} + +.space-y-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); +} + +.space-x-3 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.75rem * var(--tw-space-x-reverse)); + margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.space-x-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1.25rem * var(--tw-space-x-reverse)); + margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} + +.divide-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-x-reverse: 0; + border-right-width: calc(2px * var(--tw-divide-x-reverse)); + border-left-width: calc(2px * calc(1 - var(--tw-divide-x-reverse))); +} + +.divide-gray-500 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-divide-opacity)); +} + +.place-self-center { + place-self: center; +} + +.self-center { + align-self: center; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-l-lg { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; +} + +.rounded-r-lg { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; +} + +.border { + border-width: 1px; +} + +.border-0 { + border-width: 0px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} + +.border-gray-100 { + --tw-border-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-border-opacity)); +} + +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.border-blue-700 { + --tw-border-opacity: 1; + border-color: rgb(26 86 219 / var(--tw-border-opacity)); +} + +.border-blue-600 { + --tw-border-opacity: 1; + border-color: rgb(28 100 242 / var(--tw-border-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-purple-700 { + --tw-bg-opacity: 1; + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); +} + +.bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(126 58 242 / var(--tw-bg-opacity)); +} + +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} + +.bg-blue-700 { + --tw-bg-opacity: 1; + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); +} + +.bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.bg-white\/50 { + background-color: rgb(255 255 255 / 0.5); +} + +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.bg-opacity-50 { + --tw-bg-opacity: 0.5; +} + +.p-2 { + padding: 0.5rem; +} + +.p-6 { + padding: 1.5rem; +} + +.p-4 { + padding: 1rem; +} + +.p-2\.5 { + padding: 0.625rem; +} + +.p-1 { + padding: 0.25rem; +} + +.py-2\.5 { + padding-top: 0.625rem; + padding-bottom: 0.625rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.pl-3 { + padding-left: 0.75rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pt-20 { + padding-top: 5rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.pt-8 { + padding-top: 2rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pr-3 { + padding-right: 0.75rem; +} + +.pl-5 { + padding-left: 1.25rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-5xl { + font-size: 3rem; + line-height: 1; +} + +.font-semibold { + font-weight: 600; +} + +.font-medium { + font-weight: 500; +} + +.font-extrabold { + font-weight: 800; +} + +.font-light { + font-weight: 300; +} + +.font-bold { + font-weight: 700; +} + +.uppercase { + text-transform: uppercase; +} + +.leading-none { + line-height: 1; +} + +.leading-tight { + line-height: 1.25; +} + +.leading-6 { + line-height: 1.5rem; +} + +.leading-9 { + line-height: 2.25rem; +} + +.tracking-tight { + letter-spacing: -0.025em; +} + +.text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.text-purple-500 { + --tw-text-opacity: 1; + color: rgb(144 97 249 / var(--tw-text-opacity)); +} + +.text-purple-600 { + --tw-text-opacity: 1; + color: rgb(126 58 242 / var(--tw-text-opacity)); +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(14 159 110 / var(--tw-text-opacity)); +} + +.text-blue-600 { + --tw-text-opacity: 1; + color: rgb(28 100 242 / var(--tw-text-opacity)); +} + +.opacity-0 { + opacity: 0; +} + +.opacity-100 { + opacity: 1; +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.outline { + outline-style: solid; +} + +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.filter { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition { + transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +.hover\:border-gray-300:hover { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.hover\:bg-gray-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.hover\:bg-purple-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); +} + +.hover\:bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.hover\:bg-purple-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); +} + +.hover\:bg-blue-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); +} + +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.hover\:text-blue-700:hover { + --tw-text-opacity: 1; + color: rgb(26 86 219 / var(--tw-text-opacity)); +} + +.hover\:text-gray-900:hover { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.hover\:text-purple-800:hover { + --tw-text-opacity: 1; + color: rgb(85 33 181 / var(--tw-text-opacity)); +} + +.hover\:text-blue-600:hover { + --tw-text-opacity: 1; + color: rgb(28 100 242 / var(--tw-text-opacity)); +} + +.hover\:text-gray-600:hover { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.hover\:underline:hover { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +.focus\:z-10:focus { + z-index: 10; +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:ring-4:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-2:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-gray-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); +} + +.focus\:ring-purple-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity)); +} + +.focus\:ring-gray-200:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); +} + +.focus\:ring-gray-100:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity)); +} + +.focus\:ring-purple-200:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(220 215 254 / var(--tw-ring-opacity)); +} + +.focus\:ring-blue-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); +} + +.dark .dark\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-divide-opacity)); +} + +.dark .dark\:border-gray-700 { + --tw-border-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-border-opacity)); +} + +.dark .dark\:border-gray-600 { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} + +.dark .dark\:border-blue-500 { + --tw-border-opacity: 1; + border-color: rgb(63 131 248 / var(--tw-border-opacity)); +} + +.dark .dark\:border-transparent { + border-color: transparent; +} + +.dark .dark\:bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(126 58 242 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-600 { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-800\/50 { + background-color: rgb(31 41 55 / 0.5); +} + +.dark .dark\:bg-opacity-80 { + --tw-bg-opacity: 0.8; +} + +.dark .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-400 { + --tw-text-opacity: 1; + color: rgb(172 148 250 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-500 { + --tw-text-opacity: 1; + color: rgb(144 97 249 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-400 { + --tw-text-opacity: 1; + color: rgb(49 196 141 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-500 { + --tw-text-opacity: 1; + color: rgb(63 131 248 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:bg-gray-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-purple-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-gray-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-blue-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-gray-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-purple-700:hover { + --tw-text-opacity: 1; + color: rgb(108 43 217 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-blue-500:hover { + --tw-text-opacity: 1; + color: rgb(63 131 248 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-gray-300:hover { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + +.dark .dark\:focus\:ring-gray-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-purple-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-gray-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-gray-700:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-purple-900:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity)); +} + +@media (min-width: 640px) { + .sm\:mx-auto { + margin-left: auto; + margin-right: auto; + } + + .sm\:mr-2 { + margin-right: 0.5rem; + } + + .sm\:inline-block { + display: inline-block; + } + + .sm\:flex { + display: flex; + } + + .sm\:h-9 { + height: 2.25rem; + } + + .sm\:w-auto { + width: auto; + } + + .sm\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .sm\:gap-12 { + gap: 3rem; + } + + .sm\:gap-6 { + gap: 1.5rem; + } + + .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); + } + + .sm\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .sm\:text-xl { + font-size: 1.25rem; + line-height: 1.75rem; + } +} + +@media (min-width: 768px) { + .md\:grid { + display: grid; + } + + .md\:h-12 { + height: 3rem; + } + + .md\:w-12 { + width: 3rem; + } + + .md\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .md\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .md\:gap-12 { + gap: 3rem; + } + + .md\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .md\:p-8 { + padding: 2rem; + } + + .md\:text-5xl { + font-size: 3rem; + line-height: 1; + } + + .md\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .md\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .md\:text-2xl { + font-size: 1.5rem; + line-height: 2rem; + } +} + +@media (min-width: 1024px) { + .lg\:order-2 { + order: 2; + } + + .lg\:order-1 { + order: 1; + } + + .lg\:col-span-7 { + grid-column: span 7 / span 7; + } + + .lg\:col-span-5 { + grid-column: span 5 / span 5; + } + + .lg\:my-8 { + margin-top: 2rem; + margin-bottom: 2rem; + } + + .lg\:mr-0 { + margin-right: 0px; + } + + .lg\:mt-0 { + margin-top: 0px; + } + + .lg\:mb-8 { + margin-bottom: 2rem; + } + + .lg\:mb-0 { + margin-bottom: 0px; + } + + .lg\:mb-12 { + margin-bottom: 3rem; + } + + .lg\:flex { + display: flex; + } + + .lg\:grid { + display: grid; + } + + .lg\:hidden { + display: none; + } + + .lg\:w-auto { + width: auto; + } + + .lg\:grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); + } + + .lg\:grid-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); + } + + .lg\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .lg\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .lg\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .lg\:grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } + + .lg\:flex-row { + flex-direction: row; + } + + .lg\:justify-center { + justify-content: center; + } + + .lg\:gap-8 { + gap: 2rem; + } + + .lg\:gap-16 { + gap: 4rem; + } + + .lg\:space-x-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(2rem * var(--tw-space-x-reverse)); + margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); + } + + .lg\:space-y-20 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(5rem * var(--tw-space-y-reverse)); + } + + .lg\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .lg\:border-0 { + border-width: 0px; + } + + .lg\:bg-transparent { + background-color: transparent; + } + + .lg\:p-0 { + padding: 0px; + } + + .lg\:p-10 { + padding: 2.5rem; + } + + .lg\:px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; + } + + .lg\:py-2\.5 { + padding-top: 0.625rem; + padding-bottom: 0.625rem; + } + + .lg\:py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } + + .lg\:py-16 { + padding-top: 4rem; + padding-bottom: 4rem; + } + + .lg\:py-24 { + padding-top: 6rem; + padding-bottom: 6rem; + } + + .lg\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .lg\:pt-28 { + padding-top: 7rem; + } + + .lg\:pb-16 { + padding-bottom: 4rem; + } + + .lg\:pb-24 { + padding-bottom: 6rem; + } + + .lg\:text-xl { + font-size: 1.25rem; + line-height: 1.75rem; + } + + .lg\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .lg\:text-purple-700 { + --tw-text-opacity: 1; + color: rgb(108 43 217 / var(--tw-text-opacity)); + } + + .lg\:hover\:bg-transparent:hover { + background-color: transparent; + } + + .lg\:hover\:text-purple-700:hover { + --tw-text-opacity: 1; + color: rgb(108 43 217 / var(--tw-text-opacity)); + } + + .dark .lg\:dark\:hover\:bg-transparent:hover { + background-color: transparent; + } + + .dark .lg\:dark\:hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } +} + +@media (min-width: 1280px) { + .xl\:gap-0 { + gap: 0px; + } + + .xl\:gap-16 { + gap: 4rem; + } + + .xl\:gap-24 { + gap: 6rem; + } + + .xl\:gap-10 { + gap: 2.5rem; + } + + .xl\:p-8 { + padding: 2rem; + } + + .xl\:text-6xl { + font-size: 3.75rem; + line-height: 1; + } +} diff --git a/resources/assets/templates/landwind/js/app.js b/resources/assets/templates/landwind/js/app.js new file mode 100644 index 0000000..9eaeda7 --- /dev/null +++ b/resources/assets/templates/landwind/js/app.js @@ -0,0 +1,20 @@ +var code = `tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }` + +try { + eval(code) + +} catch (e) { + console.log('Error in tailwind css config') + + eval(`tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }`) +} diff --git a/resources/assets/templates/limaa-m/css/app.css b/resources/assets/templates/limaa-m/css/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/resources/assets/templates/limaa-m/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/assets/templates/limaa-m/js/app.js b/resources/assets/templates/limaa-m/js/app.js new file mode 100644 index 0000000..9eaeda7 --- /dev/null +++ b/resources/assets/templates/limaa-m/js/app.js @@ -0,0 +1,20 @@ +var code = `tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }` + +try { + eval(code) + +} catch (e) { + console.log('Error in tailwind css config') + + eval(`tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }`) +} diff --git a/resources/assets/templates/maximus/css/app.css b/resources/assets/templates/maximus/css/app.css new file mode 100644 index 0000000..cded131 --- /dev/null +++ b/resources/assets/templates/maximus/css/app.css @@ -0,0 +1,9 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components { + .btn-primary { + @apply py-1.5 px-3 text-center bg-blue-700 rounded-md text-white; + } +} diff --git a/resources/assets/templates/maximus/js/app.js b/resources/assets/templates/maximus/js/app.js new file mode 100644 index 0000000..9eaeda7 --- /dev/null +++ b/resources/assets/templates/maximus/js/app.js @@ -0,0 +1,20 @@ +var code = `tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }` + +try { + eval(code) + +} catch (e) { + console.log('Error in tailwind css config') + + eval(`tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }`) +} diff --git a/resources/assets/templates/notus/css/app.css b/resources/assets/templates/notus/css/app.css new file mode 100644 index 0000000..cae9f15 --- /dev/null +++ b/resources/assets/templates/notus/css/app.css @@ -0,0 +1,3257 @@ +/*! tailwindcss v2.0.4 | MIT License | https://tailwindcss.com */ + +/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ + +/* +Document +======== +*/ + +/** +Use a better box model (opinionated). +*/ + +*, +*::before, +*::after { + box-sizing: border-box; +} + +/** +Use a more readable tab size (opinionated). +*/ + +:root { + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +/** +1. Correct the line height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +*/ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* +Sections +======== +*/ + +/** +Remove the margin in all browsers. +*/ + +body { + margin: 0; +} + +/** +Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) +*/ + +body { + font-family: + system-ui, + -apple-system, /* Firefox supports this but not yet `system-ui` */ + 'Segoe UI', + Roboto, + Helvetica, + Arial, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji'; +} + +/* +Grouping content +================ +*/ + +/** +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +*/ + +hr { + height: 0; /* 1 */ + color: inherit; /* 2 */ +} + +/* +Text-level semantics +==================== +*/ + +/** +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/** +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/** +1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) +2. Correct the odd 'em' font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: + ui-monospace, + SFMono-Regular, + Consolas, + 'Liberation Mono', + Menlo, + monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/** +Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +Tabular data +============ +*/ + +/** +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +*/ + +table { + text-indent: 0; /* 1 */ + border-color: inherit; /* 2 */ +} + +/* +Forms +===== +*/ + +/** +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** +Remove the inheritance of text transform in Edge and Firefox. +1. Remove the inheritance of text transform in Firefox. +*/ + +button, +select { /* 1 */ + text-transform: none; +} + +/** +Correct the inability to style clickable types in iOS and Safari. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} + +/** +Remove the inner border and padding in Firefox. +*/ + +/** +Restore the focus styles unset by the previous rule. +*/ + +/** +Remove the additional ':invalid' styles in Firefox. +See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 +*/ + +/** +Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. +*/ + +legend { + padding: 0; +} + +/** +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/** +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +/** +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** +Remove the inner padding in Chrome and Safari on macOS. +*/ + +/** +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to 'inherit' in Safari. +*/ + +/* +Interactive +=========== +*/ + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/** + * Manually forked from SUIT CSS Base: https://github.com/suitcss/base + * A thin layer on top of normalize.css that provides a starting point more + * suitable for web applications. + */ + +/** + * Removes the default spacing and border for appropriate elements. + */ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +button { + background-color: transparent; + background-image: none; +} + +/** + * Work around a Firefox/IE bug where the transparent `button` background + * results in a loss of the default `button` focus styles. + */ + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +fieldset { + margin: 0; + padding: 0; +} + +ol, +ul { + list-style: none; + margin: 0; + padding: 0; +} + +/** + * Tailwind custom reset styles + */ + +/** + * 1. Use the user's configured `sans` font-family (with Tailwind's default + * sans-serif font stack as a fallback) as a sane default. + * 2. Use Tailwind's default "normal" line-height so the user isn't forced + * to override it to ensure consistency even when using the default theme. + */ + +html { + font-family: 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"; /* 1 */ + line-height: 1.5; /* 2 */ +} + +/** + * Inherit font-family and line-height from `html` so users can set them as + * a class directly on the `html` element. + */ + +body { + font-family: inherit; + line-height: inherit; +} + +/** + * 1. Prevent padding and border from affecting element width. + * + * We used to set this in the html element and inherit from + * the parent element for everything else. This caused issues + * in shadow-dom-enhanced elements like
where the content + * is wrapped by a div with box-sizing set to `content-box`. + * + * https://github.com/mozdevs/cssremedy/issues/4 + * + * + * 2. Allow adding a border to an element by just adding a border-width. + * + * By default, the way the browser specifies that an element should have no + * border is by setting it's border-style to `none` in the user-agent + * stylesheet. + * + * In order to easily add borders to elements by just setting the `border-width` + * property, we change the default border-style for all elements to `solid`, and + * use border-width to hide them instead. This way our `border` utilities only + * need to set the `border-width` property instead of the entire `border` + * shorthand, making our border utilities much more straightforward to compose. + * + * https://github.com/tailwindcss/tailwindcss/pull/116 + */ + +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e4e4e7; /* 2 */ +} + +/* + * Ensure horizontal rules are visible by default + */ + +hr { + border-top-width: 1px; +} + +/** + * Undo the `border-style: none` reset that Normalize applies to images so that + * our `border-{width}` utilities have the expected effect. + * + * The Normalize reset is unnecessary for us since we default the border-width + * to 0 on all elements. + * + * https://github.com/tailwindcss/tailwindcss/issues/362 + */ + +img { + border-style: solid; +} + +textarea { + resize: vertical; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + color: #a1a1aa; +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + opacity: 1; + color: #a1a1aa; +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + color: #a1a1aa; +} + +button, +[role="button"] { + cursor: pointer; +} + +table { + border-collapse: collapse; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/** + * Reset links to optimize for opt-in styling instead of + * opt-out. + */ + +a { + color: inherit; + text-decoration: inherit; +} + +/** + * Reset form element properties that are easy to forget to + * style explicitly so you don't inadvertently introduce + * styles that deviate from your design system. These styles + * supplement a partial reset that is already applied by + * normalize.css. + */ + +button, +input, +optgroup, +select, +textarea { + padding: 0; + line-height: inherit; + color: inherit; +} + +/** + * Use the configured 'mono' font family for elements that + * are expected to be rendered with a monospace font, falling + * back to the system monospace stack if there is no configured + * 'mono' font family. + */ + +pre, +code, +kbd, +samp { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +/** + * Make replaced elements `display: block` by default as that's + * the behavior you want almost all of the time. Inspired by + * CSS Remedy, with `svg` added as well. + * + * https://github.com/mozdevs/cssremedy/issues/14 + */ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + vertical-align: middle; +} + +/** + * Constrain images and videos to the parent width and preserve + * their instrinsic aspect ratio. + * + * https://github.com/mozdevs/cssremedy/issues/14 + */ + +img, +video { + max-width: 100%; + height: auto; +} + + + [type='text'], + [type='email'], + [type='url'], + [type='password'], + [type='number'], + [type='date'], + [type='datetime-local'], + [type='month'], + [type='search'], + [type='tel'], + [type='time'], + [type='week'], + [multiple], + textarea, + select + { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #71717a; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; +} + +[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + border-color: #2563eb; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + color: #71717a; + opacity: 1; +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + color: #71717a; + opacity: 1; +} + +input::placeholder, textarea::placeholder { + color: #71717a; + opacity: 1; +} + +select { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2371717a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position: right 0.5rem center; + background-repeat: no-repeat; + background-size: 1.5em 1.5em; + padding-right: 2.5rem; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} + +[multiple] { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + -webkit-print-color-adjust: unset; + color-adjust: unset; +} + + + [type='checkbox'], + [type='radio'] + { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #2563eb; + background-color: #fff; + border-color: #71717a; + border-width: 1px; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + + + [type='checkbox']:focus, + [type='radio']:focus + { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + + + [type='checkbox']:checked, + [type='radio']:checked + { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} + + + [type='checkbox']:checked:hover, + [type='checkbox']:checked:focus, + [type='radio']:checked:hover, + [type='radio']:checked:focus + { + border-color: transparent; + background-color: currentColor; +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + + + [type='checkbox']:indeterminate:hover, + [type='checkbox']:indeterminate:focus + { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px auto -webkit-focus-ring-color; +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1280px; + } +} + +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + +.divide-y > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); +} + +.bg-black { + --tw-bg-opacity: 1; + background-color: rgba(0, 0, 0, var(--tw-bg-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); +} + +.bg-pink-200 { + --tw-bg-opacity: 1; + background-color: rgba(251, 207, 232, var(--tw-bg-opacity)); +} + +.bg-pink-300 { + --tw-bg-opacity: 1; + background-color: rgba(249, 168, 212, var(--tw-bg-opacity)); +} + +.bg-pink-500 { + --tw-bg-opacity: 1; + background-color: rgba(236, 72, 153, var(--tw-bg-opacity)); +} + +.bg-pink-600 { + --tw-bg-opacity: 1; + background-color: rgba(219, 39, 119, var(--tw-bg-opacity)); +} + +.bg-pink-800 { + --tw-bg-opacity: 1; + background-color: rgba(157, 23, 77, var(--tw-bg-opacity)); +} + +.bg-pink-900 { + --tw-bg-opacity: 1; + background-color: rgba(131, 24, 67, var(--tw-bg-opacity)); +} + +.bg-purple-200 { + --tw-bg-opacity: 1; + background-color: rgba(233, 213, 255, var(--tw-bg-opacity)); +} + +.bg-purple-500 { + --tw-bg-opacity: 1; + background-color: rgba(168, 85, 247, var(--tw-bg-opacity)); +} + +.bg-indigo-500 { + --tw-bg-opacity: 1; + background-color: rgba(99, 102, 241, var(--tw-bg-opacity)); +} + +.bg-lightBlue-200 { + --tw-bg-opacity: 1; + background-color: rgba(186, 230, 253, var(--tw-bg-opacity)); +} + +.bg-lightBlue-400 { + --tw-bg-opacity: 1; + background-color: rgba(56, 189, 248, var(--tw-bg-opacity)); +} + +.bg-lightBlue-500 { + --tw-bg-opacity: 1; + background-color: rgba(14, 165, 233, var(--tw-bg-opacity)); +} + +.bg-lightBlue-600 { + --tw-bg-opacity: 1; + background-color: rgba(2, 132, 199, var(--tw-bg-opacity)); +} + +.bg-teal-200 { + --tw-bg-opacity: 1; + background-color: rgba(153, 246, 228, var(--tw-bg-opacity)); +} + +.bg-teal-500 { + --tw-bg-opacity: 1; + background-color: rgba(20, 184, 166, var(--tw-bg-opacity)); +} + +.bg-emerald-200 { + --tw-bg-opacity: 1; + background-color: rgba(167, 243, 208, var(--tw-bg-opacity)); +} + +.bg-emerald-400 { + --tw-bg-opacity: 1; + background-color: rgba(52, 211, 153, var(--tw-bg-opacity)); +} + +.bg-emerald-500 { + --tw-bg-opacity: 1; + background-color: rgba(16, 185, 129, var(--tw-bg-opacity)); +} + +.bg-yellow-500 { + --tw-bg-opacity: 1; + background-color: rgba(234, 179, 8, var(--tw-bg-opacity)); +} + +.bg-orange-200 { + --tw-bg-opacity: 1; + background-color: rgba(254, 215, 170, var(--tw-bg-opacity)); +} + +.bg-orange-500 { + --tw-bg-opacity: 1; + background-color: rgba(249, 115, 22, var(--tw-bg-opacity)); +} + +.bg-red-200 { + --tw-bg-opacity: 1; + background-color: rgba(254, 202, 202, var(--tw-bg-opacity)); +} + +.bg-red-400 { + --tw-bg-opacity: 1; + background-color: rgba(248, 113, 113, var(--tw-bg-opacity)); +} + +.bg-red-500 { + --tw-bg-opacity: 1; + background-color: rgba(239, 68, 68, var(--tw-bg-opacity)); +} + +.bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgba(220, 38, 38, var(--tw-bg-opacity)); +} + +.bg-red-700 { + --tw-bg-opacity: 1; + background-color: rgba(185, 28, 28, var(--tw-bg-opacity)); +} + +.bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgba(244, 244, 245, var(--tw-bg-opacity)); +} + +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgba(228, 228, 231, var(--tw-bg-opacity)); +} + +.bg-blueGray-50 { + --tw-bg-opacity: 1; + background-color: rgba(248, 250, 252, var(--tw-bg-opacity)); +} + +.bg-blueGray-100 { + --tw-bg-opacity: 1; + background-color: rgba(241, 245, 249, var(--tw-bg-opacity)); +} + +.bg-blueGray-200 { + --tw-bg-opacity: 1; + background-color: rgba(226, 232, 240, var(--tw-bg-opacity)); +} + +.bg-blueGray-600 { + --tw-bg-opacity: 1; + background-color: rgba(71, 85, 105, var(--tw-bg-opacity)); +} + +.bg-blueGray-700 { + --tw-bg-opacity: 1; + background-color: rgba(51, 65, 85, var(--tw-bg-opacity)); +} + +.bg-blueGray-800 { + --tw-bg-opacity: 1; + background-color: rgba(30, 41, 59, var(--tw-bg-opacity)); +} + +.focus\:bg-white:focus { + --tw-bg-opacity: 1; + background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); +} + +.focus\:bg-gray-200:focus { + --tw-bg-opacity: 1; + background-color: rgba(228, 228, 231, var(--tw-bg-opacity)); +} + +.active\:bg-pink-600:active { + --tw-bg-opacity: 1; + background-color: rgba(219, 39, 119, var(--tw-bg-opacity)); +} + +.active\:bg-indigo-600:active { + --tw-bg-opacity: 1; + background-color: rgba(79, 70, 229, var(--tw-bg-opacity)); +} + +.active\:bg-blueGray-50:active { + --tw-bg-opacity: 1; + background-color: rgba(248, 250, 252, var(--tw-bg-opacity)); +} + +.active\:bg-blueGray-600:active { + --tw-bg-opacity: 1; + background-color: rgba(71, 85, 105, var(--tw-bg-opacity)); +} + +.bg-center { + background-position: center; +} + +.bg-no-repeat { + background-repeat: no-repeat; +} + +.bg-cover { + background-size: cover; +} + +.bg-full { + background-size: 100%; +} + +.border-collapse { + border-collapse: collapse; +} + +.border-pink-700 { + --tw-border-opacity: 1; + border-color: rgba(190, 24, 93, var(--tw-border-opacity)); +} + +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgba(228, 228, 231, var(--tw-border-opacity)); +} + +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgba(212, 212, 216, var(--tw-border-opacity)); +} + +.border-blueGray-50 { + --tw-border-opacity: 1; + border-color: rgba(248, 250, 252, var(--tw-border-opacity)); +} + +.border-blueGray-100 { + --tw-border-opacity: 1; + border-color: rgba(241, 245, 249, var(--tw-border-opacity)); +} + +.border-blueGray-200 { + --tw-border-opacity: 1; + border-color: rgba(226, 232, 240, var(--tw-border-opacity)); +} + +.border-blueGray-300 { + --tw-border-opacity: 1; + border-color: rgba(203, 213, 225, var(--tw-border-opacity)); +} + +.border-blueGray-500 { + --tw-border-opacity: 1; + border-color: rgba(100, 116, 139, var(--tw-border-opacity)); +} + +.border-blueGray-600 { + --tw-border-opacity: 1; + border-color: rgba(71, 85, 105, var(--tw-border-opacity)); +} + +.focus\:border-black:focus { + --tw-border-opacity: 1; + border-color: rgba(0, 0, 0, var(--tw-border-opacity)); +} + +.focus\:border-indigo-300:focus { + --tw-border-opacity: 1; + border-color: rgba(165, 180, 252, var(--tw-border-opacity)); +} + +.focus\:border-gray-300:focus { + --tw-border-opacity: 1; + border-color: rgba(212, 212, 216, var(--tw-border-opacity)); +} + +.focus\:border-gray-500:focus { + --tw-border-opacity: 1; + border-color: rgba(113, 113, 122, var(--tw-border-opacity)); +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.rounded-t-lg { + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} + +.border-solid { + border-style: solid; +} + +.border-none { + border-style: none; +} + +.border-0 { + border-width: 0px; +} + +.border-2 { + border-width: 2px; +} + +.border { + border-width: 1px; +} + +.border-t-0 { + border-top-width: 0px; +} + +.border-r-0 { + border-right-width: 0px; +} + +.border-l-0 { + border-left-width: 0px; +} + +.border-b-2 { + border-bottom-width: 2px; +} + +.border-t { + border-top-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.cursor-pointer { + cursor: pointer; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.inline { + display: inline; +} + +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.flex-row { + flex-direction: row; +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.items-start { + align-items: flex-start; +} + +.items-center { + align-items: center; +} + +.items-stretch { + align-items: stretch; +} + +.content-center { + align-content: center; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-auto { + flex: 1 1 auto; +} + +.flex-initial { + flex: 0 1 auto; +} + +.flex-grow { + flex-grow: 1; +} + +.float-left { + float: left; +} + +.font-light { + font-weight: 300; +} + +.font-normal { + font-weight: 400; +} + +.font-semibold { + font-weight: 600; +} + +.font-bold { + font-weight: 700; +} + +.h-0 { + height: 0px; +} + +.h-2 { + height: 0.5rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-8 { + height: 2rem; +} + +.h-10 { + height: 2.5rem; +} + +.h-12 { + height: 3rem; +} + +.h-16 { + height: 4rem; +} + +.h-20 { + height: 5rem; +} + +.h-24 { + height: 6rem; +} + +.h-auto { + height: auto; +} + +.h-full { + height: 100%; +} + +.h-screen { + height: 100vh; +} + +.h-95-px { + height: 95px; +} + +.h-70-px { + height: 70px; +} + +.h-350-px { + height: 350px; +} + +.h-500-px { + height: 500px; +} + +.h-600-px { + height: 600px; +} + +.text-55 { + font-size: 55rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-5xl { + font-size: 3rem; + line-height: 1; +} + +.leading-none { + line-height: 1; +} + +.leading-snug { + line-height: 1.375; +} + +.leading-normal { + line-height: 1.5; +} + +.leading-relaxed { + line-height: 1.625; +} + +.list-none { + list-style-type: none; +} + +.m-2 { + margin: 0.5rem; +} + +.m-4 { + margin: 1rem; +} + +.-m-16 { + margin: -4rem; +} + +.-m-24 { + margin: -6rem; +} + +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} + +.my-6 { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.mt-0 { + margin-top: 0px; +} + +.mr-0 { + margin-right: 0px; +} + +.mb-0 { + margin-bottom: 0px; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mr-4 { + margin-right: 1rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.mb-12 { + margin-bottom: 3rem; +} + +.mt-16 { + margin-top: 4rem; +} + +.mt-20 { + margin-top: 5rem; +} + +.mt-24 { + margin-top: 6rem; +} + +.mb-24 { + margin-bottom: 6rem; +} + +.mt-32 { + margin-top: 8rem; +} + +.mt-48 { + margin-top: 12rem; +} + +.mr-auto { + margin-right: auto; +} + +.ml-auto { + margin-left: auto; +} + +.-ml-4 { + margin-left: -1rem; +} + +.-mt-20 { + margin-top: -5rem; +} + +.-ml-20 { + margin-left: -5rem; +} + +.-mt-24 { + margin-top: -6rem; +} + +.-mt-32 { + margin-top: -8rem; +} + +.-mt-48 { + margin-top: -12rem; +} + +.-mt-64 { + margin-top: -16rem; +} + +.last\:mr-0:last-child { + margin-right: 0px; +} + +.hover\:-mt-4:hover { + margin-top: -1rem; +} + +.max-h-860-px { + max-height: 860px; +} + +.max-w-md { + max-width: 28rem; +} + +.max-w-xl { + max-width: 36rem; +} + +.max-w-4xl { + max-width: 56rem; +} + +.max-w-full { + max-width: 100%; +} + +.max-w-100-px { + max-width: 100px; +} + +.max-w-120-px { + max-width: 120px; +} + +.max-w-150-px { + max-width: 150px; +} + +.max-w-180-px { + max-width: 180px; +} + +.max-w-200-px { + max-width: 200px; +} + +.max-w-210-px { + max-width: 210px; +} + +.max-w-580-px { + max-width: 580px; +} + +.min-h-screen { + min-height: 100vh; +} + +.min-h-screen-75 { + min-height: 75vh; +} + +.min-w-0 { + min-width: 0px; +} + +.min-w-48 { + min-width: 12rem; +} + +.min-w-140-px { + min-width: 140px; +} + +.opacity-50 { + opacity: 0.5; +} + +.opacity-75 { + opacity: 0.75; +} + +.opacity-80 { + opacity: .8; +} + +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-x-auto { + overflow-x: auto; +} + +.overflow-y-auto { + overflow-y: auto; +} + +.overflow-x-hidden { + overflow-x: hidden; +} + +.p-2 { + padding: 0.5rem; +} + +.p-3 { + padding: 0.75rem; +} + +.p-4 { + padding: 1rem; +} + +.p-5 { + padding: 1.25rem; +} + +.p-8 { + padding: 2rem; +} + +.px-0 { + padding-left: 0px; + padding-right: 0px; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + +.py-12 { + padding-top: 3rem; + padding-bottom: 3rem; +} + +.px-12 { + padding-left: 3rem; + padding-right: 3rem; +} + +.py-16 { + padding-top: 4rem; + padding-bottom: 4rem; +} + +.py-20 { + padding-top: 5rem; + padding-bottom: 5rem; +} + +.py-24 { + padding-top: 6rem; + padding-bottom: 6rem; +} + +.py-40 { + padding-top: 10rem; + padding-bottom: 10rem; +} + +.px-0\.5 { + padding-left: 0.125rem; + padding-right: 0.125rem; +} + +.pt-0 { + padding-top: 0px; +} + +.pb-0 { + padding-bottom: 0px; +} + +.pt-1 { + padding-top: 0.25rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pb-2 { + padding-bottom: 0.5rem; +} + +.pl-3 { + padding-left: 0.75rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pb-4 { + padding-bottom: 1rem; +} + +.pl-4 { + padding-left: 1rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.pt-8 { + padding-top: 2rem; +} + +.pl-10 { + padding-left: 2.5rem; +} + +.pt-12 { + padding-top: 3rem; +} + +.pr-12 { + padding-right: 3rem; +} + +.pt-16 { + padding-top: 4rem; +} + +.pb-16 { + padding-bottom: 4rem; +} + +.pt-20 { + padding-top: 5rem; +} + +.pb-20 { + padding-bottom: 5rem; +} + +.pt-24 { + padding-top: 6rem; +} + +.pt-32 { + padding-top: 8rem; +} + +.pb-32 { + padding-bottom: 8rem; +} + +.pb-40 { + padding-bottom: 10rem; +} + +.pt-48 { + padding-top: 12rem; +} + +.pb-48 { + padding-bottom: 12rem; +} + +.pb-64 { + padding-bottom: 16rem; +} + +.placeholder-blueGray-300::-moz-placeholder { + --tw-placeholder-opacity: 1; + color: rgba(203, 213, 225, var(--tw-placeholder-opacity)); +} + +.placeholder-blueGray-300:-ms-input-placeholder { + --tw-placeholder-opacity: 1; + color: rgba(203, 213, 225, var(--tw-placeholder-opacity)); +} + +.placeholder-blueGray-300::placeholder { + --tw-placeholder-opacity: 1; + color: rgba(203, 213, 225, var(--tw-placeholder-opacity)); +} + +.pointer-events-none { + pointer-events: none; +} + +.static { + position: static; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.top-0 { + top: 0px; +} + +.right-0 { + right: 0px; +} + +.bottom-0 { + bottom: 0px; +} + +.left-0 { + left: 0px; +} + +.top-auto { + top: auto; +} + +.bottom-auto { + bottom: auto; +} + +.left-auto { + left: auto; +} + +.-right-100 { + right: -100%; +} + +.-top-225-px { + top: -225px; +} + +.-top-160-px { + top: -160px; +} + +.-top-150-px { + top: -150px; +} + +.-top-94-px { + top: -94px; +} + +.-left-50-px { + left: -50px; +} + +.-top-29-px { + top: -29px; +} + +.-left-20-px { + left: -20px; +} + +.top-25-px { + top: 25px; +} + +.left-40-px { + left: 40px; +} + +.top-95-px { + top: 95px; +} + +.left-145-px { + left: 145px; +} + +.left-195-px { + left: 195px; +} + +.top-210-px { + top: 210px; +} + +.left-260-px { + left: 260px; +} + +* { + --tw-shadow: 0 0 #0000; +} + +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-xl { + --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-2xl { + --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-none { + --tw-shadow: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:shadow-md:hover { + --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:shadow-lg:hover { + --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +* { + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgba(59, 130, 246, 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; +} + +.focus\:ring-0:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-1:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-offset-0:focus { + --tw-ring-offset-width: 0px; +} + +.focus\:ring-offset-2:focus { + --tw-ring-offset-width: 2px; +} + +.focus\:ring-black:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgba(0, 0, 0, var(--tw-ring-opacity)); +} + +.focus\:ring-indigo-200:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgba(199, 210, 254, var(--tw-ring-opacity)); +} + +.focus\:ring-gray-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgba(113, 113, 122, var(--tw-ring-opacity)); +} + +.focus\:ring-opacity-50:focus { + --tw-ring-opacity: 0.5; +} + +.fill-current { + fill: currentColor; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-black { + --tw-text-opacity: 1; + color: rgba(0, 0, 0, var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgba(255, 255, 255, var(--tw-text-opacity)); +} + +.text-pink-300 { + --tw-text-opacity: 1; + color: rgba(249, 168, 212, var(--tw-text-opacity)); +} + +.text-pink-400 { + --tw-text-opacity: 1; + color: rgba(244, 114, 182, var(--tw-text-opacity)); +} + +.text-pink-500 { + --tw-text-opacity: 1; + color: rgba(236, 72, 153, var(--tw-text-opacity)); +} + +.text-pink-600 { + --tw-text-opacity: 1; + color: rgba(219, 39, 119, var(--tw-text-opacity)); +} + +.text-indigo-600 { + --tw-text-opacity: 1; + color: rgba(79, 70, 229, var(--tw-text-opacity)); +} + +.text-lightBlue-400 { + --tw-text-opacity: 1; + color: rgba(56, 189, 248, var(--tw-text-opacity)); +} + +.text-lightBlue-600 { + --tw-text-opacity: 1; + color: rgba(2, 132, 199, var(--tw-text-opacity)); +} + +.text-teal-500 { + --tw-text-opacity: 1; + color: rgba(20, 184, 166, var(--tw-text-opacity)); +} + +.text-emerald-500 { + --tw-text-opacity: 1; + color: rgba(16, 185, 129, var(--tw-text-opacity)); +} + +.text-orange-500 { + --tw-text-opacity: 1; + color: rgba(249, 115, 22, var(--tw-text-opacity)); +} + +.text-red-500 { + --tw-text-opacity: 1; + color: rgba(239, 68, 68, var(--tw-text-opacity)); +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgba(113, 113, 122, var(--tw-text-opacity)); +} + +.text-gray-600 { + --tw-text-opacity: 1; + color: rgba(82, 82, 91, var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgba(63, 63, 70, var(--tw-text-opacity)); +} + +.text-gray-900 { + --tw-text-opacity: 1; + color: rgba(24, 24, 27, var(--tw-text-opacity)); +} + +.text-blueGray-100 { + --tw-text-opacity: 1; + color: rgba(241, 245, 249, var(--tw-text-opacity)); +} + +.text-blueGray-200 { + --tw-text-opacity: 1; + color: rgba(226, 232, 240, var(--tw-text-opacity)); +} + +.text-blueGray-300 { + --tw-text-opacity: 1; + color: rgba(203, 213, 225, var(--tw-text-opacity)); +} + +.text-blueGray-400 { + --tw-text-opacity: 1; + color: rgba(148, 163, 184, var(--tw-text-opacity)); +} + +.text-blueGray-500 { + --tw-text-opacity: 1; + color: rgba(100, 116, 139, var(--tw-text-opacity)); +} + +.text-blueGray-600 { + --tw-text-opacity: 1; + color: rgba(71, 85, 105, var(--tw-text-opacity)); +} + +.text-blueGray-700 { + --tw-text-opacity: 1; + color: rgba(51, 65, 85, var(--tw-text-opacity)); +} + +.text-blueGray-800 { + --tw-text-opacity: 1; + color: rgba(30, 41, 59, var(--tw-text-opacity)); +} + +.hover\:text-pink-600:hover { + --tw-text-opacity: 1; + color: rgba(219, 39, 119, var(--tw-text-opacity)); +} + +.hover\:text-blueGray-300:hover { + --tw-text-opacity: 1; + color: rgba(203, 213, 225, var(--tw-text-opacity)); +} + +.hover\:text-blueGray-500:hover { + --tw-text-opacity: 1; + color: rgba(100, 116, 139, var(--tw-text-opacity)); +} + +.hover\:text-blueGray-700:hover { + --tw-text-opacity: 1; + color: rgba(51, 65, 85, var(--tw-text-opacity)); +} + +.hover\:text-blueGray-800:hover { + --tw-text-opacity: 1; + color: rgba(30, 41, 59, var(--tw-text-opacity)); +} + +.uppercase { + text-transform: uppercase; +} + +.underline { + text-decoration: underline; +} + +.no-underline { + text-decoration: none; +} + +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.tracking-wide { + letter-spacing: 0.025em; +} + +.align-middle { + vertical-align: middle; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.break-words { + overflow-wrap: break-word; +} + +.w-5 { + width: 1.25rem; +} + +.w-8 { + width: 2rem; +} + +.w-10 { + width: 2.5rem; +} + +.w-12 { + width: 3rem; +} + +.w-16 { + width: 4rem; +} + +.w-auto { + width: auto; +} + +.w-1\/2 { + width: 50%; +} + +.w-6\/12 { + width: 50%; +} + +.w-10\/12 { + width: 83.333333%; +} + +.w-full { + width: 100%; +} + +.z-2 { + z-index: 2; +} + +.z-3 { + z-index: 3; +} + +.z-10 { + z-index: 10; +} + +.z-40 { + z-index: 40; +} + +.z-50 { + z-index: 50; +} + +.gap-6 { + gap: 1.5rem; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.transform { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.ease-linear { + transition-timing-function: linear; +} + +.duration-150 { + transition-duration: 150ms; +} + +@-webkit-keyframes spin { + to { + transform: rotate(360deg); + } +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +@-webkit-keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } +} + +@keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } +} + +@-webkit-keyframes pulse { + 50% { + opacity: .5; + } +} + +@keyframes pulse { + 50% { + opacity: .5; + } +} + +@-webkit-keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1); + animation-timing-function: cubic-bezier(0.8,0,1,1); + } + + 50% { + transform: none; + -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1); + animation-timing-function: cubic-bezier(0,0,0.2,1); + } +} + +@keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1); + animation-timing-function: cubic-bezier(0.8,0,1,1); + } + + 50% { + transform: none; + -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1); + animation-timing-function: cubic-bezier(0,0,0.2,1); + } +} + +@media (min-width: 640px) { + .sm\:block { + display: block; + } + + .sm\:mt-0 { + margin-top: 0px; + } + + .sm\:ml-1 { + margin-left: 0.25rem; + } + + .sm\:mr-2 { + margin-right: 0.5rem; + } + + .sm\:pt-0 { + padding-top: 0px; + } + + .sm\:w-6\/12 { + width: 50%; + } +} + +@media (min-width: 768px) { + .md\:block { + display: block; + } + + .md\:flex { + display: flex; + } + + .md\:hidden { + display: none; + } + + .md\:flex-row { + flex-direction: row; + } + + .md\:flex-col { + flex-direction: column; + } + + .md\:flex-nowrap { + flex-wrap: nowrap; + } + + .md\:items-stretch { + align-items: stretch; + } + + .md\:justify-start { + justify-content: flex-start; + } + + .md\:justify-end { + justify-content: flex-end; + } + + .md\:justify-between { + justify-content: space-between; + } + + .md\:mt-0 { + margin-top: 0px; + } + + .md\:mt-4 { + margin-top: 1rem; + } + + .md\:mb-4 { + margin-bottom: 1rem; + } + + .md\:mt-40 { + margin-top: 10rem; + } + + .md\:mt-64 { + margin-top: 16rem; + } + + .md\:ml-64 { + margin-left: 16rem; + } + + .md\:max-w-4xl { + max-width: 56rem; + } + + .md\:min-h-full { + min-height: 100%; + } + + .md\:min-w-full { + min-width: 100%; + } + + .md\:opacity-100 { + opacity: 1; + } + + .md\:overflow-hidden { + overflow: hidden; + } + + .md\:overflow-y-auto { + overflow-y: auto; + } + + .md\:px-4 { + padding-left: 1rem; + padding-right: 1rem; + } + + .md\:px-10 { + padding-left: 2.5rem; + padding-right: 2.5rem; + } + + .md\:pt-0 { + padding-top: 0px; + } + + .md\:pb-2 { + padding-bottom: 0.5rem; + } + + .md\:pr-12 { + padding-right: 3rem; + } + + .md\:pt-32 { + padding-top: 8rem; + } + + .md\:fixed { + position: fixed; + } + + .md\:relative { + position: relative; + } + + .md\:top-0 { + top: 0px; + } + + .md\:bottom-0 { + bottom: 0px; + } + + .md\:left-0 { + left: 0px; + } + + .md\:shadow-none { + --tw-shadow: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .md\:text-left { + text-align: left; + } + + .md\:w-64 { + width: 16rem; + } + + .md\:w-4\/12 { + width: 33.333333%; + } + + .md\:w-5\/12 { + width: 41.666667%; + } + + .md\:w-6\/12 { + width: 50%; + } + + .md\:w-8\/12 { + width: 66.666667%; + } + + .md\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (min-width: 1024px) { + .lg\:bg-opacity-0 { + --tw-bg-opacity: 0; + } + + .lg\:block { + display: block; + } + + .lg\:inline-block { + display: inline-block; + } + + .lg\:flex { + display: flex; + } + + .lg\:hidden { + display: none; + } + + .lg\:flex-row { + flex-direction: row; + } + + .lg\:self-center { + align-self: center; + } + + .lg\:justify-start { + justify-content: flex-start; + } + + .lg\:order-1 { + order: 1; + } + + .lg\:order-2 { + order: 2; + } + + .lg\:order-3 { + order: 3; + } + + .lg\:mb-0 { + margin-bottom: 0px; + } + + .lg\:mr-1 { + margin-right: 0.25rem; + } + + .lg\:mr-4 { + margin-right: 1rem; + } + + .lg\:mt-16 { + margin-top: 4rem; + } + + .lg\:ml-auto { + margin-left: auto; + } + + .lg\:-ml-16 { + margin-left: -4rem; + } + + .lg\:-mt-64 { + margin-top: -16rem; + } + + .lg\:p-10 { + padding: 2.5rem; + } + + .lg\:py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } + + .lg\:px-10 { + padding-left: 2.5rem; + padding-right: 2.5rem; + } + + .lg\:pt-0 { + padding-top: 0px; + } + + .lg\:pt-4 { + padding-top: 1rem; + } + + .lg\:pt-12 { + padding-top: 3rem; + } + + .lg\:pt-24 { + padding-top: 6rem; + } + + .lg\:pb-64 { + padding-bottom: 16rem; + } + + .lg\:static { + position: static; + } + + .lg\:shadow-none { + --tw-shadow: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .lg\:text-left { + text-align: left; + } + + .lg\:text-right { + text-align: right; + } + + .lg\:text-white { + --tw-text-opacity: 1; + color: rgba(255, 255, 255, var(--tw-text-opacity)); + } + + .lg\:text-blueGray-200 { + --tw-text-opacity: 1; + color: rgba(226, 232, 240, var(--tw-text-opacity)); + } + + .lg\:hover\:text-blueGray-200:hover { + --tw-text-opacity: 1; + color: rgba(226, 232, 240, var(--tw-text-opacity)); + } + + .lg\:w-auto { + width: auto; + } + + .lg\:w-3\/12 { + width: 25%; + } + + .lg\:w-4\/12 { + width: 33.333333%; + } + + .lg\:w-6\/12 { + width: 50%; + } + + .lg\:w-8\/12 { + width: 66.666667%; + } + + .lg\:w-9\/12 { + width: 75%; + } +} + +@media (min-width: 1280px) { + .xl\:mb-0 { + margin-bottom: 0px; + } + + .xl\:w-3\/12 { + width: 25%; + } + + .xl\:w-4\/12 { + width: 33.333333%; + } + + .xl\:w-6\/12 { + width: 50%; + } + + .xl\:w-8\/12 { + width: 66.666667%; + } +} + +@media (min-width: 1536px) { +} diff --git a/resources/assets/templates/notus/js/app.js b/resources/assets/templates/notus/js/app.js new file mode 100644 index 0000000..60384f5 --- /dev/null +++ b/resources/assets/templates/notus/js/app.js @@ -0,0 +1,21 @@ +/* Function for opning navbar on mobile */ +function toggleNavbar(collapseID) { + document.getElementById(collapseID).classList.toggle("hidden"); + document.getElementById(collapseID).classList.toggle("block"); +} + +/* Function for dropdowns */ +function openDropdown(event, dropdownID) { + let element = event.target; + + while (element.nodeName !== "A") { + element = element.parentNode; + } + + Popper.createPopper(element, document.getElementById(dropdownID), { + placement: "bottom-start" + }); + + document.getElementById(dropdownID).classList.toggle("hidden"); + document.getElementById(dropdownID).classList.toggle("block"); +} diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome.scss b/resources/assets/templates/notus/vendor/fonts/fontawesome.scss new file mode 100644 index 0000000..323e2e2 --- /dev/null +++ b/resources/assets/templates/notus/vendor/fonts/fontawesome.scss @@ -0,0 +1,7 @@ +$fa-font-path: 'fontawesome'; +$fa-font-size-base: 16px; + +@import '@fortawesome/fontawesome-free/scss/fontawesome'; +@import '@fortawesome/fontawesome-free/scss/regular'; +@import '@fortawesome/fontawesome-free/scss/solid'; +@import '@fortawesome/fontawesome-free/scss/brands'; diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.ttf b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.ttf new file mode 100644 index 0000000..5efb1d4 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.ttf differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.woff2 b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.woff2 new file mode 100644 index 0000000..36fbda7 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-brands-400.woff2 differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.ttf b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.ttf new file mode 100644 index 0000000..838b4e2 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.ttf differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.woff2 b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.woff2 new file mode 100644 index 0000000..b6cabba Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-regular-400.woff2 differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.ttf b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.ttf new file mode 100644 index 0000000..ec24749 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.ttf differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.woff2 b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.woff2 new file mode 100644 index 0000000..824d518 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-solid-900.woff2 differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.ttf b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.ttf new file mode 100644 index 0000000..b175aa8 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.ttf differ diff --git a/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.woff2 b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.woff2 new file mode 100644 index 0000000..e09b5a5 Binary files /dev/null and b/resources/assets/templates/notus/vendor/fonts/fontawesome/fa-v4compatibility.woff2 differ diff --git a/resources/assets/templates/notus/vendor/popper/popper.js b/resources/assets/templates/notus/vendor/popper/popper.js new file mode 100644 index 0000000..a7b487d --- /dev/null +++ b/resources/assets/templates/notus/vendor/popper/popper.js @@ -0,0 +1,10 @@ +import Popper from '@popperjs/core/dist/umd/popper.min'; + +// Required to enable animations on dropdowns/tooltips/popovers +// Popper.Defaults.modifiers.computeStyle.gpuAcceleration = false + +try { + window.Popper = Popper; +} catch (e) {} + +export { Popper }; diff --git a/resources/assets/templates/samuel-coming-soon/css/app.css b/resources/assets/templates/samuel-coming-soon/css/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/resources/assets/templates/samuel-coming-soon/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/assets/templates/samuel-coming-soon/js/app.js b/resources/assets/templates/samuel-coming-soon/js/app.js new file mode 100644 index 0000000..9eaeda7 --- /dev/null +++ b/resources/assets/templates/samuel-coming-soon/js/app.js @@ -0,0 +1,20 @@ +var code = `tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }` + +try { + eval(code) + +} catch (e) { + console.log('Error in tailwind css config') + + eval(`tailwind.config = { + darkMode: 'class', + theme: { + extend: {} + } + }`) +} diff --git a/resources/views/layouts/anonymous/master.blade.php b/resources/views/layouts/anonymous/master.blade.php new file mode 100644 index 0000000..a40cbb4 --- /dev/null +++ b/resources/views/layouts/anonymous/master.blade.php @@ -0,0 +1,17 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.anonymous.partials.styles') + + + @yield('header') + @yield('content') + @yield('footer') + @include('vuexy-website-layout-simple-koneko::layouts.anonymous.partials.scripts') + + diff --git a/resources/views/layouts/anonymous/partials/scripts.blade.php b/resources/views/layouts/anonymous/partials/scripts.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/layouts/anonymous/partials/styles.blade.php b/resources/views/layouts/anonymous/partials/styles.blade.php new file mode 100644 index 0000000..7132f21 --- /dev/null +++ b/resources/views/layouts/anonymous/partials/styles.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/anonymous/css/app.css' +]) diff --git a/resources/views/layouts/landwind/master.blade.php b/resources/views/layouts/landwind/master.blade.php new file mode 100644 index 0000000..7fd6264 --- /dev/null +++ b/resources/views/layouts/landwind/master.blade.php @@ -0,0 +1,17 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.landwind.partials.styles') + + + @yield('header') + @yield('content') + @yield('footer') + @include('vuexy-website-layout-simple-koneko::layouts.landwind.partials.scripts') + + diff --git a/resources/views/layouts/landwind/partials/scripts.blade.php b/resources/views/layouts/landwind/partials/scripts.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/layouts/landwind/partials/styles.blade.php b/resources/views/layouts/landwind/partials/styles.blade.php new file mode 100644 index 0000000..c36bbae --- /dev/null +++ b/resources/views/layouts/landwind/partials/styles.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/landwind/css/app.css' +]) diff --git a/resources/views/layouts/limaa-m/master.blade.php b/resources/views/layouts/limaa-m/master.blade.php new file mode 100644 index 0000000..27605e0 --- /dev/null +++ b/resources/views/layouts/limaa-m/master.blade.php @@ -0,0 +1,17 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.limaa-m.partials.styles') + + + @yield('header') + @yield('content') + @yield('footer') + @include('vuexy-website-layout-simple-koneko::layouts.limaa-m.partials.scripts') + + diff --git a/resources/views/layouts/limaa-m/partials/scripts.blade.php b/resources/views/layouts/limaa-m/partials/scripts.blade.php new file mode 100644 index 0000000..5d3281a --- /dev/null +++ b/resources/views/layouts/limaa-m/partials/scripts.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/limaa-m/js/app.js' +]) diff --git a/resources/views/layouts/limaa-m/partials/styles.blade.php b/resources/views/layouts/limaa-m/partials/styles.blade.php new file mode 100644 index 0000000..811db00 --- /dev/null +++ b/resources/views/layouts/limaa-m/partials/styles.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/limaa-m/css/app.css' +]) diff --git a/resources/views/layouts/maximus/master.blade.php b/resources/views/layouts/maximus/master.blade.php new file mode 100644 index 0000000..8d693e9 --- /dev/null +++ b/resources/views/layouts/maximus/master.blade.php @@ -0,0 +1,17 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.maximus.partials.styles') + + + @yield('header') + @yield('content') + @yield('footer') + @include('vuexy-website-layout-simple-koneko::layouts.maximus.partials.scripts') + + diff --git a/resources/views/layouts/maximus/partials/scripts.blade.php b/resources/views/layouts/maximus/partials/scripts.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/layouts/maximus/partials/styles.blade.php b/resources/views/layouts/maximus/partials/styles.blade.php new file mode 100644 index 0000000..1c20183 --- /dev/null +++ b/resources/views/layouts/maximus/partials/styles.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/maximus/css/app.css' +]) diff --git a/resources/views/layouts/notus/master.blade.php b/resources/views/layouts/notus/master.blade.php new file mode 100644 index 0000000..53b5516 --- /dev/null +++ b/resources/views/layouts/notus/master.blade.php @@ -0,0 +1,17 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.notus.partials.styles') + + + @yield('header') + @yield('content') + @yield('footer') + @include('vuexy-website-layout-simple-koneko::layouts.notus.partials.scripts') + + diff --git a/resources/views/layouts/notus/partials/scripts.blade.php b/resources/views/layouts/notus/partials/scripts.blade.php new file mode 100644 index 0000000..7f41b83 --- /dev/null +++ b/resources/views/layouts/notus/partials/scripts.blade.php @@ -0,0 +1,28 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/notus-tailwind/vendor/popper/popper.js', + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/notus-tailwind/js/app.js', +]) + + diff --git a/resources/views/layouts/notus/partials/styles.blade.php b/resources/views/layouts/notus/partials/styles.blade.php new file mode 100644 index 0000000..30516df --- /dev/null +++ b/resources/views/layouts/notus/partials/styles.blade.php @@ -0,0 +1,4 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/notus/css/app.css', + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/notus/vendor/fonts/fontawesome.scss', +]) diff --git a/resources/views/layouts/samuel-coming-soon/master.blade.php b/resources/views/layouts/samuel-coming-soon/master.blade.php new file mode 100644 index 0000000..5699e2a --- /dev/null +++ b/resources/views/layouts/samuel-coming-soon/master.blade.php @@ -0,0 +1,15 @@ + + + + + @include('vuexy-website-admin::layouts.base.header') + @include('vuexy-website-layout-simple-koneko::layouts.samuel-coming-soon.partials.styles') + + + @yield('content') + @include('vuexy-website-layout-simple-koneko::layouts.samuel-coming-soon.partials.scripts') + + diff --git a/resources/views/layouts/samuel-coming-soon/partials/scripts.blade.php b/resources/views/layouts/samuel-coming-soon/partials/scripts.blade.php new file mode 100644 index 0000000..3fe6170 --- /dev/null +++ b/resources/views/layouts/samuel-coming-soon/partials/scripts.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/samuel-coming-soon/js/app.js' +]) diff --git a/resources/views/layouts/samuel-coming-soon/partials/styles.blade.php b/resources/views/layouts/samuel-coming-soon/partials/styles.blade.php new file mode 100644 index 0000000..e99c3e6 --- /dev/null +++ b/resources/views/layouts/samuel-coming-soon/partials/styles.blade.php @@ -0,0 +1,3 @@ +@vite([ + 'vendor/koneko/laravel-vuexy-website-layout-simple-koneko/resources/assets/templates/samuel-coming-soon/css/app.css' +]) diff --git a/resources/views/templates/anonymous/components/footer.blade.php b/resources/views/templates/anonymous/components/footer.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/anonymous/components/menu-footer.blade.php b/resources/views/templates/anonymous/components/menu-footer.blade.php new file mode 100644 index 0000000..df932e6 --- /dev/null +++ b/resources/views/templates/anonymous/components/menu-footer.blade.php @@ -0,0 +1,15 @@ +

CATEGORIES

+ diff --git a/resources/views/templates/anonymous/components/menu-top.blade.php b/resources/views/templates/anonymous/components/menu-top.blade.php new file mode 100644 index 0000000..8e53141 --- /dev/null +++ b/resources/views/templates/anonymous/components/menu-top.blade.php @@ -0,0 +1,6 @@ + diff --git a/resources/views/templates/anonymous/components/navbar.blade.php b/resources/views/templates/anonymous/components/navbar.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/anonymous/page.blade.php b/resources/views/templates/anonymous/page.blade.php new file mode 100644 index 0000000..f23adbe --- /dev/null +++ b/resources/views/templates/anonymous/page.blade.php @@ -0,0 +1,642 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.anonymous.master') + +@section('header') +
+
+ + + + + TAILBLOCKS + + + +
+
+@endsection + +@section('content') +
+
+
+

Before they sold out + readymade gluten +

+

Copper mug try-hard pitchfork pour-over freegan heirloom neutra air plant cold-pressed tacos poke beard tote bag. Heirloom echo park mlkshk tote bag selvage hot chicken authentic tumeric truffaut hexagon try-hard chambray.

+
+ + +
+
+
+ hero +
+
+
+
+
+
+

ROOF PARTY POLAROID

+

Master Cleanse Reliac Heirloom

+
+
+
+
+
+
+ + + +
+

Shooting Stars

+
+
+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+
+
+
+ + + + +
+

The Catalyzer

+
+
+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+
+
+
+ + + + + +
+

Neptune

+
+
+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+
+
+
+
+
+ feature +
+
+
+
+ + + +
+
+

Shooting Stars

+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+ + + + + +
+
+

The Catalyzer

+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+ + + + +
+
+

Neptune

+

Blue bottle crucifix vinyl post-ironic four dollar toast vegan taxidermy. Gastropub indxgo juice poutine.

+ Learn More + + + + +
+
+
+
+
+
+
+
+

Pitchfork Kickstarter Taxidermy

+

Whatever cardigan tote bag tumblr hexagon brooklyn asymmetrical gentrify, subway tile poke farm-to-table.

+
+
+
+
+
+ + + +
+

Shooting Stars

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+
+
+ + + + + +
+

The Catalyzer

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+
+
+ + + + +
+

Neptune

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+
+
+ + + +
+

Melanchole

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+
+
+ + + +
+

Bunker

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+
+
+ + + +
+

Ramona Falls

+

Fingerstache flexitarian street art 8-bit waist co, subway tile poke farm.

+
+
+
+ +
+
+
+
+
+

Our Team

+

Whatever cardigan tote bag tumblr hexagon brooklyn asymmetrical gentrify, subway tile poke farm-to-table. Franzen you probably haven't heard of them.

+
+
+
+
+ team +
+

Holden Caulfield

+

UI Designer

+
+
+
+
+
+ team +
+

Henry Letham

+

CTO

+
+
+
+
+
+ team +
+

Oskar Blinde

+

Founder

+
+
+
+
+
+ team +
+

John Doe

+

DevOps

+
+
+
+
+
+ team +
+

Martin Eden

+

Software Engineer

+
+
+
+
+
+ team +
+

Boris Kitua

+

UX Researcher

+
+
+
+
+
+ team +
+

Atticus Finch

+

QA Engineer

+
+
+
+
+
+ team +
+

Alper Kamu

+

System

+
+
+
+
+
+ team +
+

Rodrigo Monchi

+

Product Manager

+
+
+
+
+
+
+
+
+ +
+
+
+

START

+

Free

+ Next 3 months +
+

Schlitz single-origin

+

+ + + + + +

+

+ + + + + +

+

Feature

+

+ + + + + +

+

+ + + +

+

+ + + +

+

+ + + +

+

+ + + +

+
+ +

Literally you probably haven't heard of them jean shorts.

+
+
+
+ POPULAR +
+

PRO

+

$38 + /mo +

+ Charging $456 per year +
+

Schlitz single-origin

+

+ + + + + +

+

+ + + + + +

+

Feature

+

+ + + + + +

+

+ + + + + +

+

+ + + +

+

+ + + +

+

+ + + +

+
+ +

Literally you probably haven't heard of them jean shorts.

+
+
+
+
+

BUSINESS

+

$54 + /mo +

+ Charging $648 per year +
+

Schlitz single-origin

+

+ + + + + +

+

+ + + + + +

+

Feature

+

+ + + + + +

+

+ + + +

+

+ + + +

+

+ + + +

+

+ + + +

+
+ +

Literally you probably haven't heard of them jean shorts.

+
+
+
+
+
+
+
+
+ + + +

Edison bulb retro cloud bread echo park, helvetica stumptown taiyaki taxidermy 90's cronut +1 kinfolk. Single-origin coffee ennui shaman taiyaki vape DIY tote bag drinking vinegar cronut adaptogen squid fanny pack vaporware. Man bun next level coloring book skateboard four loko knausgaard. Kitsch keffiyeh master cleanse direct trade indigo juice before they sold out gentrify plaid gastropub normcore XOXO 90's pickled cindigo jean shorts. Slow-carb next level shoindigoitch ethical authentic, yr scenester sriracha forage franzen organic drinking vinegar.

+ +

HOLDEN CAULFIELD

+

Senior Product Designer

+
+
+
+
+
+ +
+
+
+

Feedback

+

Post-ironic portland shabby chic echo park, banjo fashion axe

+ + + +

Chicharrones blog helvetica normcore iceland tousled brook viral artisan.

+
+
+
+@endsection + +@section('footer') +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + +

Bitters chicharrones fanny pack + waistcoat green juice +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

© 2020 Tailwind Blocks — + @knyttneve +

+ Enamel pin tousled raclette tacos irony +
+
+
+@endsection diff --git a/resources/views/templates/landwind/components/footer.blade.php b/resources/views/templates/landwind/components/footer.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/landwind/components/menu-footer.blade.php b/resources/views/templates/landwind/components/menu-footer.blade.php new file mode 100644 index 0000000..15b09e9 --- /dev/null +++ b/resources/views/templates/landwind/components/menu-footer.blade.php @@ -0,0 +1,15 @@ +

Company

+ diff --git a/resources/views/templates/landwind/components/menu-top.blade.php b/resources/views/templates/landwind/components/menu-top.blade.php new file mode 100644 index 0000000..895ec9c --- /dev/null +++ b/resources/views/templates/landwind/components/menu-top.blade.php @@ -0,0 +1,22 @@ + diff --git a/resources/views/templates/landwind/components/navbar.blade.php b/resources/views/templates/landwind/components/navbar.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/landwind/page.blade.php b/resources/views/templates/landwind/page.blade.php new file mode 100644 index 0000000..5f2f62c --- /dev/null +++ b/resources/views/templates/landwind/page.blade.php @@ -0,0 +1,467 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.landwind.master') + +@section('header') +
+ +
+@endsection + +@section('content') +
+
+
+

Building digital
products & brands.

+

This free and open-source landing page template was built using the utility classes from Tailwind CSS and based on the components from the Flowbite Library and the Blocks System.

+ +
+ +
+
+
+ +
+
+
+
+
+

Work with tools you already use

+

Deliver great service experiences fast - without the complexity of traditional ITSM solutions. Accelerate critical development work, eliminate toil, and deploy changes with ease.

+
    +
  • + + Continuous integration and deployment +
  • +
  • + + Development workflow +
  • +
  • + + Knowledge management +
  • +
+

Deliver great service experiences fast - without the complexity of traditional ITSM solutions.

+
+ +
+
+ +
+

We invest in the world’s potential

+

Deliver great service experiences fast - without the complexity of traditional ITSM solutions. Accelerate critical development work, eliminate toil, and deploy changes with ease.

+
    +
  • + + Dynamic reports and dashboards +
  • +
  • + + Templates for everyone +
  • +
  • + + Development workflow +
  • +
  • + + Limitless business automation +
  • +
  • + + Knowledge management +
  • +
+

Deliver great service experiences fast - without the complexity of traditional ITSM solutions.

+
+
+
+
+
+
+
+

Trusted Worldwide

+

Trusted by over 600 million users and 10,000 teams

+

Our rigorous security and compliance standards are at the heart of all we do. We work tirelessly to protect you and your customers.

+ +
+
+
+ +

99.99% uptime

+

For Landwind, with zero maintenance downtime

+
+
+ +

600M+ Users

+

Trusted by over 600 milion users around the world

+
+
+ +

100+ countries

+

Have used Landwind to create functional websites

+
+
+ +

5+ Million

+

Transactions per day

+
+
+
+
+
+
+
+ + + +
+

"Landwind is just awesome. It contains tons of predesigned components and pages starting from login screen to complex dashboard. Perfect choice for your next SaaS application."

+
+
+ profile picture +
+
Micheal Gough
+
CEO at Google
+
+
+
+
+
+
+
+
+

Designed for business teams like yours

+

Here at Landwind we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth.

+
+
+
+

Starter

+

Best option for personal use & for your next project.

+
+ $29 + /month +
+
    +
  • + + Individual configuration +
  • +
  • + + No setup, or hidden fees +
  • +
  • + + Team size: 1 developer +
  • +
  • + + Premium support: 6 months +
  • +
  • + + Free updates: 6 months +
  • +
+ Get started +
+
+

Company

+

Relevant for multiple users, extended & premium support.

+
+ $99 + /month +
+
    +
  • + + Individual configuration +
  • +
  • + + No setup, or hidden fees +
  • +
  • + + Team size: 10 developers +
  • +
  • + + Premium support: 24 months +
  • +
  • + + Free updates: 24 months +
  • +
+ Get started +
+
+

Enterprise

+

Best for large scale uses and extended redistribution rights.

+
+ $499 + /month +
+
    +
  • + + Individual configuration +
  • +
  • + + No setup, or hidden fees +
  • +
  • + + Team size: 100+ developers +
  • +
  • + + Premium support: 36 months +
  • +
  • + + Free updates: 36 months +
  • +
+ Get started +
+
+
+
+
+
+

Frequently asked questions

+
+
+

+ +

+
+
+

Landwind is an open-source library of interactive components built on top of Tailwind CSS including buttons, dropdowns, modals, navbars, and more.

+

Check out this guide to learn how to get started and start developing websites even faster with components on top of Tailwind CSS.

+
+
+

+ +

+ +

+ +

+ +

+ +

+ +
+
+
+
+
+
+
+

Start your free trial today

+

Try Landwind Platform for 30 days. No credit card required.

+ Free trial for 30 days +
+
+
+@endsection + +@section('footer') + +@endsection diff --git a/resources/views/templates/limaa-m/components/footer.blade.php b/resources/views/templates/limaa-m/components/footer.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/limaa-m/components/menu-footer.blade.php b/resources/views/templates/limaa-m/components/menu-footer.blade.php new file mode 100644 index 0000000..ca6e757 --- /dev/null +++ b/resources/views/templates/limaa-m/components/menu-footer.blade.php @@ -0,0 +1,5 @@ +

Important Links

+ diff --git a/resources/views/templates/limaa-m/components/menu-top.blade.php b/resources/views/templates/limaa-m/components/menu-top.blade.php new file mode 100644 index 0000000..764543d --- /dev/null +++ b/resources/views/templates/limaa-m/components/menu-top.blade.php @@ -0,0 +1,6 @@ + diff --git a/resources/views/templates/limaa-m/components/navbar.blade.php b/resources/views/templates/limaa-m/components/navbar.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/limaa-m/page.blade.php b/resources/views/templates/limaa-m/page.blade.php new file mode 100644 index 0000000..c7b1de1 --- /dev/null +++ b/resources/views/templates/limaa-m/page.blade.php @@ -0,0 +1,1026 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.limaa-m.master') + +@section('header') +
+
+
+
+ + + + + + + +
Lander +
+ + +
+
+@endsection + +@section('content') +
+
+
+
+

Main title of your + landing page

+

Free landing page template to promote your + business startup and generate leads for the offered services +

+

+ +

+

Sed fermentum felis ut cursu +

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

Main Features

+
+
+
+

Service One + +

+

An enim nullam tempor gravida donec enim ipsum blandit porta justo + integer odio velna vitae auctor integer. +

+
+
+
+
+

Service Two +

+

An enim nullam tempor gravida donec enim ipsum blandit porta justo + integer odio velna vitae auctor integer. +

+
+
+
+
+

Service Three + +

+

An enim nullam tempor gravida donec enim ipsum blandit porta justo + integer odio velna vitae auctor integer. +

+
+
+
+
+
+
+
+
+
+

Market Analysis

+

Our team of enthusiastic marketers + will analyse and evaluate how your company stacks against the closest competitors +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Design And Plan Your Business Growth + Steps

+

Once the market analysis process is + completed our staff will search for opportunities that are in reach +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Search For Performance Optimization +

+

With all the information in place you + will be presented with an action plan that your company needs to follow +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

Our customers get results + +

+
+
+

+100% +

+

Stats Information +

+
+
+

+100% +

+

Stats Information +

+
+
+

+100% +

+

Stats Information +

+
+
+
+
+
+
+

What customers are saying +

+
+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing + +

+

Eu lobortis elementum nibh tellus molestie nunc non blandit massa. + Sit amet consectetur adipiscing elit duis. +

+
Jane Doe +
+

Jane Doe +

+

Director of Research and Data +

+
+
+
+
+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing + +

+

Eu lobortis elementum nibh tellus molestie nunc non blandit massa. + Sit amet consectetur adipiscing elit duis. +

+
John Doe +
+

John Doe +

+

Director of Research and Data +

+
+
+
+
+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing + +

+

Eu lobortis elementum nibh tellus molestie nunc non blandit massa. + Sit amet consectetur adipiscing elit duis. +

+
Jane Smith +
+

Jane Smith +

+

Director of Research and Data +

+
+
+
+
+
+
+
+
+

Ready to grow your business?

+

Quis lectus nulla at volutpat diam ut. Enim lobortis scelerisque + fermentum dui faucibus in. +

+

+ +

+
+
+@endsection + +@section('footer') +
+
+
+

About Us

+

Ridiculus mus mauris vitae ultricies leo integer malesuada nunc. +

+
+
+ +
+
+ +
+
+
+@endsection diff --git a/resources/views/templates/maximus/components/footer.blade.php b/resources/views/templates/maximus/components/footer.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/maximus/components/menu-footer.blade.php b/resources/views/templates/maximus/components/menu-footer.blade.php new file mode 100644 index 0000000..11cf0e0 --- /dev/null +++ b/resources/views/templates/maximus/components/menu-footer.blade.php @@ -0,0 +1,7 @@ +

Products

+ diff --git a/resources/views/templates/maximus/components/menu-top.blade.php b/resources/views/templates/maximus/components/menu-top.blade.php new file mode 100644 index 0000000..4d2e811 --- /dev/null +++ b/resources/views/templates/maximus/components/menu-top.blade.php @@ -0,0 +1,21 @@ + +
+ +
+ +
+
diff --git a/resources/views/templates/maximus/components/navbar.blade.php b/resources/views/templates/maximus/components/navbar.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/maximus/page.blade.php b/resources/views/templates/maximus/page.blade.php new file mode 100644 index 0000000..dc14a0a --- /dev/null +++ b/resources/views/templates/maximus/page.blade.php @@ -0,0 +1,734 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.maximus.master') + +@section('header') + +
+ +
+
+
+ + + + + +
+
+

Where Imaginations
Come to Life

+

Premium vinyl playsets designed for endless adventures, built to last for generations of fun.

+ +
+
+
+@endsection + +@section('content') + +
+
+
+

Why Families Choose SwingIt

+

Our premium playsets are designed with both children and parents in mind.

+
+ +
+ +
+
+ +
+

Premium Quality

+

Durable vinyl construction that withstands years of active play without fading, splintering, or requiring maintenance.

+
+ + +
+
+ +
+

Custom Designs

+

Create a personalized playset that fits your space, budget, and your children's unique play preferences.

+
+ + +
+
+ +
+

Safety First

+

Built with rounded edges, secure connections, and premium materials that meet rigorous safety standards.

+
+
+
+
+ + + + + +
+
+
+

What Our Customers Say

+

Join hundreds of happy families who've chosen SwingIt for their children's outdoor play.

+
+ +
+
+ +
+ +
+
+ + + + + +
+

"I love my swing set! SwingIt helped me with the design and planning and was so pleasant to work with. They helped me stay within my budget and time frame, and the delivery and installation was hassle-free. Such nice people to work with!"

+
+
+
+

Ruthy J.

+

Happy Parent

+
+
+
+ + +
+
+ + + + + +
+

"We are so very pleased and happy with our beautiful swing set! The process was super quick and easy and the customer service was unbeatable. Thank you for helping us get an incredible playset that will hopefully last us for many more years to come!"

+
+
+
+

Tzipora B.

+

Delighted Customer

+
+
+
+ + +
+
+ + + + + +
+

"Highly recommend. Amazing service, very high-quality set. Children are using and abusing it and it's in perfect condition several years later. Only regret is not purchasing an even larger one. Worth every penny."

+
+
+
+

Tzvi W.

+

Satisfied Parent

+
+
+
+
+ + + + +
+ + +
+ +
+
+
+
+ + + + + +
+
+
+

How It Works

+

From design to installation, we make the process simple and enjoyable.

+
+ +
+ +
+
+ 1 +
+

Consultation

+

Discuss your vision, space requirements, and budget with our playset experts.

+
+ + +
+
+ 2 +
+

Design

+

Customize your perfect playset with the features your children will love.

+
+ + +
+
+ 3 +
+

Production

+

Your playset is carefully crafted using premium materials and expert craftsmanship.

+
+ + +
+
+ 4 +
+

Installation

+

Professional setup in your yard, ensuring safety and stability for years of play.

+
+
+
+
+ + +
+
+
+

Frequently Asked Questions

+

Find answers to our most commonly asked questions.

+
+ +
+ +
+ +
+

Most standard playset installations take between 4-8 hours, depending on the complexity of your chosen design. Our professional installation team will arrive on the scheduled day with all necessary tools and equipment to complete the job efficiently.

+
+
+ + +
+ +
+

Our vinyl playsets require minimal maintenance. Simply rinse with a garden hose as needed to remove dirt or debris. Unlike wooden sets, there's no need for staining, sealing, or checking for splinters. We recommend checking hardware connections once a year to ensure everything remains tight and secure.

+
+
+ + +
+ +
+

Yes, we offer several financing options to help make your dream playset affordable. During your consultation, our team can explain the various payment plans available, including 0% interest options for qualified customers.

+
+
+ + +
+ +
+

All Demo come with our comprehensive warranty that covers structural components for 15 years, vinyl materials for 10 years, and accessories for 1 year. We stand behind the quality of our products and are committed to your family's satisfaction.

+
+
+ + +
+ +
+

Absolutely! Our playsets are designed to grow with your family. You can easily add or upgrade accessories as your children's interests and abilities develop. From additional swings to challenging climbing features, we make it easy to enhance your playset over time.

+
+
+
+
+
+ + +
+
+
+ +
+

Request a Free Quote

+

Fill out the form below, and our team will get back to you within 24 hours with pricing information tailored to your needs.

+ +
+
+
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ +
+ + +
+
+ + + +
+ Thank you for your request! We'll be in touch shortly. +
+
+
+
+ + +
+

Why Choose Demo?

+ +
+
+
+ +
+
+

Premium Materials

+

Our vinyl construction offers superior durability without splinters or maintenance worries.

+
+
+ +
+
+ +
+
+

Professional Installation

+

Expert installation included with every purchase for safety and peace of mind.

+
+
+ +
+
+ +
+
+

Industry-Leading Warranty

+

Comprehensive coverage that protects your investment for years to come.

+
+
+
+ +
+

Contact Information

+
+
+ +
+
+

Serving NY, NJ & CT Areas

+
+
+
+
+
+
+
+ + +
+
+
+

Ready to Create Endless Adventures?

+

Get in touch with our playset experts and start designing your family's dream playset today.

+ + + + +
+
+
+@endsection + +@section('footer') + +
+
+
+ +
+

Demo

+

Premium vinyl playsets designed for endless adventures, built to last for generations of fun.

+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+

Contact Us

+
    +
  • + + 909.777.9911 +
  • +
  • + + info@demo.com +
  • +
+
+
+ + +
+

© 2025 Demo. All rights reserved.

+
+
+
+@endsection diff --git a/resources/views/templates/notus/components/footer.blade.php b/resources/views/templates/notus/components/footer.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/notus/components/menu-footer.blade.php b/resources/views/templates/notus/components/menu-footer.blade.php new file mode 100644 index 0000000..51a2bc7 --- /dev/null +++ b/resources/views/templates/notus/components/menu-footer.blade.php @@ -0,0 +1,15 @@ + Useful Links + diff --git a/resources/views/templates/notus/components/menu-top.blade.php b/resources/views/templates/notus/components/menu-top.blade.php new file mode 100644 index 0000000..a9a4b97 --- /dev/null +++ b/resources/views/templates/notus/components/menu-top.blade.php @@ -0,0 +1,42 @@ + diff --git a/resources/views/templates/notus/components/navbar.blade.php b/resources/views/templates/notus/components/navbar.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/templates/notus/page.blade.php b/resources/views/templates/notus/page.blade.php new file mode 100644 index 0000000..1724585 --- /dev/null +++ b/resources/views/templates/notus/page.blade.php @@ -0,0 +1,396 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.notus.master') + +@section('header') + +@endsection + +@section('content') +
+
+
+
+

Notus Tailwind JS - A beautiful extension for Tailwind CSS.

+

Notus Tailwind JS is Free and Open Source. It does not change any of the CSS from Tailwind CSS. It features multiple HTML elements and it comes with dynamic components for ReactJS, Vue and Angular.

+ +
+
+
+ ... +
+
+
+ + + +
+
+
+
+
+ ... +
+ + + +

Great for your awesome project

+

Putting together a page has never been easier than matching together pre-made components. From landing pages presentation to login areas, you can easily customise and built your pages.

+
+
+
+
+
+
+
+
+
+ +
+
CSS Components
+

Notus Tailwind JS comes with a huge number of Fully Coded CSS components.

+
+
+
+
+
+ +
+
JavaScript Components
+

We also feature many dynamic components for React, NextJS, Vue and Angular.

+
+
+
+
+
+
+
+ +
+
Pages
+

This extension also comes with 3 sample pages. They are fully coded so you can start working instantly.

+
+
+
+
+
+ +
+
Documentation
+

Built by developers for developers. You will love how easy is to to work with Notus Tailwind JS.

+
+
+
+
+
+
+
+
+
+
+
+ +
+

CSS Components

+

Every element that you need in a product comes built in as a component. All components fit perfectly with each other and can have different colours.

+
+ Buttons + Inputs + Labels + Menus + Navbars + Pagination + Progressbars + Typography +
+ View All + +
+
+
+ ... + ... + ... + ... + ... + ... +
+
+
+
+ +
+
+ +
+

Javascript Components

+

In order to create a great User Experience some components require JavaScript. In this way you can manipulate the elements on the page and give more options to your users.

+

We created a set of Components that are dynamic and come to help you.

+
+ Alerts + Dropdowns + Menus + Modals + Navbars + Popovers + Tabs + Tooltips +
+ View all + +
+
+
+
+
+
+
+
+ +
+

Complex Documentation

+

This extension comes a lot of fully coded examples that help you get started faster. You can adjust the colors and also the programming language. You can change the text and images and you're good to go.

+
    +
  • +
    +
    + + + +
    +
    +

    Built by Developers for Developers

    +
    +
    +
  • +
  • +
    +
    + + + +
    +
    +

    Carefully crafted code for Components

    +
    +
    +
  • +
  • +
    +
    + + + +
    +
    +

    Dynamic Javascript Components

    +
    +
    +
  • +
+
+
+
+ ... +
+
+
+
+
+

Beautiful Example Pages

+

Notus Tailwind JS is a completly new product built using our past experience in web templates. Take the examples we made for you and start playing with them.

+
+
+
+
+
+
+
+
+
+
Login Page
+ +
+ ... +
+
+
+
+
Profile Page
+ +
+ ... +
+
+
+
+
Landing Page
+ +
+ ... +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+

Open Source

+

Since Tailwind CSS is an open source project we wanted to continue this movement too. You can give this version a try to feel the design and also test the quality of the code!

+

Get it free on Github and please help us spread the news with a Star!

+ Github Star +
+
+ +
+
+
+
+
+
+ + + +
+
+
+
+

+ 😍 +

+

Do you love this Starter Kit?

+

Cause if you do, it can be yours now. Hit the buttons below to navigate to get the Free version for your next project. Build a new web app or give an old project a new look!

+ +
+
+
+
+
+@endsection + +@section('footer') +
+
+ + + +
+
+
+
+

Let's keep in touch!

+
Find us on any of these platforms, we respond 1-2 business days.
+
+ + + + +
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
Copyright © Notus Tailwind JS by Creative Tim .
+
+
+
+
+@endsection diff --git a/resources/views/templates/samuel-coming-soon/page.blade.php b/resources/views/templates/samuel-coming-soon/page.blade.php new file mode 100644 index 0000000..e827d6f --- /dev/null +++ b/resources/views/templates/samuel-coming-soon/page.blade.php @@ -0,0 +1,93 @@ +@extends('vuexy-website-layout-simple-koneko::layouts.samuel-coming-soon.master') + +@section('content') +
+
+ +
+ LOGO +

We are Almost there!

+

Stay tuned for something amazing!!!

+ +
+
+
+ + +
+
+
+ + +
+
+@endsection diff --git a/src/Providers/VuexyWebsiteLayoutSimpleKonekoServiceProvider.php b/src/Providers/VuexyWebsiteLayoutSimpleKonekoServiceProvider.php new file mode 100644 index 0000000..70f7ab7 --- /dev/null +++ b/src/Providers/VuexyWebsiteLayoutSimpleKonekoServiceProvider.php @@ -0,0 +1,18 @@ +registerKonekoModule(dirname(__DIR__)); + } +} diff --git a/src/koneko-vuexy.module.php b/src/koneko-vuexy.module.php new file mode 100644 index 0000000..1c2f2af --- /dev/null +++ b/src/koneko-vuexy.module.php @@ -0,0 +1,53 @@ + 'Template Simple Koneko', + 'description' => 'Plantilla Simple Koneko para el modulo vuexy-website-admin, banners, widgets y CSS personalizado.', + 'type' => 'plugin', + 'tags' => ['koneko-official', 'plantilla', 'banners', 'simple', 'css', 'template', 'vuexy-website-admin', 'website'], + + // ⚙️ Namespace de configuraciones Koneko Vuexy Admin + 'componentNamespace' => 'website-layout-simple-koneko', + + // 🧠 Metadatos visuales para UI del gestor + 'ui' => [ + 'image' => 'resources/img/module-cover.png', + 'readme' => 'README.md', + ], + + // 📁 Recursos cargables: vistas, traducciones, migraciones + 'views' => [ + 'anonymous' => 'resources/views/templates/anonymous', + 'landwind' => 'resources/views/templates/landwind', + 'limaa-m' => 'resources/views/templates/limaa-m', + 'maximus' => 'resources/views/templates/maximus', + 'notus' => 'resources/views/templates/notus', + 'samuel-coming-soon' => 'resources/views/templates/samuel-coming-soon', + 'vuexy-website-layout-simple-koneko' => 'resources/views/', + ], + + // 🧩 Componentes Blade y Livewire + 'bladeComponents' => [ + 'anonymous' => 'resources/views/templates/anonymous/components', + 'landwind' => 'resources/views/templates/landwind/components', + 'limaa-m' => 'resources/views/templates/limaa-m/components', + 'maximus' => 'resources/views/templates/maximus/components', + 'notus' => 'resources/views/templates/notus/components', + 'samuel-coming-soon' => 'resources/views/templates/samuel-coming-soon/components', + ], + + // 📁 Publicar archivos + 'publishedFiles' => [ + 'assets-anonymous' => [ + 'resources/public/templates/anonymous' => public_path('vendor/koneko-layout/anonymous'), + 'resources/public/templates/landwind' => public_path('vendor/koneko-layout/landwind'), + 'resources/public/templates/limaa-m' => public_path('vendor/koneko-layout/limaa-m'), + 'resources/public/templates/maximus' => public_path('vendor/koneko-layout/maximus'), + 'resources/public/templates/notus' => public_path('vendor/koneko-layout/notus'), + 'resources/public/templates/samuel-coming-soon' => public_path('vendor/koneko-layout/samuel-coming-soon'), + ], + ], +];