/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./src/base/base.js":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"./src/base/base.scss\");\n__webpack_require__(\"./src/images sync recursive \\\\.(gif%7Cpng%7Cjpe?g%7Csvg)$\");\n\ndocument.addEventListener('DOMContentLoaded', function () {\n  var HTML = document.documentElement;\n  var resizeTimeout;\n  var contentTimeout;\n  var lastScrollbarWidth = null;\n  var mutationObserver;\n  var resizeObserver;\n\n  /**\n   * Calculates and updates the scrollbar width CSS custom property.\n   * Only updates if the value has changed to avoid unnecessary DOM updates.\n   */\n  var updateScrollbarWidth = function updateScrollbarWidth() {\n    var scrollbarWidth = window.innerWidth - HTML.clientWidth;\n\n    // Only update if the value has changed to avoid unnecessary DOM updates.\n    if (lastScrollbarWidth !== scrollbarWidth) {\n      HTML.style.setProperty('--scrollbar-width', \"\".concat(scrollbarWidth, \"px\"));\n      lastScrollbarWidth = scrollbarWidth;\n    }\n  };\n\n  /**\n   * Debounced handler for scrollbar width updates.\n   * Used by both resize and mutation observers.\n   */\n  var debouncedScrollbarUpdate = function debouncedScrollbarUpdate() {\n    clearTimeout(resizeTimeout);\n    resizeTimeout = setTimeout(updateScrollbarWidth, 16);\n  };\n\n  /**\n   * Opens details elements based on the current hash in the URL.\n   * Finds the target element and opens its parent details element if present.\n   */\n  var openDetailsFromHash = function openDetailsFromHash() {\n    var hash = window.location.hash.slice(1); // remove #\n    if (!hash) return;\n\n    // Or, if the hash points to something inside a details\n    var target = document.getElementById(hash);\n    var detailsToOpen = target ? target.closest('details') : null;\n    if (detailsToOpen) {\n      detailsToOpen.open = true;\n      detailsToOpen.scrollIntoView({\n        behavior: 'smooth'\n      });\n    }\n  };\n\n  /**\n   * **************************************************\n   * Handlers\n   */\n\n  var handleHashchange = function handleHashchange() {\n    openDetailsFromHash();\n  };\n  var handleResize = function handleResize() {\n    debouncedScrollbarUpdate();\n  };\n  var handleMutationObserver = function handleMutationObserver() {\n    clearTimeout(contentTimeout);\n    contentTimeout = setTimeout(updateScrollbarWidth, 50);\n  };\n  var handleResizeObserver = function handleResizeObserver() {\n    debouncedScrollbarUpdate();\n  };\n\n  /**\n   * **************************************************\n   * Observers\n   */\n\n  // Watch for DOM changes that might affect content height.\n  if (typeof MutationObserver !== 'undefined') {\n    mutationObserver = new MutationObserver(handleMutationObserver);\n    mutationObserver.observe(document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class', 'style', 'hidden'],\n      characterData: true\n    });\n  }\n\n  // Set up ResizeObserver to watch for element size changes\n  if (typeof ResizeObserver !== 'undefined') {\n    resizeObserver = new ResizeObserver(handleResizeObserver);\n    resizeObserver.observe(document.body);\n  }\n\n  /**\n   * **************************************************\n   * Listeners\n   */\n\n  window.addEventListener('resize', handleResize, {\n    passive: true\n  });\n  window.addEventListener('hashchange', handleHashchange, {\n    passive: true\n  });\n\n  // Initialize\n  openDetailsFromHash();\n  updateScrollbarWidth();\n});\n\n//# sourceURL=webpack://@naomi-2025/ui/./src/base/base.js?\n}");

/***/ }),

/***/ "./src/base/base.scss":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://@naomi-2025/ui/./src/base/base.scss?\n}");

/***/ }),

/***/ "./src/images sync recursive \\.(gif%7Cpng%7Cjpe?g%7Csvg)$":
/***/ ((module) => {

eval("{function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = \"./src/images sync recursive \\\\.(gif%7Cpng%7Cjpe?g%7Csvg)$\";\nmodule.exports = webpackEmptyContext;\n\n//# sourceURL=webpack://@naomi-2025/ui/./src/images/_sync_\\.(gif%257Cpng%257Cjpe?\n}");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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/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 });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./src/base/base.js");
/******/ 	
/******/ })()
;