admin-lte 4.0.0-alpha2 → 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 (129) hide show
  1. package/.bundlewatch.config.json +6 -6
  2. package/.cache/.eslintcache +1 -1
  3. package/.cache/.stylelintcache +1 -1
  4. package/.gitpod.yml +1 -1
  5. package/.idea/AdminLTE.iml +4 -0
  6. package/.idea/codeStyles/Project.xml +24 -0
  7. package/.idea/dbnavigator.xml +421 -0
  8. package/.idea/git_toolbox_prj.xml +15 -0
  9. package/.idea/jsLibraryMappings.xml +6 -0
  10. package/.idea/jsLinters/eslint.xml +6 -0
  11. package/.idea/vcs.xml +6 -0
  12. package/README.md +3 -3
  13. package/dist/assets/img/AdminLTEFullLogo.png +0 -0
  14. package/dist/css/adminlte.css +695 -318
  15. package/dist/css/adminlte.css.map +1 -1
  16. package/dist/css/adminlte.min.css +1 -1
  17. package/dist/css/adminlte.min.css.map +1 -1
  18. package/dist/css/adminlte.rtl.css +693 -316
  19. package/dist/css/adminlte.rtl.css.map +1 -1
  20. package/dist/css/adminlte.rtl.min.css +1 -1
  21. package/dist/css/adminlte.rtl.min.css.map +1 -1
  22. package/dist/js/adminlte.js +43 -63
  23. package/dist/js/adminlte.js.map +1 -1
  24. package/dist/js/adminlte.min.js +2 -2
  25. package/dist/js/adminlte.min.js.map +1 -1
  26. package/dist/pages/UI/timeline.html +389 -218
  27. package/dist/pages/docs/browser-support.html +345 -204
  28. package/dist/pages/docs/color-mode.html +560 -348
  29. package/dist/pages/docs/components/main-header.html +579 -368
  30. package/dist/pages/docs/components/main-sidebar.html +858 -0
  31. package/dist/pages/docs/faq.html +743 -0
  32. package/dist/pages/docs/how-to-contribute.html +783 -0
  33. package/dist/pages/docs/introduction.html +767 -0
  34. package/dist/pages/docs/javascript/treeview.html +762 -0
  35. package/dist/pages/docs/layout.html +372 -201
  36. package/dist/pages/{docs.html → docs/license.html} +347 -218
  37. package/dist/pages/examples/lockscreen.html +107 -0
  38. package/dist/pages/examples/login-v2.html +148 -0
  39. package/dist/pages/examples/login.html +45 -40
  40. package/dist/pages/examples/register-v2.html +155 -0
  41. package/dist/pages/examples/register.html +46 -41
  42. package/dist/pages/forms/general.html +664 -202
  43. package/dist/pages/index.html +514 -285
  44. package/dist/pages/index2.html +665 -341
  45. package/dist/pages/index3.html +415 -254
  46. package/dist/pages/layout/collapsed-sidebar.html +766 -0
  47. package/dist/pages/layout/fixed-complete.html +867 -0
  48. package/dist/pages/layout/fixed-sidebar.html +344 -201
  49. package/dist/pages/layout/layout-rtl.html +344 -201
  50. package/dist/pages/layout/logo-switch.html +433 -0
  51. package/dist/pages/layout/sidebar-mini.html +345 -202
  52. package/dist/pages/layout/unfixed-sidebar.html +343 -201
  53. package/dist/pages/tables/simple.html +437 -233
  54. package/dist/pages/widgets/cards.html +389 -244
  55. package/dist/pages/widgets/info-box.html +398 -215
  56. package/dist/pages/widgets/small-box.html +349 -198
  57. package/index.html +6 -10
  58. package/package.json +27 -24
  59. package/src/assets/img/AdminLTEFullLogo.png +0 -0
  60. package/src/config/astro.config.mjs +3 -1
  61. package/src/html/.prettierrc.js +11 -0
  62. package/src/html/components/_head.astro +42 -26
  63. package/src/html/components/_scripts.astro +38 -27
  64. package/src/html/components/dashboard/_footer.astro +14 -8
  65. package/src/html/components/dashboard/_sidenav.astro +343 -113
  66. package/src/html/components/dashboard/_topbar.astro +90 -49
  67. package/src/html/components/docs/{browser-support/index.md → browser-support.mdx} +2 -1
  68. package/src/html/components/docs/color-mode.mdx +169 -0
  69. package/src/html/components/docs/components/{main-header-1.md → main-header.mdx} +60 -21
  70. package/src/html/components/docs/components/main-sidebar.mdx +129 -0
  71. package/src/html/components/docs/faq.mdx +11 -0
  72. package/src/html/components/docs/how-to-contribute.mdx +34 -0
  73. package/src/html/components/docs/{introduction/index.md → introduction.mdx} +27 -2
  74. package/src/html/components/docs/license.mdx +9 -0
  75. package/src/html/components/javascript/treeview.mdx +39 -0
  76. package/src/html/pages/UI/timeline.astro +111 -48
  77. package/src/html/pages/docs/browser-support.astro +24 -11
  78. package/src/html/pages/docs/color-mode.astro +89 -42
  79. package/src/html/pages/docs/components/main-header.astro +133 -46
  80. package/src/html/pages/docs/components/main-sidebar.astro +71 -0
  81. package/src/html/pages/docs/faq.astro +71 -0
  82. package/src/html/pages/docs/how-to-contribute.astro +71 -0
  83. package/src/html/pages/docs/{index.astro → introduction.astro} +24 -11
  84. package/src/html/pages/docs/javascript/treeview.astro +71 -0
  85. package/src/html/pages/docs/layout.astro +62 -19
  86. package/src/html/pages/docs/license.astro +71 -0
  87. package/src/html/pages/examples/lockscreen.astro +63 -0
  88. package/src/html/pages/examples/login-v2.astro +109 -0
  89. package/src/html/pages/examples/login.astro +34 -16
  90. package/src/html/pages/examples/register-v2.astro +116 -0
  91. package/src/html/pages/examples/register.astro +36 -18
  92. package/src/html/pages/forms/general.astro +567 -36
  93. package/src/html/pages/index.astro +389 -152
  94. package/src/html/pages/index2.astro +682 -250
  95. package/src/html/pages/index3.astro +290 -189
  96. package/src/html/pages/layout/collapsed-sidebar.astro +110 -0
  97. package/src/html/pages/layout/fixed-complete.astro +209 -0
  98. package/src/html/pages/layout/fixed-sidebar.astro +52 -27
  99. package/src/html/pages/layout/layout-rtl.astro +53 -28
  100. package/src/html/pages/layout/logo-switch.astro +212 -0
  101. package/src/html/pages/layout/sidebar-mini.astro +53 -28
  102. package/src/html/pages/layout/unfixed-sidebar.astro +51 -27
  103. package/src/html/pages/tables/simple.astro +206 -66
  104. package/src/html/pages/widgets/cards.astro +134 -69
  105. package/src/html/pages/widgets/info-box.astro +96 -41
  106. package/src/html/pages/widgets/small-box.astro +93 -32
  107. package/src/scss/_app-content.scss +52 -0
  108. package/src/scss/_app-footer.scss +1 -1
  109. package/src/scss/_app-main.scss +2 -5
  110. package/src/scss/_app-sidebar.scss +244 -70
  111. package/src/scss/_bootstrap-variables.scss +4 -4
  112. package/src/scss/_cards.scss +31 -7
  113. package/src/scss/_compact-mode.scss +79 -0
  114. package/src/scss/_small-box.scss +0 -3
  115. package/src/scss/_variables.scss +21 -4
  116. package/src/scss/mixins/_animations.scss +0 -5
  117. package/src/scss/pages/_lockscreen.scss +74 -0
  118. package/src/scss/pages/_login_and_register.scss +0 -3
  119. package/src/scss/parts/_core.scss +2 -0
  120. package/src/scss/parts/_pages.scss +1 -0
  121. package/src/ts/card-widget.ts +17 -50
  122. package/src/ts/direct-chat.ts +2 -2
  123. package/src/ts/layout.ts +2 -2
  124. package/src/ts/push-menu.ts +3 -20
  125. package/src/ts/treeview.ts +14 -8
  126. package/src/ts/util/index.ts +14 -12
  127. package/src/utils/index.js +20 -3
  128. package/src/html/components/docs/color-mode/navbar-html.md +0 -80
  129. package/src/html/components/docs/color-mode/toggle-script.md +0 -48
@@ -1,28 +1,36 @@
1
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';
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
7
 
8
- const title = 'AdminLTE 4 | General Form Elements'
9
- const path = '../../../dist'
10
- const mainPage = 'forms'
11
- const page = 'general'
8
+ const title = "AdminLTE 4 | General Form Elements";
9
+ const path = "../../../dist";
10
+ const mainPage = "forms";
11
+ const page = "general";
12
12
  ---
13
+
13
14
  <!DOCTYPE html>
14
15
  <html lang="en">
16
+ <!--begin::Head-->
15
17
  <head>
16
18
  <Head title={title} path={path} />
17
19
  </head>
20
+ <!--end::Head-->
21
+ <!--begin::Body-->
18
22
  <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
23
+ <!--begin::App Wrapper-->
19
24
  <div class="app-wrapper">
20
25
  <Topbar path={path} />
21
26
  <Sidenav path={path} mainPage={mainPage} page={page} />
22
- <!-- Main content -->
27
+ <!--begin::App Main-->
23
28
  <main class="app-main">
29
+ <!--begin::App Content Header-->
24
30
  <div class="app-content-header">
31
+ <!--begin::Container-->
25
32
  <div class="container-fluid">
33
+ <!--begin::Row-->
26
34
  <div class="row">
27
35
  <div class="col-sm-6">
28
36
  <h3 class="mb-0">General Form</h3>
@@ -30,64 +38,587 @@ const page = 'general'
30
38
  <div class="col-sm-6">
31
39
  <ol class="breadcrumb float-sm-end">
32
40
  <li class="breadcrumb-item"><a href="#">Home</a></li>
33
- <li class="breadcrumb-item active" aria-current="page">General Form</li>
41
+ <li class="breadcrumb-item active" aria-current="page">
42
+ General Form
43
+ </li>
34
44
  </ol>
35
45
  </div>
36
46
  </div>
47
+ <!--end::Row-->
37
48
  </div>
49
+ <!--end::Container-->
38
50
  </div>
39
- <!-- Main content -->
51
+ <!--end::App Content Header-->
52
+ <!--begin::App Content-->
40
53
  <div class="app-content">
54
+ <!--begin::Container-->
41
55
  <div class="container-fluid">
56
+ <!--begin::Row-->
42
57
  <div class="row g-4">
43
- <!-- Start column -->
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-->
44
73
  <div class="col-md-6">
45
- <!-- general form elements -->
74
+ <!--begin::Quick Example-->
46
75
  <div class="card card-primary card-outline">
76
+ <!--begin::Header-->
47
77
  <div class="card-header">
48
- <div class="card-title">
49
- Quick Example
50
- </div>
78
+ <div class="card-title">Quick Example</div>
51
79
  </div>
80
+ <!--end::Header-->
81
+ <!--begin::Form-->
52
82
  <form>
83
+ <!--begin::Body-->
53
84
  <div class="card-body">
54
85
  <div class="mb-3">
55
- <label for="exampleInputEmail1" class="form-label">Email address</label>
56
- <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
57
- <div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
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>
58
98
  </div>
59
99
  <div class="mb-3">
60
- <label for="exampleInputPassword1" class="form-label">Password</label>
61
- <input type="password" class="form-control" id="exampleInputPassword1">
100
+ <label for="exampleInputPassword1" class="form-label"
101
+ >Password</label
102
+ >
103
+ <input
104
+ type="password"
105
+ class="form-control"
106
+ id="exampleInputPassword1"
107
+ />
62
108
  </div>
63
109
  <div class="input-group mb-3">
64
- <input type="file" class="form-control" id="inputGroupFile02">
65
- <label class="input-group-text" for="inputGroupFile02">Upload</label>
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
+ >
66
118
  </div>
67
119
  <div class="mb-3 form-check">
68
- <input type="checkbox" class="form-check-input" id="exampleCheck1">
69
- <label class="form-check-label" for="exampleCheck1">Check me out</label>
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
+ >
70
128
  </div>
71
129
  </div>
130
+ <!--end::Body-->
131
+ <!--begin::Footer-->
72
132
  <div class="card-footer">
73
- <button type="submit" class="btn btn-primary">Submit</button>
133
+ <button type="submit" class="btn btn-primary"
134
+ >Submit</button
135
+ >
74
136
  </div>
137
+ <!--end::Footer-->
75
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-->
76
234
  </div>
77
- <!-- /.card -->
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-->
78
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-->
79
609
  </div>
80
- <!-- /.row -->
81
- </div><!-- /.container-fluid -->
610
+ <!--end::Row-->
611
+ </div>
612
+ <!--end::Container-->
82
613
  </div>
83
- <!-- /.content -->
614
+ <!--end::App Content-->
84
615
  </main>
85
- <!-- /.app-content -->
86
-
616
+ <!--end::App Main-->
87
617
  <Footer />
88
618
  </div>
89
- <!-- ./app-wrapper -->
90
-
619
+ <!--end::App Wrapper-->
620
+ <!--begin::Script-->
91
621
  <Scripts path={path} />
92
- </body>
622
+ <!--end::Script-->
623
+ </body><!--end::Body-->
93
624
  </html>