wizard.html 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>AdminLTE 4 | Form Wizard</title>
  6. <!--begin::Accessibility Meta Tags-->
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  8. <meta name="color-scheme" content="light dark" />
  9. <meta name="theme-color" content="#007bff" media="(prefers-color-scheme: light)" />
  10. <meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)" />
  11. <!--end::Accessibility Meta Tags-->
  12. <!--begin::Primary Meta Tags-->
  13. <meta name="title" content="AdminLTE 4 | Form Wizard" />
  14. <meta name="author" content="ColorlibHQ" />
  15. <meta
  16. name="description"
  17. content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS. Fully accessible with WCAG 2.1 AA compliance."
  18. />
  19. <meta
  20. name="keywords"
  21. content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard, accessible admin panel, WCAG compliant"
  22. />
  23. <!--end::Primary Meta Tags-->
  24. <!--begin::Accessibility Features-->
  25. <!-- Skip links will be dynamically added by accessibility.js -->
  26. <meta name="supported-color-schemes" content="light dark" />
  27. <link rel="preload" href="../css/adminlte.css" as="style" />
  28. <!--end::Accessibility Features-->
  29. <!--begin::Fonts-->
  30. <link
  31. rel="stylesheet"
  32. href="https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.0.12/index.css"
  33. integrity="sha256-tXJfXfp6Ewt1ilPzLDtQnJV4hclT9XuaZUKyUvmyr+Q="
  34. crossorigin="anonymous"
  35. media="print"
  36. onload="this.media = 'all'"
  37. />
  38. <!--end::Fonts-->
  39. <!--begin::Third Party Plugin(OverlayScrollbars)-->
  40. <link
  41. rel="stylesheet"
  42. href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
  43. crossorigin="anonymous"
  44. />
  45. <!--end::Third Party Plugin(OverlayScrollbars)-->
  46. <!--begin::Third Party Plugin(Bootstrap Icons)-->
  47. <link
  48. rel="stylesheet"
  49. href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
  50. crossorigin="anonymous"
  51. />
  52. <!--end::Third Party Plugin(Bootstrap Icons)-->
  53. <!--begin::Required Plugin(AdminLTE)-->
  54. <link rel="stylesheet" href="../css/adminlte.css" />
  55. <!--end::Required Plugin(AdminLTE)-->
  56. <style>
  57. .wizard-steps {
  58. counter-reset: step;
  59. list-style: none;
  60. padding: 0;
  61. display: flex;
  62. justify-content: space-between;
  63. position: relative;
  64. }
  65. .wizard-steps::before {
  66. content: '';
  67. position: absolute;
  68. top: 1rem;
  69. left: 0;
  70. right: 0;
  71. height: 2px;
  72. background: var(--bs-border-color);
  73. z-index: 0;
  74. }
  75. .wizard-steps li {
  76. position: relative;
  77. z-index: 1;
  78. background: var(--bs-body-bg);
  79. padding: 0 0.75rem;
  80. text-align: center;
  81. color: var(--bs-secondary-color);
  82. font-size: 0.875rem;
  83. }
  84. .wizard-steps li::before {
  85. counter-increment: step;
  86. content: counter(step);
  87. display: flex;
  88. align-items: center;
  89. justify-content: center;
  90. width: 2rem;
  91. height: 2rem;
  92. margin: 0 auto 0.5rem;
  93. border-radius: 50%;
  94. background: var(--bs-body-tertiary-bg);
  95. border: 2px solid var(--bs-border-color);
  96. color: var(--bs-secondary-color);
  97. font-weight: 600;
  98. }
  99. .wizard-steps li.active {
  100. color: var(--bs-primary);
  101. font-weight: 600;
  102. }
  103. .wizard-steps li.active::before {
  104. background: var(--bs-primary);
  105. border-color: var(--bs-primary);
  106. color: #fff;
  107. }
  108. .wizard-steps li.completed::before {
  109. background: var(--bs-success);
  110. border-color: var(--bs-success);
  111. color: #fff;
  112. content: '\f633';
  113. font-family: 'bootstrap-icons';
  114. }
  115. </style>
  116. </head>
  117. <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
  118. <div class="app-wrapper">
  119. <!--begin::Header-->
  120. <nav class="app-header navbar navbar-expand bg-body">
  121. <!--begin::Container-->
  122. <div class="container-fluid">
  123. <!--begin::Start Navbar Links-->
  124. <ul class="navbar-nav">
  125. <li class="nav-item">
  126. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button">
  127. <i class="bi bi-list"></i>
  128. </a>
  129. </li>
  130. <li class="nav-item d-none d-md-block">
  131. <a href="../index.html" class="nav-link">
  132. <i class="bi bi-grid-1x2 me-1" aria-hidden="true"></i>
  133. Live preview
  134. </a>
  135. </li>
  136. <li class="nav-item d-none d-md-block">
  137. <a href="../docs/introduction.html" class="nav-link">
  138. <i class="bi bi-book me-1" aria-hidden="true"></i>
  139. Documentation
  140. </a>
  141. </li>
  142. </ul>
  143. <!--end::Start Navbar Links-->
  144. <!--begin::End Navbar Links-->
  145. <ul class="navbar-nav ms-auto">
  146. <!--begin::Navbar Search-->
  147. <li class="nav-item">
  148. <a class="nav-link" data-widget="navbar-search" href="#" role="button">
  149. <i class="bi bi-search"></i>
  150. </a>
  151. </li>
  152. <!--end::Navbar Search-->
  153. <!--begin::Messages Dropdown Menu-->
  154. <li class="nav-item dropdown">
  155. <a class="nav-link" data-bs-toggle="dropdown" href="#">
  156. <i class="bi bi-chat-text"></i>
  157. <span class="navbar-badge badge text-bg-danger">3</span>
  158. </a>
  159. <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  160. <a href="#" class="dropdown-item">
  161. <!--begin::Message-->
  162. <div class="d-flex">
  163. <div class="flex-shrink-0">
  164. <img
  165. src="../assets/img/user1-128x128.jpg"
  166. alt="User Avatar"
  167. class="img-size-50 rounded-circle me-3"
  168. />
  169. </div>
  170. <div class="flex-grow-1">
  171. <h3 class="dropdown-item-title">
  172. Brad Diesel
  173. <span class="float-end fs-7 text-danger"
  174. ><i class="bi bi-star-fill"></i
  175. ></span>
  176. </h3>
  177. <p class="fs-7">Call me whenever you can...</p>
  178. <p class="fs-7 text-secondary">
  179. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  180. </p>
  181. </div>
  182. </div>
  183. <!--end::Message-->
  184. </a>
  185. <div class="dropdown-divider"></div>
  186. <a href="#" class="dropdown-item">
  187. <!--begin::Message-->
  188. <div class="d-flex">
  189. <div class="flex-shrink-0">
  190. <img
  191. src="../assets/img/user8-128x128.jpg"
  192. alt="User Avatar"
  193. class="img-size-50 rounded-circle me-3"
  194. />
  195. </div>
  196. <div class="flex-grow-1">
  197. <h3 class="dropdown-item-title">
  198. John Pierce
  199. <span class="float-end fs-7 text-secondary">
  200. <i class="bi bi-star-fill"></i>
  201. </span>
  202. </h3>
  203. <p class="fs-7">I got your message bro</p>
  204. <p class="fs-7 text-secondary">
  205. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  206. </p>
  207. </div>
  208. </div>
  209. <!--end::Message-->
  210. </a>
  211. <div class="dropdown-divider"></div>
  212. <a href="#" class="dropdown-item">
  213. <!--begin::Message-->
  214. <div class="d-flex">
  215. <div class="flex-shrink-0">
  216. <img
  217. src="../assets/img/user3-128x128.jpg"
  218. alt="User Avatar"
  219. class="img-size-50 rounded-circle me-3"
  220. />
  221. </div>
  222. <div class="flex-grow-1">
  223. <h3 class="dropdown-item-title">
  224. Nora Silvester
  225. <span class="float-end fs-7 text-warning">
  226. <i class="bi bi-star-fill"></i>
  227. </span>
  228. </h3>
  229. <p class="fs-7">The subject goes here</p>
  230. <p class="fs-7 text-secondary">
  231. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  232. </p>
  233. </div>
  234. </div>
  235. <!--end::Message-->
  236. </a>
  237. <div class="dropdown-divider"></div>
  238. <a href="#" class="dropdown-item dropdown-footer">See All Messages</a>
  239. </div>
  240. </li>
  241. <!--end::Messages Dropdown Menu-->
  242. <!--begin::Notifications Dropdown Menu-->
  243. <li class="nav-item dropdown">
  244. <a class="nav-link" data-bs-toggle="dropdown" href="#">
  245. <i class="bi bi-bell-fill"></i>
  246. <span class="navbar-badge badge text-bg-warning">15</span>
  247. </a>
  248. <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  249. <span class="dropdown-item dropdown-header">15 Notifications</span>
  250. <div class="dropdown-divider"></div>
  251. <a href="#" class="dropdown-item">
  252. <i class="bi bi-envelope me-2"></i> 4 new messages
  253. <span class="float-end text-secondary fs-7">3 mins</span>
  254. </a>
  255. <div class="dropdown-divider"></div>
  256. <a href="#" class="dropdown-item">
  257. <i class="bi bi-people-fill me-2"></i> 8 friend requests
  258. <span class="float-end text-secondary fs-7">12 hours</span>
  259. </a>
  260. <div class="dropdown-divider"></div>
  261. <a href="#" class="dropdown-item">
  262. <i class="bi bi-file-earmark-fill me-2"></i> 3 new reports
  263. <span class="float-end text-secondary fs-7">2 days</span>
  264. </a>
  265. <div class="dropdown-divider"></div>
  266. <a href="#" class="dropdown-item dropdown-footer"> See All Notifications </a>
  267. </div>
  268. </li>
  269. <!--end::Notifications Dropdown Menu-->
  270. <!--begin::Fullscreen Toggle-->
  271. <li class="nav-item">
  272. <a class="nav-link" href="#" data-lte-toggle="fullscreen">
  273. <i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i>
  274. <i data-lte-icon="minimize" class="bi bi-fullscreen-exit d-none"></i>
  275. </a>
  276. </li>
  277. <!--end::Fullscreen Toggle-->
  278. <!--begin::Color Mode Toggle (#6010)-->
  279. <li class="nav-item dropdown">
  280. <a
  281. class="nav-link"
  282. href="#"
  283. id="bd-theme"
  284. aria-label="Toggle color scheme"
  285. data-bs-toggle="dropdown"
  286. aria-expanded="false"
  287. >
  288. <i class="bi bi-sun-fill" data-lte-theme-icon="light"></i>
  289. <i class="bi bi-moon-fill d-none" data-lte-theme-icon="dark"></i>
  290. <i class="bi bi-circle-half d-none" data-lte-theme-icon="auto"></i>
  291. </a>
  292. <ul
  293. class="dropdown-menu dropdown-menu-end"
  294. aria-labelledby="bd-theme"
  295. style="--bs-dropdown-min-width: 8rem"
  296. >
  297. <li>
  298. <button
  299. type="button"
  300. class="dropdown-item d-flex align-items-center"
  301. data-bs-theme-value="light"
  302. aria-pressed="false"
  303. >
  304. <i class="bi bi-sun-fill me-2"></i>
  305. Light
  306. <i class="bi bi-check-lg ms-auto d-none"></i>
  307. </button>
  308. </li>
  309. <li>
  310. <button
  311. type="button"
  312. class="dropdown-item d-flex align-items-center"
  313. data-bs-theme-value="dark"
  314. aria-pressed="false"
  315. >
  316. <i class="bi bi-moon-fill me-2"></i>
  317. Dark
  318. <i class="bi bi-check-lg ms-auto d-none"></i>
  319. </button>
  320. </li>
  321. <li>
  322. <button
  323. type="button"
  324. class="dropdown-item d-flex align-items-center active"
  325. data-bs-theme-value="auto"
  326. aria-pressed="true"
  327. >
  328. <i class="bi bi-circle-half me-2"></i>
  329. Auto
  330. <i class="bi bi-check-lg ms-auto d-none"></i>
  331. </button>
  332. </li>
  333. </ul>
  334. </li>
  335. <!--end::Color Mode Toggle-->
  336. <!--begin::User Menu Dropdown-->
  337. <li class="nav-item dropdown user-menu">
  338. <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
  339. <img
  340. src="../assets/img/user2-160x160.jpg"
  341. class="user-image rounded-circle shadow"
  342. alt="User Image"
  343. />
  344. <span class="d-none d-md-inline">Alexander Pierce</span>
  345. </a>
  346. <ul class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  347. <!--begin::User Image-->
  348. <li class="user-header text-bg-primary">
  349. <img
  350. src="../assets/img/user2-160x160.jpg"
  351. class="rounded-circle shadow"
  352. alt="User Image"
  353. />
  354. <p>
  355. Alexander Pierce - Web Developer
  356. <small>Member since Nov. 2023</small>
  357. </p>
  358. </li>
  359. <!--end::User Image-->
  360. <!--begin::Menu Body-->
  361. <li class="user-body">
  362. <!--begin::Row-->
  363. <div class="row">
  364. <div class="col-4 text-center">
  365. <a href="#">Followers</a>
  366. </div>
  367. <div class="col-4 text-center">
  368. <a href="#">Sales</a>
  369. </div>
  370. <div class="col-4 text-center">
  371. <a href="#">Friends</a>
  372. </div>
  373. </div>
  374. <!--end::Row-->
  375. </li>
  376. <!--end::Menu Body-->
  377. <!--begin::Menu Footer-->
  378. <li class="user-footer">
  379. <a href="#" class="btn btn-outline-secondary">Profile</a>
  380. <a href="#" class="btn btn-outline-danger float-end">Sign out</a>
  381. </li>
  382. <!--end::Menu Footer-->
  383. </ul>
  384. </li>
  385. <!--end::User Menu Dropdown-->
  386. </ul>
  387. <!--end::End Navbar Links-->
  388. </div>
  389. <!--end::Container-->
  390. </nav>
  391. <!--end::Header-->
  392. <!--begin::Sidebar-->
  393. <aside class="app-sidebar bg-body-secondary shadow" data-bs-theme="dark">
  394. <!--begin::Sidebar Brand-->
  395. <div class="sidebar-brand">
  396. <!--begin::Brand Link-->
  397. <a href="../index.html" class="brand-link">
  398. <!--begin::Brand Image-->
  399. <img
  400. src="../assets/img/AdminLTELogo.png"
  401. alt="AdminLTE Logo"
  402. class="brand-image opacity-75 shadow"
  403. />
  404. <!--end::Brand Image-->
  405. <!--begin::Brand Text-->
  406. <span class="brand-text fw-light">AdminLTE 4</span>
  407. <!--end::Brand Text-->
  408. </a>
  409. <!--end::Brand Link-->
  410. </div>
  411. <!--end::Sidebar Brand-->
  412. <!--begin::Sidebar Wrapper-->
  413. <div class="sidebar-wrapper">
  414. <nav class="mt-2" aria-label="Main navigation">
  415. <!--begin::Sidebar Menu-->
  416. <ul
  417. class="nav sidebar-menu flex-column"
  418. data-lte-toggle="treeview"
  419. data-accordion="false"
  420. id="navigation"
  421. >
  422. <li class="nav-item">
  423. <a href="#" class="nav-link">
  424. <i class="nav-icon bi bi-speedometer"></i>
  425. <p>
  426. Dashboard
  427. <i class="nav-arrow bi bi-chevron-right"></i>
  428. </p>
  429. </a>
  430. <ul class="nav nav-treeview">
  431. <li class="nav-item">
  432. <a href="../index.html" class="nav-link">
  433. <i class="nav-icon bi bi-circle"></i>
  434. <p>Dashboard v1</p>
  435. </a>
  436. </li>
  437. <li class="nav-item">
  438. <a href="../index2.html" class="nav-link">
  439. <i class="nav-icon bi bi-circle"></i>
  440. <p>Dashboard v2</p>
  441. </a>
  442. </li>
  443. <li class="nav-item">
  444. <a href="../index3.html" class="nav-link">
  445. <i class="nav-icon bi bi-circle"></i>
  446. <p>Dashboard v3</p>
  447. </a>
  448. </li>
  449. </ul>
  450. </li>
  451. <li class="nav-item">
  452. <a href="../generate/theme.html" class="nav-link">
  453. <i class="nav-icon bi bi-palette"></i>
  454. <p>Theme Generate</p>
  455. </a>
  456. </li>
  457. <li class="nav-item">
  458. <a href="#" class="nav-link">
  459. <i class="nav-icon bi bi-box-seam-fill"></i>
  460. <p>
  461. Widgets
  462. <i class="nav-arrow bi bi-chevron-right"></i>
  463. </p>
  464. </a>
  465. <ul class="nav nav-treeview">
  466. <li class="nav-item">
  467. <a href="../widgets/small-box.html" class="nav-link">
  468. <i class="nav-icon bi bi-circle"></i>
  469. <p>Small Box</p>
  470. </a>
  471. </li>
  472. <li class="nav-item">
  473. <a href="../widgets/info-box.html" class="nav-link">
  474. <i class="nav-icon bi bi-circle"></i>
  475. <p>info Box</p>
  476. </a>
  477. </li>
  478. <li class="nav-item">
  479. <a href="../widgets/cards.html" class="nav-link">
  480. <i class="nav-icon bi bi-circle"></i>
  481. <p>Cards</p>
  482. </a>
  483. </li>
  484. </ul>
  485. </li>
  486. <li class="nav-item">
  487. <a href="#" class="nav-link">
  488. <i class="nav-icon bi bi-clipboard-fill"></i>
  489. <p>
  490. Layout Options
  491. <span class="nav-badge badge text-bg-secondary me-3">7</span>
  492. <i class="nav-arrow bi bi-chevron-right"></i>
  493. </p>
  494. </a>
  495. <ul class="nav nav-treeview">
  496. <li class="nav-item">
  497. <a href="../layout/unfixed-sidebar.html" class="nav-link">
  498. <i class="nav-icon bi bi-circle"></i>
  499. <p>Default Sidebar</p>
  500. </a>
  501. </li>
  502. <li class="nav-item">
  503. <a href="../layout/fixed-sidebar.html" class="nav-link">
  504. <i class="nav-icon bi bi-circle"></i>
  505. <p>Fixed Sidebar</p>
  506. </a>
  507. </li>
  508. <li class="nav-item">
  509. <a href="../layout/fixed-header.html" class="nav-link">
  510. <i class="nav-icon bi bi-circle"></i>
  511. <p>Fixed Header</p>
  512. </a>
  513. </li>
  514. <li class="nav-item">
  515. <a href="../layout/fixed-footer.html" class="nav-link">
  516. <i class="nav-icon bi bi-circle"></i>
  517. <p>Fixed Footer</p>
  518. </a>
  519. </li>
  520. <li class="nav-item">
  521. <a href="../layout/fixed-complete.html" class="nav-link">
  522. <i class="nav-icon bi bi-circle"></i>
  523. <p>Fixed Complete</p>
  524. </a>
  525. </li>
  526. <li class="nav-item">
  527. <a href="../layout/layout-custom-area.html" class="nav-link">
  528. <i class="nav-icon bi bi-circle"></i>
  529. <p>Layout <small>+ Custom Area </small></p>
  530. </a>
  531. </li>
  532. <li class="nav-item">
  533. <a href="../layout/sidebar-mini.html" class="nav-link">
  534. <i class="nav-icon bi bi-circle"></i>
  535. <p>Sidebar Mini</p>
  536. </a>
  537. </li>
  538. <li class="nav-item">
  539. <a href="../layout/collapsed-sidebar.html" class="nav-link">
  540. <i class="nav-icon bi bi-circle"></i>
  541. <p>Sidebar Mini <small>+ Collapsed</small></p>
  542. </a>
  543. </li>
  544. <li class="nav-item">
  545. <a href="../layout/collapsed-sidebar-without-hover.html" class="nav-link">
  546. <i class="nav-icon bi bi-circle"></i>
  547. <p>Sidebar Mini <small>+ Collapsed + No Hover</small></p>
  548. </a>
  549. </li>
  550. <li class="nav-item">
  551. <a href="../layout/logo-switch.html" class="nav-link">
  552. <i class="nav-icon bi bi-circle"></i>
  553. <p>Sidebar Mini <small>+ Logo Switch</small></p>
  554. </a>
  555. </li>
  556. <li class="nav-item">
  557. <a href="../layout/layout-rtl.html" class="nav-link">
  558. <i class="nav-icon bi bi-circle"></i>
  559. <p>Layout RTL</p>
  560. </a>
  561. </li>
  562. </ul>
  563. </li>
  564. <li class="nav-item">
  565. <a href="#" class="nav-link">
  566. <i class="nav-icon bi bi-tree-fill"></i>
  567. <p>
  568. UI Elements
  569. <i class="nav-arrow bi bi-chevron-right"></i>
  570. </p>
  571. </a>
  572. <ul class="nav nav-treeview">
  573. <li class="nav-item">
  574. <a href="../UI/general.html" class="nav-link">
  575. <i class="nav-icon bi bi-circle"></i>
  576. <p>General</p>
  577. </a>
  578. </li>
  579. <li class="nav-item">
  580. <a href="../UI/icons.html" class="nav-link">
  581. <i class="nav-icon bi bi-circle"></i>
  582. <p>Icons</p>
  583. </a>
  584. </li>
  585. <li class="nav-item">
  586. <a href="../UI/timeline.html" class="nav-link">
  587. <i class="nav-icon bi bi-circle"></i>
  588. <p>Timeline</p>
  589. </a>
  590. </li>
  591. </ul>
  592. </li>
  593. <li class="nav-item">
  594. <a href="#" class="nav-link">
  595. <i class="nav-icon bi bi-envelope"></i>
  596. <p>
  597. Mailbox
  598. <i class="nav-arrow bi bi-chevron-right"></i>
  599. </p>
  600. </a>
  601. <ul class="nav nav-treeview">
  602. <li class="nav-item">
  603. <a href="../mailbox/inbox.html" class="nav-link">
  604. <i class="nav-icon bi bi-circle"></i>
  605. <p>Inbox</p>
  606. </a>
  607. </li>
  608. <li class="nav-item">
  609. <a href="../mailbox/read.html" class="nav-link">
  610. <i class="nav-icon bi bi-circle"></i>
  611. <p>Read Message</p>
  612. </a>
  613. </li>
  614. <li class="nav-item">
  615. <a href="../mailbox/compose.html" class="nav-link">
  616. <i class="nav-icon bi bi-circle"></i>
  617. <p>Compose</p>
  618. </a>
  619. </li>
  620. </ul>
  621. </li>
  622. <li class="nav-item menu-open">
  623. <a href="#" class="nav-link active">
  624. <i class="nav-icon bi bi-pencil-square"></i>
  625. <p>
  626. Forms
  627. <i class="nav-arrow bi bi-chevron-right"></i>
  628. </p>
  629. </a>
  630. <ul class="nav nav-treeview">
  631. <li class="nav-item">
  632. <a href="../forms/elements.html" class="nav-link">
  633. <i class="nav-icon bi bi-circle"></i>
  634. <p>Elements</p>
  635. </a>
  636. </li>
  637. <li class="nav-item">
  638. <a href="../forms/layout.html" class="nav-link">
  639. <i class="nav-icon bi bi-circle"></i>
  640. <p>Layout</p>
  641. </a>
  642. </li>
  643. <li class="nav-item">
  644. <a href="../forms/validation.html" class="nav-link">
  645. <i class="nav-icon bi bi-circle"></i>
  646. <p>Validation</p>
  647. </a>
  648. </li>
  649. <li class="nav-item">
  650. <a href="../forms/wizard.html" class="nav-link active">
  651. <i class="nav-icon bi bi-circle"></i>
  652. <p>Wizard</p>
  653. </a>
  654. </li>
  655. </ul>
  656. </li>
  657. <li class="nav-item">
  658. <a href="#" class="nav-link">
  659. <i class="nav-icon bi bi-table"></i>
  660. <p>
  661. Tables
  662. <i class="nav-arrow bi bi-chevron-right"></i>
  663. </p>
  664. </a>
  665. <ul class="nav nav-treeview">
  666. <li class="nav-item">
  667. <a href="../tables/simple.html" class="nav-link">
  668. <i class="nav-icon bi bi-circle"></i>
  669. <p>Simple Tables</p>
  670. </a>
  671. </li>
  672. <li class="nav-item">
  673. <a href="../tables/data.html" class="nav-link">
  674. <i class="nav-icon bi bi-circle"></i>
  675. <p>Data Tables</p>
  676. </a>
  677. </li>
  678. </ul>
  679. </li>
  680. <li class="nav-header">PAGES</li>
  681. <li class="nav-item">
  682. <a href="#" class="nav-link">
  683. <i class="nav-icon bi bi-file-earmark-text"></i>
  684. <p>
  685. Pages
  686. <i class="nav-arrow bi bi-chevron-right"></i>
  687. </p>
  688. </a>
  689. <ul class="nav nav-treeview">
  690. <li class="nav-item">
  691. <a href="../pages/profile.html" class="nav-link">
  692. <i class="nav-icon bi bi-circle"></i>
  693. <p>Profile</p>
  694. </a>
  695. </li>
  696. <li class="nav-item">
  697. <a href="../pages/settings.html" class="nav-link">
  698. <i class="nav-icon bi bi-circle"></i>
  699. <p>Settings</p>
  700. </a>
  701. </li>
  702. <li class="nav-item">
  703. <a href="../pages/invoice.html" class="nav-link">
  704. <i class="nav-icon bi bi-circle"></i>
  705. <p>Invoice</p>
  706. </a>
  707. </li>
  708. <li class="nav-item">
  709. <a href="../pages/calendar.html" class="nav-link">
  710. <i class="nav-icon bi bi-circle"></i>
  711. <p>Calendar</p>
  712. </a>
  713. </li>
  714. <li class="nav-item">
  715. <a href="../pages/kanban.html" class="nav-link">
  716. <i class="nav-icon bi bi-circle"></i>
  717. <p>Kanban</p>
  718. </a>
  719. </li>
  720. <li class="nav-item">
  721. <a href="../pages/chat.html" class="nav-link">
  722. <i class="nav-icon bi bi-circle"></i>
  723. <p>Chat</p>
  724. </a>
  725. </li>
  726. <li class="nav-item">
  727. <a href="../pages/file-manager.html" class="nav-link">
  728. <i class="nav-icon bi bi-circle"></i>
  729. <p>File Manager</p>
  730. </a>
  731. </li>
  732. <li class="nav-item">
  733. <a href="../pages/projects.html" class="nav-link">
  734. <i class="nav-icon bi bi-circle"></i>
  735. <p>Projects</p>
  736. </a>
  737. </li>
  738. <li class="nav-item">
  739. <a href="../pages/pricing.html" class="nav-link">
  740. <i class="nav-icon bi bi-circle"></i>
  741. <p>Pricing</p>
  742. </a>
  743. </li>
  744. <li class="nav-item">
  745. <a href="../pages/faq.html" class="nav-link">
  746. <i class="nav-icon bi bi-circle"></i>
  747. <p>FAQ</p>
  748. </a>
  749. </li>
  750. <li class="nav-item">
  751. <a href="#" class="nav-link">
  752. <i class="nav-icon bi bi-circle"></i>
  753. <p>
  754. Error
  755. <i class="nav-arrow bi bi-chevron-right"></i>
  756. </p>
  757. </a>
  758. <ul class="nav nav-treeview">
  759. <li class="nav-item">
  760. <a href="../pages/404.html" class="nav-link">
  761. <i class="nav-icon bi bi-circle"></i>
  762. <p>404</p>
  763. </a>
  764. </li>
  765. <li class="nav-item">
  766. <a href="../pages/500.html" class="nav-link">
  767. <i class="nav-icon bi bi-circle"></i>
  768. <p>500</p>
  769. </a>
  770. </li>
  771. <li class="nav-item">
  772. <a href="../pages/maintenance.html" class="nav-link">
  773. <i class="nav-icon bi bi-circle"></i>
  774. <p>Maintenance</p>
  775. </a>
  776. </li>
  777. </ul>
  778. </li>
  779. </ul>
  780. </li>
  781. <li class="nav-header">EXAMPLES</li>
  782. <li class="nav-item">
  783. <a href="#" class="nav-link">
  784. <i class="nav-icon bi bi-box-arrow-in-right"></i>
  785. <p>
  786. Auth
  787. <i class="nav-arrow bi bi-chevron-right"></i>
  788. </p>
  789. </a>
  790. <ul class="nav nav-treeview">
  791. <li class="nav-item">
  792. <a href="#" class="nav-link">
  793. <i class="nav-icon bi bi-box-arrow-in-right"></i>
  794. <p>
  795. Version 1
  796. <i class="nav-arrow bi bi-chevron-right"></i>
  797. </p>
  798. </a>
  799. <ul class="nav nav-treeview">
  800. <li class="nav-item">
  801. <a href="../examples/login.html" class="nav-link">
  802. <i class="nav-icon bi bi-circle"></i>
  803. <p>Login</p>
  804. </a>
  805. </li>
  806. <li class="nav-item">
  807. <a href="../examples/register.html" class="nav-link">
  808. <i class="nav-icon bi bi-circle"></i>
  809. <p>Register</p>
  810. </a>
  811. </li>
  812. </ul>
  813. </li>
  814. <li class="nav-item">
  815. <a href="#" class="nav-link">
  816. <i class="nav-icon bi bi-box-arrow-in-right"></i>
  817. <p>
  818. Version 2
  819. <i class="nav-arrow bi bi-chevron-right"></i>
  820. </p>
  821. </a>
  822. <ul class="nav nav-treeview">
  823. <li class="nav-item">
  824. <a href="../examples/login-v2.html" class="nav-link">
  825. <i class="nav-icon bi bi-circle"></i>
  826. <p>Login</p>
  827. </a>
  828. </li>
  829. <li class="nav-item">
  830. <a href="../examples/register-v2.html" class="nav-link">
  831. <i class="nav-icon bi bi-circle"></i>
  832. <p>Register</p>
  833. </a>
  834. </li>
  835. </ul>
  836. </li>
  837. <li class="nav-item">
  838. <a href="../examples/lockscreen.html" class="nav-link">
  839. <i class="nav-icon bi bi-circle"></i>
  840. <p>Lockscreen</p>
  841. </a>
  842. </li>
  843. </ul>
  844. </li>
  845. <li class="nav-header">MULTI LEVEL EXAMPLE</li>
  846. <li class="nav-item">
  847. <a href="#" class="nav-link">
  848. <i class="nav-icon bi bi-circle-fill"></i>
  849. <p>Level 1</p>
  850. </a>
  851. </li>
  852. <li class="nav-item">
  853. <a href="#" class="nav-link">
  854. <i class="nav-icon bi bi-circle-fill"></i>
  855. <p>
  856. Level 1
  857. <i class="nav-arrow bi bi-chevron-right"></i>
  858. </p>
  859. </a>
  860. <ul class="nav nav-treeview">
  861. <li class="nav-item">
  862. <a href="#" class="nav-link">
  863. <i class="nav-icon bi bi-circle"></i>
  864. <p>Level 2</p>
  865. </a>
  866. </li>
  867. <li class="nav-item">
  868. <a href="#" class="nav-link">
  869. <i class="nav-icon bi bi-circle"></i>
  870. <p>
  871. Level 2
  872. <i class="nav-arrow bi bi-chevron-right"></i>
  873. </p>
  874. </a>
  875. <ul class="nav nav-treeview">
  876. <li class="nav-item">
  877. <a href="#" class="nav-link">
  878. <i class="nav-icon bi bi-record-circle-fill"></i>
  879. <p>Level 3</p>
  880. </a>
  881. </li>
  882. <li class="nav-item">
  883. <a href="#" class="nav-link">
  884. <i class="nav-icon bi bi-record-circle-fill"></i>
  885. <p>Level 3</p>
  886. </a>
  887. </li>
  888. <li class="nav-item">
  889. <a href="#" class="nav-link">
  890. <i class="nav-icon bi bi-record-circle-fill"></i>
  891. <p>Level 3</p>
  892. </a>
  893. </li>
  894. </ul>
  895. </li>
  896. <li class="nav-item">
  897. <a href="#" class="nav-link">
  898. <i class="nav-icon bi bi-circle"></i>
  899. <p>Level 2</p>
  900. </a>
  901. </li>
  902. </ul>
  903. </li>
  904. <li class="nav-item">
  905. <a href="#" class="nav-link">
  906. <i class="nav-icon bi bi-circle-fill"></i>
  907. <p>Level 1</p>
  908. </a>
  909. </li>
  910. <li class="nav-header">LABELS</li>
  911. <li class="nav-item">
  912. <a href="#" class="nav-link">
  913. <i class="nav-icon bi bi-circle text-danger"></i>
  914. <p class="text">Important</p>
  915. </a>
  916. </li>
  917. <li class="nav-item">
  918. <a href="#" class="nav-link">
  919. <i class="nav-icon bi bi-circle text-warning"></i>
  920. <p>Warning</p>
  921. </a>
  922. </li>
  923. <li class="nav-item">
  924. <a href="#" class="nav-link">
  925. <i class="nav-icon bi bi-circle text-info"></i>
  926. <p>Informational</p>
  927. </a>
  928. </li>
  929. </ul>
  930. <!--end::Sidebar Menu-->
  931. <!-- Docs CTA (bottom of sidebar) -->
  932. <div class="p-3 mt-3 border-top border-secondary border-opacity-25">
  933. <a
  934. href="../docs/introduction.html"
  935. class="btn btn-sm btn-outline-light w-100 d-flex align-items-center justify-content-center gap-2"
  936. >
  937. <i class="bi bi-book" aria-hidden="true"></i>
  938. View documentation
  939. </a>
  940. </div>
  941. </nav>
  942. </div>
  943. <!--end::Sidebar Wrapper-->
  944. </aside>
  945. <!--end::Sidebar-->
  946. <main class="app-main">
  947. <div class="app-content-header">
  948. <div class="container-fluid">
  949. <div class="row">
  950. <div class="col-sm-6">
  951. <h3 class="mb-0">Form Wizard</h3>
  952. </div>
  953. <div class="col-sm-6">
  954. <ol class="breadcrumb float-sm-end">
  955. <li class="breadcrumb-item"><a href="#">Home</a></li>
  956. <li class="breadcrumb-item"><a href="#">Forms</a></li>
  957. <li class="breadcrumb-item active" aria-current="page">Wizard</li>
  958. </ol>
  959. </div>
  960. </div>
  961. </div>
  962. </div>
  963. <div class="app-content">
  964. <div class="container-fluid">
  965. <div class="row justify-content-center">
  966. <div class="col-lg-10 col-xl-8">
  967. <div class="card">
  968. <div class="card-body p-4">
  969. <!-- Step indicators -->
  970. <ol class="wizard-steps mb-4" id="wizard-steps">
  971. <li class="active" data-step="0">Account</li>
  972. <li data-step="1">Profile</li>
  973. <li data-step="2">Preferences</li>
  974. <li data-step="3">Review</li>
  975. </ol>
  976. <!-- Form -->
  977. <form id="wizard-form" novalidate>
  978. <!-- Step 1 -->
  979. <fieldset class="wizard-step" data-step="0">
  980. <h2 class="h5 mb-3">Create your account</h2>
  981. <div class="row g-3">
  982. <div class="col-md-6">
  983. <label class="form-label" for="wz-email">Email</label>
  984. <input type="email" class="form-control" id="wz-email" required />
  985. <div class="invalid-feedback">Please enter a valid email.</div>
  986. </div>
  987. <div class="col-md-6">
  988. <label class="form-label" for="wz-username"> Username </label>
  989. <input
  990. type="text"
  991. class="form-control"
  992. id="wz-username"
  993. required
  994. minlength="3"
  995. />
  996. <div class="invalid-feedback">
  997. Username must be at least 3 characters.
  998. </div>
  999. </div>
  1000. <div class="col-md-6">
  1001. <label class="form-label" for="wz-password"> Password </label>
  1002. <input
  1003. type="password"
  1004. class="form-control"
  1005. id="wz-password"
  1006. required
  1007. minlength="8"
  1008. />
  1009. <div class="invalid-feedback">
  1010. Password must be at least 8 characters.
  1011. </div>
  1012. </div>
  1013. <div class="col-md-6">
  1014. <label class="form-label" for="wz-password2"> Confirm password </label>
  1015. <input
  1016. type="password"
  1017. class="form-control"
  1018. id="wz-password2"
  1019. required
  1020. />
  1021. <div class="invalid-feedback">Passwords must match.</div>
  1022. </div>
  1023. </div>
  1024. </fieldset>
  1025. <!-- Step 2 -->
  1026. <fieldset class="wizard-step d-none" data-step="1">
  1027. <h2 class="h5 mb-3">Tell us about yourself</h2>
  1028. <div class="row g-3">
  1029. <div class="col-md-6">
  1030. <label class="form-label" for="wz-first"> First name </label>
  1031. <input type="text" class="form-control" id="wz-first" required />
  1032. <div class="invalid-feedback">First name is required.</div>
  1033. </div>
  1034. <div class="col-md-6">
  1035. <label class="form-label" for="wz-last"> Last name </label>
  1036. <input type="text" class="form-control" id="wz-last" required />
  1037. <div class="invalid-feedback">Last name is required.</div>
  1038. </div>
  1039. <div class="col-md-6">
  1040. <label class="form-label" for="wz-company"> Company </label>
  1041. <input type="text" class="form-control" id="wz-company" />
  1042. </div>
  1043. <div class="col-md-6">
  1044. <label class="form-label" for="wz-role"> Role </label>
  1045. <select class="form-select" id="wz-role" required>
  1046. <option value="">Choose&hellip;</option>
  1047. <option>Founder / CEO</option>
  1048. <option>Engineering</option>
  1049. <option>Design</option>
  1050. <option>Marketing</option>
  1051. <option>Other</option>
  1052. </select>
  1053. <div class="invalid-feedback">Please select a role.</div>
  1054. </div>
  1055. </div>
  1056. </fieldset>
  1057. <!-- Step 3 -->
  1058. <fieldset class="wizard-step d-none" data-step="2">
  1059. <h2 class="h5 mb-3">Notification preferences</h2>
  1060. <div class="form-check form-switch mb-2">
  1061. <input
  1062. class="form-check-input"
  1063. type="checkbox"
  1064. id="wz-notif-product"
  1065. role="switch"
  1066. checked
  1067. />
  1068. <label class="form-check-label" for="wz-notif-product">
  1069. Product updates &amp; releases
  1070. </label>
  1071. </div>
  1072. <div class="form-check form-switch mb-2">
  1073. <input
  1074. class="form-check-input"
  1075. type="checkbox"
  1076. id="wz-notif-security"
  1077. role="switch"
  1078. checked
  1079. />
  1080. <label class="form-check-label" for="wz-notif-security">
  1081. Security alerts
  1082. </label>
  1083. </div>
  1084. <div class="form-check form-switch mb-3">
  1085. <input
  1086. class="form-check-input"
  1087. type="checkbox"
  1088. id="wz-notif-marketing"
  1089. role="switch"
  1090. />
  1091. <label class="form-check-label" for="wz-notif-marketing">
  1092. Marketing &amp; tips
  1093. </label>
  1094. </div>
  1095. <label class="form-label" for="wz-frequency"> Digest frequency </label>
  1096. <select class="form-select" id="wz-frequency">
  1097. <option>Real time</option>
  1098. <option selected>Daily</option>
  1099. <option>Weekly</option>
  1100. <option>Never</option>
  1101. </select>
  1102. </fieldset>
  1103. <!-- Step 4 -->
  1104. <fieldset class="wizard-step d-none" data-step="3">
  1105. <h2 class="h5 mb-3">Review &amp; confirm</h2>
  1106. <dl class="row mb-3" id="wz-summary"></dl>
  1107. <div class="form-check">
  1108. <input class="form-check-input" type="checkbox" id="wz-terms" required />
  1109. <label class="form-check-label" for="wz-terms">
  1110. I agree to the <a href="#">terms of service</a>.
  1111. </label>
  1112. <div class="invalid-feedback">You must accept the terms to continue.</div>
  1113. </div>
  1114. </fieldset>
  1115. <!-- Navigation -->
  1116. <div class="d-flex justify-content-between mt-4">
  1117. <button
  1118. type="button"
  1119. class="btn btn-outline-secondary"
  1120. id="wz-prev"
  1121. disabled
  1122. >
  1123. <i class="bi bi-arrow-left me-1" aria-hidden="true"></i>
  1124. Previous
  1125. </button>
  1126. <button type="button" class="btn btn-primary" id="wz-next">
  1127. Next
  1128. <i class="bi bi-arrow-right ms-1" aria-hidden="true"></i>
  1129. </button>
  1130. <button type="submit" class="btn btn-success d-none" id="wz-submit">
  1131. <i class="bi bi-check-lg me-1" aria-hidden="true"></i>
  1132. Submit
  1133. </button>
  1134. </div>
  1135. </form>
  1136. </div>
  1137. </div>
  1138. </div>
  1139. </div>
  1140. </div>
  1141. </div>
  1142. </main>
  1143. <!--begin::Footer-->
  1144. <footer class="app-footer">
  1145. <!--begin::To the end-->
  1146. <div class="float-end d-none d-sm-inline">Anything you want</div>
  1147. <!--end::To the end-->
  1148. <!--begin::Copyright-->
  1149. <strong>
  1150. Copyright &copy; 2014-2026&nbsp;
  1151. <a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
  1152. </strong>
  1153. All rights reserved.
  1154. <!--end::Copyright-->
  1155. </footer>
  1156. <!--end::Footer-->
  1157. </div>
  1158. <!--begin::Third Party Plugin(OverlayScrollbars)-->
  1159. <script
  1160. src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
  1161. crossorigin="anonymous"
  1162. ></script>
  1163. <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
  1164. <script
  1165. src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
  1166. crossorigin="anonymous"
  1167. ></script>
  1168. <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
  1169. <script
  1170. src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
  1171. crossorigin="anonymous"
  1172. ></script>
  1173. <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
  1174. <script src="../js/adminlte.js"></script>
  1175. <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
  1176. <script>
  1177. const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
  1178. const Default = {
  1179. scrollbarTheme: 'os-theme-light',
  1180. scrollbarAutoHide: 'leave',
  1181. scrollbarClickScroll: true,
  1182. };
  1183. document.addEventListener('DOMContentLoaded', function () {
  1184. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  1185. // Disable OverlayScrollbars on mobile devices to prevent touch interference
  1186. const isMobile = window.innerWidth <= 992;
  1187. if (
  1188. sidebarWrapper &&
  1189. OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined &&
  1190. !isMobile
  1191. ) {
  1192. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  1193. scrollbars: {
  1194. theme: Default.scrollbarTheme,
  1195. autoHide: Default.scrollbarAutoHide,
  1196. clickScroll: Default.scrollbarClickScroll,
  1197. },
  1198. });
  1199. }
  1200. });
  1201. </script>
  1202. <!--end::OverlayScrollbars Configure--><!--begin::Color Mode Toggle (#6010)-->
  1203. <script>
  1204. (() => {
  1205. 'use strict';
  1206. const STORAGE_KEY = 'lte-theme';
  1207. const getStoredTheme = () => localStorage.getItem(STORAGE_KEY);
  1208. const setStoredTheme = (theme) => localStorage.setItem(STORAGE_KEY, theme);
  1209. const prefersDark = () => globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
  1210. const getPreferredTheme = () => {
  1211. const stored = getStoredTheme();
  1212. if (stored) return stored;
  1213. return prefersDark() ? 'dark' : 'light';
  1214. };
  1215. const setTheme = (theme) => {
  1216. const resolved = theme === 'auto' ? (prefersDark() ? 'dark' : 'light') : theme;
  1217. document.documentElement.setAttribute('data-bs-theme', resolved);
  1218. };
  1219. setTheme(getPreferredTheme());
  1220. const showActiveTheme = (theme) => {
  1221. // Highlight the active dropdown option
  1222. document.querySelectorAll('[data-bs-theme-value]').forEach((el) => {
  1223. el.classList.remove('active');
  1224. el.setAttribute('aria-pressed', 'false');
  1225. const check = el.querySelector('.bi-check-lg');
  1226. if (check) check.classList.add('d-none');
  1227. });
  1228. const active = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  1229. if (active) {
  1230. active.classList.add('active');
  1231. active.setAttribute('aria-pressed', 'true');
  1232. const check = active.querySelector('.bi-check-lg');
  1233. if (check) check.classList.remove('d-none');
  1234. }
  1235. // Sync the topbar trigger icon
  1236. document.querySelectorAll('[data-lte-theme-icon]').forEach((icon) => {
  1237. icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme);
  1238. });
  1239. };
  1240. globalThis.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
  1241. const stored = getStoredTheme();
  1242. if (!stored || stored === 'auto') setTheme(getPreferredTheme());
  1243. });
  1244. document.addEventListener('DOMContentLoaded', () => {
  1245. showActiveTheme(getPreferredTheme());
  1246. document.querySelectorAll('[data-bs-theme-value]').forEach((toggle) => {
  1247. toggle.addEventListener('click', () => {
  1248. const theme = toggle.getAttribute('data-bs-theme-value');
  1249. setStoredTheme(theme);
  1250. setTheme(theme);
  1251. showActiveTheme(theme);
  1252. });
  1253. });
  1254. });
  1255. })();
  1256. </script>
  1257. <!--end::Color Mode Toggle-->
  1258. <script>
  1259. document.addEventListener('DOMContentLoaded', () => {
  1260. const form = document.getElementById('wizard-form');
  1261. const steps = form.querySelectorAll('.wizard-step');
  1262. const indicators = document.querySelectorAll('#wizard-steps li');
  1263. const prevBtn = document.getElementById('wz-prev');
  1264. const nextBtn = document.getElementById('wz-next');
  1265. const submitBtn = document.getElementById('wz-submit');
  1266. let current = 0;
  1267. const show = (i) => {
  1268. steps.forEach((s, idx) => s.classList.toggle('d-none', idx !== i));
  1269. indicators.forEach((li, idx) => {
  1270. li.classList.toggle('active', idx === i);
  1271. li.classList.toggle('completed', idx < i);
  1272. });
  1273. prevBtn.disabled = i === 0;
  1274. const last = i === steps.length - 1;
  1275. nextBtn.classList.toggle('d-none', last);
  1276. submitBtn.classList.toggle('d-none', !last);
  1277. if (last) renderSummary();
  1278. };
  1279. const validateStep = (i) => {
  1280. const step = steps[i];
  1281. const fields = step.querySelectorAll('input, select, textarea');
  1282. let valid = true;
  1283. fields.forEach((field) => {
  1284. field.classList.remove('is-invalid');
  1285. if (!field.checkValidity()) {
  1286. field.classList.add('is-invalid');
  1287. valid = false;
  1288. }
  1289. });
  1290. // Password match check on step 0
  1291. if (i === 0) {
  1292. const p1 = document.getElementById('wz-password');
  1293. const p2 = document.getElementById('wz-password2');
  1294. if (p1.value !== p2.value) {
  1295. p2.classList.add('is-invalid');
  1296. valid = false;
  1297. }
  1298. }
  1299. return valid;
  1300. };
  1301. const renderSummary = () => {
  1302. const summary = document.getElementById('wz-summary');
  1303. const get = (id) => document.getElementById(id);
  1304. const rows = [
  1305. ['Email', get('wz-email').value],
  1306. ['Username', get('wz-username').value],
  1307. ['Name', `${get('wz-first').value} ${get('wz-last').value}`],
  1308. ['Company', get('wz-company').value || '—'],
  1309. ['Role', get('wz-role').value || '—'],
  1310. ['Digest', get('wz-frequency').value],
  1311. ];
  1312. summary.innerHTML = rows
  1313. .map(
  1314. ([k, v]) =>
  1315. `<dt class="col-sm-4 text-secondary fw-normal">${k}</dt><dd class="col-sm-8 fw-semibold">${v}</dd>`,
  1316. )
  1317. .join('');
  1318. };
  1319. nextBtn.addEventListener('click', () => {
  1320. if (!validateStep(current)) return;
  1321. if (current < steps.length - 1) {
  1322. current++;
  1323. show(current);
  1324. }
  1325. });
  1326. prevBtn.addEventListener('click', () => {
  1327. if (current > 0) {
  1328. current--;
  1329. show(current);
  1330. }
  1331. });
  1332. form.addEventListener('submit', (e) => {
  1333. e.preventDefault();
  1334. if (!validateStep(current)) return;
  1335. alert('Wizard complete! Form would submit here.');
  1336. });
  1337. show(0);
  1338. });
  1339. </script>
  1340. </body>
  1341. </html>