general.astro 25 KB

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