admin-lte 4.0.0-alpha1 → 4.0.0-alpha3

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 (200) hide show
  1. package/.bundlewatch.config.json +8 -8
  2. package/.cache/.eslintcache +1 -0
  3. package/.cache/.stylelintcache +1 -0
  4. package/.eslintignore +1 -0
  5. package/.eslintrc.json +16 -0
  6. package/.gitpod.yml +1 -1
  7. package/.idea/AdminLTE.iml +4 -0
  8. package/.idea/codeStyles/Project.xml +24 -0
  9. package/.idea/dbnavigator.xml +421 -0
  10. package/.idea/git_toolbox_prj.xml +15 -0
  11. package/.idea/jsLibraryMappings.xml +6 -0
  12. package/.idea/jsLinters/eslint.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.stylelintrc.json +47 -0
  15. package/LICENSE +1 -1
  16. package/README.md +6 -7
  17. package/dist/assets/img/AdminLTEFullLogo.png +0 -0
  18. package/dist/css/adminlte.css +2716 -2710
  19. package/dist/css/adminlte.css.map +1 -1
  20. package/dist/css/adminlte.min.css +2 -2
  21. package/dist/css/adminlte.min.css.map +1 -1
  22. package/dist/css/{rtl/adminlte.rtl.css → adminlte.rtl.css} +2715 -2710
  23. package/dist/css/adminlte.rtl.css.map +1 -0
  24. package/dist/css/adminlte.rtl.min.css +7 -0
  25. package/dist/css/adminlte.rtl.min.css.map +1 -0
  26. package/dist/js/adminlte.js +204 -233
  27. package/dist/js/adminlte.js.map +1 -1
  28. package/dist/js/adminlte.min.js +6 -1
  29. package/dist/js/adminlte.min.js.map +1 -1
  30. package/dist/pages/UI/timeline.html +869 -0
  31. package/dist/pages/docs/browser-support.html +755 -0
  32. package/dist/pages/docs/color-mode.html +1067 -0
  33. package/dist/pages/docs/components/main-header.html +1137 -0
  34. package/dist/pages/docs/components/main-sidebar.html +858 -0
  35. package/dist/pages/docs/faq.html +743 -0
  36. package/dist/pages/docs/how-to-contribute.html +783 -0
  37. package/dist/pages/docs/introduction.html +767 -0
  38. package/dist/pages/docs/javascript/treeview.html +762 -0
  39. package/dist/pages/docs/layout.html +788 -0
  40. package/dist/pages/docs/license.html +746 -0
  41. package/dist/pages/examples/lockscreen.html +107 -0
  42. package/dist/pages/examples/login-v2.html +148 -0
  43. package/dist/pages/examples/login.html +128 -196
  44. package/dist/pages/examples/register-v2.html +155 -0
  45. package/dist/pages/examples/register.html +131 -199
  46. package/dist/pages/forms/general.html +1065 -652
  47. package/dist/pages/index.html +1320 -0
  48. package/dist/pages/index2.html +1776 -0
  49. package/dist/pages/index3.html +1111 -0
  50. package/dist/pages/layout/collapsed-sidebar.html +766 -0
  51. package/dist/pages/layout/fixed-complete.html +867 -0
  52. package/dist/pages/layout/fixed-sidebar.html +749 -654
  53. package/dist/pages/layout/layout-rtl.html +766 -0
  54. package/dist/pages/layout/logo-switch.html +433 -0
  55. package/dist/pages/layout/sidebar-mini.html +766 -0
  56. package/dist/pages/layout/unfixed-sidebar.html +747 -654
  57. package/dist/pages/tables/simple.html +1049 -946
  58. package/dist/pages/widgets/cards.html +974 -713
  59. package/dist/pages/widgets/info-box.html +1062 -966
  60. package/dist/pages/widgets/small-box.html +792 -694
  61. package/index.html +6 -15
  62. package/package.json +59 -39
  63. package/src/assets/img/AdminLTEFullLogo.png +0 -0
  64. package/src/config/assets.config.mjs +8 -0
  65. package/src/config/astro.config.mjs +19 -0
  66. package/src/config/postcss.config.mjs +15 -0
  67. package/src/config/rollup.config.js +20 -0
  68. package/src/html/.eslintrc.json +24 -0
  69. package/src/html/.prettierrc.js +11 -0
  70. package/src/html/.tsconfig.json +4 -0
  71. package/src/html/components/_head.astro +47 -0
  72. package/src/html/components/_scripts.astro +51 -0
  73. package/src/html/components/dashboard/_footer.astro +18 -0
  74. package/src/html/components/dashboard/_sidenav.astro +553 -0
  75. package/src/html/components/dashboard/_topbar.astro +213 -0
  76. package/src/html/components/docs/browser-support.mdx +23 -0
  77. package/src/html/components/docs/color-mode.mdx +169 -0
  78. package/src/{partials/dashboard/_topbar.html → html/components/docs/components/main-header.mdx} +67 -67
  79. package/src/html/components/docs/components/main-sidebar.mdx +129 -0
  80. package/src/html/components/docs/faq.mdx +11 -0
  81. package/src/html/components/docs/how-to-contribute.mdx +34 -0
  82. package/src/html/components/docs/introduction.mdx +60 -0
  83. package/src/html/components/docs/license.mdx +9 -0
  84. package/src/html/components/javascript/treeview.mdx +39 -0
  85. package/src/html/env.d.ts +1 -0
  86. package/src/html/pages/UI/timeline.astro +221 -0
  87. package/src/html/pages/docs/browser-support.astro +71 -0
  88. package/src/html/pages/docs/color-mode.astro +271 -0
  89. package/src/html/pages/docs/components/main-header.astro +319 -0
  90. package/src/html/pages/docs/components/main-sidebar.astro +71 -0
  91. package/src/html/pages/docs/faq.astro +71 -0
  92. package/src/html/pages/docs/how-to-contribute.astro +71 -0
  93. package/src/html/pages/docs/introduction.astro +71 -0
  94. package/src/html/pages/docs/javascript/treeview.astro +71 -0
  95. package/src/html/pages/docs/layout.astro +120 -0
  96. package/src/html/pages/docs/license.astro +71 -0
  97. package/src/html/pages/examples/lockscreen.astro +63 -0
  98. package/src/html/pages/examples/login-v2.astro +109 -0
  99. package/src/{pages/examples/login.html → html/pages/examples/login.astro} +40 -22
  100. package/src/html/pages/examples/register-v2.astro +116 -0
  101. package/src/{pages/examples/register.html → html/pages/examples/register.astro} +42 -24
  102. package/src/html/pages/forms/general.astro +624 -0
  103. package/src/html/pages/index.astro +790 -0
  104. package/src/html/pages/index2.astro +1345 -0
  105. package/src/html/pages/index3.astro +513 -0
  106. package/src/html/pages/layout/collapsed-sidebar.astro +110 -0
  107. package/src/html/pages/layout/fixed-complete.astro +209 -0
  108. package/src/html/pages/layout/fixed-sidebar.astro +109 -0
  109. package/src/html/pages/layout/layout-rtl.astro +109 -0
  110. package/src/html/pages/layout/logo-switch.astro +212 -0
  111. package/src/html/pages/layout/sidebar-mini.astro +108 -0
  112. package/src/html/pages/layout/unfixed-sidebar.astro +107 -0
  113. package/src/html/pages/tables/simple.astro +472 -0
  114. package/src/html/pages/widgets/cards.astro +373 -0
  115. package/src/{pages/widgets/info-box.html → html/pages/widgets/info-box.astro} +110 -60
  116. package/src/html/pages/widgets/small-box.astro +182 -0
  117. package/src/scss/_app-content.scss +52 -0
  118. package/src/scss/_app-footer.scss +15 -0
  119. package/src/scss/_app-header.scss +26 -0
  120. package/src/scss/_app-main.scss +17 -0
  121. package/src/scss/_app-sidebar.scss +603 -0
  122. package/src/scss/{_wrapper.scss → _app-wrapper.scss} +8 -4
  123. package/src/scss/_bootstrap-variables.scss +42 -27
  124. package/src/scss/_callouts.scss +34 -0
  125. package/src/scss/_cards.scss +54 -224
  126. package/src/scss/_compact-mode.scss +79 -0
  127. package/src/scss/_direct-chat.scss +15 -9
  128. package/src/scss/_docs.scss +4 -0
  129. package/src/scss/_dropdown.scss +7 -5
  130. package/src/scss/_info-box.scss +2 -6
  131. package/src/scss/_miscellaneous.scss +0 -455
  132. package/src/scss/_mixins.scss +0 -6
  133. package/src/scss/_root.scss +2 -58
  134. package/src/scss/_small-box.scss +15 -41
  135. package/src/scss/_table.scss +0 -50
  136. package/src/scss/_timeline.scss +120 -0
  137. package/src/scss/_variables-dark.scss +15 -8
  138. package/src/scss/_variables.scss +48 -136
  139. package/src/scss/adminlte.scss +1 -1
  140. package/src/scss/mixins/_animations.scss +0 -1
  141. package/src/scss/mixins/_scrollbar.scss +2 -2
  142. package/src/scss/pages/_lockscreen.scss +74 -0
  143. package/src/scss/pages/_login_and_register.scss +1 -5
  144. package/src/scss/parts/_core.scss +9 -15
  145. package/src/scss/parts/_extra-components.scss +1 -2
  146. package/src/scss/parts/_pages.scss +1 -0
  147. package/src/ts/adminlte.ts +0 -2
  148. package/src/ts/card-widget.ts +57 -66
  149. package/src/ts/direct-chat.ts +35 -10
  150. package/src/ts/layout.ts +8 -6
  151. package/src/ts/push-menu.ts +90 -158
  152. package/src/ts/treeview.ts +30 -30
  153. package/src/ts/util/index.ts +14 -12
  154. package/src/utils/index.js +28 -0
  155. package/tsconfig.json +11 -3
  156. package/.stylelintrc +0 -40
  157. package/CHECKLIST.md +0 -0
  158. package/dist/css/rtl/adminlte.rtl.css.map +0 -1
  159. package/dist/css/rtl/adminlte.rtl.min.css +0 -7
  160. package/dist/css/rtl/adminlte.rtl.min.css.map +0 -1
  161. package/dist/index.html +0 -1065
  162. package/dist/index2.html +0 -1629
  163. package/dist/index3.html +0 -1015
  164. package/gulpfile.js +0 -315
  165. package/src/index.html +0 -476
  166. package/src/index2.html +0 -968
  167. package/src/index3.html +0 -430
  168. package/src/pages/forms/general.html +0 -97
  169. package/src/pages/layout/fixed-sidebar.html +0 -87
  170. package/src/pages/layout/unfixed-sidebar.html +0 -87
  171. package/src/pages/tables/simple.html +0 -336
  172. package/src/pages/widgets/cards.html +0 -143
  173. package/src/pages/widgets/small-box.html +0 -124
  174. package/src/partials/_head.html +0 -31
  175. package/src/partials/_scripts.html +0 -95
  176. package/src/partials/dashboard/_footer.html +0 -9
  177. package/src/partials/dashboard/_sidenav.html +0 -244
  178. package/src/scss/_brand-container.scss +0 -72
  179. package/src/scss/_content-header.scss +0 -9
  180. package/src/scss/_content-wrapper.scss +0 -6
  181. package/src/scss/_content.scss +0 -3
  182. package/src/scss/_layout-fixed.scss +0 -43
  183. package/src/scss/_layout-mobile.scss +0 -22
  184. package/src/scss/_main-footer.scss +0 -28
  185. package/src/scss/_main-header.scss +0 -40
  186. package/src/scss/_main-sidebar.scss +0 -63
  187. package/src/scss/_nav-sidebar.scss +0 -66
  188. package/src/scss/_products.scss +0 -55
  189. package/src/scss/_sidebar-close.scss +0 -6
  190. package/src/scss/_sidebar-collapse.scss +0 -120
  191. package/src/scss/_sidebar-horizontal.scss +0 -67
  192. package/src/scss/_sidebar.scss +0 -11
  193. package/src/scss/_users-list.scss +0 -45
  194. package/src/scss/mixins/_brand-variant.scss +0 -9
  195. package/src/scss/mixins/_cards.scss +0 -53
  196. package/src/scss/mixins/_direct-chat.scss +0 -17
  197. package/src/scss/mixins/_header-variant.scss +0 -22
  198. package/src/scss/mixins/_nav-treeview-dark.scss +0 -87
  199. package/src/scss/mixins/_nav-treeview-light.scss +0 -89
  200. package/src/scss/mixins/_sidebar-color.scss +0 -9
@@ -0,0 +1,624 @@
1
+ ---
2
+ import Head from "@components/_head.astro";
3
+ import Footer from "@components/dashboard/_footer.astro";
4
+ import Topbar from "@components/dashboard/_topbar.astro";
5
+ import Sidenav from "@components/dashboard/_sidenav.astro";
6
+ import Scripts from "@components/_scripts.astro";
7
+
8
+ const title = "AdminLTE 4 | General Form Elements";
9
+ const path = "../../../dist";
10
+ const mainPage = "forms";
11
+ const page = "general";
12
+ ---
13
+
14
+ <!DOCTYPE html>
15
+ <html lang="en">
16
+ <!--begin::Head-->
17
+ <head>
18
+ <Head title={title} path={path} />
19
+ </head>
20
+ <!--end::Head-->
21
+ <!--begin::Body-->
22
+ <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
23
+ <!--begin::App Wrapper-->
24
+ <div class="app-wrapper">
25
+ <Topbar path={path} />
26
+ <Sidenav path={path} mainPage={mainPage} page={page} />
27
+ <!--begin::App Main-->
28
+ <main class="app-main">
29
+ <!--begin::App Content Header-->
30
+ <div class="app-content-header">
31
+ <!--begin::Container-->
32
+ <div class="container-fluid">
33
+ <!--begin::Row-->
34
+ <div class="row">
35
+ <div class="col-sm-6">
36
+ <h3 class="mb-0">General Form</h3>
37
+ </div>
38
+ <div class="col-sm-6">
39
+ <ol class="breadcrumb float-sm-end">
40
+ <li class="breadcrumb-item"><a href="#">Home</a></li>
41
+ <li class="breadcrumb-item active" aria-current="page">
42
+ General Form
43
+ </li>
44
+ </ol>
45
+ </div>
46
+ </div>
47
+ <!--end::Row-->
48
+ </div>
49
+ <!--end::Container-->
50
+ </div>
51
+ <!--end::App Content Header-->
52
+ <!--begin::App Content-->
53
+ <div class="app-content">
54
+ <!--begin::Container-->
55
+ <div class="container-fluid">
56
+ <!--begin::Row-->
57
+ <div class="row g-4">
58
+ <!--begin::Col-->
59
+ <div class="col-12">
60
+ <div class="callout callout-info">
61
+ For detailed documentaion of Form visit <a
62
+ href="https://getbootstrap.com/docs/5.3/forms/overview/"
63
+ target="_blank"
64
+ rel="noopener noreferrer"
65
+ class="fw-bold"
66
+ >
67
+ Bootstrap Form
68
+ </a>
69
+ </div>
70
+ </div>
71
+ <!--end::Col-->
72
+ <!--begin::Col-->
73
+ <div class="col-md-6">
74
+ <!--begin::Quick Example-->
75
+ <div class="card card-primary card-outline">
76
+ <!--begin::Header-->
77
+ <div class="card-header">
78
+ <div class="card-title">Quick Example</div>
79
+ </div>
80
+ <!--end::Header-->
81
+ <!--begin::Form-->
82
+ <form>
83
+ <!--begin::Body-->
84
+ <div class="card-body">
85
+ <div class="mb-3">
86
+ <label for="exampleInputEmail1" class="form-label"
87
+ >Email address</label
88
+ >
89
+ <input
90
+ type="email"
91
+ class="form-control"
92
+ id="exampleInputEmail1"
93
+ aria-describedby="emailHelp"
94
+ />
95
+ <div id="emailHelp" class="form-text">
96
+ We'll never share your email with anyone else.
97
+ </div>
98
+ </div>
99
+ <div class="mb-3">
100
+ <label for="exampleInputPassword1" class="form-label"
101
+ >Password</label
102
+ >
103
+ <input
104
+ type="password"
105
+ class="form-control"
106
+ id="exampleInputPassword1"
107
+ />
108
+ </div>
109
+ <div class="input-group mb-3">
110
+ <input
111
+ type="file"
112
+ class="form-control"
113
+ id="inputGroupFile02"
114
+ />
115
+ <label class="input-group-text" for="inputGroupFile02"
116
+ >Upload</label
117
+ >
118
+ </div>
119
+ <div class="mb-3 form-check">
120
+ <input
121
+ type="checkbox"
122
+ class="form-check-input"
123
+ id="exampleCheck1"
124
+ />
125
+ <label class="form-check-label" for="exampleCheck1"
126
+ >Check me out</label
127
+ >
128
+ </div>
129
+ </div>
130
+ <!--end::Body-->
131
+ <!--begin::Footer-->
132
+ <div class="card-footer">
133
+ <button type="submit" class="btn btn-primary"
134
+ >Submit</button
135
+ >
136
+ </div>
137
+ <!--end::Footer-->
138
+ </form>
139
+ <!--end::Form-->
140
+ </div>
141
+ <!--end::Quick Example-->
142
+ <!--begin::Input Group-->
143
+ <div class="card card-success card-outline">
144
+ <!--begin::Header-->
145
+ <div class="card-header">
146
+ <div class="card-title">Input Group</div>
147
+ </div>
148
+ <!--end::Header-->
149
+ <!--begin::Body-->
150
+ <div class="card-body">
151
+ <div class="input-group mb-3">
152
+ <span class="input-group-text" id="basic-addon1">@</span>
153
+ <input
154
+ type="text"
155
+ class="form-control"
156
+ placeholder="Username"
157
+ aria-label="Username"
158
+ aria-describedby="basic-addon1"
159
+ />
160
+ </div>
161
+
162
+ <div class="input-group mb-3">
163
+ <input
164
+ type="text"
165
+ class="form-control"
166
+ placeholder="Recipient's username"
167
+ aria-label="Recipient's username"
168
+ aria-describedby="basic-addon2"
169
+ />
170
+ <span class="input-group-text" id="basic-addon2"
171
+ >@example.com</span
172
+ >
173
+ </div>
174
+
175
+ <div class="mb-3">
176
+ <label for="basic-url" class="form-label"
177
+ >Your vanity URL</label
178
+ >
179
+ <div class="input-group">
180
+ <span class="input-group-text" id="basic-addon3"
181
+ >https://example.com/users/</span
182
+ >
183
+ <input
184
+ type="text"
185
+ class="form-control"
186
+ id="basic-url"
187
+ aria-describedby="basic-addon3 basic-addon4"
188
+ />
189
+ </div>
190
+ <div class="form-text" id="basic-addon4">
191
+ Example help text goes outside the input group.
192
+ </div>
193
+ </div>
194
+
195
+ <div class="input-group mb-3">
196
+ <span class="input-group-text">$</span>
197
+ <input
198
+ type="text"
199
+ class="form-control"
200
+ aria-label="Amount (to the nearest dollar)"
201
+ />
202
+ <span class="input-group-text">.00</span>
203
+ </div>
204
+
205
+ <div class="input-group mb-3">
206
+ <input
207
+ type="text"
208
+ class="form-control"
209
+ placeholder="Username"
210
+ aria-label="Username"
211
+ />
212
+ <span class="input-group-text">@</span>
213
+ <input
214
+ type="text"
215
+ class="form-control"
216
+ placeholder="Server"
217
+ aria-label="Server"
218
+ />
219
+ </div>
220
+
221
+ <div class="input-group">
222
+ <span class="input-group-text">With textarea</span>
223
+ <textarea class="form-control" aria-label="With textarea"
224
+ ></textarea>
225
+ </div>
226
+ </div>
227
+ <!--end::Body-->
228
+ <!--begin::Footer-->
229
+ <div class="card-footer">
230
+ <button type="submit" class="btn btn-success">Submit</button
231
+ >
232
+ </div>
233
+ <!--end::Footer-->
234
+ </div>
235
+ <!--end::Input Group-->
236
+ <!--begin::Horizontal Form-->
237
+ <div class="card card-warning card-outline">
238
+ <!--begin::Header-->
239
+ <div class="card-header">
240
+ <div class="card-title">Horizontal Form</div>
241
+ </div>
242
+ <!--end::Header-->
243
+ <!--begin::Form-->
244
+ <form>
245
+ <!--begin::Body-->
246
+ <div class="card-body">
247
+ <div class="row mb-3">
248
+ <label for="inputEmail3" class="col-sm-2 col-form-label"
249
+ >Email</label
250
+ >
251
+ <div class="col-sm-10">
252
+ <input
253
+ type="email"
254
+ class="form-control"
255
+ id="inputEmail3"
256
+ />
257
+ </div>
258
+ </div>
259
+ <div class="row mb-3">
260
+ <label
261
+ for="inputPassword3"
262
+ class="col-sm-2 col-form-label">Password</label
263
+ >
264
+ <div class="col-sm-10">
265
+ <input
266
+ type="password"
267
+ class="form-control"
268
+ id="inputPassword3"
269
+ />
270
+ </div>
271
+ </div>
272
+ <fieldset class="row mb-3">
273
+ <legend class="col-form-label col-sm-2 pt-0"
274
+ >Radios</legend
275
+ >
276
+ <div class="col-sm-10">
277
+ <div class="form-check">
278
+ <input
279
+ class="form-check-input"
280
+ type="radio"
281
+ name="gridRadios"
282
+ id="gridRadios1"
283
+ value="option1"
284
+ checked
285
+ />
286
+ <label class="form-check-label" for="gridRadios1">
287
+ First radio
288
+ </label>
289
+ </div>
290
+ <div class="form-check">
291
+ <input
292
+ class="form-check-input"
293
+ type="radio"
294
+ name="gridRadios"
295
+ id="gridRadios2"
296
+ value="option2"
297
+ />
298
+ <label class="form-check-label" for="gridRadios2">
299
+ Second radio
300
+ </label>
301
+ </div>
302
+ <div class="form-check disabled">
303
+ <input
304
+ class="form-check-input"
305
+ type="radio"
306
+ name="gridRadios"
307
+ id="gridRadios3"
308
+ value="option3"
309
+ disabled
310
+ />
311
+ <label class="form-check-label" for="gridRadios3">
312
+ Third disabled radio
313
+ </label>
314
+ </div>
315
+ </div>
316
+ </fieldset>
317
+ <div class="row mb-3">
318
+ <div class="col-sm-10 offset-sm-2">
319
+ <div class="form-check">
320
+ <input
321
+ class="form-check-input"
322
+ type="checkbox"
323
+ id="gridCheck1"
324
+ />
325
+ <label class="form-check-label" for="gridCheck1">
326
+ Example checkbox
327
+ </label>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ <!--end::Body-->
333
+ <!--begin::Footer-->
334
+ <div class="card-footer">
335
+ <button type="submit" class="btn btn-warning"
336
+ >Sign in</button
337
+ >
338
+ <button type="submit" class="btn float-end">Cancel</button
339
+ >
340
+ </div>
341
+ <!--end::Footer-->
342
+ </form>
343
+ <!--end::Form-->
344
+ </div>
345
+ <!--end::Horizontal Form-->
346
+ </div>
347
+ <!--end::Col-->
348
+ <!--begin::Col-->
349
+ <div class="col-md-6">
350
+ <!--begin::Different Height-->
351
+ <div class="card card-secondary card-outline">
352
+ <!--begin::Header-->
353
+ <div class="card-header">
354
+ <div class="card-title">Different Height</div>
355
+ </div>
356
+ <!--end::Header-->
357
+ <!--begin::Body-->
358
+ <div class="card-body">
359
+ <input
360
+ class="form-control form-control-lg"
361
+ type="text"
362
+ placeholder=".form-control-lg"
363
+ aria-label=".form-control-lg example"
364
+ />
365
+ <br />
366
+ <input
367
+ class="form-control"
368
+ type="text"
369
+ placeholder="Default input"
370
+ aria-label="default input example"
371
+ />
372
+ <br />
373
+ <input
374
+ class="form-control form-control-sm"
375
+ type="text"
376
+ placeholder=".form-control-sm"
377
+ aria-label=".form-control-sm example"
378
+ />
379
+ </div>
380
+ <!--end::Body-->
381
+ </div>
382
+ <!--end::Different Height-->
383
+ <!--begin::Different Width-->
384
+ <div class="card card-danger card-outline">
385
+ <!--begin::Header-->
386
+ <div class="card-header">
387
+ <div class="card-title">Different Width</div>
388
+ </div>
389
+ <!--end::Header-->
390
+ <!--begin::Body-->
391
+ <div class="card-body">
392
+ <!--begin::Row-->
393
+ <div class="row">
394
+ <!--begin::Col-->
395
+ <div class="col-3">
396
+ <input
397
+ type="text"
398
+ class="form-control"
399
+ placeholder=".col-3"
400
+ />
401
+ </div>
402
+ <!--end::Col-->
403
+ <!--begin::Col-->
404
+ <div class="col-4">
405
+ <input
406
+ type="text"
407
+ class="form-control"
408
+ placeholder=".col-4"
409
+ />
410
+ </div>
411
+ <!--end::Col-->
412
+ <!--begin::Col-->
413
+ <div class="col-5">
414
+ <input
415
+ type="text"
416
+ class="form-control"
417
+ placeholder=".col-5"
418
+ />
419
+ </div>
420
+ <!--end::Col-->
421
+ </div>
422
+ <!--end::Row-->
423
+ </div>
424
+ <!--end::Body-->
425
+ </div>
426
+ <!--end::Different Width-->
427
+ <!--begin::Form Validation-->
428
+ <div class="card card-info card-outline">
429
+ <!--begin::Header-->
430
+ <div class="card-header">
431
+ <div class="card-title">Form Validation</div>
432
+ </div>
433
+ <!--end::Header-->
434
+ <!--begin::Form-->
435
+ <form class="needs-validation" novalidate>
436
+ <!--begin::Body-->
437
+ <div class="card-body">
438
+ <!--begin::Row-->
439
+ <div class="row g-3">
440
+ <!--begin::Col-->
441
+ <div class="col-md-6">
442
+ <label for="validationCustom01" class="form-label"
443
+ >First name</label
444
+ >
445
+ <input
446
+ type="text"
447
+ class="form-control"
448
+ id="validationCustom01"
449
+ value="Mark"
450
+ required
451
+ />
452
+ <div class="valid-feedback">Looks good!</div>
453
+ </div>
454
+ <!--end::Col-->
455
+ <!--begin::Col-->
456
+ <div class="col-md-6">
457
+ <label for="validationCustom02" class="form-label"
458
+ >Last name</label
459
+ >
460
+ <input
461
+ type="text"
462
+ class="form-control"
463
+ id="validationCustom02"
464
+ value="Otto"
465
+ required
466
+ />
467
+ <div class="valid-feedback">Looks good!</div>
468
+ </div>
469
+ <!--end::Col-->
470
+ <!--begin::Col-->
471
+ <div class="col-md-6">
472
+ <label
473
+ for="validationCustomUsername"
474
+ class="form-label">Username</label
475
+ >
476
+ <div class="input-group has-validation">
477
+ <span
478
+ class="input-group-text"
479
+ id="inputGroupPrepend">@</span
480
+ >
481
+ <input
482
+ type="text"
483
+ class="form-control"
484
+ id="validationCustomUsername"
485
+ aria-describedby="inputGroupPrepend"
486
+ required
487
+ />
488
+ <div class="invalid-feedback">
489
+ Please choose a username.
490
+ </div>
491
+ </div>
492
+ </div>
493
+ <!--end::Col-->
494
+ <!--begin::Col-->
495
+ <div class="col-md-6">
496
+ <label for="validationCustom03" class="form-label"
497
+ >City</label
498
+ >
499
+ <input
500
+ type="text"
501
+ class="form-control"
502
+ id="validationCustom03"
503
+ required
504
+ />
505
+ <div class="invalid-feedback">
506
+ Please provide a valid city.
507
+ </div>
508
+ </div>
509
+ <!--end::Col-->
510
+ <!--begin::Col-->
511
+ <div class="col-md-6">
512
+ <label for="validationCustom04" class="form-label"
513
+ >State</label
514
+ >
515
+ <select
516
+ class="form-select"
517
+ id="validationCustom04"
518
+ required
519
+ >
520
+ <option selected disabled value="">Choose...</option
521
+ >
522
+ <option>...</option>
523
+ </select>
524
+ <div class="invalid-feedback">
525
+ Please select a valid state.
526
+ </div>
527
+ </div>
528
+ <!--end::Col-->
529
+ <!--begin::Col-->
530
+ <div class="col-md-6">
531
+ <label for="validationCustom05" class="form-label"
532
+ >Zip</label
533
+ >
534
+ <input
535
+ type="text"
536
+ class="form-control"
537
+ id="validationCustom05"
538
+ required
539
+ />
540
+ <div class="invalid-feedback">
541
+ Please provide a valid zip.
542
+ </div>
543
+ </div>
544
+ <!--end::Col-->
545
+ <!--begin::Col-->
546
+ <div class="col-12">
547
+ <div class="form-check">
548
+ <input
549
+ class="form-check-input"
550
+ type="checkbox"
551
+ value=""
552
+ id="invalidCheck"
553
+ required
554
+ />
555
+ <label class="form-check-label" for="invalidCheck">
556
+ Agree to terms and conditions
557
+ </label>
558
+ <div class="invalid-feedback">
559
+ You must agree before submitting.
560
+ </div>
561
+ </div>
562
+ </div>
563
+ <!--end::Col-->
564
+ </div>
565
+ <!--end::Row-->
566
+ </div>
567
+ <!--end::Body-->
568
+ <!--begin::Footer-->
569
+ <div class="card-footer">
570
+ <button class="btn btn-info" type="submit"
571
+ >Submit form</button
572
+ >
573
+ </div>
574
+ <!--end::Footer-->
575
+ </form>
576
+ <!--end::Form-->
577
+ <!--begin::JavaScript-->
578
+ <script is:inline>
579
+ // Example starter JavaScript for disabling form submissions if there are invalid fields
580
+ (() => {
581
+ "use strict";
582
+
583
+ // Fetch all the forms we want to apply custom Bootstrap validation styles to
584
+ const forms =
585
+ document.querySelectorAll(".needs-validation");
586
+
587
+ // Loop over them and prevent submission
588
+ Array.from(forms).forEach((form) => {
589
+ form.addEventListener(
590
+ "submit",
591
+ (event) => {
592
+ if (!form.checkValidity()) {
593
+ event.preventDefault();
594
+ event.stopPropagation();
595
+ }
596
+
597
+ form.classList.add("was-validated");
598
+ },
599
+ false
600
+ );
601
+ });
602
+ })();
603
+ </script>
604
+ <!--end::JavaScript-->
605
+ </div>
606
+ <!--end::Form Validation-->
607
+ </div>
608
+ <!--end::Col-->
609
+ </div>
610
+ <!--end::Row-->
611
+ </div>
612
+ <!--end::Container-->
613
+ </div>
614
+ <!--end::App Content-->
615
+ </main>
616
+ <!--end::App Main-->
617
+ <Footer />
618
+ </div>
619
+ <!--end::App Wrapper-->
620
+ <!--begin::Script-->
621
+ <Scripts path={path} />
622
+ <!--end::Script-->
623
+ </body><!--end::Body-->
624
+ </html>