diff --git a/assets/js/index.js b/assets/js/index.js
index 28b4a2f..45a4f31 100644
--- a/assets/js/index.js
+++ b/assets/js/index.js
@@ -1,486 +1 @@
-/******/ (() => { // webpackBootstrap
-/******/ var __webpack_modules__ = ({
-
-/***/ "./src/scripts/CollapsePanel.js":
-/*!**************************************!*\
- !*** ./src/scripts/CollapsePanel.js ***!
- \**************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-class CollapsePanel {
- constructor() {
- this.init();
- }
- init() {
- document.addEventListener('DOMContentLoaded', () => {
- this.addToggleCollapseListener('.accordion-toggle');
- });
- }
- addToggleCollapseListener(selector) {
- this.toggles = document.querySelectorAll(selector);
- this.toggles.forEach(toggle => {
- toggle.addEventListener('click', () => {
- toggle.parentNode.parentNode.classList.toggle('active');
- });
- });
- }
-}
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CollapsePanel);
-
-/***/ }),
-
-/***/ "./src/scripts/ContactTabs.js":
-/*!************************************!*\
- !*** ./src/scripts/ContactTabs.js ***!
- \************************************/
-/***/ (() => {
-
-class ContactTabs {
- constructor() {
- this.tabLinks = document.querySelectorAll('.tab-link');
- this.tabs = document.querySelectorAll('.tab');
- this.selectTab = document.getElementById('tabs');
- this.contactTabs = document.getElementById('contact-tabs');
- if (!this.contactTabs) {
- console.error("Element with id 'contact-tabs' not found.");
- return;
- }
- this.initializeTabs();
- this.syncTabsWithSelect();
- this.syncSelectWithTabs();
- this.handleHashNavigation(); // Call handleHashNavigation on initialization
- this.handleFormSubmission(); // Handle form submission on initialization
- }
- initializeTabs() {
- // Hide all tab contents except the first one
- this.tabs.forEach((tab, index) => {
- if (index !== 0) {
- tab.style.display = 'none';
- }
- });
-
- // Activate the first tab link by default
- this.tabLinks[0].classList.add('bg-blue-100');
- this.tabLinks.forEach(tabLink => {
- tabLink.addEventListener('click', this.handleTabLinkClick.bind(this));
- });
- }
- handleTabLinkClick(event) {
- // event.preventDefault(); // Prevent scrolling to the hash position
- const tabLink = event.currentTarget;
- const tabName = tabLink.getAttribute('data-tab');
-
- // Store the last opened tab in session storage
- sessionStorage.setItem('lastTab', tabName);
-
- // Update the hash
- this.updateHash(tabName);
-
- // Show the clicked tab
- this.showTab(tabName);
- }
- showTab(tabName) {
- // Hide all tabs
- this.tabs.forEach(tab => {
- tab.style.display = 'none';
- });
-
- // Deactivate all tab links
- this.tabLinks.forEach(link => {
- link.classList.remove('bg-blue-100');
- });
-
- // Show the selected tab
- document.getElementById(tabName).style.display = 'block';
-
- // Activate the clicked tab link
- const tabLink = document.querySelector(`[data-tab="${tabName}"]`);
- if (tabLink) {
- tabLink.classList.add('bg-blue-100');
- }
-
- // Update the select dropdown
- if (this.selectTab) {
- this.selectTab.value = tabName;
- }
- }
- syncTabsWithSelect() {
- if (!this.selectTab) return;
- this.selectTab.addEventListener('change', event => {
- const selectedTabName = event.target.value;
-
- // Store the last opened tab in session storage
- sessionStorage.setItem('lastTab', selectedTabName);
-
- // Update the hash
- this.updateHash(selectedTabName);
- this.showTab(selectedTabName);
- });
- }
- syncSelectWithTabs() {
- if (!this.tabLinks) return;
- this.tabLinks.forEach(tabLink => {
- tabLink.addEventListener('click', event => {
- const tabName = tabLink.getAttribute('data-tab');
-
- // Store the last opened tab in session storage
- sessionStorage.setItem('lastTab', tabName);
-
- // Update the hash
- this.updateHash(tabName);
- this.selectTab.value = tabName;
- });
- });
- }
- handleHashNavigation() {
- const lastTab = sessionStorage.getItem('lastTab');
- const hash = window.location.hash.substring(1);
- if (hash) {
- // If there's a hash in the URL, attempt to show the corresponding tab
- this.showTab(hash);
- // Store the last opened tab in session storage
- sessionStorage.setItem('lastTab', hash);
- } else if (lastTab) {
- // If there's a stored tab, show that tab
- this.showTab(lastTab);
- } else {
- // If there's neither a stored tab nor a hash, default to showing the first tab
- this.showTab(this.tabLinks[0].dataset.tab);
- }
- }
- updateHash(hash) {
- // Update the hash without causing the page to scroll
- history.replaceState(null, null, '#' + hash);
- }
- handleFormSubmission() {
- // Check for success or failure notifications in the URL query parameters
- const urlParams = new URLSearchParams(window.location.search);
- const successMessage = urlParams.get('success');
- const errorMessage = urlParams.get('error');
- if (successMessage || errorMessage) {
- // If success or error notification is present, show the last opened tab
- const lastTab = sessionStorage.getItem('lastTab');
- if (lastTab) {
- this.showTab(lastTab);
- }
- // Remove the message from the URL
- history.replaceState(null, null, window.location.pathname);
- }
- }
-}
-document.addEventListener('DOMContentLoaded', function () {
- // Check if element with id "contact-tabs" exists
- const contactTabs = document.getElementById('contact-tabs');
- if (contactTabs) {
- const tabs = new ContactTabs();
- // Handle hash navigation on hash change
- window.addEventListener('hashchange', () => {
- tabs.handleHashNavigation();
- });
- } else {
- console.log("Element with id 'contact-tabs' not found.");
- }
-});
-
-/***/ }),
-
-/***/ "./src/scripts/NavControl.js":
-/*!***********************************!*\
- !*** ./src/scripts/NavControl.js ***!
- \***********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-class NavControl {
- constructor() {
- this.topBanner = document.getElementById('top-banner');
- this.navbar = document.getElementById('header-nav');
- this.navbarPadding = document.getElementById('header-padder');
- this.contentContainer = document.getElementById('content-container');
- this.toggleMenuBtn = document.getElementById('toggle-nav');
- this.slideOutMenu = document.getElementById('slide-out-menu');
- this.accordions = document.querySelectorAll('#slide-out-menu .accordion');
- this.toggleSearchBtn = document.getElementById('toggle-search');
- this.headerSearch = document.getElementById('header-search');
- this.headerSearchOverlay = document.getElementById('search-overlay');
- this.hoursDropdownToggle = document.getElementById('hours-dropdown-toggle');
- this.todaysBusinessHoursEl = document.getElementById('todays-business-hours');
- this.businessHoursMenu = this.hoursDropdownToggle.nextElementSibling;
- this.init();
- }
- init() {
- // Add event listeners directly, no need to wait for DOMContentLoaded
- // Add a single click event listener to document for handling link clicks and outside clicks
- document.addEventListener('click', event => {
- this.handleLinkAndOutsideClick(event);
- });
- window.addEventListener('scroll', this.handleScroll.bind(this));
-
- // Open and Close the Nav Menu
- this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu());
-
- // Open and Close the Nav Search
- this.toggleSearchBtn.addEventListener('click', () => this.toggleSearch());
-
- // Delegate click event to handle business hours toggle
- this.hoursDropdownToggle.addEventListener('click', () => {
- this.businessHoursMenu.classList.toggle('hidden');
- });
- document.addEventListener('keyup', e => this.keyPressDispatcher(e));
- this.businessHours();
- }
- headerOutOfView() {
- this.navbar.classList.add('out-of-view');
- }
- headerInView() {
- setTimeout(() => {
- this.navbar.classList.add('in-view');
- }, 100);
- // setTimeout(() => {
- // this.navbar.classList.remove('out-of-view');
- // this.navbar.classList.remove('in-view');
- // }, 2000);
- }
- handleScroll() {
- var scrollPosition = window.scrollY;
- if (scrollPosition > 0) {
- // Change this value to adjust when the navbar becomes fixed
- this.headerOutOfView();
- this.headerInView();
- this.navbarPadding.style.display = 'block';
- // this.topBanner.classList.remove('open');
- this.navbar.classList.add('fixed');
- // this.navbarPadding.classList.add('open');
- this.topBanner.style.display = 'none';
- } else {
- // this.topBanner.classList.add('open');
- this.topBanner.style.display = 'block';
- this.navbarPadding.style.display = 'none';
- this.navbar.classList.remove('in-view', 'out-of-view', 'fixed');
- // this.navbarPadding.classList.remove('open');
- setTimeout(() => {
- this.navbar.classList.remove('in-view');
- }, 100);
- }
- }
- isSearchOpen() {
- if (this.headerSearch.classList.contains('active')) {
- return true; // Search is open
- } else {
- return false; // Search is not open
- }
- }
- isMenuOpen() {
- if (this.slideOutMenu.classList.contains('active')) {
- return true; // Menu is open
- } else {
- return false; // Menu is not open
- }
- }
- keyPressDispatcher(e) {
- console.log('Key pressed: ', e.keyCode); // Add this line
- if (e.keyCode === 83 && !this.isSearchOpen()) {
- this.toggleSearch();
- }
- if (e.keyCode === 77 && !this.isMenuOpen() && !this.isSearchOpen()) {
- this.toggleNavMenu();
- }
- if (e.keyCode === 27) {
- if (this.isSearchOpen()) {
- this.toggleSearch();
- } else if (this.isMenuOpen()) {
- this.toggleNavMenu();
- }
- }
- }
- handleLinkAndOutsideClick(event) {
- const target = event.target;
-
- // Handle link clicks
- const link = target.closest('a');
- if (link) {
- if (link.href === window.location.href && this.toggleMenuBtn.classList.contains('active')) {
- this.toggleNavMenu();
- }
- return;
- }
-
- // Handle outside clicks
- const isOutsideMenu = !this.toggleMenuBtn.contains(target) && !this.slideOutMenu.contains(target) && !this.toggleSearchBtn.contains(target) && !this.headerSearch.contains(target);
- if (isOutsideMenu) {
- this.toggleMenuBtn.classList.remove('active');
- this.slideOutMenu.classList.remove('open');
- this.removeBodyNoScroll();
- }
- const isOutsideBusinessHoursToggle = !this.hoursDropdownToggle.contains(target) && !this.hoursDropdownToggle.classList.contains('hidden');
- if (isOutsideBusinessHoursToggle) {
- this.businessHoursMenu.classList.add('hidden');
- }
- const isOutsideSearch = !this.toggleSearchBtn.contains(target) && !this.headerSearch.contains(target) && !this.toggleMenuBtn.contains(target) && !this.slideOutMenu.contains(target);
- if (isOutsideSearch) {
- this.toggleSearchBtn.classList.remove('active');
- this.headerSearch.classList.remove('active');
- this.headerSearchOverlay.classList.remove('active');
- this.removeBodyNoScroll();
- }
- }
- toggleNavMenu() {
- if (this.headerSearch.classList.contains('active')) {
- this.toggleSearch();
- }
- this.toggleMenuBtn.classList.toggle('active');
- this.slideOutMenu.classList.toggle('open');
- document.body.classList.toggle('noScroll');
- this.collapseAllAccordions();
- }
- toggleSearch() {
- if (this.toggleMenuBtn.classList.contains('active')) {
- this.toggleNavMenu();
- }
- this.headerSearch.classList.toggle('active');
- this.headerSearchOverlay.classList.toggle('active');
- this.headerSearch.querySelector('input').focus();
- document.body.classList.toggle('noScroll');
- if (this.headerSearch.classList.contains('active')) {
- this.headerSearch.querySelector('input').value = '';
- }
- }
- collapseAllAccordions() {
- this.accordions.forEach(accordion => {
- accordion.classList.remove('active');
- });
- }
- removeBodyNoScroll() {
- if (document.body.classList.contains('noScroll')) {
- document.body.classList.remove('noScroll');
- }
- }
- businessHours() {
- const dayOfWeek = new Date().getDay();
- const defaultHours = 'Open Today from 9:00 am - 5:00 pm';
- let todaysBusinessHours;
- switch (dayOfWeek) {
- case 0: // Sunday
- case 6:
- // Saturday
- todaysBusinessHours = `We are closed today.`;
- break;
- default:
- // Monday to Friday
- todaysBusinessHours = `${defaultHours}`;
- break;
- }
- this.todaysBusinessHoursEl.innerHTML = todaysBusinessHours;
- }
-}
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NavControl);
-
-/***/ })
-
-/******/ });
-/************************************************************************/
-/******/ // The module cache
-/******/ var __webpack_module_cache__ = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/ // Check if module is in cache
-/******/ var cachedModule = __webpack_module_cache__[moduleId];
-/******/ if (cachedModule !== undefined) {
-/******/ return cachedModule.exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = __webpack_module_cache__[moduleId] = {
-/******/ // no module.id needed
-/******/ // no module.loaded needed
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/************************************************************************/
-/******/ /* webpack/runtime/compat get default export */
-/******/ (() => {
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = (module) => {
-/******/ var getter = module && module.__esModule ?
-/******/ () => (module['default']) :
-/******/ () => (module);
-/******/ __webpack_require__.d(getter, { a: getter });
-/******/ return getter;
-/******/ };
-/******/ })();
-/******/
-/******/ /* webpack/runtime/define property getters */
-/******/ (() => {
-/******/ // define getter functions for harmony exports
-/******/ __webpack_require__.d = (exports, definition) => {
-/******/ for(var key in definition) {
-/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
-/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
-/******/ }
-/******/ }
-/******/ };
-/******/ })();
-/******/
-/******/ /* webpack/runtime/hasOwnProperty shorthand */
-/******/ (() => {
-/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
-/******/ })();
-/******/
-/******/ /* webpack/runtime/make namespace object */
-/******/ (() => {
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = (exports) => {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/ })();
-/******/
-/************************************************************************/
-var __webpack_exports__ = {};
-// This entry need to be wrapped in an IIFE because it need to be in strict mode.
-(() => {
-"use strict";
-/*!**********************!*\
- !*** ./src/index.js ***!
- \**********************/
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _scripts_CollapsePanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scripts/CollapsePanel */ "./src/scripts/CollapsePanel.js");
-/* harmony import */ var _scripts_NavControl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scripts/NavControl */ "./src/scripts/NavControl.js");
-/* harmony import */ var _scripts_ContactTabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scripts/ContactTabs */ "./src/scripts/ContactTabs.js");
-/* harmony import */ var _scripts_ContactTabs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_scripts_ContactTabs__WEBPACK_IMPORTED_MODULE_2__);
-// import './styles/styles.scss';
-
-// import React from 'react';
-// import { createRoot } from 'react-dom/client';
-
-
-
-// import TestModule from './scripts/TestModule';
-
-// createRoot(document.querySelector('#root')).render();
-const collapsePanel = new _scripts_CollapsePanel__WEBPACK_IMPORTED_MODULE_0__["default"]();
-// const testModule = new TestModule();
-const navControl = new _scripts_NavControl__WEBPACK_IMPORTED_MODULE_1__["default"]();
-})();
-
-/******/ })()
-;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
+(()=>{var e={31:()=>{class e{constructor(){this.tabLinks=document.querySelectorAll(".tab-link"),this.tabs=document.querySelectorAll(".tab"),this.selectTab=document.getElementById("tabs"),this.contactTabs=document.getElementById("contact-tabs"),this.contactTabs?(this.initializeTabs(),this.syncTabsWithSelect(),this.syncSelectWithTabs(),this.handleHashNavigation(),this.handleFormSubmission()):console.error("Element with id 'contact-tabs' not found.")}initializeTabs(){this.tabs.forEach(((e,t)=>{0!==t&&(e.style.display="none")})),this.tabLinks[0].classList.add("bg-blue-100"),this.tabLinks.forEach((e=>{e.addEventListener("click",this.handleTabLinkClick.bind(this))}))}handleTabLinkClick(e){const t=e.currentTarget.getAttribute("data-tab");sessionStorage.setItem("lastTab",t),this.updateHash(t),this.showTab(t)}showTab(e){this.tabs.forEach((e=>{e.style.display="none"})),this.tabLinks.forEach((e=>{e.classList.remove("bg-blue-100")})),document.getElementById(e).style.display="block";const t=document.querySelector(`[data-tab="${e}"]`);t&&t.classList.add("bg-blue-100"),this.selectTab&&(this.selectTab.value=e)}syncTabsWithSelect(){this.selectTab&&this.selectTab.addEventListener("change",(e=>{const t=e.target.value;sessionStorage.setItem("lastTab",t),this.updateHash(t),this.showTab(t)}))}syncSelectWithTabs(){this.tabLinks&&this.tabLinks.forEach((e=>{e.addEventListener("click",(t=>{const s=e.getAttribute("data-tab");sessionStorage.setItem("lastTab",s),this.updateHash(s),this.selectTab.value=s}))}))}handleHashNavigation(){const e=sessionStorage.getItem("lastTab"),t=window.location.hash.substring(1);t?(this.showTab(t),sessionStorage.setItem("lastTab",t)):e?this.showTab(e):this.showTab(this.tabLinks[0].dataset.tab)}updateHash(e){history.replaceState(null,null,"#"+e)}handleFormSubmission(){const e=new URLSearchParams(window.location.search),t=e.get("success"),s=e.get("error");if(t||s){const e=sessionStorage.getItem("lastTab");e&&this.showTab(e),history.replaceState(null,null,window.location.pathname)}}}document.addEventListener("DOMContentLoaded",(function(){if(document.getElementById("contact-tabs")){const t=new e;window.addEventListener("hashchange",(()=>{t.handleHashNavigation()}))}else console.log("Element with id 'contact-tabs' not found.")}))}},t={};function s(a){var i=t[a];if(void 0!==i)return i.exports;var n=t[a]={exports:{}};return e[a](n,n.exports,s),n.exports}(()=>{"use strict";s(31),new class{constructor(){this.init()}init(){document.addEventListener("DOMContentLoaded",(()=>{this.addToggleCollapseListener(".accordion-toggle")}))}addToggleCollapseListener(e){this.toggles=document.querySelectorAll(e),this.toggles.forEach((e=>{e.addEventListener("click",(()=>{e.parentNode.parentNode.classList.toggle("active")}))}))}},new class{constructor(){this.topBanner=document.getElementById("top-banner"),this.navbar=document.getElementById("header-nav"),this.navbarPadding=document.getElementById("header-padder"),this.contentContainer=document.getElementById("content-container"),this.toggleMenuBtn=document.getElementById("toggle-nav"),this.slideOutMenu=document.getElementById("slide-out-menu"),this.accordions=document.querySelectorAll("#slide-out-menu .accordion"),this.toggleSearchBtn=document.getElementById("toggle-search"),this.headerSearch=document.getElementById("header-search"),this.headerSearchOverlay=document.getElementById("search-overlay"),this.hoursDropdownToggle=document.getElementById("hours-dropdown-toggle"),this.todaysBusinessHoursEl=document.getElementById("todays-business-hours"),this.businessHoursMenu=this.hoursDropdownToggle.nextElementSibling,this.init()}init(){document.addEventListener("click",(e=>{this.handleLinkAndOutsideClick(e)})),window.addEventListener("scroll",this.handleScroll.bind(this)),this.toggleMenuBtn.addEventListener("click",(()=>this.toggleNavMenu())),this.toggleSearchBtn.addEventListener("click",(()=>this.toggleSearch())),this.hoursDropdownToggle.addEventListener("click",(()=>{this.businessHoursMenu.classList.toggle("hidden")})),document.addEventListener("keyup",(e=>this.keyPressDispatcher(e))),this.businessHours()}headerOutOfView(){this.navbar.classList.add("out-of-view")}headerInView(){setTimeout((()=>{this.navbar.classList.add("in-view")}),100)}handleScroll(){window.scrollY>0?(this.headerOutOfView(),this.headerInView(),this.navbarPadding.style.display="block",this.navbar.classList.add("fixed"),this.topBanner.style.display="none"):(this.topBanner.style.display="block",this.navbarPadding.style.display="none",this.navbar.classList.remove("in-view","out-of-view","fixed"),setTimeout((()=>{this.navbar.classList.remove("in-view")}),100))}isSearchOpen(){return!!this.headerSearch.classList.contains("active")}isMenuOpen(){return!!this.slideOutMenu.classList.contains("active")}keyPressDispatcher(e){console.log("Key pressed: ",e.keyCode),83!==e.keyCode||this.isSearchOpen()||this.toggleSearch(),77!==e.keyCode||this.isMenuOpen()||this.isSearchOpen()||this.toggleNavMenu(),27===e.keyCode&&(this.isSearchOpen()?this.toggleSearch():this.isMenuOpen()&&this.toggleNavMenu())}handleLinkAndOutsideClick(e){const t=e.target,s=t.closest("a");s?s.href===window.location.href&&this.toggleMenuBtn.classList.contains("active")&&this.toggleNavMenu():(!(this.toggleMenuBtn.contains(t)||this.slideOutMenu.contains(t)||this.toggleSearchBtn.contains(t)||this.headerSearch.contains(t))&&(this.toggleMenuBtn.classList.remove("active"),this.slideOutMenu.classList.remove("open"),this.removeBodyNoScroll()),!this.hoursDropdownToggle.contains(t)&&!this.hoursDropdownToggle.classList.contains("hidden")&&this.businessHoursMenu.classList.add("hidden"),!(this.toggleSearchBtn.contains(t)||this.headerSearch.contains(t)||this.toggleMenuBtn.contains(t)||this.slideOutMenu.contains(t))&&(this.toggleSearchBtn.classList.remove("active"),this.headerSearch.classList.remove("active"),this.headerSearchOverlay.classList.remove("active"),this.removeBodyNoScroll()))}toggleNavMenu(){this.headerSearch.classList.contains("active")&&this.toggleSearch(),this.toggleMenuBtn.classList.toggle("active"),this.slideOutMenu.classList.toggle("open"),document.body.classList.toggle("noScroll"),this.collapseAllAccordions()}toggleSearch(){this.toggleMenuBtn.classList.contains("active")&&this.toggleNavMenu(),this.headerSearch.classList.toggle("active"),this.headerSearchOverlay.classList.toggle("active"),this.headerSearch.querySelector("input").focus(),document.body.classList.toggle("noScroll"),this.headerSearch.classList.contains("active")&&(this.headerSearch.querySelector("input").value="")}collapseAllAccordions(){this.accordions.forEach((e=>{e.classList.remove("active")}))}removeBodyNoScroll(){document.body.classList.contains("noScroll")&&document.body.classList.remove("noScroll")}businessHours(){let e;switch((new Date).getDay()){case 0:case 6:e='We are closed today.';break;default:e='Open Today from 9:00 am - 5:00 pm'}this.todaysBusinessHoursEl.innerHTML=e}}})()})();
\ No newline at end of file
diff --git a/assets/js/index.js.map b/assets/js/index.js.map
deleted file mode 100644
index 7214c29..0000000
--- a/assets/js/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","mappings":"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","sources":["webpack://theme-starter-boilerplate-theme/./src/scripts/CollapsePanel.js","webpack://theme-starter-boilerplate-theme/./src/scripts/ContactTabs.js","webpack://theme-starter-boilerplate-theme/./src/scripts/NavControl.js","webpack://theme-starter-boilerplate-theme/webpack/bootstrap","webpack://theme-starter-boilerplate-theme/webpack/runtime/compat get default export","webpack://theme-starter-boilerplate-theme/webpack/runtime/define property getters","webpack://theme-starter-boilerplate-theme/webpack/runtime/hasOwnProperty shorthand","webpack://theme-starter-boilerplate-theme/webpack/runtime/make namespace object","webpack://theme-starter-boilerplate-theme/./src/index.js"],"sourcesContent":["class CollapsePanel {\r\n constructor() {\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addToggleCollapseListener('.accordion-toggle')\r\n })\r\n }\r\n\r\n addToggleCollapseListener(selector) {\r\n this.toggles = document.querySelectorAll(selector)\r\n this.toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n toggle.parentNode.parentNode.classList.toggle('active')\r\n })\r\n })\r\n }\r\n \r\n}\r\n\r\nexport default CollapsePanel\r\n","class ContactTabs {\r\n constructor() {\r\n this.tabLinks = document.querySelectorAll('.tab-link');\r\n this.tabs = document.querySelectorAll('.tab');\r\n this.selectTab = document.getElementById('tabs');\r\n this.contactTabs = document.getElementById('contact-tabs');\r\n if (!this.contactTabs) {\r\n console.error(\"Element with id 'contact-tabs' not found.\");\r\n return;\r\n }\r\n\r\n this.initializeTabs();\r\n this.syncTabsWithSelect();\r\n this.syncSelectWithTabs();\r\n this.handleHashNavigation(); // Call handleHashNavigation on initialization\r\n this.handleFormSubmission(); // Handle form submission on initialization\r\n }\r\n\r\n initializeTabs() {\r\n // Hide all tab contents except the first one\r\n this.tabs.forEach((tab, index) => {\r\n if (index !== 0) {\r\n tab.style.display = 'none';\r\n }\r\n });\r\n\r\n // Activate the first tab link by default\r\n this.tabLinks[0].classList.add('bg-blue-100');\r\n\r\n this.tabLinks.forEach((tabLink) => {\r\n tabLink.addEventListener('click', this.handleTabLinkClick.bind(this));\r\n });\r\n }\r\n\r\n handleTabLinkClick(event) {\r\n // event.preventDefault(); // Prevent scrolling to the hash position\r\n const tabLink = event.currentTarget;\r\n const tabName = tabLink.getAttribute('data-tab');\r\n\r\n // Store the last opened tab in session storage\r\n sessionStorage.setItem('lastTab', tabName);\r\n\r\n // Update the hash\r\n this.updateHash(tabName);\r\n\r\n // Show the clicked tab\r\n this.showTab(tabName);\r\n }\r\n\r\n showTab(tabName) {\r\n // Hide all tabs\r\n this.tabs.forEach((tab) => {\r\n tab.style.display = 'none';\r\n });\r\n\r\n // Deactivate all tab links\r\n this.tabLinks.forEach((link) => {\r\n link.classList.remove('bg-blue-100');\r\n });\r\n\r\n // Show the selected tab\r\n document.getElementById(tabName).style.display = 'block';\r\n\r\n // Activate the clicked tab link\r\n const tabLink = document.querySelector(`[data-tab=\"${tabName}\"]`);\r\n if (tabLink) {\r\n tabLink.classList.add('bg-blue-100');\r\n }\r\n\r\n // Update the select dropdown\r\n if (this.selectTab) {\r\n this.selectTab.value = tabName;\r\n }\r\n }\r\n\r\n syncTabsWithSelect() {\r\n if (!this.selectTab) return;\r\n\r\n this.selectTab.addEventListener('change', (event) => {\r\n const selectedTabName = event.target.value;\r\n\r\n // Store the last opened tab in session storage\r\n sessionStorage.setItem('lastTab', selectedTabName);\r\n\r\n // Update the hash\r\n this.updateHash(selectedTabName);\r\n\r\n this.showTab(selectedTabName);\r\n });\r\n }\r\n\r\n syncSelectWithTabs() {\r\n if (!this.tabLinks) return;\r\n\r\n this.tabLinks.forEach((tabLink) => {\r\n tabLink.addEventListener('click', (event) => {\r\n const tabName = tabLink.getAttribute('data-tab');\r\n\r\n // Store the last opened tab in session storage\r\n sessionStorage.setItem('lastTab', tabName);\r\n\r\n // Update the hash\r\n this.updateHash(tabName);\r\n\r\n this.selectTab.value = tabName;\r\n });\r\n });\r\n }\r\n\r\n handleHashNavigation() {\r\n const lastTab = sessionStorage.getItem('lastTab');\r\n const hash = window.location.hash.substring(1);\r\n\r\n if (hash) {\r\n // If there's a hash in the URL, attempt to show the corresponding tab\r\n this.showTab(hash);\r\n // Store the last opened tab in session storage\r\n sessionStorage.setItem('lastTab', hash);\r\n } else if (lastTab) {\r\n // If there's a stored tab, show that tab\r\n this.showTab(lastTab);\r\n } else {\r\n // If there's neither a stored tab nor a hash, default to showing the first tab\r\n this.showTab(this.tabLinks[0].dataset.tab);\r\n }\r\n }\r\n\r\n updateHash(hash) {\r\n // Update the hash without causing the page to scroll\r\n history.replaceState(null, null, '#' + hash);\r\n }\r\n\r\n handleFormSubmission() {\r\n // Check for success or failure notifications in the URL query parameters\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const successMessage = urlParams.get('success');\r\n const errorMessage = urlParams.get('error');\r\n\r\n if (successMessage || errorMessage) {\r\n // If success or error notification is present, show the last opened tab\r\n const lastTab = sessionStorage.getItem('lastTab');\r\n if (lastTab) {\r\n this.showTab(lastTab);\r\n }\r\n // Remove the message from the URL\r\n history.replaceState(null, null, window.location.pathname);\r\n }\r\n }\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n // Check if element with id \"contact-tabs\" exists\r\n const contactTabs = document.getElementById('contact-tabs');\r\n if (contactTabs) {\r\n const tabs = new ContactTabs();\r\n // Handle hash navigation on hash change\r\n window.addEventListener('hashchange', () => {\r\n tabs.handleHashNavigation();\r\n });\r\n } else {\r\n console.log(\"Element with id 'contact-tabs' not found.\");\r\n }\r\n});\r\n","class NavControl {\r\n constructor() {\r\n this.topBanner = document.getElementById('top-banner');\r\n this.navbar = document.getElementById('header-nav');\r\n this.navbarPadding = document.getElementById('header-padder');\r\n this.contentContainer = document.getElementById('content-container');\r\n this.toggleMenuBtn = document.getElementById('toggle-nav');\r\n this.slideOutMenu = document.getElementById('slide-out-menu');\r\n this.accordions = document.querySelectorAll('#slide-out-menu .accordion');\r\n this.toggleSearchBtn = document.getElementById('toggle-search');\r\n this.headerSearch = document.getElementById('header-search');\r\n this.headerSearchOverlay = document.getElementById('search-overlay');\r\n this.hoursDropdownToggle = document.getElementById('hours-dropdown-toggle');\r\n this.todaysBusinessHoursEl = document.getElementById(\r\n 'todays-business-hours'\r\n );\r\n this.businessHoursMenu = this.hoursDropdownToggle.nextElementSibling;\r\n this.init();\r\n }\r\n\r\n init() {\r\n // Add event listeners directly, no need to wait for DOMContentLoaded\r\n // Add a single click event listener to document for handling link clicks and outside clicks\r\n document.addEventListener('click', (event) => {\r\n this.handleLinkAndOutsideClick(event);\r\n });\r\n\r\n window.addEventListener('scroll', this.handleScroll.bind(this));\r\n\r\n // Open and Close the Nav Menu\r\n this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu());\r\n\r\n // Open and Close the Nav Search\r\n this.toggleSearchBtn.addEventListener('click', () => this.toggleSearch());\r\n\r\n // Delegate click event to handle business hours toggle\r\n this.hoursDropdownToggle.addEventListener('click', () => {\r\n this.businessHoursMenu.classList.toggle('hidden');\r\n });\r\n\r\n document.addEventListener('keyup', (e) => this.keyPressDispatcher(e));\r\n\r\n this.businessHours();\r\n }\r\n\r\n headerOutOfView() {\r\n this.navbar.classList.add('out-of-view');\r\n }\r\n\r\n headerInView() {\r\n setTimeout(() => {\r\n this.navbar.classList.add('in-view');\r\n }, 100);\r\n // setTimeout(() => {\r\n // this.navbar.classList.remove('out-of-view');\r\n // this.navbar.classList.remove('in-view');\r\n // }, 2000);\r\n }\r\n\r\n handleScroll() {\r\n var scrollPosition = window.scrollY;\r\n\r\n if (scrollPosition > 0) {\r\n // Change this value to adjust when the navbar becomes fixed\r\n this.headerOutOfView();\r\n this.headerInView();\r\n this.navbarPadding.style.display = 'block';\r\n // this.topBanner.classList.remove('open');\r\n this.navbar.classList.add('fixed');\r\n // this.navbarPadding.classList.add('open');\r\n this.topBanner.style.display = 'none';\r\n } else {\r\n // this.topBanner.classList.add('open');\r\n this.topBanner.style.display = 'block';\r\n this.navbarPadding.style.display = 'none';\r\n this.navbar.classList.remove('in-view', 'out-of-view', 'fixed');\r\n // this.navbarPadding.classList.remove('open');\r\n setTimeout(() => {\r\n this.navbar.classList.remove('in-view');\r\n }, 100);\r\n }\r\n }\r\n\r\n isSearchOpen() {\r\n if (this.headerSearch.classList.contains('active')) {\r\n return true; // Search is open\r\n } else {\r\n return false; // Search is not open\r\n }\r\n }\r\n\r\n isMenuOpen() {\r\n if (this.slideOutMenu.classList.contains('active')) {\r\n return true; // Menu is open\r\n } else {\r\n return false; // Menu is not open\r\n }\r\n }\r\n\r\n keyPressDispatcher(e) {\r\n console.log('Key pressed: ', e.keyCode); // Add this line\r\n if (e.keyCode === 83 && !this.isSearchOpen()) {\r\n this.toggleSearch();\r\n }\r\n if (e.keyCode === 77 && !this.isMenuOpen() && !this.isSearchOpen()) {\r\n this.toggleNavMenu();\r\n }\r\n\r\n if (e.keyCode === 27) {\r\n if (this.isSearchOpen()) {\r\n this.toggleSearch();\r\n } else if (this.isMenuOpen()) {\r\n this.toggleNavMenu();\r\n }\r\n }\r\n }\r\n\r\n handleLinkAndOutsideClick(event) {\r\n const target = event.target;\r\n\r\n // Handle link clicks\r\n const link = target.closest('a');\r\n if (link) {\r\n if (\r\n link.href === window.location.href &&\r\n this.toggleMenuBtn.classList.contains('active')\r\n ) {\r\n this.toggleNavMenu();\r\n }\r\n return;\r\n }\r\n\r\n // Handle outside clicks\r\n const isOutsideMenu =\r\n !this.toggleMenuBtn.contains(target) &&\r\n !this.slideOutMenu.contains(target) &&\r\n !this.toggleSearchBtn.contains(target) &&\r\n !this.headerSearch.contains(target);\r\n if (isOutsideMenu) {\r\n this.toggleMenuBtn.classList.remove('active');\r\n this.slideOutMenu.classList.remove('open');\r\n this.removeBodyNoScroll();\r\n }\r\n\r\n const isOutsideBusinessHoursToggle =\r\n !this.hoursDropdownToggle.contains(target) &&\r\n !this.hoursDropdownToggle.classList.contains('hidden');\r\n if (isOutsideBusinessHoursToggle) {\r\n this.businessHoursMenu.classList.add('hidden');\r\n }\r\n\r\n const isOutsideSearch =\r\n !this.toggleSearchBtn.contains(target) &&\r\n !this.headerSearch.contains(target) &&\r\n !this.toggleMenuBtn.contains(target) &&\r\n !this.slideOutMenu.contains(target);\r\n if (isOutsideSearch) {\r\n this.toggleSearchBtn.classList.remove('active');\r\n this.headerSearch.classList.remove('active');\r\n this.headerSearchOverlay.classList.remove('active');\r\n this.removeBodyNoScroll();\r\n }\r\n }\r\n\r\n toggleNavMenu() {\r\n if (this.headerSearch.classList.contains('active')) {\r\n this.toggleSearch();\r\n }\r\n this.toggleMenuBtn.classList.toggle('active');\r\n this.slideOutMenu.classList.toggle('open');\r\n document.body.classList.toggle('noScroll');\r\n this.collapseAllAccordions();\r\n }\r\n\r\n toggleSearch() {\r\n if (this.toggleMenuBtn.classList.contains('active')) {\r\n this.toggleNavMenu();\r\n }\r\n this.headerSearch.classList.toggle('active');\r\n this.headerSearchOverlay.classList.toggle('active');\r\n this.headerSearch.querySelector('input').focus();\r\n document.body.classList.toggle('noScroll');\r\n\r\n if (this.headerSearch.classList.contains('active')) {\r\n this.headerSearch.querySelector('input').value = '';\r\n }\r\n }\r\n\r\n collapseAllAccordions() {\r\n this.accordions.forEach((accordion) => {\r\n accordion.classList.remove('active');\r\n });\r\n }\r\n\r\n removeBodyNoScroll() {\r\n if (document.body.classList.contains('noScroll')) {\r\n document.body.classList.remove('noScroll');\r\n }\r\n }\r\n\r\n businessHours() {\r\n const dayOfWeek = new Date().getDay();\r\n const defaultHours = 'Open Today from 9:00 am - 5:00 pm';\r\n let todaysBusinessHours;\r\n\r\n switch (dayOfWeek) {\r\n case 0: // Sunday\r\n case 6: // Saturday\r\n todaysBusinessHours = `We are closed today.`;\r\n break;\r\n default: // Monday to Friday\r\n todaysBusinessHours = `${defaultHours}`;\r\n break;\r\n }\r\n\r\n this.todaysBusinessHoursEl.innerHTML = todaysBusinessHours;\r\n }\r\n}\r\n\r\nexport default NavControl;\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// import './styles/styles.scss';\n\n// import React from 'react';\n// import { createRoot } from 'react-dom/client';\nimport CollapsePanel from './scripts/CollapsePanel';\nimport NavControl from './scripts/NavControl';\nimport ContactTabs from './scripts/ContactTabs';\n// import TestModule from './scripts/TestModule';\n\n// createRoot(document.querySelector('#root')).render();\nconst collapsePanel = new CollapsePanel();\n// const testModule = new TestModule();\nconst navControl = new NavControl();\n"],"names":["CollapsePanel","constructor","init","document","addEventListener","addToggleCollapseListener","selector","toggles","querySelectorAll","forEach","toggle","parentNode","classList","ContactTabs","tabLinks","tabs","selectTab","getElementById","contactTabs","console","error","initializeTabs","syncTabsWithSelect","syncSelectWithTabs","handleHashNavigation","handleFormSubmission","tab","index","style","display","add","tabLink","handleTabLinkClick","bind","event","currentTarget","tabName","getAttribute","sessionStorage","setItem","updateHash","showTab","link","remove","querySelector","value","selectedTabName","target","lastTab","getItem","hash","window","location","substring","dataset","history","replaceState","urlParams","URLSearchParams","search","successMessage","get","errorMessage","pathname","log","NavControl","topBanner","navbar","navbarPadding","contentContainer","toggleMenuBtn","slideOutMenu","accordions","toggleSearchBtn","headerSearch","headerSearchOverlay","hoursDropdownToggle","todaysBusinessHoursEl","businessHoursMenu","nextElementSibling","handleLinkAndOutsideClick","handleScroll","toggleNavMenu","toggleSearch","e","keyPressDispatcher","businessHours","headerOutOfView","headerInView","setTimeout","scrollPosition","scrollY","isSearchOpen","contains","isMenuOpen","keyCode","closest","href","isOutsideMenu","removeBodyNoScroll","isOutsideBusinessHoursToggle","isOutsideSearch","body","collapseAllAccordions","focus","accordion","dayOfWeek","Date","getDay","defaultHours","todaysBusinessHours","innerHTML","collapsePanel","navControl"],"sourceRoot":""}
\ No newline at end of file
diff --git a/package.json b/package.json
index 33f660a..bcb1d25 100644
--- a/package.json
+++ b/package.json
@@ -10,9 +10,10 @@
"wp-start": "wp-scripts start --webpack-no-externals --output-path=assets/js",
"tailwind-watch": "npx tailwindcss -i ./src/styles/vendors/tailwind/_source.scss -o ./src/styles/vendors/tailwind/_tailwind.scss --watch",
"tailwind-build": "npx tailwindcss -i ./src/styles/vendors/tailwind/_source.scss -o ../src/styles/vendors/tailwind/_tailwind.scss --minify",
- "sass": "npx sass --watch --no-source-map ./src/styles/styles.scss:./assets/css/styles.css",
- "dev": "npm-run-all --parallel wp-start tailwind-watch sass sync",
- "prod": "npm-run-all --sequential tailwind-build sass wp-build",
+ "sass-dev": "npx sass --watch --no-source-map ./src/styles/styles.scss:./assets/css/styles.css",
+ "sass-prod": "npx sass --no-source-map ./src/styles/styles.scss:./assets/css/styles.css",
+ "dev": "npm-run-all --parallel wp-start tailwind-watch sass-dev sync",
+ "prod": "npm-run-all --sequential tailwind-build sass-prod wp-build",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
diff --git a/style.css b/style.css
index c25fe47..295bf52 100644
--- a/style.css
+++ b/style.css
@@ -1,11 +1,14 @@
/*
-Plugin Name: Theme Starter
-Description: A WordPress Stater theme for developing complex UIs.
-Version: 1.0
+Theme Name: Theme Starter
+Theme URI: https://thecreatorpriz.com
Author: Prospect Ogujiuba
-Author URI: https://www.mediagrowthpartner.com
+Author URI: https://thecreatpriz.com/
+Description: A starter theme for creating complex UIs
+Version: 1.0
+Requires at least: 5.9
+Tested up to: 6.4.1
+Requires PHP: 7.2
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Text Domain: themestarter
*/
-
-#toplevel_page_gf_edit_forms > a > div.wp-menu-name > span.update-plugins {
- display: none !important;
-}