quasarwind 1.1.1 β†’ 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,11 @@
1
1
  # quasarwind
2
+ Allows you to create a Node.js project for programming in Vue 3+ with Quasar, Tailwind CSS, Flowbite, and daisyUI. You can add `!important` to Tailwind CSS classes if styles are not applying.
2
3
 
4
+ # instruction install
3
5
  ### 1. install
4
6
  npm i -g quasarwind
5
7
  ### 2. Create project
6
8
  $ quasarwind name_project
9
+ ### 3. Command help
10
+ $ quasarwind -h or $ quasarwind --help
7
11
 
package/bin/index.js CHANGED
@@ -38,10 +38,11 @@ const showHelp = () => {
38
38
  console.log("πŸš€ Quasarwind CLI - Help");
39
39
  console.log("------------------------------------------------------------------");
40
40
  console.log("βœ… Available commands:");
41
- console.log("\n πŸ“Œ version, -v Show version");
42
- console.log(" ✨ create <name_project> Scaffolds a new project");
43
- console.log(" πŸ› οΈ dev, d Run development server");
44
- console.log(" πŸ“¦ build, b Compile for prodution");
41
+ console.log("\n πŸ“Œ version, -v Show version");
42
+ console.log(" ✨ create <name_project> Scaffolds a new project");
43
+ console.log(" πŸ› οΈ dev, d Run development server");
44
+ console.log(" πŸ› οΈ clean, c Clean files generate after build");
45
+ console.log(" πŸ“¦ build, b Compile for prodution");
45
46
  console.log("\n----------------------------------------------------------------");
46
47
  }
47
48
 
@@ -0,0 +1,303 @@
1
+ # 🎨 Instrucciones para Especialista Frontend
2
+
3
+ **Eres un especialisat en diseΓ±o y programador front-end
4
+ Stack: Vue 3 + TypeScript + Tailwind + Flowbite + DaisyUI + Quasar (selectivo).
5
+ **
6
+
7
+ ---
8
+
9
+ ## 1. 🎯 Propósito
10
+
11
+ Este documento define las **reglas, convenciones y responsabilidades** para el desarrollo del frontend del proyecto.
12
+
13
+ El objetivo es construir una interfaz:
14
+
15
+ - Escalable y mantenible
16
+ - Totalmente tipada
17
+ - Basada en composiciΓ³n y reutilizaciΓ³n
18
+ - Visualmente consistente
19
+ - Independiente de la lΓ³gica de negocio
20
+ - La interfaz va ser relacionada a los requicitos que defina el usaurio
21
+
22
+ La **lΓ³gica vive en composables**, no en los componentes.
23
+
24
+ ---
25
+
26
+ ## 2. 🧰 Stack Tecnológico Obligatorio
27
+
28
+ ### Core
29
+
30
+ - **Vue 3** (Composition API)
31
+ - **TypeScript** (`strict: true`)
32
+ - **Vite**
33
+
34
+ ### UI / Estilos
35
+
36
+ - **Tailwind CSS**
37
+ - **Flowbite** (componentes base)
38
+ - **DaisyUI** (utilidades y temas)
39
+ - **Quasar** β†’ ❗ _solo para componentes especΓ­ficos_ (ej: `QSelect`, `QDialog`)
40
+
41
+ ### Estado y Arquitectura
42
+
43
+ - **Pinia** (estado global)
44
+ - **Composables** (toda la lΓ³gica)
45
+ - **Vue Router**
46
+
47
+ ---
48
+
49
+ ## 3. πŸ“‚ Estructura de Carpetas
50
+
51
+ ### La estructura estΓ‘ orientada a **composiciΓ³n y reutilizaciΓ³n**, no a vistas monolΓ­ticas. ej:
52
+
53
+ ```
54
+ src/
55
+ β”œβ”€β”€ assets/
56
+ β”‚ β”œβ”€β”€ images/
57
+ β”‚ β”œβ”€β”€ icons/
58
+ β”‚ └── fonts/
59
+ β”‚
60
+ β”œβ”€β”€ css/
61
+ β”‚ β”œβ”€β”€ main.css
62
+ β”‚ └── tailwind.css
63
+ β”‚
64
+ β”œβ”€β”€ components/
65
+ β”‚ β”œβ”€β”€ ui/
66
+ β”‚ β”‚ β”œβ”€β”€ Button.vue
67
+ β”‚ β”‚ β”œβ”€β”€ Modal.vue
68
+ β”‚ β”‚ └── Input.vue
69
+ β”‚ β”‚
70
+ β”‚ └── layout/
71
+ β”‚ └── AppHeader.vue
72
+ β”‚
73
+ β”œβ”€β”€ layouts/
74
+ β”‚ β”œβ”€β”€ DefaultLayout.vue
75
+ β”‚ └── AuthLayout.vue
76
+ β”‚
77
+ β”œβ”€β”€ pages/
78
+ β”‚ β”œβ”€β”€ HomePage.vue
79
+ β”‚ └── LoginPage.vue
80
+ β”‚
81
+ β”œβ”€β”€ composables/
82
+ β”‚ β”œβ”€β”€ useAuth.ts
83
+ β”‚ β”œβ”€β”€ useFetch.ts
84
+ β”‚ └── useForm.ts
85
+ β”‚
86
+ β”œβ”€β”€ stores/
87
+ β”‚ β”œβ”€β”€ auth.store.ts
88
+ β”‚ └── ui.store.ts
89
+ β”‚
90
+ β”œβ”€β”€ router/
91
+ β”‚ └── index.ts
92
+ β”‚
93
+ β”œβ”€β”€ services/
94
+ β”‚ └── api.ts
95
+ β”‚
96
+ β”œβ”€β”€ types/
97
+ β”‚ └── index.ts
98
+ β”‚
99
+ β”œβ”€β”€ App.vue
100
+ β”œβ”€β”€ main.ts
101
+ β”œβ”€β”€ vite-env.d.ts
102
+ └── shims-vue.d.ts
103
+
104
+ ```
105
+
106
+ ---
107
+
108
+ ## 4. 🧠 Principios de Arquitectura
109
+
110
+ ### Regla de Oro
111
+
112
+ - **Los componentes NO contienen lΓ³gica de negocio**
113
+ - **SeparaciΓ³n clara**
114
+ - **Componentes β†’ UI pura**
115
+ - **Composables β†’ lΓ³gica, estado local, efectos**
116
+ - **Pinia β†’ estado global**
117
+ - **Services β†’ comunicaciΓ³n HTTP**
118
+ - **Pages β†’ orquestan, no procesan**
119
+
120
+ ---
121
+
122
+ ## 5. 🧩 Componentes
123
+
124
+ ## Reglas
125
+
126
+ - **Deben ser presentacionales**
127
+ - **Props estrictamente tipadas** ej:
128
+ ```
129
+ interface Props = {
130
+ modelValue: string
131
+ disabled?: boolean
132
+ }
133
+ const props = defineProps<Props>()
134
+ ```
135
+ - **Sin llamadas HTTP**
136
+ - **Sin lΓ³gica compleja**
137
+ - **Emiten eventos, no decisiones**
138
+
139
+ ---
140
+
141
+ ## 6. πŸ” Composables (Centro de la LΓ³gica)
142
+
143
+ - **Toda la lΓ³gica debe vivir aquΓ­ ej: `user.ts`**
144
+
145
+ ```
146
+ export function useUsers() {
147
+ const users = ref<User[]>([])
148
+ const isLoading = ref(false)
149
+
150
+ async function fetchUsers() {
151
+ isLoading.value = true
152
+ users.value = await api.get('/users')
153
+ isLoading.value = false
154
+ }
155
+
156
+ return {
157
+ users,
158
+ fetchUsers,
159
+ isLoading
160
+ }
161
+ }
162
+ ```
163
+
164
+ - **Fetch de datos**
165
+ - **Validaciones**
166
+ - **Transformaciones**
167
+ - **Estados locales**
168
+ - **IntegraciΓ³n con stores**
169
+
170
+ ---
171
+
172
+ ## 7. πŸ—ƒοΈ Estado Global (Pinia)
173
+
174
+ ### CuΓ‘ndo usar Pinia
175
+
176
+ - **AutenticaciΓ³n**
177
+ - **Usuario actual**
178
+ - **UI global (modales, loaders)**
179
+ - **Datos compartidos entre pΓ‘ginas**
180
+
181
+ ### CuΓ‘ndo NO usarlo
182
+
183
+ - **Estado local de un formulario**
184
+ - **Datos temporales**
185
+ - **LΓ³gica de componentes**
186
+
187
+ ---
188
+
189
+ ## 8. 🎨 UI Libraries – Reglas de Uso
190
+
191
+ ### Generales
192
+
193
+ Las clases `css` que existen en `Quasar` y `Tailwinds` solo pueden ser usadas en los componentes de quasar eje de clases:
194
+
195
+ - `hidden`
196
+ - **Regla de Estilo CSS**: "Siempre que generes o sugieras clases de utilidad para el modo oscuro (aquellas que comienzan con el prefijo `dark:`), debes aΓ±adir obligatoriamente un signo de exclamaciΓ³n ! al final de la clase (ejemplo: `dark:bg-slate-800!`). Esto es necesario para asegurar la prioridad sobre los estilos base de Quasar. Por favor, aΓ±ade este punto a tu checklist de revisiΓ³n de cΓ³digo antes de entregar cualquier componente Vue."
197
+ ej:
198
+ #### Mal (sin instruir):
199
+ ```
200
+ <div class="bg-white dark:bg-black">
201
+ ```
202
+ #### Bien (con tu instrucciΓ³n):
203
+ ```
204
+ <div class="bg-white dark:bg-black!">
205
+ ```
206
+
207
+ ### Tailwind CSS
208
+
209
+ - **Base del styling**
210
+ - **Clases utilitarias**
211
+ - **Nada de CSS global innecesario**
212
+
213
+ ### Flowbite
214
+
215
+ - **Componentes base (buttons, modals, dropdowns)**
216
+ - **Se pueden extender con Tailwind**
217
+
218
+ ### DaisyUI
219
+
220
+ - **Temas**
221
+ - **Variantes rΓ‘pidas**
222
+ - **Utilidades visuales**
223
+
224
+ ### Quasar (Uso Restringido)
225
+
226
+ #### Solo usar para componentes especΓ­ficos, por ejemplo:
227
+
228
+ - **QSelect**
229
+ - **QDialog**
230
+ - **QDatePicker**
231
+
232
+ #### No usar:
233
+
234
+ - **Layout**
235
+ - **Sistema de grid**
236
+ - **Theming global**
237
+
238
+ ---
239
+
240
+ ## 9. πŸ”Œ ComunicaciΓ³n con API
241
+
242
+ Toda llamada HTTP debe pasar por `services/api.ts` ej:
243
+
244
+ ```
245
+ interface Api {
246
+ get: <T>(url: string) => Promise<T>
247
+ post: <T>(url: string, data: unknown) => Promise<T>
248
+ }
249
+
250
+ const api: Api = {
251
+ get: <T>(url: string): Promise<T> => { ... },
252
+ post: <T>(url: string, data: unknown): Promise<T> => { ... }
253
+ }
254
+ ```
255
+
256
+ Nunca llamar fetch o axios directamente desde componentes.
257
+
258
+ ---
259
+
260
+ ## 10. πŸ“ Convenciones Obligatorias
261
+
262
+ - **script setup `lang="ts"`**
263
+ - **Tipado estricto en props, emits y retornos**
264
+ - **Nombres de composables con use**
265
+ - **Un composable = una responsabilidad**
266
+ - **Nada de lΓ³gica en templates**
267
+ - **Usa interface para**: Definir la estructura de componentes, objetos de la API, modelos de datos y contratos de clases.
268
+ - **Usa type para**: Tipos lΓ³gicos, uniones, alias de tipos simples o cuando necesitas manipular tipos (Pick, Omit, etc.).
269
+
270
+ ---
271
+
272
+ ## 11. ❌ Antipatrones
273
+
274
+ - **LΓ³gica en componentes**
275
+ - **Stores gigantes**
276
+ - **Estilos inline**
277
+ - **Componentes dependientes de API**
278
+ - **Uso excesivo de Quasar**
279
+
280
+ ---
281
+
282
+ ## 12. βœ… Checklist antes de entregar
283
+
284
+ - **ΒΏLa lΓ³gica estΓ‘ en un composable?**
285
+ - **ΒΏEl componente es reutilizable?**
286
+ - **ΒΏTodo estΓ‘ tipado?**
287
+ - **ΒΏPinia solo cuando aplica?**
288
+ - **ΒΏUI consistente con Tailwind / Flowbite / DaisyUI?**
289
+ - **ΒΏUI cubre todos los requisitos?**
290
+ - **Interfaces estilo apple concistente**
291
+ - **ΒΏUI consistente similares visualmente a las de apple?**
292
+ - **ΒΏAsync y await consistentes ?**
293
+ - **ΒΏSeparacion entre componentes sea optima y la mas adecuada?**
294
+ - **ΒΏEl idioma siempre es el portugues de Brasil?**
295
+ - **Evita el errores de Linter como:**.
296
+ 1. """Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.eslint@typescript-eslint/no-floating-promises""".
297
+ 2. """var x is defined but never used.eslint@typescript-eslint/no-unused-vars"""
298
+ ---
299
+
300
+ ## 13. πŸ“Œ Fuente de Verdad
301
+
302
+ Este documento define cΓ³mo se escribe frontend en este proyecto.
303
+ Cualquier excepciΓ³n debe estar justificada y documentada.
@@ -10,6 +10,7 @@
10
10
  "dependencies": {
11
11
  "@quasar/extras": "^1.17.0",
12
12
  "@tailwindcss/vite": "^4.1.13",
13
+ "flowbite": "^4.0.1",
13
14
  "pinia": "^3.0.3",
14
15
  "quasar": "^2.18.5",
15
16
  "tailwindcss": "^4.1.13",
@@ -38,6 +39,18 @@
38
39
  "vue-tsc": "^3.0.7"
39
40
  }
40
41
  },
42
+ "node_modules/@alloc/quick-lru": {
43
+ "version": "5.2.0",
44
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
45
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
46
+ "license": "MIT",
47
+ "engines": {
48
+ "node": ">=10"
49
+ },
50
+ "funding": {
51
+ "url": "https://github.com/sponsors/sindresorhus"
52
+ }
53
+ },
41
54
  "node_modules/@babel/code-frame": {
42
55
  "version": "7.28.6",
43
56
  "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz",
@@ -1823,6 +1836,16 @@
1823
1836
  "dev": true,
1824
1837
  "license": "MIT"
1825
1838
  },
1839
+ "node_modules/@popperjs/core": {
1840
+ "version": "2.11.8",
1841
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
1842
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
1843
+ "license": "MIT",
1844
+ "funding": {
1845
+ "type": "opencollective",
1846
+ "url": "https://opencollective.com/popperjs"
1847
+ }
1848
+ },
1826
1849
  "node_modules/@quasar/app-vite": {
1827
1850
  "version": "2.4.0",
1828
1851
  "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-2.4.0.tgz",
@@ -1983,6 +2006,64 @@
1983
2006
  "dev": true,
1984
2007
  "license": "MIT"
1985
2008
  },
2009
+ "node_modules/@rollup/plugin-node-resolve": {
2010
+ "version": "15.3.1",
2011
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz",
2012
+ "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==",
2013
+ "license": "MIT",
2014
+ "dependencies": {
2015
+ "@rollup/pluginutils": "^5.0.1",
2016
+ "@types/resolve": "1.20.2",
2017
+ "deepmerge": "^4.2.2",
2018
+ "is-module": "^1.0.0",
2019
+ "resolve": "^1.22.1"
2020
+ },
2021
+ "engines": {
2022
+ "node": ">=14.0.0"
2023
+ },
2024
+ "peerDependencies": {
2025
+ "rollup": "^2.78.0||^3.0.0||^4.0.0"
2026
+ },
2027
+ "peerDependenciesMeta": {
2028
+ "rollup": {
2029
+ "optional": true
2030
+ }
2031
+ }
2032
+ },
2033
+ "node_modules/@rollup/pluginutils": {
2034
+ "version": "5.3.0",
2035
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
2036
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
2037
+ "license": "MIT",
2038
+ "dependencies": {
2039
+ "@types/estree": "^1.0.0",
2040
+ "estree-walker": "^2.0.2",
2041
+ "picomatch": "^4.0.2"
2042
+ },
2043
+ "engines": {
2044
+ "node": ">=14.0.0"
2045
+ },
2046
+ "peerDependencies": {
2047
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
2048
+ },
2049
+ "peerDependenciesMeta": {
2050
+ "rollup": {
2051
+ "optional": true
2052
+ }
2053
+ }
2054
+ },
2055
+ "node_modules/@rollup/pluginutils/node_modules/picomatch": {
2056
+ "version": "4.0.3",
2057
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
2058
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
2059
+ "license": "MIT",
2060
+ "engines": {
2061
+ "node": ">=12"
2062
+ },
2063
+ "funding": {
2064
+ "url": "https://github.com/sponsors/jonschlinkert"
2065
+ }
2066
+ },
1986
2067
  "node_modules/@rollup/rollup-android-arm-eabi": {
1987
2068
  "version": "4.55.1",
1988
2069
  "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz",
@@ -2551,6 +2632,19 @@
2551
2632
  "node": ">= 10"
2552
2633
  }
2553
2634
  },
2635
+ "node_modules/@tailwindcss/postcss": {
2636
+ "version": "4.1.18",
2637
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz",
2638
+ "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==",
2639
+ "license": "MIT",
2640
+ "dependencies": {
2641
+ "@alloc/quick-lru": "^5.2.0",
2642
+ "@tailwindcss/node": "4.1.18",
2643
+ "@tailwindcss/oxide": "4.1.18",
2644
+ "postcss": "^8.4.41",
2645
+ "tailwindcss": "4.1.18"
2646
+ }
2647
+ },
2554
2648
  "node_modules/@tailwindcss/vite": {
2555
2649
  "version": "4.1.18",
2556
2650
  "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz",
@@ -2726,6 +2820,12 @@
2726
2820
  "dev": true,
2727
2821
  "license": "MIT"
2728
2822
  },
2823
+ "node_modules/@types/resolve": {
2824
+ "version": "1.20.2",
2825
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
2826
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
2827
+ "license": "MIT"
2828
+ },
2729
2829
  "node_modules/@types/send": {
2730
2830
  "version": "1.2.1",
2731
2831
  "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
@@ -4436,6 +4536,15 @@
4436
4536
  "dev": true,
4437
4537
  "license": "MIT"
4438
4538
  },
4539
+ "node_modules/deepmerge": {
4540
+ "version": "4.3.1",
4541
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
4542
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
4543
+ "license": "MIT",
4544
+ "engines": {
4545
+ "node": ">=0.10.0"
4546
+ }
4547
+ },
4439
4548
  "node_modules/default-browser": {
4440
4549
  "version": "5.4.0",
4441
4550
  "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
@@ -5376,6 +5485,29 @@
5376
5485
  "dev": true,
5377
5486
  "license": "ISC"
5378
5487
  },
5488
+ "node_modules/flowbite": {
5489
+ "version": "4.0.1",
5490
+ "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-4.0.1.tgz",
5491
+ "integrity": "sha512-UwUjvnqrQTiFm3uMJ0WWnzKXKoDyNyfyEzoNnxmZo6KyDzCedjqZw1UW0Oqdn+E0iYVdPu0fizydJN6e4pP9Rw==",
5492
+ "license": "MIT",
5493
+ "dependencies": {
5494
+ "@popperjs/core": "^2.9.3",
5495
+ "flowbite-datepicker": "^2.0.0",
5496
+ "mini-svg-data-uri": "^1.4.3",
5497
+ "postcss": "^8.5.1",
5498
+ "tailwindcss": "^4.1.12"
5499
+ }
5500
+ },
5501
+ "node_modules/flowbite-datepicker": {
5502
+ "version": "2.0.0",
5503
+ "resolved": "https://registry.npmjs.org/flowbite-datepicker/-/flowbite-datepicker-2.0.0.tgz",
5504
+ "integrity": "sha512-m81hl0Bimq45MUg4maJLOnXrX+C9lZ0AkjMb9uotuVUSr729k/YiymWDfVAm63AYDH7g7y3rI3ke3XaBzWWqLw==",
5505
+ "license": "MIT",
5506
+ "dependencies": {
5507
+ "@rollup/plugin-node-resolve": "^15.2.3",
5508
+ "@tailwindcss/postcss": "^4.1.17"
5509
+ }
5510
+ },
5379
5511
  "node_modules/foreground-child": {
5380
5512
  "version": "3.3.1",
5381
5513
  "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
@@ -5446,7 +5578,6 @@
5446
5578
  "version": "1.1.2",
5447
5579
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
5448
5580
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
5449
- "dev": true,
5450
5581
  "license": "MIT",
5451
5582
  "funding": {
5452
5583
  "url": "https://github.com/sponsors/ljharb"
@@ -5604,7 +5735,6 @@
5604
5735
  "version": "2.0.2",
5605
5736
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
5606
5737
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
5607
- "dev": true,
5608
5738
  "license": "MIT",
5609
5739
  "dependencies": {
5610
5740
  "function-bind": "^1.1.2"
@@ -5794,6 +5924,21 @@
5794
5924
  "node": ">=8"
5795
5925
  }
5796
5926
  },
5927
+ "node_modules/is-core-module": {
5928
+ "version": "2.16.1",
5929
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
5930
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
5931
+ "license": "MIT",
5932
+ "dependencies": {
5933
+ "hasown": "^2.0.2"
5934
+ },
5935
+ "engines": {
5936
+ "node": ">= 0.4"
5937
+ },
5938
+ "funding": {
5939
+ "url": "https://github.com/sponsors/ljharb"
5940
+ }
5941
+ },
5797
5942
  "node_modules/is-docker": {
5798
5943
  "version": "3.0.0",
5799
5944
  "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
@@ -5872,6 +6017,12 @@
5872
6017
  "node": ">=8"
5873
6018
  }
5874
6019
  },
6020
+ "node_modules/is-module": {
6021
+ "version": "1.0.0",
6022
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
6023
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
6024
+ "license": "MIT"
6025
+ },
5875
6026
  "node_modules/is-number": {
5876
6027
  "version": "7.0.0",
5877
6028
  "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -6620,6 +6771,15 @@
6620
6771
  "node": ">=6"
6621
6772
  }
6622
6773
  },
6774
+ "node_modules/mini-svg-data-uri": {
6775
+ "version": "1.4.4",
6776
+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
6777
+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
6778
+ "license": "MIT",
6779
+ "bin": {
6780
+ "mini-svg-data-uri": "cli.js"
6781
+ }
6782
+ },
6623
6783
  "node_modules/minimatch": {
6624
6784
  "version": "9.0.5",
6625
6785
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -7033,6 +7193,12 @@
7033
7193
  "node": ">=8"
7034
7194
  }
7035
7195
  },
7196
+ "node_modules/path-parse": {
7197
+ "version": "1.0.7",
7198
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
7199
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
7200
+ "license": "MIT"
7201
+ },
7036
7202
  "node_modules/path-scurry": {
7037
7203
  "version": "1.11.1",
7038
7204
  "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -7433,6 +7599,26 @@
7433
7599
  "node": ">=0.10.0"
7434
7600
  }
7435
7601
  },
7602
+ "node_modules/resolve": {
7603
+ "version": "1.22.11",
7604
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
7605
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
7606
+ "license": "MIT",
7607
+ "dependencies": {
7608
+ "is-core-module": "^2.16.1",
7609
+ "path-parse": "^1.0.7",
7610
+ "supports-preserve-symlinks-flag": "^1.0.0"
7611
+ },
7612
+ "bin": {
7613
+ "resolve": "bin/resolve"
7614
+ },
7615
+ "engines": {
7616
+ "node": ">= 0.4"
7617
+ },
7618
+ "funding": {
7619
+ "url": "https://github.com/sponsors/ljharb"
7620
+ }
7621
+ },
7436
7622
  "node_modules/resolve-from": {
7437
7623
  "version": "4.0.0",
7438
7624
  "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -8546,6 +8732,18 @@
8546
8732
  "node": ">=8"
8547
8733
  }
8548
8734
  },
8735
+ "node_modules/supports-preserve-symlinks-flag": {
8736
+ "version": "1.0.0",
8737
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
8738
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
8739
+ "license": "MIT",
8740
+ "engines": {
8741
+ "node": ">= 0.4"
8742
+ },
8743
+ "funding": {
8744
+ "url": "https://github.com/sponsors/ljharb"
8745
+ }
8746
+ },
8549
8747
  "node_modules/sync-child-process": {
8550
8748
  "version": "1.0.2",
8551
8749
  "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz",
@@ -13,6 +13,7 @@
13
13
  "dependencies": {
14
14
  "@quasar/extras": "^1.17.0",
15
15
  "@tailwindcss/vite": "^4.1.13",
16
+ "flowbite": "^4.0.1",
16
17
  "pinia": "^3.0.3",
17
18
  "quasar": "^2.18.5",
18
19
  "tailwindcss": "^4.1.13",
@@ -1 +1,7 @@
1
- @import "tailwindcss";
1
+ @import url('./font.css');
2
+
3
+ @import 'tailwindcss';
4
+
5
+ @import 'flowbite/src/themes/default';
6
+
7
+ @plugin "daisyui";
@@ -0,0 +1,5 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
2
+
3
+ @import url('https://fonts.googleapis.com/css2?family=Playwrite+GB+J+Guides:ital@0;1&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap');
4
+
5
+ @import url('https://fonts.googleapis.com/css2?family=Gravitas+One&display=swap');
@@ -1,6 +1,5 @@
1
- import { createApp } from 'vue'
2
- import { Quasar } from 'quasar'
3
-
1
+ // Import Quasar css
2
+ import 'quasar/src/css/index.sass'
4
3
  // Import icon libraries
5
4
  import '@quasar/extras/roboto-font/roboto-font.css'
6
5
  import '@quasar/extras/material-icons/material-icons.css'
@@ -18,12 +17,14 @@ import '@quasar/extras/eva-icons/eva-icons.css'
18
17
  import '@quasar/extras/themify/themify.css'
19
18
  import '@quasar/extras/line-awesome/line-awesome.css'
20
19
  import '@quasar/extras/bootstrap-icons/bootstrap-icons.css'
20
+
21
21
  import './css/app.css'
22
22
 
23
- // Import Quasar css
24
- import 'quasar/src/css/index.sass'
23
+
25
24
  // Assumes your root component is App.vue
26
25
  // and placed in same folder as main.js
26
+ import { createApp } from 'vue'
27
+ import { Quasar } from 'quasar'
27
28
  import App from './App.vue'
28
29
  import { router } from './router'
29
30
  import { createPinia } from 'pinia'
@@ -2,7 +2,7 @@
2
2
  "compilerOptions": {
3
3
  "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
4
  "target": "ES2023",
5
- "lib": ["ES2023"],
5
+ "lib": ["ES2023", "DOM"],
6
6
  "module": "ESNext",
7
7
  "skipLibCheck": true,
8
8
 
@@ -8,6 +8,7 @@ import vueDevTools from 'vite-plugin-vue-devtools'
8
8
 
9
9
  // https://vitejs.dev/config/
10
10
  export default defineConfig({
11
+ base: `/${path.basename(path.dirname(__filename))}`,
11
12
  resolve: {
12
13
  alias:
13
14
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasarwind",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "type": "module",
5
5
  "description": "CLI for generating custom project vite with Quasar and Tailwind",
6
6
  "bin": {
@@ -15,7 +15,8 @@
15
15
  "router",
16
16
  "typescript",
17
17
  "eslint",
18
- "prettier"
18
+ "prettier",
19
+ "flowbite"
19
20
  ],
20
21
  "author": "Edilberto Coello Savigne",
21
22
  "license": "MIT",