@awes-io/ui 2.142.3 → 2.143.0

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.
Files changed (236) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/assets/css/components/_index.css +7 -1
  3. package/assets/css/components/animation.css +38 -32
  4. package/assets/css/components/content-placeholder.css +103 -0
  5. package/assets/css/components/empty-container.css +69 -1
  6. package/assets/css/components/filter-chosen.css +6 -0
  7. package/assets/css/components/filter-date-range.css +17 -1
  8. package/assets/css/components/filter-month.css +23 -17
  9. package/assets/css/components/filter-select.css +11 -0
  10. package/assets/css/components/layout.css +1 -32
  11. package/assets/css/components/modal.css +1 -1
  12. package/assets/css/components/number.css +12 -0
  13. package/assets/css/components/page-aside.css +54 -0
  14. package/assets/js/css.js +1 -1
  15. package/assets/js/icons/mono.js +59 -91
  16. package/assets/js/icons/multicolor.js +1 -31
  17. package/components/1_atoms/AwContentPlaceholder.vue +60 -0
  18. package/components/1_atoms/AwFlow.vue +21 -48
  19. package/components/1_atoms/AwLabel.vue +1 -1
  20. package/components/2_molecules/AwButton.vue +1 -1
  21. package/components/2_molecules/AwEmptyContainer.vue +74 -72
  22. package/components/2_molecules/AwNumber.vue +180 -0
  23. package/components/2_molecules/AwSelect.vue +11 -4
  24. package/components/3_organisms/AwFilterChosen.vue +73 -0
  25. package/components/3_organisms/AwFilterDateRange.vue +177 -0
  26. package/components/3_organisms/AwFilterMonth.vue +37 -40
  27. package/components/3_organisms/AwFilterSelect.vue +368 -0
  28. package/components/3_organisms/AwMultiBlockBuilder.vue +1 -1
  29. package/components/3_organisms/AwTable/AwTableBuilder.vue +12 -60
  30. package/components/4_pages/AwPageAside.vue +108 -0
  31. package/components/5_layouts/AwLayoutCenter.vue +3 -8
  32. package/components/5_layouts/_AwUserMenu.vue +1 -1
  33. package/dist/css/aw-icons.css +26 -0
  34. package/dist/fonts/aw-icons.svg +18 -0
  35. package/dist/fonts/aw-icons.ttf +0 -0
  36. package/dist/fonts/aw-icons.woff +0 -0
  37. package/dist/fonts/aw-icons.woff2 +0 -0
  38. package/docs/_template.md +80 -0
  39. package/docs/components/atoms/aw-accordion-fold.md +91 -0
  40. package/docs/components/atoms/aw-action-card-body.md +67 -0
  41. package/docs/components/atoms/aw-action-card.md +94 -0
  42. package/docs/components/atoms/aw-action-icon.md +88 -0
  43. package/docs/components/atoms/aw-avatar.md +106 -0
  44. package/docs/components/atoms/aw-card.md +112 -0
  45. package/docs/components/atoms/aw-checkbox.md +112 -0
  46. package/docs/components/atoms/aw-content-placeholder.md +116 -0
  47. package/docs/components/atoms/aw-description.md +83 -0
  48. package/docs/components/atoms/aw-dock.md +84 -0
  49. package/docs/components/atoms/aw-dropdown-button.md +94 -0
  50. package/docs/components/atoms/aw-dropdown.md +128 -0
  51. package/docs/components/atoms/aw-file.md +73 -0
  52. package/docs/components/atoms/aw-flow.md +92 -0
  53. package/docs/components/atoms/aw-grid.md +91 -0
  54. package/docs/components/atoms/aw-headline.md +71 -0
  55. package/docs/components/atoms/aw-icon-system-color.md +121 -0
  56. package/docs/components/atoms/aw-icon-system-mono.md +205 -0
  57. package/docs/components/atoms/aw-icon.md +235 -0
  58. package/docs/components/atoms/aw-info.md +85 -0
  59. package/docs/components/atoms/aw-input.md +120 -0
  60. package/docs/components/atoms/aw-label.md +83 -0
  61. package/docs/components/atoms/aw-link.md +99 -0
  62. package/docs/components/atoms/aw-list.md +88 -0
  63. package/docs/components/atoms/aw-progress.md +70 -0
  64. package/docs/components/atoms/aw-radio.md +109 -0
  65. package/docs/components/atoms/aw-refresh-wrapper.md +81 -0
  66. package/docs/components/atoms/aw-select-native.md +106 -0
  67. package/docs/components/atoms/aw-slider.md +82 -0
  68. package/docs/components/atoms/aw-sub-headline.md +73 -0
  69. package/docs/components/atoms/aw-switcher.md +115 -0
  70. package/docs/components/atoms/aw-tag.md +80 -0
  71. package/docs/components/atoms/aw-title.md +70 -0
  72. package/docs/components/atoms/aw-toggler.md +69 -0
  73. package/docs/components/layouts/aw-layout-center.md +168 -0
  74. package/docs/components/layouts/aw-layout-error.md +153 -0
  75. package/docs/components/layouts/aw-layout-provider.md +238 -0
  76. package/docs/components/layouts/aw-layout.md +88 -0
  77. package/docs/components/molecules/aw-action-button.md +91 -0
  78. package/docs/components/molecules/aw-alert.md +96 -0
  79. package/docs/components/molecules/aw-badge.md +108 -0
  80. package/docs/components/molecules/aw-banner-text.md +90 -0
  81. package/docs/components/molecules/aw-button-nav.md +46 -0
  82. package/docs/components/molecules/aw-button.md +123 -0
  83. package/docs/components/molecules/aw-description-input.md +67 -0
  84. package/docs/components/molecules/aw-empty-container.md +86 -0
  85. package/docs/components/molecules/aw-island.md +234 -0
  86. package/docs/components/molecules/aw-number.md +138 -0
  87. package/docs/components/molecules/aw-select-object.md +401 -0
  88. package/docs/components/molecules/aw-select.md +215 -0
  89. package/docs/components/molecules/aw-tab-nav.md +108 -0
  90. package/docs/components/molecules/aw-tel.md +129 -0
  91. package/docs/components/molecules/aw-textarea.md +83 -0
  92. package/docs/components/molecules/aw-userpic.md +115 -0
  93. package/docs/components/organisms/aw-address-block.md +64 -0
  94. package/docs/components/organisms/aw-address.md +132 -0
  95. package/docs/components/organisms/aw-birthday-picker.md +73 -0
  96. package/docs/components/organisms/aw-bottom-bar.md +66 -0
  97. package/docs/components/organisms/aw-calendar-days.md +115 -0
  98. package/docs/components/organisms/aw-calendar-nav.md +98 -0
  99. package/docs/components/organisms/aw-calendar-view.md +98 -0
  100. package/docs/components/organisms/aw-calendar.md +166 -0
  101. package/docs/components/organisms/aw-chart.md +154 -0
  102. package/docs/components/organisms/aw-chip-select.md +164 -0
  103. package/docs/components/organisms/aw-chip.md +126 -0
  104. package/docs/components/organisms/aw-code-snippet.md +94 -0
  105. package/docs/components/organisms/aw-code.md +132 -0
  106. package/docs/components/organisms/aw-context-menu.md +117 -0
  107. package/docs/components/organisms/aw-cropper.md +151 -0
  108. package/docs/components/organisms/aw-date.md +161 -0
  109. package/docs/components/organisms/aw-display-date.md +33 -0
  110. package/docs/components/organisms/aw-download-link.md +46 -0
  111. package/docs/components/organisms/aw-fetch-data.md +161 -0
  112. package/docs/components/organisms/aw-filter-chosen.md +226 -0
  113. package/docs/components/organisms/aw-filter-date-range.md +205 -0
  114. package/docs/components/organisms/aw-filter-month.md +43 -0
  115. package/docs/components/organisms/aw-filter-select.md +225 -0
  116. package/docs/components/organisms/aw-form.md +174 -0
  117. package/docs/components/organisms/aw-gmap-marker.md +86 -0
  118. package/docs/components/organisms/aw-gmap.md +90 -0
  119. package/docs/components/organisms/aw-image-upload.md +56 -0
  120. package/docs/components/organisms/aw-island-avatar.md +87 -0
  121. package/docs/components/organisms/aw-markdown-editor.md +104 -0
  122. package/docs/components/organisms/aw-modal-buttons.md +57 -0
  123. package/docs/components/organisms/aw-modal.md +246 -0
  124. package/docs/components/organisms/aw-model-edit.md +74 -0
  125. package/docs/components/organisms/aw-money.md +53 -0
  126. package/docs/components/organisms/aw-multi-block-builder.md +165 -0
  127. package/docs/components/organisms/aw-pagination.md +121 -0
  128. package/docs/components/organisms/aw-password.md +103 -0
  129. package/docs/components/organisms/aw-preview-card.md +45 -0
  130. package/docs/components/organisms/aw-search.md +116 -0
  131. package/docs/components/organisms/aw-subnav.md +122 -0
  132. package/docs/components/organisms/aw-table-builder.md +165 -0
  133. package/docs/components/organisms/aw-table-col.md +123 -0
  134. package/docs/components/organisms/aw-table-head.md +92 -0
  135. package/docs/components/organisms/aw-table-row.md +91 -0
  136. package/docs/components/organisms/aw-table.md +172 -0
  137. package/docs/components/organisms/aw-tags.md +54 -0
  138. package/docs/components/organisms/aw-toggle-show-aside.md +43 -0
  139. package/docs/components/organisms/aw-uploader-files.md +125 -0
  140. package/docs/components/organisms/aw-uploader.md +163 -0
  141. package/docs/components/organisms/aw-user-menu.md +87 -0
  142. package/docs/components/pages/aw-page-aside.md +296 -0
  143. package/docs/components/pages/aw-page-menu-buttons.md +172 -0
  144. package/docs/components/pages/aw-page-modal.md +198 -0
  145. package/docs/components/pages/aw-page-single.md +253 -0
  146. package/docs/components/pages/aw-page.md +194 -0
  147. package/docs/configuration.md +493 -0
  148. package/docs/cookbook/advanced-patterns.md +1388 -0
  149. package/docs/cookbook/common-patterns.md +965 -0
  150. package/docs/cookbook/index.md +786 -0
  151. package/docs/getting-started.md +596 -0
  152. package/docs/guides/best-practices.md +1106 -0
  153. package/docs/guides/data-fetching.md +852 -0
  154. package/docs/guides/error-handling.md +1172 -0
  155. package/docs/guides/forms-guide.md +1329 -0
  156. package/docs/guides/mobile-subnavigation.md +359 -0
  157. package/docs/guides/page-patterns/aside-pages.md +1418 -0
  158. package/docs/guides/page-patterns/dashboard-pages.md +990 -0
  159. package/docs/guides/page-patterns/detail-pages.md +1493 -0
  160. package/docs/guides/page-patterns/list-pages.md +1094 -0
  161. package/docs/index.md +263 -1
  162. package/docs/integrations.md +870 -0
  163. package/docs/reference/menu.md +462 -0
  164. package/docs/reference/plugins.md +970 -0
  165. package/docs/reference/troubleshooting.md +945 -0
  166. package/nuxt/awes.config.js +9 -8
  167. package/nuxt/icons.css +26 -0
  168. package/nuxt/index.js +2 -2
  169. package/nuxt/pages/more.vue +1 -1
  170. package/package.json +5 -3
  171. package/readme.md +171 -1
  172. package/docs/aw-accordion-fold.md +0 -46
  173. package/docs/aw-address.md +0 -44
  174. package/docs/aw-avatar.md +0 -51
  175. package/docs/aw-badge.md +0 -32
  176. package/docs/aw-button-nav.md +0 -44
  177. package/docs/aw-button.md +0 -50
  178. package/docs/aw-calendar-days.md +0 -46
  179. package/docs/aw-calendar-nav.md +0 -25
  180. package/docs/aw-calendar-view.md +0 -12
  181. package/docs/aw-calendar.md +0 -59
  182. package/docs/aw-card.md +0 -48
  183. package/docs/aw-chart.md +0 -51
  184. package/docs/aw-checkbox.md +0 -56
  185. package/docs/aw-chip-select.md +0 -46
  186. package/docs/aw-chip.md +0 -53
  187. package/docs/aw-code-snippet.md +0 -18
  188. package/docs/aw-code.md +0 -56
  189. package/docs/aw-content-wrapper.md +0 -40
  190. package/docs/aw-context-menu.md +0 -31
  191. package/docs/aw-cropper.md +0 -60
  192. package/docs/aw-dashboard-card.md +0 -37
  193. package/docs/aw-dashboard-donut.md +0 -30
  194. package/docs/aw-dashboard-line.md +0 -20
  195. package/docs/aw-dashboard-progress.md +0 -33
  196. package/docs/aw-dashboard-section.md +0 -32
  197. package/docs/aw-dashboard-speed.md +0 -30
  198. package/docs/aw-date.md +0 -52
  199. package/docs/aw-dropdown-button.md +0 -31
  200. package/docs/aw-dropdown.md +0 -69
  201. package/docs/aw-fetch-data.md +0 -45
  202. package/docs/aw-form.md +0 -52
  203. package/docs/aw-grid.md +0 -48
  204. package/docs/aw-icon.md +0 -50
  205. package/docs/aw-info.md +0 -53
  206. package/docs/aw-input.md +0 -55
  207. package/docs/aw-layout-default.md +0 -30
  208. package/docs/aw-layout-frame-center.md +0 -29
  209. package/docs/aw-layout-simple.md +0 -49
  210. package/docs/aw-link.md +0 -54
  211. package/docs/aw-markdown-editor.md +0 -51
  212. package/docs/aw-modal.md +0 -63
  213. package/docs/aw-multi-block-builder.md +0 -66
  214. package/docs/aw-page.md +0 -36
  215. package/docs/aw-pagination.md +0 -54
  216. package/docs/aw-password.md +0 -48
  217. package/docs/aw-radio.md +0 -54
  218. package/docs/aw-search.md +0 -49
  219. package/docs/aw-select.md +0 -93
  220. package/docs/aw-slider.md +0 -40
  221. package/docs/aw-svg-image.md +0 -19
  222. package/docs/aw-switcher.md +0 -51
  223. package/docs/aw-tab-nav.md +0 -55
  224. package/docs/aw-table-builder.md +0 -58
  225. package/docs/aw-table-col.md +0 -33
  226. package/docs/aw-table-head.md +0 -28
  227. package/docs/aw-table-row.md +0 -33
  228. package/docs/aw-table.md +0 -59
  229. package/docs/aw-tel.md +0 -47
  230. package/docs/aw-textarea.md +0 -47
  231. package/docs/aw-toggler.md +0 -41
  232. package/docs/aw-uploader-files.md +0 -20
  233. package/docs/aw-uploader.md +0 -60
  234. package/docs/aw-user-menu.md +0 -34
  235. package/docs/aw-userpic.md +0 -34
  236. /package/components/{3_organisms → 2_molecules}/AwTel.vue +0 -0
@@ -0,0 +1,596 @@
1
+ ---
2
+ metaTitle: Getting Started | AwesCode UI
3
+ meta:
4
+ - name: description
5
+ content: Quick start guide for AwesCode UI component library - installation, setup, and basic usage.
6
+ title: Getting Started
7
+ ---
8
+
9
+ # Getting Started
10
+
11
+ Get up and running with AwesCode UI component library in minutes.
12
+
13
+ ## Framework Overview
14
+
15
+ The AwesCode UI framework consists of 4 integrated packages:
16
+
17
+ 1. **@awes-io/ui** - UI component library (this package)
18
+ 2. **@awes-io/nuxt-laravel** - Laravel backend integration
19
+ 3. **@awes-io/nuxt-auth** - Authentication with JWT and 2FA
20
+ 4. **vue-mc** - Model and collection layer for API data
21
+
22
+ For complete integration guide, see [Framework Integration](./integrations.md).
23
+
24
+ ## Installation
25
+
26
+ Install the packages via npm or yarn:
27
+
28
+ ```bash
29
+ # UI components (required)
30
+ npm install @awes-io/ui
31
+
32
+ # Laravel integration (recommended)
33
+ npm install @awes-io/nuxt-laravel
34
+
35
+ # Authentication (recommended)
36
+ npm install @awes-io/nuxt-auth
37
+
38
+ # or install all at once
39
+ npm install @awes-io/ui @awes-io/nuxt-laravel @awes-io/nuxt-auth
40
+ ```
41
+
42
+ ## Setup
43
+
44
+ ### Nuxt.js Setup
45
+
46
+ Add the modules to your `nuxt.config.js`:
47
+
48
+ ```javascript
49
+ export default {
50
+ modules: [
51
+ '@awes-io/nuxt-laravel', // 1. Laravel integration
52
+ '@awes-io/nuxt-auth', // 2. Authentication
53
+ '@awes-io/ui' // 3. UI components
54
+ ],
55
+
56
+ // Required: Enable components auto-import
57
+ components: true,
58
+
59
+ // Required: Enable Vuex store
60
+ store: true,
61
+
62
+ // Environment variables
63
+ env: {
64
+ LARAVEL_URL: process.env.LARAVEL_URL || 'http://localhost:8000'
65
+ }
66
+ }
67
+ ```
68
+
69
+ ### Configuration
70
+
71
+ The framework supports two types of configuration:
72
+
73
+ 1. **Static Configuration** (`awes.config.js`) - For logos, colors, fonts, and i18n settings
74
+ 2. **Dynamic Component Configuration** (Plugin) - For component defaults that may change at runtime
75
+
76
+ #### Quick Setup
77
+
78
+ Create `awes.config.js` in your project root:
79
+
80
+ ```javascript
81
+ export default {
82
+ logo: {
83
+ src: '/logo.svg',
84
+ alt: 'My App'
85
+ }
86
+ }
87
+
88
+ export const dark = {
89
+ logo: {
90
+ src: '/logo-dark.svg'
91
+ }
92
+ }
93
+
94
+ // Optional: Configure i18n if you need to customize language settings
95
+ // Defaults are: locale: 'en', locales: ['en']
96
+ export const lang = {
97
+ locales: ['en', 'es', 'fr'],
98
+ locale: 'en'
99
+ }
100
+ ```
101
+
102
+ Create `plugins/components.js` for dynamic component configuration:
103
+
104
+ ```javascript
105
+ import Vue from 'vue'
106
+ import { CONFIG_VAR } from '@AwUtils/component'
107
+
108
+ export default async ({ app }) => {
109
+ Vue.prototype[CONFIG_VAR] = Vue.prototype[CONFIG_VAR] || {}
110
+
111
+ // Configure component defaults
112
+ Vue.prototype[CONFIG_VAR].AwButton = {
113
+ size: 'md',
114
+ color: 'accent',
115
+ theme: 'solid'
116
+ }
117
+ }
118
+ ```
119
+
120
+ Register the plugin in `nuxt.config.js`:
121
+
122
+ ```javascript
123
+ export default {
124
+ plugins: ['~/plugins/components.js']
125
+ }
126
+ ```
127
+
128
+ For complete configuration options, see the [Configuration Guide](./configuration.md).
129
+
130
+ ## Component System
131
+
132
+ Components are organized into 5 categories following atomic design:
133
+
134
+ ### 1. Atoms (Global)
135
+
136
+ Basic building blocks automatically available everywhere:
137
+
138
+ ```markup
139
+ <template>
140
+ <div>
141
+ <AwButton>Click me</AwButton>
142
+ <AwInput v-model="name" label="Name" />
143
+ <AwCheckbox v-model="agreed">I agree</AwCheckbox>
144
+ </div>
145
+ </template>
146
+ ```
147
+
148
+ ### 2. Molecules (Global)
149
+
150
+ Combinations of atoms, mostly global:
151
+
152
+ ```markup
153
+ <template>
154
+ <div>
155
+ <AwSelect v-model="country" :options="countries" label="Country" />
156
+ <AwTextarea v-model="bio" label="Bio" rows="4" />
157
+ <AwAlert>This is an alert message</AwAlert>
158
+ </div>
159
+ </template>
160
+ ```
161
+
162
+ ### 3. Organisms (Dynamic)
163
+
164
+ Complex components, dynamically imported:
165
+
166
+ ```markup
167
+ <template>
168
+ <div>
169
+ <AwForm url="/api/submit" @sended="onSuccess">
170
+ <AwInput name="title" label="Title" />
171
+ <AwButton type="submit">Submit</AwButton>
172
+ </AwForm>
173
+
174
+ <AwModal :show="showModal" @close="showModal = false">
175
+ <template #title>Modal Title</template>
176
+ <p>Modal content</p>
177
+ </AwModal>
178
+
179
+ <AwTable :data="items" :columns="columns" />
180
+ </div>
181
+ </template>
182
+ ```
183
+
184
+ ### 4. Pages (Dynamic)
185
+
186
+ Top-level page components:
187
+
188
+ ```markup
189
+ <template>
190
+ <AwPage title="My Page">
191
+ <AwCard>
192
+ <p>Page content</p>
193
+ </AwCard>
194
+ </AwPage>
195
+ </template>
196
+ ```
197
+
198
+ ### 5. Layouts (Dynamic)
199
+
200
+ Root-level layout components:
201
+
202
+ ```markup
203
+ <template>
204
+ <AwLayout>
205
+ <AwPage title="Dashboard">
206
+ <!-- content -->
207
+ </AwPage>
208
+ </AwLayout>
209
+ </template>
210
+ ```
211
+
212
+ ## Your First Page
213
+
214
+ ### 1. Create a Menu Plugin
215
+
216
+ Create `plugins/menu.js` to configure navigation menus:
217
+
218
+ ```javascript
219
+ export default function({ store }) {
220
+ store.commit('awesIo/SET_MENU_ITEMS', {
221
+ main: [
222
+ { text: 'Dashboard', href: '/', icon: 'dashboard' },
223
+ { text: 'Users', href: '/users', icon: 'users' },
224
+ { text: 'Settings', href: '/settings', icon: 'settings' }
225
+ ],
226
+ user: [
227
+ { text: 'Profile', href: '/profile', icon: 'user' },
228
+ { text: 'Settings', href: '/settings', icon: 'cogs' },
229
+ { text: 'Logout', href: '/logout', icon: 'logout' }
230
+ ]
231
+ })
232
+ }
233
+ ```
234
+
235
+ Register the plugin in `nuxt.config.js`:
236
+
237
+ ```javascript
238
+ export default {
239
+ plugins: [
240
+ '~/plugins/menu.js'
241
+ ]
242
+ }
243
+ ```
244
+
245
+ ### 2. Create a Layout
246
+
247
+ ```markup
248
+ <!-- layouts/default.vue -->
249
+ <template>
250
+ <AwLayout>
251
+ <nuxt />
252
+ </AwLayout>
253
+ </template>
254
+ ```
255
+
256
+ ### 3. Create a Page
257
+
258
+ ```markup
259
+ <!-- pages/index.vue -->
260
+ <template>
261
+ <AwPage title="Dashboard">
262
+ <template #buttons>
263
+ <AwButton href="/create" icon="plus">
264
+ Create New
265
+ </AwButton>
266
+ </template>
267
+
268
+ <AwGrid :cols="{ default: 1, md: 2, lg: 3 }" :gap="4">
269
+ <AwCard title="Total Users">
270
+ <div class="text-4xl font-bold">1,234</div>
271
+ <AwDescription>Active users</AwDescription>
272
+ </AwCard>
273
+
274
+ <AwCard title="Revenue">
275
+ <div class="text-4xl font-bold">$45,678</div>
276
+ <AwDescription>This month</AwDescription>
277
+ </AwCard>
278
+
279
+ <AwCard title="Growth">
280
+ <div class="text-4xl font-bold">+23%</div>
281
+ <AwDescription>Compared to last month</AwDescription>
282
+ </AwCard>
283
+ </AwGrid>
284
+ </AwPage>
285
+ </template>
286
+ ```
287
+
288
+ ### 4. Create a Form Page
289
+
290
+ ```markup
291
+ <!-- pages/users/create.vue -->
292
+ <template>
293
+ <AwPage title="Create User">
294
+ <AwCard>
295
+ <AwForm url="/api/users" method="post" @sended="onUserCreated">
296
+ <AwGrid :cols="2" :gap="4">
297
+ <AwInput name="first_name" label="First Name" required />
298
+ <AwInput name="last_name" label="Last Name" required />
299
+ </AwGrid>
300
+
301
+ <AwInput name="email" label="Email" type="email" required />
302
+
303
+ <AwSelect
304
+ name="role"
305
+ label="Role"
306
+ :options="['Admin', 'Editor', 'User']"
307
+ required
308
+ />
309
+
310
+ <AwPassword name="password" label="Password" required minlength="8" />
311
+
312
+ <AwFlow justify="end" :gap="2">
313
+ <AwButton href="/users" color="mono">Cancel</AwButton>
314
+ <AwButton type="submit">Create User</AwButton>
315
+ </AwFlow>
316
+ </AwForm>
317
+ </AwCard>
318
+ </AwPage>
319
+ </template>
320
+
321
+ <script>
322
+ export default {
323
+ methods: {
324
+ onUserCreated(response) {
325
+ this.$notify({ title: 'User created successfully!' })
326
+ this.$router.push('/users')
327
+ }
328
+ }
329
+ }
330
+ </script>
331
+ ```
332
+
333
+ ## Common Patterns
334
+
335
+ ### Using Forms
336
+
337
+ ```markup
338
+ <AwForm url="/api/endpoint" method="post" @sended="onSuccess" @error="onError">
339
+ <AwInput name="field" label="Label" required />
340
+ <AwButton type="submit">Submit</AwButton>
341
+ </AwForm>
342
+ ```
343
+
344
+ ### Data Tables
345
+
346
+ ```markup
347
+ <AwTableBuilder
348
+ url="/api/users"
349
+ :columns="[
350
+ { name: 'name', label: 'Name', sortable: true },
351
+ { name: 'email', label: 'Email', sortable: true },
352
+ { name: 'role', label: 'Role' }
353
+ ]"
354
+ />
355
+ ```
356
+
357
+ ### Modals
358
+
359
+ ```markup
360
+ <template>
361
+ <div>
362
+ <AwButton @click="showModal = true">Open Modal</AwButton>
363
+
364
+ <AwModal :show="showModal" @close="showModal = false">
365
+ <template #title>Modal Title</template>
366
+ <p>Modal content</p>
367
+ <template #buttons>
368
+ <AwButton @click="showModal = false">Close</AwButton>
369
+ </template>
370
+ </AwModal>
371
+ </div>
372
+ </template>
373
+ ```
374
+
375
+ ### Notifications
376
+
377
+ ```markup
378
+ <script>
379
+ export default {
380
+ methods: {
381
+ showNotification() {
382
+ this.$notify({
383
+ message: 'Operation completed successfully!',
384
+ type: 'success'
385
+ })
386
+ }
387
+ }
388
+ }
389
+ </script>
390
+ ```
391
+
392
+ ## Navigation Setup
393
+
394
+ Set up your app navigation using a menu plugin (`plugins/menu.js`):
395
+
396
+ ```javascript
397
+ export default function({ store }) {
398
+ // Main navigation menu
399
+ store.commit('awesIo/SET_MENU_ITEMS', {
400
+ main: [
401
+ {
402
+ text: 'Dashboard',
403
+ href: '/',
404
+ icon: 'dashboard'
405
+ },
406
+ {
407
+ text: 'Users',
408
+ icon: 'users',
409
+ key: 'users',
410
+ href: '/users',
411
+ children: [
412
+ { text: 'All Users', href: '/users' },
413
+ { text: 'Add User', href: '/users/create' },
414
+ { text: 'Roles', href: '/roles' }
415
+ ]
416
+ },
417
+ {
418
+ text: 'Products',
419
+ href: '/products',
420
+ icon: 'box',
421
+ badge: 5
422
+ }
423
+ ],
424
+ user: [
425
+ { text: 'Profile', href: '/profile', icon: 'user' },
426
+ { text: 'Settings', href: '/settings', icon: 'settings' },
427
+ { text: 'Logout', href: '/logout', icon: 'logout' }
428
+ ]
429
+ })
430
+ }
431
+ ```
432
+
433
+ Register the plugin in `nuxt.config.js`:
434
+
435
+ ```javascript
436
+ export default {
437
+ plugins: [
438
+ '~/plugins/menu.js'
439
+ ]
440
+ }
441
+ ```
442
+
443
+ **For sections with submenu items:** See [Mobile Subnavigation Pattern](./guides/mobile-subnavigation.md) to create mobile navigation hubs that automatically redirect desktop users to content pages.
444
+
445
+ ## Theming & Styling
446
+
447
+ ### Dark Theme
448
+
449
+ The library includes automatic dark theme support:
450
+
451
+ ```javascript
452
+ // Toggle dark theme
453
+ this.$store.dispatch('awesIo/toggleTheme')
454
+
455
+ // Check current theme
456
+ const isDark = this.$store.getters['awesIo/isDarkTheme']
457
+ ```
458
+
459
+ ### Custom CSS
460
+
461
+ Override component styles in your CSS:
462
+
463
+ ```css
464
+ /* Override button colors */
465
+ .aw-button--accent {
466
+ --btn-bg: #your-color;
467
+ --btn-text: #fff;
468
+ }
469
+
470
+ /* Customize input styles */
471
+ .aw-text-field {
472
+ --input-border: #your-border-color;
473
+ --input-focus: #your-focus-color;
474
+ }
475
+ ```
476
+
477
+ ## Responsive Design
478
+
479
+ All components are mobile-first and responsive:
480
+
481
+ ```markup
482
+ <!-- Responsive grid -->
483
+ <AwGrid
484
+ :cols="{ default: 1, sm: 2, md: 3, lg: 4 }"
485
+ :gap="{ default: 2, md: 4 }"
486
+ >
487
+ <!-- content -->
488
+ </AwGrid>
489
+
490
+ <!-- Responsive visibility -->
491
+ <div v-if="$screen.lg">Desktop only</div>
492
+ <div v-if="!$screen.lg">Mobile only</div>
493
+ ```
494
+
495
+ ## Plugins & Utilities
496
+
497
+ The library provides several utilities:
498
+
499
+ ### Screen Breakpoints
500
+
501
+ ```javascript
502
+ // Access screen size
503
+ if (this.$screen.lg) {
504
+ // Desktop view
505
+ }
506
+
507
+ // Available breakpoints: xs, sm, md, lg, xl
508
+ ```
509
+
510
+ ### Router Extensions
511
+
512
+ ```javascript
513
+ // Enhanced router methods
514
+ this.$router.pushBack('/fallback-url')
515
+ this.$router.setBack('/previous-page')
516
+ ```
517
+
518
+ ### Notifications
519
+
520
+ ```javascript
521
+ // Show notification
522
+ this.$notify({
523
+ message: 'Success!',
524
+ type: 'success' // success, error, warning, info
525
+ })
526
+ ```
527
+
528
+ ### Config Access
529
+
530
+ ```javascript
531
+ // Access config
532
+ const logoSrc = this.$awes._config.logo.src
533
+ ```
534
+
535
+ ## Next Steps
536
+
537
+ ### Essential Guides
538
+
539
+ - **[Configuration Guide](./configuration.md)** - Complete configuration reference
540
+ - **[Framework Integration](./integrations.md)** - Complete setup with all packages
541
+ - **[List Pages](./guides/page-patterns/list-pages.md)** - Build list pages with tables
542
+ - **[Detail Pages](./guides/page-patterns/detail-pages.md)** - Create/edit forms
543
+ - **[Mobile Subnavigation](./guides/mobile-subnavigation.md)** - Mobile navigation hubs with submenus
544
+ - **[Best Practices](./guides/best-practices.md)** - Framework patterns and conventions
545
+
546
+ ### Component Documentation
547
+
548
+ - **[Component Index](./index.md)** - Browse all available components
549
+ - **[Forms Guide](./guides/forms-guide.md)** - Form patterns and validation
550
+ - **[Component Cookbook](./cookbook/)** - Real-world examples
551
+
552
+ ### Package Documentation
553
+
554
+ - **[Vue-MC Models & Collections](../../vue-mc/docs/)** - Data layer documentation
555
+ - **[Nuxt-Auth](../../nuxt-auth/docs/)** - Authentication setup
556
+ - **[Nuxt-Laravel](../../nuxt-laravel/docs/)** - Laravel integration
557
+
558
+ ### Learning Path
559
+
560
+ **Beginner** (getting started):
561
+ 1. Read [Framework Integration](./integrations.md)
562
+ 2. Follow [List Pages Guide](./guides/page-patterns/list-pages.md)
563
+ 3. Follow [Detail Pages Guide](./guides/page-patterns/detail-pages.md)
564
+
565
+ **Intermediate** (building features):
566
+ 1. Study [Best Practices](./guides/best-practices.md)
567
+ 2. Learn [Data Fetching Patterns](./guides/data-fetching.md)
568
+ 3. Implement [Error Handling](./guides/error-handling.md)
569
+
570
+ **Advanced** (complex features):
571
+ 1. Explore [Common Patterns](./cookbook/common-patterns.md)
572
+ 2. Study [Advanced Patterns](./cookbook/advanced-patterns.md)
573
+ 3. Review [Troubleshooting Guide](./reference/troubleshooting.md)
574
+
575
+ ## Common Issues
576
+
577
+ ### Components Not Found
578
+
579
+ Make sure you have:
580
+ 1. Added `@awes-io/ui` to `modules` in `nuxt.config.js`
581
+ 2. Enabled `components: true`
582
+ 3. Enabled `store: true` for Vuex
583
+
584
+ ### Styles Not Loading
585
+
586
+ Ensure your Nuxt config includes the module before other modules that might interfere with CSS loading.
587
+
588
+ ### Icons Not Showing
589
+
590
+ The library uses custom icon sets. Make sure your `awes.config.js` is properly configured and icon assets are available.
591
+
592
+ ## Support
593
+
594
+ - **Issues**: [GitHub Issues](https://github.com/awes-io/ui/issues)
595
+ - **Discussions**: [GitHub Discussions](https://github.com/awes-io/ui/discussions)
596
+ - **Documentation**: [Component Docs](index.md)