diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 3c8398e..43de19d 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,13 +1,2 @@ -# These are supported funding model platforms - -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username ko_fi: milanpetrovic -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry -custom: ['https://buymeacoffee.com/millan'] +buy_me_a_coffee: millan diff --git a/.gitignore b/.gitignore index ff87634..fa832e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor/ -node_modules/ \ No newline at end of file +node_modules/ +dist/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..ca8527e --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "trailingComma": "all", + "singleQuote": true, + "printWidth": 100, + "tabWidth": 2 +} diff --git a/changelog.md b/changelog.md index f631749..aee68b1 100644 --- a/changelog.md +++ b/changelog.md @@ -2,7 +2,14 @@ ## Changelog -### Version: 4.2 (2025.06.30) +### Version: 4.3 (2026.07.17) + +* **new** replaced SmartAnimatedPopup with Flyin +* **new** rewritten all JS into TypeScript with no jQuery dependencies +* **new** modern Vite and TypeScript build system +* **removed** all external JavaScript libraries + +### Version: 4.2 (2026.06.30) * **new** tested with WordPress 7.0 * **new** tested and compatible with `PHP` 8.5 @@ -30,26 +37,3 @@ * **new** tested and compatible with `PHP` 8.4 RC 3 * **new** using composer to load `Kint` library * **new** various constants for KINT library control - -### Version: 3.9.2 (2024.08.23) - -* **fix** one more issue with the access to OPCache status information - -### Version: 3.9.1 (2024.08.19) - -* **fix** problem with the Tracker when closure makes a call - -### Version: 3.9 (2024.05.14) - -* **edit** few more updates and improvements -* **edit** replacement of some native with WordPress functions -* **edit** various small updates and tweaks -* **edit** Kint Pretty Print Library 5.1.1 -* **fix** various PHP notices related to PHP 8.1 and newer - -### Version: 3.8 (2024.04.24) - -* **edit** few minor tweaks and changes -* **edit** updates to the plugin readme file -* **edit** small changes related to the PHP 8.3 compatibility -* **fix** various PHP notices related to PHP 8.1 and newer diff --git a/core/admin/Plugin.php b/core/admin/Plugin.php index c4249e6..e65fbb3 100644 --- a/core/admin/Plugin.php +++ b/core/admin/Plugin.php @@ -7,9 +7,9 @@ } class Plugin { - private $_pages = array(); + private array $_pages = array(); - public function __construct() { + private function __construct() { add_action( 'admin_menu', array( $this, 'admin_menu' ) ); add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); @@ -40,14 +40,15 @@ public function plugin_links( $links, $file ) { if ( $file == 'debugpress/debugpress.php' ) { $links[] = '' . esc_html__( 'Home Page', 'debugpress' ) . ''; $links[] = '' . esc_html__( 'Buy Me A Coffee', 'debugpress' ) . ''; + $links[] = '' . esc_html__( 'Ko-Fi', 'debugpress' ) . ''; } return $links; } public function enqueue_scripts() { - wp_enqueue_style( 'debugpress-admin', DEBUGPRESS_PLUGIN_URL . 'css/adminpanel' . ( DEBUGPRESS_IS_DEBUG ? '' : '.min' ) . '.css', array(), DEBUGPRESS_VERSION ); - wp_enqueue_script( 'debugpress-admin', DEBUGPRESS_PLUGIN_URL . 'js/adminpanel' . ( DEBUGPRESS_IS_DEBUG ? '' : '.min' ) . '.js', array( 'jquery' ), DEBUGPRESS_VERSION, true ); + wp_enqueue_style( 'debugpress-admin', DEBUGPRESS_PLUGIN_DIST_URL . 'admin.css', array(), DEBUGPRESS_VERSION ); + wp_enqueue_script( 'debugpress-admin', DEBUGPRESS_PLUGIN_DIST_URL . 'admin.js', array(), DEBUGPRESS_VERSION, true ); } public function admin_menu() { diff --git a/core/display/Loader.php b/core/display/Loader.php index 518d480..43d90d7 100644 --- a/core/display/Loader.php +++ b/core/display/Loader.php @@ -149,7 +149,7 @@ public function button() : string { $button .= '' . $_error_counts . ''; $button .= ''; - $button .= '' . __( 'Open Debugger Panel', 'debugpress' ) . ''; + $button .= '' . __( 'Open Debugger Panel', 'debugpress' ) . ''; return $button; } diff --git a/core/main/Plugin.php b/core/main/Plugin.php index 9fd7374..27dff93 100644 --- a/core/main/Plugin.php +++ b/core/main/Plugin.php @@ -167,21 +167,12 @@ public function activation() { } public function init() { - $dependencies = array( - 'jquery', - 'animated-popup', - ); - - if ( $this->get( 'mousetrap' ) ) { - $dependencies[] = 'mousetrap'; - } + wp_register_style( 'debugpress-print', DEBUGPRESS_PLUGIN_DIST_URL . 'print.css', array(), DEBUGPRESS_VERSION ); + wp_register_style( 'dev4press-flyin', DEBUGPRESS_PLUGIN_DIST_URL . 'flyin.css', array(), DEBUGPRESS_FLYIN_VERSION ); + wp_register_script( 'dev4press-flyin', DEBUGPRESS_PLUGIN_DIST_URL . 'flyin.js', array(), DEBUGPRESS_FLYIN_VERSION, true ); - wp_register_style( 'animated-popup', DEBUGPRESS_PLUGIN_URL . 'libraries/popup/popup.min.css', array(), $this->_animated_popup_version ); - wp_register_style( 'debugpress-print', DEBUGPRESS_PLUGIN_URL . 'css/prettyprint' . ( DEBUGPRESS_IS_DEBUG ? '' : '.min' ) . '.css', array(), DEBUGPRESS_VERSION ); - wp_register_style( 'debugpress', DEBUGPRESS_PLUGIN_URL . 'css/debugpress' . ( DEBUGPRESS_IS_DEBUG ? '' : '.min' ) . '.css', array( 'animated-popup' ), DEBUGPRESS_VERSION ); - wp_register_script( 'animated-popup', DEBUGPRESS_PLUGIN_URL . 'libraries/popup/popup.min.js', array( 'jquery' ), $this->_animated_popup_version, true ); - wp_register_script( 'mousetrap', DEBUGPRESS_PLUGIN_URL . 'libraries/mousetrap/mousetrap.min.js', array(), $this->_mousetrap_version, true ); - wp_register_script( 'debugpress', DEBUGPRESS_PLUGIN_URL . 'js/debugpress' . ( DEBUGPRESS_IS_DEBUG ? '' : '.min' ) . '.js', $dependencies, DEBUGPRESS_VERSION, true ); + wp_register_style( 'debugpress', DEBUGPRESS_PLUGIN_DIST_URL . 'panel.css', array( 'dev4press-flyin', 'debugpress-print' ), DEBUGPRESS_VERSION ); + wp_register_script( 'debugpress', DEBUGPRESS_PLUGIN_DIST_URL . 'panel.js', array( 'dev4press-flyin' ), DEBUGPRESS_VERSION, true ); if ( ! $this->is_rest_request() && ! DEBUGPRESS_IS_CLI && ! DEBUGPRESS_IS_AJAX && ! DEBUGPRESS_IS_CRON && $this->is_enabled() ) { Loader::instance(); diff --git a/css/adminpanel.css b/css/adminpanel.css deleted file mode 100644 index be8fc45..0000000 --- a/css/adminpanel.css +++ /dev/null @@ -1,276 +0,0 @@ -.debugpress-panel .nav-tab { - margin-left: 10px; - padding: 5px 15px; -} -.debugpress-panel .nav-tab .dashicons { - font-size: 16px; - margin-right: 5px; - vertical-align: middle; -} -.debugpress-panel .nav-tab-right { - float: right; - margin-right: 10px; - margin-left: 0; -} - -.debugpress-panel-settings .tab-content { - display: none; -} -.debugpress-panel-settings .tab-content.tab-content-active { - display: block; -} - -.debugpress_settings { - width: calc(100% - 330px); - float: left; - color: #000; -} -.debugpress_settings .debugpress-settings-section { - max-width: 720px; - background-color: #FFF; - padding: 15px; - margin: 15px 0 0 15px; - border: 1px solid #1E72BD; -} -.debugpress_settings .debugpress-settings-section h2 { - margin: -15px -15px 15px; - padding: 15px; - background-color: #1E72BD; - color: #FFF; -} -.debugpress_settings .debugpress-settings-section .debugpress-section-info { - margin: -15px -15px 0; - padding: 15px; - background-color: #DAEEFF; -} -.debugpress_settings .debugpress-settings-section p.description { - border-top: 1px solid #1E72BD; - margin: 10px 0 0; - padding: 5px 0 0; -} - -.debugpress_sidebar { - float: right; - padding-left: 20px; - margin-right: 15px; - width: 280px; -} -.debugpress_sidebar img { - height: auto; - width: 100%; -} -.debugpress_sidebar > div { - text-align: center; - padding: 15px; - margin: 15px 0; - max-width: 360px; -} -.debugpress_sidebar .debugpress_plugin { - color: #FFF; - background: #1E72BD; -} -.debugpress_sidebar .debugpress_plugin > span { - display: block; - text-transform: uppercase; - letter-spacing: 2px; -} -.debugpress_sidebar .debugpress_plugin > div { - border-top: 1px solid #FFF; - border-bottom: 1px solid #FFF; - padding: 15px 0; - margin: 15px 0; - font-weight: 700; - font-size: 1.1em; -} -.debugpress_sidebar .debugpress_plugin .button-secondary { - font-weight: 700; -} -.debugpress_sidebar .debugpress_help { - color: #111; - background: #FFF; - border: 1px solid #1E72BD; -} -.debugpress_sidebar .debugpress_help > p { - margin: 0; - padding: 0 0 15px; -} -.debugpress_sidebar .debugpress_dev4press { - color: #111; - background: #E0E0E0; - border: 1px solid #1E72BD; -} -.debugpress_sidebar .debugpress_dev4press > p { - margin: 0; - padding: 0 0 10px; - font-weight: 700; -} -.debugpress_sidebar .debugpress_dev4press > div { - border-top: 1px solid #1E72BD; - padding: 15px 0 0; - margin: 15px 0 0; - font-weight: 700; - font-size: 1.2em; -} - -@media screen and (width <= 900px) { - .debugpress_settings { - width: 100%; - float: none; - } - .debugpress_settings .debugpress-settings-section { - margin: 15px; - } - .debugpress_sidebar { - border-top: 1px solid #1E72BD; - padding-top: 20px; - padding-left: 0; - width: 100%; - float: none; - margin: 0; - } - .debugpress_sidebar > div { - margin: 0 auto 15px; - } -} -.debugpress-panel-tools .tab-content { - margin: 15px; -} - -.debugpress_phpinfo { - overflow: auto; -} -.debugpress_phpinfo h1.p { - background-color: #222; - color: #FFF; - font-size: 28px; - margin: 0; - padding: 22px 16px; -} -.debugpress_phpinfo td img { - float: right; - margin: 7px 16px 0 0; -} -.debugpress_phpinfo table { - width: 100%; - background: #FFF; - border-collapse: collapse; - border: 1px solid #BBB; - margin: 0 0 5px; -} -.debugpress_phpinfo table td, -.debugpress_phpinfo table th { - padding: 5px; - text-align: left; - vertical-align: top; -} -.debugpress_phpinfo table tr th, -.debugpress_phpinfo table tr td.first { - width: 20%; -} -.debugpress_phpinfo table tr td.b, -.debugpress_phpinfo table tr th.first { - color: #333; - font-weight: 700; -} -.debugpress_phpinfo table tr td { - border-bottom: 1px solid #ECECEC; - word-break: break-all; -} -.debugpress_phpinfo table tr td .options { - text-align: right; - white-space: normal; - padding-right: 0; -} -.debugpress_phpinfo table tr.first th { - color: #222; - font-weight: 700; -} -.debugpress_phpinfo table tr:last-child td { - border-bottom: none; -} -.debugpress_phpinfo table tr.h th, .debugpress_phpinfo table tr.with-header th { - background: #666; - color: #FFF; - padding: 10px; -} -.debugpress_phpinfo table th { - text-align: left; - background-color: #ECECEC; - padding: 3px 5px; -} -.debugpress_phpinfo div.inside { - margin: -1px 0 10px; -} -.debugpress_phpinfo p.sub { - color: #777; - font-size: 13px; - font-style: italic; - padding: 5px 10px 15px; - margin: -12px; -} -.debugpress_phpinfo h3 { - background: #333 !important; - color: #FFF; - text-shadow: none !important; - font-size: 14px; - font-weight: 700; -} -.debugpress_phpinfo div.inside .link { - text-align: right; - font-weight: 700; -} -.debugpress_phpinfo a { - text-decoration: none; -} -.debugpress_phpinfo a:hover { - text-decoration: underline; -} -.debugpress_phpinfo h2.phpsection { - background-color: #333; - color: #FFF; - font-style: normal; - padding: 5px 10px; - font-size: 18px; - line-height: 24px; - margin-bottom: 5px; - text-shadow: none; -} -.debugpress_phpinfo h2.phpsection a { - color: #FFF; -} - -.debugpress_info table { - min-width: 50%; - max-width: 100%; - line-height: 1.5; - border-collapse: collapse; - border: 1px solid #BBB; - border-top: 0; -} -.debugpress_info table thead th { - text-align: left; - padding: 5px; - background: #666; - color: #FFF; -} -.debugpress_info table tbody tr { - border-bottom: 1px solid #BBB; - background: #FFF; -} -.debugpress_info table tbody tr th, .debugpress_info table tbody tr td { - vertical-align: top; - padding: 5px; - text-align: left; -} -.debugpress_info table tbody tr td { - border-left: 1px solid #BBB; -} -.debugpress_info table tbody tr td div { - word-break: break-all; -} - -@media screen and (width <= 1200px) { - .debugpress_info table { - width: 100%; - } -} diff --git a/css/adminpanel.min.css b/css/adminpanel.min.css deleted file mode 100644 index d4c3772..0000000 --- a/css/adminpanel.min.css +++ /dev/null @@ -1 +0,0 @@ -.debugpress-panel .nav-tab{margin-left:10px;padding:5px 15px}.debugpress-panel .nav-tab .dashicons{font-size:16px;margin-right:5px;vertical-align:middle}.debugpress-panel .nav-tab-right{float:right;margin-right:10px;margin-left:0}.debugpress-panel-settings .tab-content{display:none}.debugpress-panel-settings .tab-content.tab-content-active{display:block}.debugpress_settings{width:calc(100% - 330px);float:left;color:#000}.debugpress_settings .debugpress-settings-section{max-width:720px;background-color:#fff;padding:15px;margin:15px 0 0 15px;border:1px solid #1e72bd}.debugpress_settings .debugpress-settings-section h2{margin:-15px -15px 15px;padding:15px;background-color:#1e72bd;color:#fff}.debugpress_settings .debugpress-settings-section .debugpress-section-info{margin:-15px -15px 0;padding:15px;background-color:#daeeff}.debugpress_settings .debugpress-settings-section p.description{border-top:1px solid #1e72bd;margin:10px 0 0;padding:5px 0 0}.debugpress_sidebar{float:right;padding-left:20px;margin-right:15px;width:280px}.debugpress_sidebar img{height:auto;width:100%}.debugpress_sidebar>div{text-align:center;padding:15px;margin:15px 0;max-width:360px}.debugpress_sidebar .debugpress_plugin{color:#fff;background:#1e72bd}.debugpress_sidebar .debugpress_plugin>span{display:block;text-transform:uppercase;letter-spacing:2px}.debugpress_sidebar .debugpress_plugin>div{border-top:1px solid #fff;border-bottom:1px solid #fff;padding:15px 0;margin:15px 0;font-weight:700;font-size:1.1em}.debugpress_sidebar .debugpress_plugin .button-secondary{font-weight:700}.debugpress_sidebar .debugpress_help{color:#111;background:#fff;border:1px solid #1e72bd}.debugpress_sidebar .debugpress_help>p{margin:0;padding:0 0 15px}.debugpress_sidebar .debugpress_dev4press{color:#111;background:#e0e0e0;border:1px solid #1e72bd}.debugpress_sidebar .debugpress_dev4press>p{margin:0;padding:0 0 10px;font-weight:700}.debugpress_sidebar .debugpress_dev4press>div{border-top:1px solid #1e72bd;padding:15px 0 0;margin:15px 0 0;font-weight:700;font-size:1.2em}.debugpress-panel-tools .tab-content{margin:15px}.debugpress_phpinfo{overflow:auto}.debugpress_phpinfo h1.p{background-color:#222;color:#fff;font-size:28px;margin:0;padding:22px 16px}.debugpress_phpinfo td img{float:right;margin:7px 16px 0 0}.debugpress_phpinfo table{width:100%;background:#fff;border-collapse:collapse;border:1px solid #bbb;margin:0 0 5px}.debugpress_phpinfo table td{padding:5px;text-align:left;vertical-align:top}.debugpress_phpinfo table th{vertical-align:top}.debugpress_phpinfo table tr td.first,.debugpress_phpinfo table tr th{width:20%}.debugpress_phpinfo table tr td.b,.debugpress_phpinfo table tr th.first{color:#333;font-weight:700}.debugpress_phpinfo table tr td{border-bottom:1px solid #ececec;word-break:break-all}.debugpress_phpinfo table tr td .options{text-align:right;white-space:normal;padding-right:0}.debugpress_phpinfo table tr.first th{color:#222;font-weight:700}.debugpress_phpinfo table tr:last-child td{border-bottom:none}.debugpress_phpinfo table tr.h th,.debugpress_phpinfo table tr.with-header th{background:#666;color:#fff;padding:10px}.debugpress_phpinfo table th{text-align:left;background-color:#ececec;padding:3px 5px}.debugpress_phpinfo div.inside{margin:-1px 0 10px}.debugpress_phpinfo p.sub{color:#777;font-size:13px;font-style:italic;padding:5px 10px 15px;margin:-12px}.debugpress_phpinfo h3{background:#333!important;color:#fff;text-shadow:none!important;font-size:14px;font-weight:700}.debugpress_phpinfo div.inside .link{text-align:right;font-weight:700}.debugpress_phpinfo a{text-decoration:none}.debugpress_phpinfo a:hover{text-decoration:underline}.debugpress_phpinfo h2.phpsection{background-color:#333;color:#fff;font-style:normal;padding:5px 10px;font-size:18px;line-height:24px;margin-bottom:5px;text-shadow:none}.debugpress_phpinfo h2.phpsection a{color:#fff}.debugpress_info table{min-width:50%;max-width:100%;line-height:1.5;border-collapse:collapse;border:1px solid #bbb;border-top:0}.debugpress_info table thead th{text-align:left;padding:5px;background:#666;color:#fff}.debugpress_info table tbody tr{border-bottom:1px solid #bbb;background:#fff}.debugpress_info table tbody tr td,.debugpress_info table tbody tr th{vertical-align:top;padding:5px;text-align:left}.debugpress_info table tbody tr td{border-left:1px solid #bbb}.debugpress_info table tbody tr td div{word-break:break-all} \ No newline at end of file diff --git a/css/debugpress.css b/css/debugpress.css deleted file mode 100644 index 58fc5c3..0000000 --- a/css/debugpress.css +++ /dev/null @@ -1,1065 +0,0 @@ -:root { - --debugpress-base-font-size: 13px; - --debugpress-sql-font-size: 13px; - --debugpress-pretty-font-size: 12px; -} - -@font-face { - font-family: "debugpress"; - src: url("data:application/font-woff2;charset=utf-8;base64,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") format("woff2"), url("data:application/font-woff;charset=utf-8;base64,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") format("woff"); - font-weight: 400; - font-style: normal; - font-display: swap; -} -i.debugpress-icon { - font: 400 normal normal 14px "debugpress"; - font-size: inherit; - text-transform: none; - display: inline-block; - vertical-align: text-bottom; - speak: never; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -h1 > .debugpress-icon, h2 > .debugpress-icon, h3 > .debugpress-icon, h4 > .debugpress-icon, h5 > .debugpress-icon, h6 > .debugpress-icon { - line-height: inherit; - vertical-align: bottom; -} - -a > .debugpress-icon { - line-height: normal; -} - -/* Icons */ -.debugpress-icon.debugpress-icon-caret-up { - transform: rotate(180deg); -} - -.debugpress-icon.debugpress-icon-caret-left { - transform: rotate(90deg); -} - -.debugpress-icon.debugpress-icon-caret-right { - transform: rotate(270deg); -} - -.debugpress-icon.debugpress-icon-bbpress::before { - content: "\f101"; -} - -.debugpress-icon.debugpress-icon-brackets-curly::before { - content: "\f102"; -} - -.debugpress-icon.debugpress-icon-brackets-square::before { - content: "\f103"; -} - -.debugpress-icon.debugpress-icon-bug::before { - content: "\f104"; -} - -.debugpress-icon.debugpress-icon-caret-down::before { - content: "\f105"; -} - -.debugpress-icon.debugpress-icon-clipboard::before { - content: "\f106"; -} - -.debugpress-icon.debugpress-icon-code::before { - content: "\f107"; -} - -.debugpress-icon.debugpress-icon-database::before { - content: "\f108"; -} - -.debugpress-icon.debugpress-icon-diagram-project::before { - content: "\f109"; -} - -.debugpress-icon.debugpress-icon-file-lines::before { - content: "\f10a"; -} - -.debugpress-icon.debugpress-icon-files::before { - content: "\f10b"; -} - -.debugpress-icon.debugpress-icon-folder-user::before { - content: "\f10c"; -} - -.debugpress-icon.debugpress-icon-folder::before { - content: "\f10d"; -} - -.debugpress-icon.debugpress-icon-freemius::before { - content: "\f10e"; -} - -.debugpress-icon.debugpress-icon-gear::before { - content: "\f10f"; -} - -.debugpress-icon.debugpress-icon-globe::before { - content: "\f110"; -} - -.debugpress-icon.debugpress-icon-id-card-clip::before { - content: "\f111"; -} - -.debugpress-icon.debugpress-icon-layout-bottom::before { - content: "\f112"; -} - -.debugpress-icon.debugpress-icon-layout-full::before { - content: "\f113"; -} - -.debugpress-icon.debugpress-icon-layout-left::before { - content: "\f114"; -} - -.debugpress-icon.debugpress-icon-layout-right::before { - content: "\f115"; -} - -.debugpress-icon.debugpress-icon-layout-top::before { - content: "\f116"; -} - -.debugpress-icon.debugpress-icon-layout::before { - content: "\f117"; -} - -.debugpress-icon.debugpress-icon-link-simple::before { - content: "\f118"; -} - -.debugpress-icon.debugpress-icon-octagon-exclamation::before { - content: "\f119"; -} - -.debugpress-icon.debugpress-icon-php::before { - content: "\f11a"; -} - -.debugpress-icon.debugpress-icon-plug::before { - content: "\f11b"; -} - -.debugpress-icon.debugpress-icon-power-off::before { - content: "\f11c"; -} - -.debugpress-icon.debugpress-icon-screwdriver-wrench::before { - content: "\f11d"; -} - -.debugpress-icon.debugpress-icon-server::before { - content: "\f11e"; -} - -.debugpress-icon.debugpress-icon-square-exclamation::before { - content: "\f11f"; -} - -.debugpress-icon.debugpress-icon-square-minus::before { - content: "\f120"; -} - -.debugpress-icon.debugpress-icon-square-plus::before { - content: "\f121"; -} - -.debugpress-icon.debugpress-icon-triangle-exclamation::before { - content: "\f122"; -} - -.debugpress-icon.debugpress-icon-caret-up::before { - content: "\f105"; -} - -.debugpress-icon.debugpress-icon-caret-left::before { - content: "\f105"; -} - -.debugpress-icon.debugpress-icon-caret-right::before { - content: "\f105"; -} - -/* Full Width */ -i.debugpress-icon.debugpress-icon-fw { - width: 1.2857em; - text-align: center; -} -i.debugpress-icon { - /* Sizes */ -} -i.debugpress-icon.debugpress-icon-lg { - font-size: 1.3333em; - line-height: 0.75; - vertical-align: -15%; -} -i.debugpress-icon.debugpress-icon-2x { - font-size: 2em; -} -i.debugpress-icon.debugpress-icon-3x { - font-size: 3em; -} -i.debugpress-icon.debugpress-icon-4x { - font-size: 4em; -} -i.debugpress-icon.debugpress-icon-5x { - font-size: 5em; -} -i.debugpress-icon.debugpress-icon-6x { - font-size: 6em; -} -i.debugpress-icon.debugpress-icon-7x { - font-size: 7em; -} - -/* Flip */ -.debugpress-icon-flip-horizontal { - transform: scaleX(-1); -} - -.debugpress-icon-flip-vertical { - transform: scaleY(-1); -} - -.debugpress-icon-flip-both, -.debugpress-icon-flip-horizontal.debugpress-icon-flip-vertical { - transform: scale(-1); -} - -/* Spin */ -.debugpress-icon-spin { - animation: debugpress-icon-icon-spin 2s infinite linear; -} - -@keyframes debugpress-icon-icon-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.debugpress-grid, -.debugpress-unit { - box-sizing: border-box; -} - -.debugpress-grid { - display: block; - clear: both; -} -.debugpress-grid .debugpress-unit { - float: left; - width: 100%; - padding: 10px; - margin: 0; -} -.debugpress-grid .wrap { - max-width: 978px; - margin: 0 auto; -} -.debugpress-grid { - *zoom: 1; -} -.debugpress-grid::before, .debugpress-grid::after { - display: table; - content: ""; - line-height: 0; -} -.debugpress-grid::after { - clear: both; -} -.debugpress-grid .whole, .debugpress-grid .w-1-1 { - width: 100%; -} -.debugpress-grid .half, .debugpress-grid .w-1-2 { - width: 50%; -} -.debugpress-grid .one-third, .debugpress-grid .w-1-3 { - width: 33.3332%; -} -.debugpress-grid .two-thirds, .debugpress-grid .w-2-3 { - width: 66.6665%; -} -.debugpress-grid .one-quarter, .debugpress-grid .w-1-4 { - width: 25%; -} -.debugpress-grid .three-quarters, .debugpress-grid .w-3-4 { - width: 75%; -} -.debugpress-grid .one-fifth, .debugpress-grid .w-1-5 { - width: 20%; -} -.debugpress-grid .two-fifths, .debugpress-grid .w-2-5 { - width: 40%; -} -.debugpress-grid .three-fifths, .debugpress-grid .w-3-5 { - width: 60%; -} -.debugpress-grid .four-fifths, .debugpress-grid .w-4-5 { - width: 80%; -} -.debugpress-grid .golden-small, .debugpress-grid .w-g-s { - width: 38.2716%; -} -.debugpress-grid .golden-large, .debugpress-grid .w-g-l { - width: 61.7283%; -} - -.debugpress-unit .debugpress-unit:first-child { - padding-left: 0; -} -.debugpress-unit .debugpress-unit:last-child { - padding-right: 0; -} -.debugpress-unit .debugpress-unit:first-child > .debugpress-unit { - padding-top: 0; -} -.debugpress-unit .debugpress-unit:last-child > .debugpress-unit { - padding-bottom: 0; -} -.debugpress-unit.no-gutters { - padding: 0 !important; -} - -.align-center { - text-align: center; -} - -.align-left { - text-align: left; -} - -.align-right { - text-align: right; -} - -.pull-left { - float: left; -} - -.pull-right { - float: right; -} - -.debugpress-clearfix:before, -.debugpress-clearfix:after { - content: " "; - display: table; -} - -.debugpress-clearfix:after { - clear: both; -} - -#wpadminbar .debugpress-icon { - vertical-align: text-top !important; - font-size: 19px !important; - font-family: debugpress, cursive !important; - line-height: 1; -} - -#wp-admin-bar-debugpress-debugger-button { - float: right !important; -} - -.debugpress-float-button { - position: fixed; - background-color: #23282D; - border: 1px solid #23282D; - box-shadow: 0 0 3px rgba(35, 40, 45, 0.7); - z-index: 142000; - padding: 5px; -} -.debugpress-float-button a { - display: block; - height: 22px; - line-height: 22px; - outline: none !important; - text-decoration: none; -} -.debugpress-float-button a:focus { - box-shadow: none; -} -.debugpress-float-button.debugpress-position-topright { - right: 5px; - top: 5px; -} -.debugpress-float-button.debugpress-position-topleft { - left: 5px; - top: 5px; -} -.debugpress-float-button.debugpress-position-bottomright { - right: 5px; - bottom: 5px; -} -.debugpress-float-button.debugpress-position-bottomleft { - left: 5px; - bottom: 5px; -} -.debugpress-float-button .debugpress-icon { - font-size: 24px !important; - vertical-align: top; -} - -.debugpress-debug-dialog-button.debugpress-float-button a .debugpress-debug-button-indicators { - vertical-align: 8px; -} -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-errors, -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-stored, -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-httpcalls, -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-ajax { - padding: 2px 3px !important; - border-radius: 3px !important; - color: #FFF; - font-size: 11px !important; - max-height: 12px !important; - margin: 4px !important; -} -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-httpcalls { - background-color: #2AAAE5; -} -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-ajax { - background-color: #D82AE5; -} -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-stored { - background-color: #19A514; -} -.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-errors { - background-color: #ED1E24; -} -.debugpress-debug-dialog-button > a, .debugpress-debug-dialog-button > a:hover { - color: #69FB3B !important; -} -.debugpress-debug-dialog-button.debugpress-debug-has-warnings > a, .debugpress-debug-dialog-button.debugpress-debug-has-warnings > :hover { - color: #FF0 !important; -} -.debugpress-debug-dialog-button.debugpress-debug-has-errors > a, .debugpress-debug-dialog-button.debugpress-debug-has-errors > :hover { - color: #FF3232 !important; -} -.debugpress-debug-dialog-button .ab-sub-wrapper { - left: auto; - right: 0; -} -.debugpress-debug-dialog-button .ab-sub-wrapper .ab-item { - display: flex !important; - justify-content: space-between; - align-items: center; - column-gap: 1em; -} -.debugpress-debug-dialog-button .ab-sub-wrapper .ab-item span { - font-weight: 700; -} - -.debugpress-layout-position { - display: flex; - gap: 2em; - flex-wrap: wrap; - padding: 1em; -} -.debugpress-layout-position > div { - text-align: center; -} -.debugpress-layout-position > div.selected { - color: #0073AA; - font-weight: 700; -} -.debugpress-layout-position > div > span { - display: block; -} - -.debugpress-layout-settings { - padding: 1em; -} -.debugpress-layout-settings .debugpress-layout-option { - display: flex; - column-gap: 2em; - margin: 0 0 1em; - align-items: center; -} -.debugpress-layout-settings .debugpress-layout-option label { - min-width: 120px; -} -.debugpress-layout-settings .debugpress-layout-option select { - min-width: 120px; - width: 200px; -} - -.debugpress-style-popup { - color: #444; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - line-height: 1.4; - font-size: var(--debugpress-base-font-size); - font-style: normal; - font-weight: 400; - box-sizing: border-box; -} -.debugpress-style-popup * { - font-family: inherit; - box-sizing: border-box; -} -.debugpress-style-popup pre { - margin: 0; - padding: 5px 7px; - line-height: 1.4; - white-space: pre; -} -.debugpress-style-popup a { - color: #0073AA; - text-decoration: none; - box-shadow: none; - outline: none; -} -.debugpress-style-popup a.sqlq-option-on { - font-weight: 700; - color: #FFF; - background: #0073AA; - padding: 0 3px 1px; -} -.debugpress-style-popup .sanp-wrapper { - background: #FFF; - border-radius: 0; - border: 4px solid #23282D; - box-shadow: 1px 1px 5px rgba(32, 32, 32, 0.6); -} -.debugpress-style-popup .sanp-wrapper > button { - appearance: none; - background: none; - border: medium none; - color: #E00; - cursor: pointer; - float: right; - font-size: 20px; - font-weight: 900; - line-height: 1; - right: 5px; - top: 3px; -} -.debugpress-style-popup .sanp-wrapper .sanp-header { - background: #23282D; - border-radius: 0; - padding: 5px 5px 0; - color: #FFF; - height: 38px; -} -.debugpress-style-popup .sanp-wrapper .sanp-header h5 { - border-bottom: 4px solid #23282D; - color: #FFF; - font-size: 18px; - font-weight: 900; - line-height: 24px; - margin: 0; - padding: 0; - text-transform: uppercase; -} -.debugpress-style-popup .sanp-wrapper .sanp-content { - padding: 0; -} -.debugpress-style-popup .sanp-wrapper .sanp-footer { - border-radius: 0; - padding: 5px; - background: #E0E0E0; - text-align: left; -} -.debugpress-style-popup .sanp-wrapper .sanp-footer button { - appearance: none; - margin: 0; - padding: 0; - cursor: pointer; - color: #23282D; - font-weight: 700; - outline: 1px solid transparent; - background: none; - border: none; - font-size: 16px; - text-transform: uppercase; - letter-spacing: 2px; -} -.debugpress-style-popup.sanp-button-alt .sanp-wrapper > button { - background: #500; - box-shadow: 1px 1px 4px rgba(32, 32, 32, 0.3); - color: #FFF; -} - -.debugpress-style-popup #debugpress-debugger-tabs { - margin: 0; - padding: 0; - list-style: none; - font-size: var(--debugpress-base-font-size); - line-height: 26px; - width: calc(100% - 30px); -} -.debugpress-style-popup #debugpress-debugger-tabs li { - float: left; - height: 28px; - line-height: 26px; - margin: 0; - padding: 0 10px; - list-style: none; -} -.debugpress-style-popup #debugpress-debugger-tabs li .debugpress-tab-ctrl-icon { - padding-right: 5px; - font-size: calc(var(--debugpress-base-font-size) + 2px); -} -.debugpress-style-popup #debugpress-debugger-tabs li a { - color: #EEE; - box-shadow: none; - outline: none; - text-decoration: none; -} -.debugpress-style-popup #debugpress-debugger-tabs li.debugpress-tab-active { - background: #FFF; - height: 33px; -} -.debugpress-style-popup #debugpress-debugger-tabs li.debugpress-tab-active a { - color: #23282D; - font-weight: 700; -} -.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-layout-li, .debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-tools-li, .debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-debuglog-li { - float: right; -} -.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-layout-li i, .debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-tools-li i, .debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-debuglog-li i { - font-size: 120%; - vertical-align: text-bottom; -} -.debugpress-style-popup .debugpress-pre-wrap { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-weight: 700; - font-size: var(--debugpress-sql-font-size); - margin: 0 0 5px; - padding: 5px; -} -.debugpress-style-popup .debugpress-pre-wrap pre { - color: #000; - background-color: #FFF; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-tab-content { - display: none; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-tab-content.debugpress-tab-active { - display: block; -} -.debugpress-style-popup #debugpress-debugger-select { - display: none; - font-size: calc(var(--debugpress-base-font-size) + 1px); - height: 28px; - line-height: 28px; - margin: 0; - padding: 0 10px; - width: calc(100% - 30px); - min-height: 28px; - max-width: 100%; - border-radius: 0; - border: 0; -} -.debugpress-style-popup .debugpress-debugger-footer-right { - float: right; -} -.debugpress-style-popup .debugpress-debugger-footer-left { - float: left; -} -.debugpress-style-popup .debugpress-debugger-footer-left div { - display: inline; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggle { - font-weight: 700; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggler { - border-left: 1px solid #888; - padding-left: 10px; - display: none; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggler.debugpress-events-log-toggler-opened { - display: block; -} -.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-error-message { - font-weight: 700; - font-style: italic; - color: #F00; -} -.debugpress-style-popup .debugpress-debugger-panel-block { - margin: 5px 0 10px; - display: block; - overflow: auto; -} -.debugpress-style-popup .debugpress-debugger-panel-block p { - padding: 0; - margin: 0 0 0.5em; -} -.debugpress-style-popup .debugpress-debugger-panel-block .sql-calls-button-expander { - font-weight: 700; - font-size: calc(var(--debugpress-base-font-size) - 1px); - color: #FFF !important; - background: #0073AA; - padding: 0 6px 3px; - margin: 0 0 0 10px; - border-radius: 3px; -} -.debugpress-style-popup .debugpress-debugger-panel-block-title { - background: #23282D; - color: #FFF; - padding: 5px 8px !important; - font-size: 12px; - margin: 0; -} -.debugpress-style-popup .debugpress-debugger-panel-block-title > i.debugpress-icon { - font-size: 1.5em; - margin: 0 5px 0 0; -} -.debugpress-style-popup .debugpress-debugger-panel-block-title span { - float: right; - font-size: 18px; - cursor: pointer; -} -.debugpress-style-popup .debugpress-debugger-panel-block-title span i.debugpress-icon { - vertical-align: top; -} -.debugpress-style-popup .debugpress-query-sidebar-control { - background: #23282D; - color: #FFF; - padding: 5px !important; - font-size: calc(var(--debugpress-base-font-size) - 1px); - margin: 0 0 10px; - text-align: right; -} -.debugpress-style-popup .debugpress-query-sidebar-control span { - font-size: calc(var(--debugpress-base-font-size) + 4px); - cursor: pointer; - padding-right: 4px; - vertical-align: top; -} -.debugpress-style-popup .debugpress-query-sidebar-control span i.debugpress-icon { - vertical-align: bottom; -} -.debugpress-style-popup .debugpress-debugger-panel-block-subtitle { - background: #777; - color: #FFF; - margin: 5px 0; - padding: 2px 5px !important; - font-size: calc(var(--debugpress-base-font-size) - 2px); - line-height: 20px; -} -.debugpress-style-popup .debugpress-debugger-table { - width: 100%; - table-layout: auto; - margin: 0; - border: 1px solid #DDD; - background: #FFF; - border-collapse: collapse; - font-size: calc(var(--debugpress-base-font-size) - 1px); - line-height: 20px; -} -.debugpress-style-popup .debugpress-debugger-table thead { - background: #DDD; -} -.debugpress-style-popup .debugpress-debugger-table th, -.debugpress-style-popup .debugpress-debugger-table td { - border: 1px solid #E8E8E8; - text-align: left; - padding: 1px 4px !important; - font-size: calc(var(--debugpress-base-font-size) - 1px); -} -.debugpress-style-popup .debugpress-debugger-table th .kint-rich, -.debugpress-style-popup .debugpress-debugger-table td .kint-rich { - margin: 0; -} -.debugpress-style-popup .debugpress-debugger-table th .kint-rich > dl > .kint-parent, -.debugpress-style-popup .debugpress-debugger-table td .kint-rich > dl > .kint-parent { - margin-top: 0; -} -.debugpress-style-popup .debugpress-debugger-table td { - border-width: 0 1px 1px 0; - vertical-align: top; -} -.debugpress-style-popup .debugpress-debugger-table tr:nth-of-type(2n) { - background: #FAFAFA; -} -.debugpress-style-popup .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child { - width: 30%; -} -.debugpress-style-popup .debugpress-debugger-table .debugpress_r.debugpress_r_root { - margin: 0; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child, -.debugpress-style-popup #debugpress-debugger-tab-queries .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child { - width: 70%; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list > thead th, -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list > thead td { - padding: 3px 8px !important; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list > tbody > tr > th { - padding: 3px 8px !important; - vertical-align: top; - width: 20%; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list > tbody > tr > td { - padding: 0 !important; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list > tbody > tr > td.dbg-hook-no-callbacks { - padding: 4px 6px 4px 82px !important; - font-weight: 700; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions { - width: 100%; - table-layout: auto; - margin: 0; - border: 0; - background: #FFF; - border-collapse: collapse; - font-size: calc(var(--debugpress-base-font-size) - 1px); -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td { - padding: 3px 5px !important; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td:first-child { - width: 80px; - text-align: right; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td:last-child { - width: 30%; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action em { - font-family: monospace; - font-weight: 700; - font-style: normal; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action div { - display: none; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action .dbg-hook-action-callback-call { - display: block; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action .dbg-hook-action-callback-call strong { - font-weight: 400; - font-family: monospace; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action.dbg-calls-show div { - display: block; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action button { - float: right; - font-weight: 700; - font-size: calc(var(--debugpress-base-font-size) - 1px); - color: #FFF !important; - background: #0073AA; - padding: 0 6px 3px; - margin: 0 0 0 10px; - border: 0; - border-radius: 3px; - cursor: pointer; -} -.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr:last-child td { - border-bottom: 0; -} -.debugpress-style-popup .query-sql-run-full, -.debugpress-style-popup #debugpress-debuglog-content { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-size: var(--debugpress-sql-font-size); - margin: 5px 0 0; - padding: 5px; -} -.debugpress-style-popup .query-sql-run-full { - font-weight: 700; -} -.debugpress-style-popup .query-sql-run-full pre { - color: #000; - background-color: #FFF; -} -.debugpress-style-popup #debugpress-debuglog-content { - font-weight: 400; -} -.debugpress-style-popup #debugpress-debuglog-content > div { - overflow: auto; - color: #000; - background-color: #FFF; -} -.debugpress-style-popup #debugpress-debuglog-content > div pre { - background: none; - overflow: visible; -} -.debugpress-style-popup .sql-query-list .sql-query { - border: 1px solid #777; - margin: 5px 0; - padding: 5px; -} -.debugpress-style-popup .sql-query-list .sql-query .sql-query-full { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-weight: 700; - font-size: var(--debugpress-sql-font-size); - margin: 5px 0 0; - padding: 5px; -} -.debugpress-style-popup .sql-query-list .sql-query .sql-query-full pre { - color: #000; - background-color: #FFF; -} -.debugpress-style-popup .debugpress-wrapper-warning { - border: 1px solid #23282D; - padding: 10px; - margin: 0 0 10px; -} -.debugpress-style-popup .debugpress-wrapper-warning h4 { - color: #900; - font-size: calc(var(--debugpress-base-font-size) + 3px); - margin: 0 0 5px; -} -.debugpress-style-popup .debugpress-debug-environment { - margin: 0 0 10px; - padding: 10px; - background-color: #F3FFE7; -} -.debugpress-style-popup .debugpress-debug-environment .debugpress-debugger-panel-block-title { - background-color: #12AE00; - text-align: center; - font-size: 110%; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-development { - background-color: #FFE7F2; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-development .debugpress-debugger-panel-block-title { - background-color: #AE0060; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-local { - background-color: #F7E7FF; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-local .debugpress-debugger-panel-block-title { - background-color: #8800AE; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-staging { - background-color: #E7EEFF; -} -.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-staging .debugpress-debugger-panel-block-title { - background-color: #0026AE; -} -.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment { - color: #12AE00; -} -.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-development { - color: #AE0060; -} -.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-local { - color: #8800AE; -} -.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-staging { - color: #0026AE; -} -.debugpress-style-popup .debugpress-debug-notice-block { - margin: 10px 0; - padding: 10px 10px 1px; - border-left: 4px solid #F00; - background-color: #FFE7E7; -} -.debugpress-style-popup .debugpress-debug-notice-block .debugpress-debugger-panel-block-title { - background-color: #F00; -} -.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter { - width: 44px; -} -.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter h5, .debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter div { - display: none !important; -} -.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .three-quarters { - width: calc(100% - 44px); -} -.debugpress-style-popup .debugpress-button-action { - background: #27B; - color: #FFF; - display: inline-block; - cursor: pointer; - border: 0; - text-align: center; - width: max-content; - border-radius: 0; - margin: 5px 5px 0 0; - padding: 8px 14px; - font-size: calc(var(--debugpress-base-font-size) + 3px); -} - -@media screen and (width <= 568px) { - .debugpress-grid .debugpress-unit { - width: 100% !important; - padding-left: 20px; - padding-right: 20px; - } - .debugpress-unit .debugpress-grid .debugpress-unit { - padding-left: 0; - padding-right: 0; - } - .center-on-mobiles { - text-align: center !important; - } - .hide-on-mobiles { - display: none !important; - } -} -@media screen and (width <= 1080px) { - #debugpress-debugger-tab-queries .debugpress-grid .one-quarter { - width: 45%; - } - #debugpress-debugger-tab-queries .debugpress-grid .three-quarters { - width: 55%; - } - .debugpress-debugger-footer-left div { - display: block; - } - .debugpress-debugger-footer-left div span { - display: none; - } -} -@media screen and (width <= 800px) { - .debugpress-style-popup .debugpress-query-sidebar-control { - margin-bottom: 5px; - } - .debugpress-style-popup .debugpress-debugger-footer-left, - .debugpress-style-popup .debugpress-debugger-footer-right { - float: none; - text-align: center; - } - .debugpress-style-popup #debugpress-debugger-tabs { - display: none; - } - .debugpress-style-popup #debugpress-debugger-select { - display: block; - } - .debugpress-style-popup .sanp-wrapper .sanp-header { - height: 40px; - } - .debugpress-style-popup .sanp-wrapper > button { - top: 5px; - } - .debugpress-style-popup .debugpress-tab-content .debugpress-grid .debugpress-unit { - padding-left: 10px; - padding-right: 10px; - } -} -@media screen and (width <= 782px) { - #wpadminbar .debugpress-debug-dialog-button { - display: block !important; - } - #wpadminbar .debugpress-debug-dialog-button > .ab-item { - padding: 0 10px !important; - } - #wpadminbar .debugpress-debug-dialog-button > .ab-item i.debugpress-icon { - font-size: 24px !important; - } -} diff --git a/css/debugpress.min.css b/css/debugpress.min.css deleted file mode 100644 index 98aea80..0000000 --- a/css/debugpress.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes debugpress-icon-icon-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}:root{--debugpress-base-font-size:13px;--debugpress-sql-font-size:13px;--debugpress-pretty-font-size:12px}@font-face{font-family:"debugpress";src:url(data:application/font-woff2;charset=utf-8;base64,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)format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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)format("woff");font-weight:400;font-style:normal;font-display:swap}i.debugpress-icon{font:400 14px"debugpress";font-size:inherit;text-transform:none;display:inline-block;vertical-align:text-bottom;speak:never;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1>.debugpress-icon,h2>.debugpress-icon,h3>.debugpress-icon,h4>.debugpress-icon,h5>.debugpress-icon,h6>.debugpress-icon{line-height:inherit;vertical-align:bottom}a>.debugpress-icon{line-height:normal}.debugpress-icon.debugpress-icon-caret-up{transform:rotate(180deg)}.debugpress-icon.debugpress-icon-caret-left{transform:rotate(90deg)}.debugpress-icon.debugpress-icon-caret-right{transform:rotate(270deg)}.debugpress-icon.debugpress-icon-bbpress::before{content:""}.debugpress-icon.debugpress-icon-brackets-curly::before{content:""}.debugpress-icon.debugpress-icon-brackets-square::before{content:""}.debugpress-icon.debugpress-icon-bug::before{content:""}.debugpress-icon.debugpress-icon-caret-down::before{content:""}.debugpress-icon.debugpress-icon-clipboard::before{content:""}.debugpress-icon.debugpress-icon-code::before{content:""}.debugpress-icon.debugpress-icon-database::before{content:""}.debugpress-icon.debugpress-icon-diagram-project::before{content:""}.debugpress-icon.debugpress-icon-file-lines::before{content:""}.debugpress-icon.debugpress-icon-files::before{content:""}.debugpress-icon.debugpress-icon-folder-user::before{content:""}.debugpress-icon.debugpress-icon-folder::before{content:""}.debugpress-icon.debugpress-icon-freemius::before{content:""}.debugpress-icon.debugpress-icon-gear::before{content:""}.debugpress-icon.debugpress-icon-globe::before{content:""}.debugpress-icon.debugpress-icon-id-card-clip::before{content:""}.debugpress-icon.debugpress-icon-layout-bottom::before{content:""}.debugpress-icon.debugpress-icon-layout-full::before{content:""}.debugpress-icon.debugpress-icon-layout-left::before{content:""}.debugpress-icon.debugpress-icon-layout-right::before{content:""}.debugpress-icon.debugpress-icon-layout-top::before{content:""}.debugpress-icon.debugpress-icon-layout::before{content:""}.debugpress-icon.debugpress-icon-link-simple::before{content:""}.debugpress-icon.debugpress-icon-octagon-exclamation::before{content:""}.debugpress-icon.debugpress-icon-php::before{content:""}.debugpress-icon.debugpress-icon-plug::before{content:""}.debugpress-icon.debugpress-icon-power-off::before{content:""}.debugpress-icon.debugpress-icon-screwdriver-wrench::before{content:""}.debugpress-icon.debugpress-icon-server::before{content:""}.debugpress-icon.debugpress-icon-square-exclamation::before{content:""}.debugpress-icon.debugpress-icon-square-minus::before{content:""}.debugpress-icon.debugpress-icon-square-plus::before{content:""}.debugpress-icon.debugpress-icon-triangle-exclamation::before{content:""}.debugpress-icon.debugpress-icon-caret-left::before,.debugpress-icon.debugpress-icon-caret-right::before,.debugpress-icon.debugpress-icon-caret-up::before{content:""}i.debugpress-icon.debugpress-icon-fw{width:1.2857em;text-align:center}i.debugpress-icon.debugpress-icon-lg{font-size:1.3333em;line-height:.75;vertical-align:-15%}i.debugpress-icon.debugpress-icon-2x{font-size:2em}i.debugpress-icon.debugpress-icon-3x{font-size:3em}i.debugpress-icon.debugpress-icon-4x{font-size:4em}i.debugpress-icon.debugpress-icon-5x{font-size:5em}i.debugpress-icon.debugpress-icon-6x{font-size:6em}i.debugpress-icon.debugpress-icon-7x{font-size:7em}.debugpress-icon-flip-horizontal{transform:scaleX(-1)}.debugpress-icon-flip-vertical{transform:scaleY(-1)}.debugpress-icon-flip-both,.debugpress-icon-flip-horizontal.debugpress-icon-flip-vertical{transform:scale(-1)}.debugpress-icon-spin{animation:debugpress-icon-icon-spin 2s infinite linear}.debugpress-grid,.debugpress-unit{box-sizing:border-box}.debugpress-grid{display:block;clear:both;*zoom:1}.debugpress-grid .debugpress-unit{float:left;width:100%;padding:10px;margin:0}.debugpress-grid .wrap{max-width:978px;margin:0 auto}.debugpress-grid::after,.debugpress-grid::before{display:table;content:"";line-height:0}.debugpress-grid::after{clear:both}.debugpress-grid .w-1-1,.debugpress-grid .whole{width:100%}.debugpress-grid .half,.debugpress-grid .w-1-2{width:50%}.debugpress-grid .one-third,.debugpress-grid .w-1-3{width:33.3332%}.debugpress-grid .two-thirds,.debugpress-grid .w-2-3{width:66.6665%}.debugpress-grid .one-quarter,.debugpress-grid .w-1-4{width:25%}.debugpress-grid .three-quarters,.debugpress-grid .w-3-4{width:75%}.debugpress-grid .one-fifth,.debugpress-grid .w-1-5{width:20%}.debugpress-grid .two-fifths,.debugpress-grid .w-2-5{width:40%}.debugpress-grid .three-fifths,.debugpress-grid .w-3-5{width:60%}.debugpress-grid .four-fifths,.debugpress-grid .w-4-5{width:80%}.debugpress-grid .golden-small,.debugpress-grid .w-g-s{width:38.2716%}.debugpress-grid .golden-large,.debugpress-grid .w-g-l{width:61.7283%}.debugpress-unit .debugpress-unit:first-child{padding-left:0}.debugpress-unit .debugpress-unit:last-child{padding-right:0}.debugpress-unit .debugpress-unit:first-child>.debugpress-unit{padding-top:0}.debugpress-unit .debugpress-unit:last-child>.debugpress-unit{padding-bottom:0}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list>tbody>tr>td,.debugpress-unit.no-gutters{padding:0!important}.align-center,.debugpress-layout-position>div{text-align:center}.align-left{text-align:left}.align-right{text-align:right}.pull-left{float:left}.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-debuglog-li,.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-layout-li,.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-tools-li,.pull-right{float:right}.debugpress-clearfix:after,.debugpress-clearfix:before{content:" ";display:table}.debugpress-clearfix:after{clear:both}#wpadminbar .debugpress-icon{vertical-align:text-top!important;font-size:19px!important;font-family:debugpress,cursive!important;line-height:1}#wp-admin-bar-debugpress-debugger-button{float:right!important}.debugpress-float-button{position:fixed;background-color:#23282d;border:1px solid #23282d;box-shadow:0 0 3px rgba(35,40,45,.7);z-index:142000;padding:5px}.debugpress-float-button a{display:block;height:22px;line-height:22px;outline:0!important;text-decoration:none}.debugpress-float-button a:focus{box-shadow:none}.debugpress-float-button.debugpress-position-topright{right:5px;top:5px}.debugpress-float-button.debugpress-position-topleft{left:5px;top:5px}.debugpress-float-button.debugpress-position-bottomright{right:5px;bottom:5px}.debugpress-float-button.debugpress-position-bottomleft{left:5px;bottom:5px}.debugpress-float-button .debugpress-icon{font-size:24px!important;vertical-align:top}.debugpress-debug-dialog-button.debugpress-float-button a .debugpress-debug-button-indicators{vertical-align:8px}.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-ajax,.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-errors,.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-httpcalls,.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-stored{padding:2px 3px!important;border-radius:3px!important;color:#fff;font-size:11px!important;max-height:12px!important;margin:4px!important}.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-httpcalls{background-color:#2aaae5}.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-ajax{background-color:#d82ae5}.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-stored{background-color:#19a514}.debugpress-debug-dialog-button a .debugpress-debug-button-indicators .debugpress-debug-has-errors{background-color:#ed1e24}.debugpress-debug-dialog-button>a,.debugpress-debug-dialog-button>a:hover{color:#69fb3b!important}.debugpress-debug-dialog-button.debugpress-debug-has-warnings>:hover,.debugpress-debug-dialog-button.debugpress-debug-has-warnings>a{color:#ff0!important}.debugpress-debug-dialog-button.debugpress-debug-has-errors>:hover,.debugpress-debug-dialog-button.debugpress-debug-has-errors>a{color:#ff3232!important}.debugpress-debug-dialog-button .ab-sub-wrapper{left:auto;right:0}.debugpress-debug-dialog-button .ab-sub-wrapper .ab-item{display:flex!important;justify-content:space-between;align-items:center;column-gap:1em}.debugpress-debug-dialog-button .ab-sub-wrapper .ab-item span{font-weight:700}.debugpress-layout-position{display:flex;gap:2em;flex-wrap:wrap;padding:1em}.debugpress-layout-position>div.selected{color:#0073aa;font-weight:700}.debugpress-layout-position>div>span,.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggler.debugpress-events-log-toggler-opened,.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-tab-content.debugpress-tab-active,.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action .dbg-hook-action-callback-call,.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action.dbg-calls-show div{display:block}.debugpress-layout-settings{padding:1em}.debugpress-layout-settings .debugpress-layout-option{display:flex;column-gap:2em;margin:0 0 1em;align-items:center}.debugpress-layout-settings .debugpress-layout-option label{min-width:120px}.debugpress-layout-settings .debugpress-layout-option select{min-width:120px;width:200px}.debugpress-style-popup{color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.4;font-size:var(--debugpress-base-font-size);font-style:normal;font-weight:400;box-sizing:border-box}.debugpress-style-popup *{font-family:inherit;box-sizing:border-box}.debugpress-style-popup pre{margin:0;padding:5px 7px;line-height:1.4;white-space:pre}.debugpress-style-popup a{color:#0073aa;text-decoration:none;box-shadow:none;outline:0}.debugpress-style-popup a.sqlq-option-on{font-weight:700;color:#fff;background:#0073aa;padding:0 3px 1px}.debugpress-style-popup .sanp-wrapper{background:#fff;border-radius:0;border:4px solid #23282d;box-shadow:1px 1px 5px rgba(32,32,32,.6)}.debugpress-style-popup .sanp-wrapper>button{appearance:none;background:0 0;border:medium;color:#e00;cursor:pointer;float:right;font-size:20px;font-weight:900;line-height:1;right:5px;top:3px}.debugpress-style-popup .sanp-wrapper .sanp-header{background:#23282d;border-radius:0;padding:5px 5px 0;color:#fff;height:38px}.debugpress-style-popup .sanp-wrapper .sanp-header h5{border-bottom:4px solid #23282d;color:#fff;font-size:18px;font-weight:900;line-height:24px;margin:0;padding:0;text-transform:uppercase}.debugpress-style-popup .sanp-wrapper .sanp-content{padding:0}.debugpress-style-popup .sanp-wrapper .sanp-footer{border-radius:0;padding:5px;background:#e0e0e0;text-align:left}.debugpress-style-popup .sanp-wrapper .sanp-footer button{appearance:none;margin:0;padding:0;cursor:pointer;color:#23282d;font-weight:700;outline:1px solid transparent;background:0 0;border:0;font-size:16px;text-transform:uppercase;letter-spacing:2px}.debugpress-style-popup.sanp-button-alt .sanp-wrapper>button{background:#500;box-shadow:1px 1px 4px rgba(32,32,32,.3);color:#fff}.debugpress-style-popup #debugpress-debugger-tabs{margin:0;padding:0;list-style:none;font-size:var(--debugpress-base-font-size);line-height:26px;width:calc(100% - 30px)}.debugpress-style-popup #debugpress-debugger-tabs li{float:left;height:28px;line-height:26px;margin:0;padding:0 10px;list-style:none}.debugpress-style-popup #debugpress-debugger-tabs li .debugpress-tab-ctrl-icon{padding-right:5px;font-size:calc(var(--debugpress-base-font-size) + 2px)}.debugpress-style-popup #debugpress-debugger-tabs li a{color:#eee;box-shadow:none;outline:0;text-decoration:none}.debugpress-style-popup #debugpress-debugger-tabs li.debugpress-tab-active{background:#fff;height:33px}.debugpress-style-popup #debugpress-debugger-tabs li.debugpress-tab-active a{color:#23282d;font-weight:700}.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-debuglog-li i,.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-layout-li i,.debugpress-style-popup #debugpress-debugger-tabs li#debugpress-debugger-tab-tools-li i{font-size:120%;vertical-align:text-bottom}.debugpress-style-popup .debugpress-pre-wrap{background-color:#f4f4f4;color:#000;font-family:monospace;font-weight:700;font-size:var(--debugpress-sql-font-size);margin:0 0 5px;padding:5px}.debugpress-style-popup .debugpress-pre-wrap pre,.debugpress-style-popup .query-sql-run-full pre,.debugpress-style-popup .sql-query-list .sql-query .sql-query-full pre{color:#000;background-color:#fff}.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-tab-content,.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action div{display:none}.debugpress-style-popup #debugpress-debugger-select{display:none;font-size:calc(var(--debugpress-base-font-size) + 1px);height:28px;line-height:28px;margin:0;padding:0 10px;width:calc(100% - 30px);min-height:28px;max-width:100%;border-radius:0;border:0}.debugpress-style-popup .debugpress-debugger-footer-right{float:right}.debugpress-style-popup .debugpress-debugger-footer-left{float:left}.debugpress-style-popup .debugpress-debugger-footer-left div{display:inline}.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggle{font-weight:700}.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-events-log-toggler{border-left:1px solid #888;padding-left:10px;display:none}.debugpress-style-popup #debugpress-debugger-content-wrapper .debugpress-error-message{font-weight:700;font-style:italic;color:red}.debugpress-style-popup .debugpress-debugger-panel-block{margin:5px 0 10px;display:block;overflow:auto}.debugpress-style-popup .debugpress-debugger-panel-block p{padding:0;margin:0 0 .5em}.debugpress-style-popup .debugpress-debugger-panel-block .sql-calls-button-expander{font-weight:700;font-size:calc(var(--debugpress-base-font-size) - 1px);color:#fff!important;background:#0073aa;padding:0 6px 3px;margin:0 0 0 10px;border-radius:3px}.debugpress-style-popup .debugpress-debugger-panel-block-title{background:#23282d;color:#fff;padding:5px 8px!important;font-size:12px;margin:0}.debugpress-style-popup .debugpress-debugger-panel-block-title>i.debugpress-icon{font-size:1.5em;margin:0 5px 0 0}.debugpress-style-popup .debugpress-debugger-panel-block-title span{float:right;font-size:18px;cursor:pointer}.debugpress-style-popup .debugpress-debugger-panel-block-title span i.debugpress-icon{vertical-align:top}.debugpress-style-popup .debugpress-query-sidebar-control{background:#23282d;color:#fff;padding:5px!important;font-size:calc(var(--debugpress-base-font-size) - 1px);margin:0 0 10px;text-align:right}.debugpress-style-popup .debugpress-query-sidebar-control span{font-size:calc(var(--debugpress-base-font-size) + 4px);cursor:pointer;padding-right:4px;vertical-align:top}.debugpress-style-popup .debugpress-query-sidebar-control span i.debugpress-icon{vertical-align:bottom}.debugpress-style-popup .debugpress-debugger-panel-block-subtitle{background:#777;color:#fff;margin:5px 0;padding:2px 5px!important;font-size:calc(var(--debugpress-base-font-size) - 2px);line-height:20px}.debugpress-style-popup .debugpress-debugger-table{width:100%;table-layout:auto;margin:0;border:1px solid #ddd;background:#fff;border-collapse:collapse;font-size:calc(var(--debugpress-base-font-size) - 1px);line-height:20px}.debugpress-style-popup .debugpress-debugger-table thead{background:#ddd}.debugpress-style-popup .debugpress-debugger-table td,.debugpress-style-popup .debugpress-debugger-table th{border:1px solid #e8e8e8;text-align:left;padding:1px 4px!important;font-size:calc(var(--debugpress-base-font-size) - 1px)}.debugpress-style-popup .debugpress-debugger-table .debugpress_r.debugpress_r_root,.debugpress-style-popup .debugpress-debugger-table td .kint-rich,.debugpress-style-popup .debugpress-debugger-table th .kint-rich{margin:0}.debugpress-style-popup .debugpress-debugger-table td .kint-rich>dl>.kint-parent,.debugpress-style-popup .debugpress-debugger-table th .kint-rich>dl>.kint-parent{margin-top:0}.debugpress-style-popup .debugpress-debugger-table td{border-width:0 1px 1px 0;vertical-align:top}.debugpress-style-popup .debugpress-debugger-table tr:nth-of-type(2n){background:#fafafa}.debugpress-style-popup .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child{width:30%}.debugpress-style-popup #debugpress-debugger-tab-hooks .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child,.debugpress-style-popup #debugpress-debugger-tab-queries .debugpress-debugger-table.debugpress-table-keyvalue tr td:first-child{width:70%}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list>thead td,.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list>thead th{padding:3px 8px!important}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list>tbody>tr>th{padding:3px 8px!important;vertical-align:top;width:20%}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list>tbody>tr>td.dbg-hook-no-callbacks{padding:4px 6px 4px 82px!important;font-weight:700}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions{width:100%;table-layout:auto;margin:0;border:0;background:#fff;border-collapse:collapse;font-size:calc(var(--debugpress-base-font-size) - 1px)}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td{padding:3px 5px!important}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td:first-child{width:80px;text-align:right}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td:last-child{width:30%}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action em{font-family:monospace;font-weight:700;font-style:normal}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action .dbg-hook-action-callback-call strong{font-weight:400;font-family:monospace}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr td.dbg-hook-column-action button{float:right;font-weight:700;font-size:calc(var(--debugpress-base-font-size) - 1px);color:#fff!important;background:#0073aa;padding:0 6px 3px;margin:0 0 0 10px;border:0;border-radius:3px;cursor:pointer}.debugpress-style-popup #debugpress-debugger-tab-hooks #dbg-hooks-list .dbg-hooks-actions tr:last-child td{border-bottom:0}.debugpress-style-popup #debugpress-debuglog-content,.debugpress-style-popup .query-sql-run-full,.debugpress-style-popup .sql-query-list .sql-query .sql-query-full{background-color:#f4f4f4;color:#000;font-family:monospace;font-size:var(--debugpress-sql-font-size);margin:5px 0 0;padding:5px}.debugpress-style-popup .query-sql-run-full{font-weight:700}.debugpress-style-popup #debugpress-debuglog-content{font-weight:400}.debugpress-style-popup #debugpress-debuglog-content>div{overflow:auto;color:#000;background-color:#fff}.debugpress-style-popup #debugpress-debuglog-content>div pre{background:0 0;overflow:visible}.debugpress-style-popup .sql-query-list .sql-query{border:1px solid #777;margin:5px 0;padding:5px}.debugpress-style-popup .sql-query-list .sql-query .sql-query-full{font-weight:700}.debugpress-style-popup .debugpress-wrapper-warning{border:1px solid #23282d;padding:10px;margin:0 0 10px}.debugpress-style-popup .debugpress-wrapper-warning h4{color:#900;font-size:calc(var(--debugpress-base-font-size) + 3px);margin:0 0 5px}.debugpress-style-popup .debugpress-debug-environment{margin:0 0 10px;padding:10px;background-color:#f3ffe7}.debugpress-style-popup .debugpress-debug-environment .debugpress-debugger-panel-block-title{background-color:#12ae00;text-align:center;font-size:110%}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-development{background-color:#ffe7f2}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-development .debugpress-debugger-panel-block-title{background-color:#ae0060}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-local{background-color:#f7e7ff}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-local .debugpress-debugger-panel-block-title{background-color:#8800ae}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-staging{background-color:#e7eeff}.debugpress-style-popup .debugpress-debug-environment.debugpress-debug-env-staging .debugpress-debugger-panel-block-title{background-color:#0026ae}.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment{color:#12ae00}.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-development{color:#ae0060}.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-local{color:#8800ae}.debugpress-style-popup .debugpress-debugger-footer-left .debugpress-debugger-environment.debugpress-env-staging{color:#0026ae}.debugpress-style-popup .debugpress-debug-notice-block{margin:10px 0;padding:10px 10px 1px;border-left:4px solid red;background-color:#ffe7e7}.debugpress-style-popup .debugpress-debug-notice-block .debugpress-debugger-panel-block-title{background-color:red}.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter{width:44px}.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter div,.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .one-quarter h5{display:none!important}.debugpress-style-popup .debugpress-tab-content.debugpress-queries-sidebar-closed .three-quarters{width:calc(100% - 44px)}.debugpress-style-popup .debugpress-button-action{background:#27b;color:#fff;display:inline-block;cursor:pointer;border:0;text-align:center;width:max-content;border-radius:0;margin:5px 5px 0 0;padding:8px 14px;font-size:calc(var(--debugpress-base-font-size) + 3px)} \ No newline at end of file diff --git a/css/fonts/debugpress.woff b/css/fonts/debugpress.woff deleted file mode 100644 index b2761cc..0000000 Binary files a/css/fonts/debugpress.woff and /dev/null differ diff --git a/css/fonts/debugpress.woff2 b/css/fonts/debugpress.woff2 deleted file mode 100644 index adc0a9a..0000000 Binary files a/css/fonts/debugpress.woff2 and /dev/null differ diff --git a/css/prettyprint.css b/css/prettyprint.css deleted file mode 100644 index 67d9fc4..0000000 --- a/css/prettyprint.css +++ /dev/null @@ -1,164 +0,0 @@ -.debugpress_r { - font-size: var(--debugpress-pretty-font-size); - font-family: Consolas, "Lucida Console", monospace; - line-height: 1.4; - cursor: default; -} -.debugpress_r .debugpress-icon { - vertical-align: text-bottom; - font-size: calc(var(--debugpress-pretty-font-size) + 2px); -} -.debugpress_r.debugpress_r_root { - background: #FFF; - border: 1px solid #000; - margin: 1em 0; -} -.debugpress_r a { - outline: none; - box-shadow: none; - display: block !important; - text-decoration: none !important; -} -.debugpress_r a:focus, .debugpress_r a:hover { - outline: none; - box-shadow: none; -} -.debugpress_r p { - line-height: inherit !important; - margin: 0 !important; -} -.debugpress_r .debugpress_r_f { - padding: 3px; - border-top: 1px dashed #444; - font: 11px Verdana, sans-serif; -} -.debugpress_r .debugpress_r_f code { - color: #F00; - background: none; - padding: 0; - margin: 0; - border: 0; - font: 11px Consolas, "Liberation Mono", Courier, monospace; - font-weight: 700; -} -.debugpress_r .debugpress_r_c { - display: block; - text-decoration: none; - color: #222; - padding: 2px; - overflow: hidden; - text-overflow: ellipsis; -} -.debugpress_r .debugpress_r_a { - color: #F00; - display: inline-block; - width: 15px; - text-align: center; -} -.debugpress_r .debugpress_r_ad .debugpress_r_a { - color: #000; - opacity: 0.2; -} -.debugpress_r .debugpress_r_k { - color: #060; - font-weight: 700; -} -.debugpress_r .debugpress_r_d { - font-size: calc(var(--debugpress-pretty-font-size) - 1px); - color: #777; - margin: 0 2px; -} -.debugpress_r .debugpress_r_d span { - color: #333; -} -.debugpress_r .debugpress_r_p { - color: #000; - font-weight: 700; -} -.debugpress_r .debugpress_r_p.debugpress_r_t_integer, .debugpress_r .debugpress_r_p.debugpress_r_t_double { - color: #F0E; -} -.debugpress_r .debugpress_r_p.debugpress_r_t_string { - color: #E00; -} -.debugpress_r .debugpress_r_p.debugpress_r_t_boolean { - color: #00E; -} -.debugpress_r .debugpress_r_v { - margin-left: 9px; - padding-left: 7px; - border-left: 1px dotted #CCC; - display: none; -} -.debugpress_r .debugpress_r_v.debugpress_r_open { - display: block; -} -.debugpress_r .debugpress_r_ir { - font-style: italic; -} -.debugpress_r .debugpress_r_t_comment { - color: #080; -} -.debugpress_r .debugpress_r_m .debugpress_r_k { - color: #909; -} -.debugpress_r .debugpress_r_m .debugpress_r_ma { - font-weight: 400; - color: #777; -} -.debugpress_r .debugpress_r_m .debugpress_r_mv { - color: #00E; -} -.debugpress_r .debugpress_r_m_public .debugpress_r_mo, -.debugpress_r .debugpress_r_m_protected .debugpress_r_mo, -.debugpress_r .debugpress_r_m_private .debugpress_r_mo, -.debugpress_r .debugpress_r_m_abstract .debugpress_r_mo, -.debugpress_r .debugpress_r_m_final .debugpress_r_mo { - font-weight: 400; - color: #008; -} -.debugpress_r.debugpress_r_root .debugpress_r_rn { - font-weight: 700; - color: #008000; -} -.debugpress_r .debugpress_r_m_magic { - font-style: italic; -} -.debugpress_r .debugpress_r_m_deprecated { - text-decoration: line-through; -} -.debugpress_r a.debugpress_r_c.debugpress_r_m_constructor .debugpress_r_k, .debugpress_r a.debugpress_r_c.debugpress_r_m_destructor .debugpress_r_k { - color: #C02; -} -.debugpress_r a.debugpress_r_c:hover { - background-color: Highlight; - color: HighlightText; -} -.debugpress_r a.debugpress_r_c:hover .debugpress_r_k, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_d, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_d span, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_ma, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_mo, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_mv, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_p, -.debugpress_r a.debugpress_r_c:hover .debugpress_r_a { - background-color: Highlight; - color: HighlightText; -} - -.debugpress_rs.debugpress_rs_null { - color: #C00; -} -.debugpress_rs.debugpress_rs_empty { - color: #090; -} -.debugpress_rs.debugpress_rs_number { - color: #009; -} -.debugpress_rs.debugpress_rs_bool.debugpress_rs_bool_true { - font-weight: 700; - color: #050; -} -.debugpress_rs.debugpress_rs_bool.debugpress_rs_bool_false { - color: #700; -} diff --git a/css/prettyprint.min.css b/css/prettyprint.min.css deleted file mode 100644 index fbfc604..0000000 --- a/css/prettyprint.min.css +++ /dev/null @@ -1 +0,0 @@ -.debugpress_r{font-size:var(--debugpress-pretty-font-size);font-family:Consolas,"Lucida Console",monospace;line-height:1.4;cursor:default}.debugpress_r .debugpress-icon{vertical-align:text-bottom;font-size:calc(var(--debugpress-pretty-font-size) + 2px)}.debugpress_r.debugpress_r_root{background:#fff;border:1px solid #000;margin:1em 0}.debugpress_r a{outline:0;box-shadow:none;display:block!important;text-decoration:none!important}.debugpress_r a:focus,.debugpress_r a:hover{outline:0;box-shadow:none}.debugpress_r p{line-height:inherit!important;margin:0!important}.debugpress_r .debugpress_r_f{padding:3px;border-top:1px dashed #444;font:11px Verdana,sans-serif}.debugpress_r .debugpress_r_f code{color:red;background:0 0;padding:0;margin:0;border:0;font:11px Consolas,"Liberation Mono",Courier,monospace;font-weight:700}.debugpress_r .debugpress_r_c{display:block;text-decoration:none;color:#222;padding:2px;overflow:hidden;text-overflow:ellipsis}.debugpress_r .debugpress_r_a{color:red;display:inline-block;width:15px;text-align:center}.debugpress_r .debugpress_r_ad .debugpress_r_a{color:#000;opacity:.2}.debugpress_r .debugpress_r_k{color:#060;font-weight:700}.debugpress_r .debugpress_r_d{font-size:calc(var(--debugpress-pretty-font-size) - 1px);color:#777;margin:0 2px}.debugpress_r .debugpress_r_d span{color:#333}.debugpress_r .debugpress_r_p{color:#000;font-weight:700}.debugpress_r .debugpress_r_p.debugpress_r_t_double,.debugpress_r .debugpress_r_p.debugpress_r_t_integer{color:#f0e}.debugpress_r .debugpress_r_p.debugpress_r_t_string{color:#e00}.debugpress_r .debugpress_r_p.debugpress_r_t_boolean{color:#00e}.debugpress_r .debugpress_r_v{margin-left:9px;padding-left:7px;border-left:1px dotted #ccc;display:none}.debugpress_r .debugpress_r_v.debugpress_r_open{display:block}.debugpress_r .debugpress_r_ir{font-style:italic}.debugpress_r .debugpress_r_t_comment{color:#080}.debugpress_r .debugpress_r_m .debugpress_r_k{color:#909}.debugpress_r .debugpress_r_m .debugpress_r_ma{font-weight:400;color:#777}.debugpress_r .debugpress_r_m .debugpress_r_mv{color:#00e}.debugpress_r .debugpress_r_m_abstract .debugpress_r_mo,.debugpress_r .debugpress_r_m_final .debugpress_r_mo,.debugpress_r .debugpress_r_m_private .debugpress_r_mo,.debugpress_r .debugpress_r_m_protected .debugpress_r_mo,.debugpress_r .debugpress_r_m_public .debugpress_r_mo{font-weight:400;color:#008}.debugpress_r.debugpress_r_root .debugpress_r_rn{font-weight:700;color:green}.debugpress_r .debugpress_r_m_magic{font-style:italic}.debugpress_r .debugpress_r_m_deprecated{text-decoration:line-through}.debugpress_r a.debugpress_r_c.debugpress_r_m_constructor .debugpress_r_k,.debugpress_r a.debugpress_r_c.debugpress_r_m_destructor .debugpress_r_k{color:#c02}.debugpress_r a.debugpress_r_c:hover,.debugpress_r a.debugpress_r_c:hover .debugpress_r_a,.debugpress_r a.debugpress_r_c:hover .debugpress_r_d,.debugpress_r a.debugpress_r_c:hover .debugpress_r_d span,.debugpress_r a.debugpress_r_c:hover .debugpress_r_k,.debugpress_r a.debugpress_r_c:hover .debugpress_r_ma,.debugpress_r a.debugpress_r_c:hover .debugpress_r_mo,.debugpress_r a.debugpress_r_c:hover .debugpress_r_mv,.debugpress_r a.debugpress_r_c:hover .debugpress_r_p{background-color:Highlight;color:HighlightText}.debugpress_rs.debugpress_rs_null{color:#c00}.debugpress_rs.debugpress_rs_empty{color:#090}.debugpress_rs.debugpress_rs_number{color:#009}.debugpress_rs.debugpress_rs_bool.debugpress_rs_bool_true{font-weight:700;color:#050}.debugpress_rs.debugpress_rs_bool.debugpress_rs_bool_false{color:#700} \ No newline at end of file diff --git a/debugpress.php b/debugpress.php index 1379c31..7becf5f 100644 --- a/debugpress.php +++ b/debugpress.php @@ -1,12 +1,12 @@ "),n.each(wp.dev4press.debugpress.stats,function(e,s){a=++o===Object.keys(wp.dev4press.debugpress.stats).length?".ab-sub-secondary":".ab-sub-primary",n("#wp-admin-bar-debugpress-debugger-button ul"+a).append("
  • "+e+": "+s+"
  • ")})),wp.dev4press.debugpress.tabs.debuglog.init(),wp.dev4press.debugpress.tabs.queries.init(),wp.dev4press.debugpress.tabs.hooks.init(),wp.dev4press.debugpress.head.resize()}}})(jQuery,window,document); \ No newline at end of file diff --git a/libraries/mousetrap/mousetrap.min.js b/libraries/mousetrap/mousetrap.min.js deleted file mode 100644 index 185c42f..0000000 --- a/libraries/mousetrap/mousetrap.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/* mousetrap v1.6.5 craig.is/killing/mice */ -(function(q,u,c){function v(a,b,g){a.addEventListener?a.addEventListener(b,g,!1):a.attachEvent("on"+b,g)}function z(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return n[a.which]?n[a.which]:r[a.which]?r[a.which]:String.fromCharCode(a.which).toLowerCase()}function F(a){var b=[];a.shiftKey&&b.push("shift");a.altKey&&b.push("alt");a.ctrlKey&&b.push("ctrl");a.metaKey&&b.push("meta");return b}function w(a){return"shift"==a||"ctrl"==a||"alt"==a|| -"meta"==a}function A(a,b){var g,d=[];var e=a;"+"===e?e=["+"]:(e=e.replace(/\+{2}/g,"+plus"),e=e.split("+"));for(g=0;gc||n.hasOwnProperty(c)&&(p[n[c]]=c)}g=p[e]?"keydown":"keypress"}"keypress"==g&&d.length&&(g="keydown");return{key:m,modifiers:d,action:g}}function D(a,b){return null===a||a===u?!1:a===b?!0:D(a.parentNode,b)}function d(a){function b(a){a= -a||{};var b=!1,l;for(l in p)a[l]?b=!0:p[l]=0;b||(x=!1)}function g(a,b,t,f,g,d){var l,E=[],h=t.type;if(!k._callbacks[a])return[];"keyup"==h&&w(a)&&(b=[a]);for(l=0;l":".","?":"/","|":"\\"},B={option:"alt",command:"meta","return":"enter", -escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},p;for(c=1;20>c;++c)n[111+c]="f"+c;for(c=0;9>=c;++c)n[c+96]=c.toString();d.prototype.bind=function(a,b,c){a=a instanceof Array?a:[a];this._bindMultiple.call(this,a,b,c);return this};d.prototype.unbind=function(a,b){return this.bind.call(this,a,function(){},b)};d.prototype.trigger=function(a,b){if(this._directMap[a+":"+b])this._directMap[a+":"+b]({},a);return this};d.prototype.reset=function(){this._callbacks={}; -this._directMap={};return this};d.prototype.stopCallback=function(a,b){if(-1<(" "+b.className+" ").indexOf(" mousetrap ")||D(b,this.target))return!1;if("composedPath"in a&&"function"===typeof a.composedPath){var c=a.composedPath()[0];c!==a.target&&(b=c)}return"INPUT"==b.tagName||"SELECT"==b.tagName||"TEXTAREA"==b.tagName||b.isContentEditable};d.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)};d.addKeycodes=function(a){for(var b in a)a.hasOwnProperty(b)&&(n[b]=a[b]);p=null}; -d.init=function(){var a=d(u),b;for(b in a)"_"!==b.charAt(0)&&(d[b]=function(b){return function(){return a[b].apply(a,arguments)}}(b))};d.init();q.Mousetrap=d;"undefined"!==typeof module&&module.exports&&(module.exports=d);"function"===typeof define&&define.amd&&define(function(){return d})}})("undefined"!==typeof window?window:null,"undefined"!==typeof window?document:null); diff --git a/libraries/popup/popup.min.css b/libraries/popup/popup.min.css deleted file mode 100644 index cea8e2a..0000000 --- a/libraries/popup/popup.min.css +++ /dev/null @@ -1,15 +0,0 @@ -/* -Smart Animated Popup v1.9 -https://www.smartplugins.info/plugin/javascript/smart-animated-popup/ - -Copyright 2008 - 2020 Milan Petrovic (email: support@dev4press.com) - -https://www.dev4press.com -https://www.smartplugins.info -*/ - -.sanp-sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.sanp-overlay{position:fixed;width:100%;height:100%;visibility:hidden;top:0;opacity:0;left:0}.sanp-overlay.sanp-active{visibility:visible}.sanp-active body{overflow:hidden}.sanp-dialog{position:fixed;backface-visibility:hidden;visibility:hidden}.sanp-dialog.sanp-active,.sanp-dialog.sanp-inactive{visibility:visible}.sanp-dialog .sanp-wrapper{position:relative;margin:0 auto}.sanp-dialog .sanp-wrapper .sanp-content{overflow:auto;position:relative}.sanp-dialog .sanp-wrapper >button{z-index:200;margin:0;padding:0;position:relative;outline:transparent solid 1px}.sanp-dialog .sanp-wrapper .sanp-content img{max-width:100%;height:auto}.sanp-button-alt .sanp-wrapper >button{border-radius:50%!important;font-size:16px!important;line-height:16px!important;padding:4px!important;right:-12px!important;top:-12px!important}.sanp-style-plain-white .sanp-wrapper{background:#fff;border-radius:4px;box-shadow:1px 1px 4px rgba(32,32,32,.3)}.sanp-style-plain-white .sanp-wrapper .sanp-header{border-radius:4px 4px 0 0;padding:10px;border-bottom:1px solid #ddd}.sanp-style-plain-white .sanp-wrapper >button{-webkit-appearance:none;outline:transparent solid 1px;background:0 0;border:none;color:#888;cursor:pointer;float:right;font-size:18px;font-weight:900;line-height:24px;right:10px;top:10px}.sanp-style-plain-white .sanp-wrapper .sanp-header h5{color:#444;font-size:18px;margin:0;padding:0;line-height:24px}.sanp-style-plain-white .sanp-wrapper .sanp-content{padding:10px}.sanp-style-plain-white .sanp-wrapper .sanp-footer{border-radius:0 0 4px 4px;padding:10px;border-top:1px solid #ddd;text-align:center}.sanp-style-plain-white .sanp-wrapper .sanp-footer button{-webkit-appearance:none;margin:0;padding:0;cursor:pointer;outline:transparent solid 1px;background:0 0;border:none}.sanp-style-plain-white.sanp-button-alt .sanp-wrapper >button{background:#888;box-shadow:1px 1px 4px rgba(32,32,32,.3);color:#fff} -.sanp-dialog.sanp-effect-fallcenter,.sanp-dialog.sanp-effect-fallleft,.sanp-dialog.sanp-effect-fallright,.sanp-dialog.sanp-effect-fliphorleft,.sanp-dialog.sanp-effect-fliphorright,.sanp-dialog.sanp-effect-flipsign,.sanp-dialog.sanp-effect-flipsignfront,.sanp-dialog.sanp-effect-flipverbottom,.sanp-dialog.sanp-effect-flipvertop,.sanp-dialog.sanp-effect-rotateleft,.sanp-dialog.sanp-effect-rotateright,.sanp-dialog.sanp-effect-rotatetop, .sanp-dialog.sanp-effect-rotatebottom{-webkit-perspective:1500px;perspective:1500px}.sanp-dialog .sanp-wrapper{opacity:0}.sanp-dialog.sanp-active .sanp-wrapper{opacity:1}.sanp-effect-scale .sanp-wrapper{-webkit-transform:scale(2);transform:scale(2)}.sanp-active.sanp-effect-scale .sanp-wrapper{-webkit-transform:scale(1);transform:scale(1)}.sanp-effect-zoomfade .sanp-wrapper{-webkit-transform:scale(0.2);transform:scale(0.2)}.sanp-active.sanp-effect-zoomfade .sanp-wrapper{-webkit-transform:scale(1);transform:scale(1)}.sanp-effect-slideinright .sanp-wrapper{-webkit-transition-timing-function:cubic-bezier(0.3,.6,.6,.9);transition-timing-function:cubic-bezier(0.3,.6,.6,.9);-webkit-transform:translateX(50%);transform:translateX(50%)}.sanp-active.sanp-effect-slideinright .sanp-wrapper{-webkit-transform:translateX(0);transform:translateX(0)}.sanp-effect-slideinleft .sanp-wrapper{-webkit-transition-timing-function:cubic-bezier(0.3,.6,.6,.9);transition-timing-function:cubic-bezier(0.3,.6,.6,.9);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.sanp-active.sanp-effect-slideinleft .sanp-wrapper{-webkit-transform:translateX(0);transform:translateX(0)}.sanp-effect-slideinbottom .sanp-wrapper{-webkit-transition-timing-function:cubic-bezier(0.3,.6,.6,.9);transition-timing-function:cubic-bezier(0.3,.6,.6,.9);-webkit-transform:translateY(50%);transform:translateY(50%)}.sanp-active.sanp-effect-slideinbottom .sanp-wrapper{-webkit-transform:translateY(0);transform:translateY(0)}.sanp-effect-slideintop .sanp-wrapper{-webkit-transition-timing-function:cubic-bezier(0.3,.6,.6,.9);transition-timing-function:cubic-bezier(0.3,.6,.6,.9);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.sanp-active.sanp-effect-slideintop .sanp-wrapper{-webkit-transform:translateY(0);transform:translateY(0)}.sanp-effect-newspaper .sanp-wrapper{-webkit-transform:scale(0) rotate(720deg);transform:scale(0) rotate(720deg)}.sanp-active.sanp-effect-newspaper .sanp-wrapper{-webkit-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}.sanp-effect-fallcenter .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(600px) rotateX(30deg);transform:translateZ(600px) rotateX(30deg)}.sanp-active.sanp-effect-fallcenter .sanp-wrapper{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transform:translateZ(0px) rotateX(0deg);transform:translateZ(0px) rotateX(0deg)}.sanp-effect-fallleft .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translate(-30%) translateZ(600px) rotate(-15deg);transform:translate(-30%) translateZ(600px) rotate(-15deg)}.sanp-active.sanp-effect-fallleft .sanp-wrapper{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transform:translate(0%) translateZ(0) rotate(0deg);transform:translate(0%) translateZ(0) rotate(0deg)}.sanp-effect-fallright .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translate(30%) translateZ(600px) rotate(15deg);transform:translate(30%) translateZ(600px) rotate(15deg)}.sanp-active.sanp-effect-fallright .sanp-wrapper{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transform:translate(0%) translateZ(0) rotate(0deg);transform:translate(0%) translateZ(0) rotate(0deg)}.sanp-effect-fliphorleft .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateY(-80deg);transform:rotateY(-80deg)}.sanp-active.sanp-effect-fliphorleft .sanp-wrapper{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.sanp-effect-fliphorright .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateY(80deg);transform:rotateY(80deg)}.sanp-active.sanp-effect-fliphorright .sanp-wrapper{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.sanp-effect-flipvertop .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateX(-80deg);transform:rotateX(-80deg)}.sanp-active.sanp-effect-flipvertop .sanp-wrapper{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)}.sanp-effect-flipverbottom .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateX(80deg);transform:rotateX(80deg)}.sanp-active.sanp-effect-flipverbottom .sanp-wrapper{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)}.sanp-effect-rotatebottom .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateY(100%) rotateX(90deg);transform:translateY(100%) rotateX(90deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.sanp-active.sanp-effect-rotatebottom .sanp-wrapper{-webkit-transform:translateY(0%) rotateX(0deg);transform:translateY(0%) rotateX(0deg)}.sanp-effect-rotatetop .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateY(-100%) rotateX(-90deg);transform:translateY(-100%) rotateX(-90deg);-webkit-transform-origin:0 -100%;transform-origin:0 -100%}.sanp-active.sanp-effect-rotatetop .sanp-wrapper{-webkit-transform:translateY(0%) rotateX(0deg);transform:translateY(0%) rotateX(0deg)}.sanp-effect-rotateleft .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(120px) translateX(-35%) rotateY(90deg);transform:translateZ(120px) translateX(-35%) rotateY(90deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.sanp-active.sanp-effect-rotateleft .sanp-wrapper{-webkit-transform:translateZ(0px) translateX(0%) rotateY(0deg);transform:translateZ(0px) translateX(0%) rotateY(0deg)}.sanp-effect-rotateright .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(120px) translateX(35%) rotateY(-90deg);transform:translateZ(120px) translateX(35%) rotateY(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.sanp-active.sanp-effect-rotateright .sanp-wrapper{-webkit-transform:translateZ(0px) translateX(0%) rotateY(0deg);transform:translateZ(0px) translateX(0%) rotateY(0deg)}.sanp-effect-flipsign .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateX(-60deg);transform:rotateX(-60deg);-webkit-transform-origin:50% 0;transform-origin:50% 0}.sanp-active.sanp-effect-flipsign .sanp-wrapper{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)}.sanp-effect-flipsignfront .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateX(60deg);transform:rotateX(60deg);-webkit-transform-origin:50% 0;transform-origin:50% 0}.sanp-active.sanp-effect-flipsignfront .sanp-wrapper{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)} -.sanp-dialog.sanp-effect-slithor, .sanp-dialog.sanp-effect-slit{-webkit-perspective:1500px;perspective:1500px}.sanp-effect-bounce.sanp-inactive,.sanp-effect-roll.sanp-inactive,.sanp-effect-slit.sanp-inactive,.sanp-effect-slithor.sanp-inactive{-webkit-animation:sanp-slit-hide .7s forwards;animation:sanp-slit-hide .7s forwards}@-webkit-keyframes sanp-slit-hide{0%{visibility:visible}100%{visibility:hidden}}@keyframes sanp-slit-hide{0%{visibility:visible}100%{visibility:hidden}}.sanp-effect-roll.sanp-active .sanp-wrapper{-webkit-animation:sanp-roll-in .7s;animation:sanp-roll-in .7s}.sanp-effect-roll.sanp-inactive .sanp-wrapper{-webkit-animation:sanp-roll-out .7s;animation:sanp-roll-out .7s}@-webkit-keyframes sanp-roll-in{0%{opacity:0;-webkit-transform:translate3d(-120%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none}}@keyframes sanp-roll-in{0%{opacity:0;transform:translate3d(-120%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;transform:none}}@-webkit-keyframes sanp-roll-out{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(120%,0,0) rotate3d(0,0,1,120deg)}}@keyframes sanp-roll-out{0%{opacity:1}100%{opacity:0;transform:translate3d(120%,0,0) rotate3d(0,0,1,120deg)}}.sanp-effect-bounce.sanp-active .sanp-wrapper{-webkit-animation:sanp-bounce-in .7s;animation:sanp-bounce-in .7s}.sanp-effect-bounce.sanp-inactive .sanp-wrapper{-webkit-animation:sanp-bounce-out .7s;animation:sanp-bounce-out .7s}@-webkit-keyframes sanp-bounce-in{0%,100%,20%,40%,60%,80%{-webkit-transition-transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1)}}@keyframes sanp-bounce-in{0%,100%,20%,40%,60%,80%{transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}100%{opacity:1;transform:scale3d(1,1,1)}}@-webkit-keyframes sanp-bounce-out{20%{-webkit-transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3)}}@keyframes sanp-bounce-out{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;transform:scale3d(.3,.3,.3)}}.sanp-effect-slit .sanp-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;opacity:1}.sanp-effect-slit.sanp-active .sanp-wrapper{-webkit-transform:translateZ(-3000px) rotateY(90deg);transform:translateZ(-3000px) rotateY(90deg);-webkit-animation:sanp-slit .7s forwards ease-out;animation:sanp-slit .7s forwards ease-out}.sanp-effect-slit.sanp-inactive .sanp-wrapper{-webkit-transform:translateZ(0) rotateY(0deg);transform:translateZ(0) rotateY(0deg);-webkit-animation:sanp-slit-out .7s forwards ease-in;animation:sanp-slit-out .7s forwards ease-in}.sanp-effect-slithor .sanp-wrapper{-webkit-transform:translateZ(-3000px) rotateX(90deg);transform:translateZ(-3000px) rotateX(90deg);-webkit-transform-style:preserve-3d;transform-style:preserve-3d;opacity:1}.sanp-effect-slithor.sanp-active .sanp-wrapper{-webkit-animation:sanp-slithor .7s forwards ease-out;animation:sanp-slithor .7s forwards ease-out}.sanp-effect-slithor.sanp-inactive .sanp-wrapper{-webkit-transform:translateZ(0) rotateX(0deg);transform:translateZ(0) rotateX(0deg);-webkit-animation:sanp-slithor-out .7s forwards ease-out;animation:sanp-slithor-out .7s forwards ease-out}@-webkit-keyframes sanp-slit{40%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateZ(-250px) rotateY(89deg);opacity:.5}100%{-webkit-transform:translateZ(0) rotateY(0deg);opacity:1}}@keyframes sanp-slit{40%{animation-timing-function:ease-out;transform:translateZ(-250px) rotateY(89deg);opacity:.5}100%{transform:translateZ(0) rotateY(0deg);opacity:1}}@-webkit-keyframes sanp-slit-out{60%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateZ(-250px) rotateY(89deg);opacity:.5}100%{-webkit-transform:translateZ(-3000px) rotateY(90deg);opacity:0}}@keyframes sanp-slit-out{60%{animation-timing-function:ease-out;transform:translateZ(-250px) rotateY(89deg);opacity:.5}100%{transform:translateZ(-3000px) rotateY(90deg);opacity:0}}@-webkit-keyframes sanp-slithor{40%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateZ(-250px) rotateX(89deg);opacity:.5}100%{-webkit-transform:translateZ(0) rotateX(0deg);opacity:1}}@keyframes sanp-slithor{40%{animation-timing-function:ease-out;transform:translateZ(-250px) rotateX(89deg);opacity:.5}100%{transform:translateZ(0) rotateX(0deg);opacity:1}}@-webkit-keyframes sanp-slithor-out{60%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateZ(-250px) rotateX(89deg);opacity:.5}100%{-webkit-transform:translateZ(-3000px) rotateX(90deg);opacity:0}}@keyframes sanp-slithor-out{60%{animation-timing-function:ease-out;transform:translateZ(-250px) rotateX(89deg);opacity:.5}100%{transform:translateZ(-3000px) rotateX(90deg);opacity:0}} - -.sanp-style-plain-black .sanp-wrapper{background:#111;border-radius:4px;box-shadow:1px 1px 4px rgba(32,32,32,.3)}.sanp-style-plain-black .sanp-wrapper .sanp-header{border-radius:4px 4px 0 0;padding:10px;border-bottom:1px solid #555}.sanp-style-plain-black .sanp-wrapper >button{-webkit-appearance:none;outline:transparent solid 1px;background:0 0;border:none;color:#888;cursor:pointer;float:right;font-size:18px;font-weight:900;line-height:24px;right:10px;top:10px}.sanp-style-plain-black .sanp-wrapper .sanp-header h5{color:#fff;font-size:18px;margin:0;padding:0;line-height:24px}.sanp-style-plain-black .sanp-wrapper .sanp-content{padding:10px;color:#fff}.sanp-style-plain-black .sanp-wrapper .sanp-footer{border-radius:0 0 4px 4px;padding:10px;border-top:1px solid #555;text-align:center}.sanp-style-plain-black .sanp-wrapper .sanp-footer button{-webkit-appearance:none;margin:0;padding:0;cursor:pointer;outline:transparent solid 1px;background:0 0;border:none;color:#eee}.sanp-style-plain-black.sanp-button-alt .sanp-wrapper >button{background:#fff;box-shadow:1px 1px 4px rgba(32,32,32,.3);color:#111}.sanp-style-clean-gray .sanp-wrapper{background:#fbfbfb;border-radius:6px;box-shadow:1px 1px 5px rgba(32,32,32,.6)}.sanp-style-clean-gray .sanp-wrapper .sanp-header{background:#bbb;border-radius:6px 6px 0 0;padding:15px}.sanp-style-clean-gray .sanp-wrapper >button{-webkit-appearance:none;background:0 0;border:none;color:#666;cursor:pointer;float:right;font-size:18px;font-weight:900;line-height:24px;right:15px;text-shadow:1px 1px 1px #eee;top:15px}.sanp-style-clean-gray .sanp-wrapper .sanp-header h5{color:#111;font-size:18px;line-height:24px;margin:0;padding:0;text-shadow:1px 1px 1px #eee}.sanp-style-clean-gray .sanp-wrapper .sanp-content{padding:15px}.sanp-style-clean-gray .sanp-wrapper .sanp-footer{border-radius:0 0 6px 6px;padding:15px;background:#eee;text-align:center}.sanp-style-clean-gray .sanp-wrapper .sanp-footer button{-webkit-appearance:none;margin:0;padding:0;cursor:pointer;outline:transparent solid 1px;background:0 0;border:none;font-size:16px;text-transform:uppercase;letter-spacing:2px}.sanp-style-clean-gray.sanp-button-alt .sanp-wrapper >button{background:#666;box-shadow:1px 1px 4px rgba(32,32,32,.3);color:#fff;text-shadow:none}.sanp-style-box-red .sanp-wrapper{background:#FFF1F1;border-radius:0;border:4px solid #c43636;box-shadow:1px 1px 5px rgba(32,32,32,.6)}.sanp-style-box-red .sanp-wrapper .sanp-header{background:#c43636;border-radius:0;padding:15px}.sanp-style-box-red .sanp-wrapper >button{-webkit-appearance:none;background:0 0;border:none;color:#500;cursor:pointer;float:right;font-size:18px;font-weight:900;line-height:24px;right:15px;top:15px}.sanp-style-box-red .sanp-wrapper .sanp-header h5{border-bottom:4px solid #c43636;color:#fff;font-size:18px;font-weight:900;line-height:24px;margin:0;padding:0;text-transform:uppercase}.sanp-style-box-red .sanp-wrapper .sanp-content{padding:15px}.sanp-style-box-red .sanp-wrapper .sanp-footer{border-radius:0;padding:15px;background:#ffdada;text-align:center}.sanp-style-box-red .sanp-wrapper .sanp-footer button{-webkit-appearance:none;margin:0;padding:0;cursor:pointer;color:#c43636;font-weight:700;outline:transparent solid 1px;background:0 0;border:none;font-size:16px;text-transform:uppercase;letter-spacing:2px}.sanp-style-box-red.sanp-button-alt .sanp-wrapper >button{background:#500;box-shadow:1px 1px 4px rgba(32,32,32,.3);color:#fff} diff --git a/libraries/popup/popup.min.js b/libraries/popup/popup.min.js deleted file mode 100644 index 0fb1366..0000000 --- a/libraries/popup/popup.min.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Smart Animated Popup v2.0 - * https://www.smartplugins.info/plugin/javascript/smart-animated-popup/ - * - * Copyright 2008 - 2023 Milan Petrovic (email: support@smartplugins.info) - * - * https://www.smartplugins.info - */ - -/* jQuery Cookie */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,(function(){"use strict";function e(e){for(var t=1;t1){var e=this[c];if(e&&(typeof d=="function")&&(!e.valueOf||e.valueOf()!=d.valueOf())&&/\bbase\b/.test(d)){var f=d.valueOf();d=function(){var a=this.base||Base.prototype.base;this.base=e;var b=f.apply(this,arguments);this.base=a;return b};d.valueOf=function(a){return(a=="object")?d:f};d.toString=Base.toString}this[c]=d}else if(c){var g=Base.prototype.extend;if(!Base._prototyping&&typeof this!="function"){g=this.extend||g}var h={toSource:null};var j=["constructor","toString","valueOf"];var i=Base._prototyping?0:1;while(k=j[i++]){if(c[k]!=h[k]){g.call(this,k,c[k])}}for(var k in c){if(!h[k])g.call(this,k,c[k])}}return this}};Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a){if(this.prototype[d]===undefined){b.call(c,a[d],d,a)}}},implement:function(){for(var i=0;i")},createOverlay:function(){var t=this.props("overlay");t.push("transition: all "+this.overlaySpeed+"s;"),this.container().append("
    ")},createDialog:function(){var t="",e=this.props("dialog"),s=[],o=[this.$classes.dialog,this.css("skin"),this.css("dialog"),this.css("effect"),this.style,this.extraClass],i=this.props("content");!0===this.title?t=this.o().data("title"):!1!==this.title&&(t=this.title),0!==this.angle&&e.push("transform: rotate("+this.angle+"deg);"),e.push("z-index: "+(this.zIndex+1)+";"),"transition"===this.$mode&&(s.push("-webkit-transition: all "+this.effectSpeed+"s;"),s.push("transition: all "+this.effectSpeed+"s;")),e="
    ",this.buttonX&&(e+=""),this.header&&(e+="
    ",!1===this.headerContent&&""!==t&&(e+="<"+this.titleTag+" id='"+this.css("title")+"'>"+t+""),e+="
    "),e+="
    ",this.footer&&(e+="
    ",!1===this.footerContent&&this.buttonFooter&&(e+=""),e+=this._appendToFooter(),e+="
    "),e+="
    ",e+="
    ",this.container().append(e),!1!==this.headerContent&&c("."+this.css("dialog")+" ."+this.$classes.header).append(this.headerContent),!1!==this.footerContent&&c("."+this.css("dialog")+" ."+this.$classes.footer).append(this.footerContent),c("."+this.css("dialog")+" ."+this.$classes.content).append(this.o()),this.o().show(),this._calculatePosition(!0)},open:function(t,e){if(!t.$enabled||0===t.$cookie)return!1;var s=t._open(t);return s&&(e&&(t.$enabled=!1),t.autoShowLimit&&(t.$cookie--,t._cookieSave())),s},close:function(t){return t._close(t)},css:function(t){switch(t){case"title":return this.$classes.titleIDPrefix+this.$core.$id;case"overlay":return this.$classes.overlayIDPrefix+this.$core.$id;case"dialog":return this.$classes.dialogIDPrefix+this.$core.$id;case"wrapper":return this.$classes.dialogIDPrefix+this.$core.$id+" ."+this.$classes.wrapper;case"content":return this.$classes.dialogIDPrefix+this.$core.$id+" ."+this.$classes.content;case"effect":return this.$classes.dialogEffectPrefix+this.effect;case"skin":return this.$classes.skinPrefix+this.$skinCode}},props:function(t){var s=this,o=[];return c.each(this.$props[t],function(t,e){s[t]&&o.push(e+":"+s[t]+";")}),o},o:function(){return this.$core.$obj},w:function(){return c("."+this.css("wrapper"))},_mod:function(t){var s=this;c.each(t,function(t,e){s[t]=e,"modal"===t&&(e?s._showModalOverlay(s):s._hideModalOverlay(s,!0))})},_move:function(t){t=c.extend({positionX:this.positionX,positionY:this.positionY,offsetX:this.offsetX,offsetY:this.offsetY},t);this.positionX=t.positionX,this.positionY=t.positionY,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this._calculatePosition()},_resize:function(t){var e=c.extend({width:0,height:0},t),t=c("."+this.css("dialog"));this.width=e.width,this.height=e.height,t.width(e.width),t.height(e.height),this._calculatePosition()},_setMode:function(){-1=22.0.0" + "node": ">=20.0.0" } }, "node_modules/@babel/code-frame": { @@ -75,25 +85,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/eslint-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz", - "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, "node_modules/@babel/generator": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", @@ -1710,6 +1701,23 @@ "keyv": "^5.6.0" } }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, "node_modules/@cacheable/memory/node_modules/keyv": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", @@ -1741,30 +1749,6 @@ "@keyv/serialize": "^1.1.1" } }, - "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, "node_modules/@csstools/css-parser-algorithms": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", @@ -1857,68 +1841,45 @@ "@csstools/css-tokenizer": "^3.0.1" } }, - "node_modules/@csstools/selector-resolve-nested": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", - "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" + "node_modules/@dev4press/flyin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@dev4press/flyin/-/flyin-1.1.0.tgz", + "integrity": "sha512-Bneq7vyVLh0BYBb9oAr95Qjh3SRURKqoX9CUAda3vKK30h6AE1y12+HbjvrLbllVGEtn8x3Jh75qDzuQ++0DJg==", + "license": "MIT", + "dependencies": { + "tinykeys": "^4.0.0" }, - "peerDependencies": { - "postcss-selector-parser": "^7.1.1" + "engines": { + "node": ">=20.0.0" } }, - "node_modules/@csstools/selector-specificity": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.0.tgz", - "integrity": "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==", + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", + "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.1.1" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" } }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", "dev": true, "license": "MIT", "optional": true, @@ -1927,9 +1888,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", "dev": true, "license": "MIT", "optional": true, @@ -2009,45 +1970,6 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@eslint/config-array/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@eslint/config-helpers": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", @@ -2074,6 +1996,27 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, "node_modules/@eslint/object-schema": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", @@ -2196,6 +2139,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -2214,23 +2168,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@keyv/bigmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", - "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hashery": "^1.4.0", - "hookified": "^1.15.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "keyv": "^5.6.0" - } - }, "node_modules/@keyv/serialize": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", @@ -2267,6 +2204,30 @@ "eslint-scope": "5.1.1" } }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2305,54 +2266,661 @@ "node": ">= 8" } }, - "node_modules/@pkgr/core": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", - "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", "dev": true, "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, "funding": { - "url": "https://opencollective.com/pkgr" + "url": "https://github.com/sponsors/Boshen" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@stylistic/stylelint-plugin": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz", - "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", - "@csstools/media-query-list-parser": "^3.0.1", - "is-plain-object": "^5.0.0", - "postcss": "^8.4.41", - "postcss-selector-parser": "^6.1.2", - "postcss-value-parser": "^4.2.0", - "style-search": "^0.1.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgr/core": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", + "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@stylistic/stylelint-plugin": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz", + "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1", + "@csstools/media-query-list-parser": "^3.0.1", + "is-plain-object": "^5.0.0", + "postcss": "^8.4.41", + "postcss-selector-parser": "^6.1.2", + "postcss-value-parser": "^4.2.0", + "style-search": "^0.1.0" }, "engines": { "node": "^18.12 || >=20.9" @@ -2449,6 +3017,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "26.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", + "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", @@ -2492,42 +3070,211 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.63.0.tgz", + "integrity": "sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.63.0", + "@typescript-eslint/type-utils": "8.63.0", + "@typescript-eslint/utils": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.5.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^8.63.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.63.0.tgz", + "integrity": "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz", + "integrity": "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.63.0.tgz", + "integrity": "sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/typescript-estree": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.63.0.tgz", + "integrity": "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz", + "integrity": "sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.63.0", + "@typescript-eslint/tsconfig-utils": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz", + "integrity": "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "node_modules/@typescript-eslint/parser/node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", @@ -2540,33 +3287,53 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "node_modules/@typescript-eslint/parser/node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.63.0.tgz", + "integrity": "sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.63.0", + "@typescript-eslint/types": "^8.63.0", + "debug": "^4.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/scope-manager": { @@ -2587,32 +3354,132 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.63.0.tgz", + "integrity": "sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.63.0.tgz", + "integrity": "sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/typescript-estree": "8.63.0", + "@typescript-eslint/utils": "8.63.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz", + "integrity": "sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.63.0", + "@typescript-eslint/tsconfig-utils": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz", + "integrity": "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" } }, "node_modules/@typescript-eslint/types": { @@ -2658,6 +3525,39 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", + "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", @@ -2672,29 +3572,105 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.63.0.tgz", + "integrity": "sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/typescript-estree": "8.63.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.63.0.tgz", + "integrity": "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz", + "integrity": "sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.63.0", + "@typescript-eslint/tsconfig-utils": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz", + "integrity": "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { @@ -2710,6 +3686,19 @@ "node": ">=10" } }, + "node_modules/@typescript-eslint/utils/node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", @@ -2847,6 +3836,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2861,6 +3853,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2875,6 +3870,9 @@ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2889,6 +3887,9 @@ "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2903,6 +3904,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2917,6 +3921,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2931,6 +3938,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2945,6 +3955,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2959,6 +3972,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2973,6 +3989,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -3012,6 +4031,40 @@ "node": ">=14.0.0" } }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", @@ -3055,9 +4108,9 @@ ] }, "node_modules/@wordpress/babel-preset-default": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.49.0.tgz", - "integrity": "sha512-maJY07MuypSy2sHIdzVODKw9WCO0296PvTsMtZ7b19p6HfHHN3/aPzdk+MWC1w+FcAZStCjVCjHVuVvg4r6coA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.50.0.tgz", + "integrity": "sha512-nXF+cu0NA9lk4GPO+/iv3mMt1TV9zzjMalfaNPfafWz5VDGW68h82Le8wqclTewex/99kYWl12kHwDIx66hw6Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -3067,8 +4120,8 @@ "@babel/plugin-transform-runtime": "^7.25.7", "@babel/preset-env": "^7.25.7", "@babel/preset-typescript": "^7.25.7", - "@wordpress/browserslist-config": "^6.49.0", - "@wordpress/warning": "^3.49.0", + "@wordpress/browserslist-config": "^6.50.0", + "@wordpress/warning": "^3.50.0", "browserslist": "^4.21.10", "core-js": "^3.31.0", "react": "^18.3.1" @@ -3079,9 +4132,9 @@ } }, "node_modules/@wordpress/browserslist-config": { - "version": "6.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.49.0.tgz", - "integrity": "sha512-q1gAcPttohpcmmLFG8nghrsHxCq/LD6ImHfNx0aV/vHc1/bBu3B7MF/E6fqG4WocqHNZbEGfs/a5ktQ4PWu4qw==", + "version": "6.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.50.0.tgz", + "integrity": "sha512-/5Zn/uIvVw37iLJRa/HhqHQ/DJq4KWjEXTkFQ/NpCNFQm6ll54uDgYZ9f0tWQM7ORCzCU32z/IJ8ujZaMLA9nQ==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -3090,21 +4143,21 @@ } }, "node_modules/@wordpress/compose": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.2.0.tgz", - "integrity": "sha512-JqqnNs9mHxZ9zC+4A+YAyIoqnYNqOfLXF5EshXImssFCF1JBYx6wfmyhGAdpV4nZQSHPweV4KNzEApn2cz+fXA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-8.3.0.tgz", + "integrity": "sha512-nHrV8mLanqnLO67l+6RkotG9eRgiW1D6uVb919z8wVWwoZVfimFyN1nznH92tdE/xW6SnX37XDoLoLcS9IkwhQ==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.49.0", - "@wordpress/dom": "^4.49.0", - "@wordpress/element": "^8.1.0", - "@wordpress/is-shallow-equal": "^5.49.0", - "@wordpress/keycodes": "^4.49.0", - "@wordpress/priority-queue": "^3.49.0", - "@wordpress/private-apis": "^1.49.0", - "@wordpress/undo-manager": "^1.49.0", + "dependencies": { + "@types/mousetrap": "^1.6.8", + "@wordpress/deprecated": "^4.50.0", + "@wordpress/dom": "^4.50.0", + "@wordpress/element": "^8.2.0", + "@wordpress/is-shallow-equal": "^5.50.0", + "@wordpress/keycodes": "^4.50.0", + "@wordpress/priority-queue": "^3.50.0", + "@wordpress/private-apis": "^1.50.0", + "@wordpress/undo-manager": "^1.50.0", "change-case": "^4.1.2", "mousetrap": "^1.6.5", "use-memo-one": "^1.1.1" @@ -3124,16 +4177,16 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/element": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.1.0.tgz", - "integrity": "sha512-469K4lpolw158pipMwMVVSjGvjIhOCkA19Bct5rJ54IGj8ZaPwLiCE3QGYO1oFg4KlpyP1ro4Ao3ZvznX7DeXQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.2.0.tgz", + "integrity": "sha512-cTnKRHUdZbYAd4RaJiUwhDKdQDDWY7VoGiwektCmhiBQF6WTFYlhsxl/dmHE0Sok3q7PJQwAg538XEb8WuTaew==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@types/react": "^18.3.27", "@types/react-dom": "^18.3.1", - "@wordpress/deprecated": "^4.49.0", - "@wordpress/escape-html": "^3.49.0", + "@wordpress/deprecated": "^4.50.0", + "@wordpress/escape-html": "^3.50.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.3.1", @@ -3145,13 +4198,13 @@ } }, "node_modules/@wordpress/deprecated": { - "version": "4.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.49.0.tgz", - "integrity": "sha512-xK0l4psQpjpyIeE++Aml8tLLNeRN4vEjmBaCd6VbNqbbluW8LzZJtV60JATH8blcW5MaGCGl7rlpSevaBjp0hQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.50.0.tgz", + "integrity": "sha512-TVJavTbunFoCSo2g64EKtGwmDVJhvlSqsc4T1EM4aBwsYGIJPjHcAzh6KS8Z171QXFnBxZ7We8CCDAvOFU9iaA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/hooks": "^4.49.0" + "@wordpress/hooks": "^4.50.0" }, "engines": { "node": ">=18.12.0", @@ -3159,847 +4212,1119 @@ } }, "node_modules/@wordpress/dom": { - "version": "4.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.49.0.tgz", - "integrity": "sha512-ysZvqyw1PvClTWqVwLzsE7cqfYU+QppJwu2Ji/rUGyFL9WSNdMIgIQhJWZMBiw0gBtD/uuiQe7OoVJfEGw0JYw==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.50.0.tgz", + "integrity": "sha512-2Mognc1rwe1+tlIfbSeZPqbuAh6vJagELzw9cLasObiVayWhaG+LCIp0sJz2pPG9ppz8L31gGUgna7zrSRu85Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/deprecated": "^4.50.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/escape-html": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.50.0.tgz", + "integrity": "sha512-EECt++WB1RNPQBwBS7/6rKO4eUNq2xe6nb6Guv6uT+F74DgtM3+aZtNs7JhKFxRMORPtu7T0LhlAOBa4H5CsPQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-24.5.0.tgz", + "integrity": "sha512-Kd6DReqgLib710txDLFhhktNOFBYzR3Tv4hgeNJ4S3JGpflrq6Cvoku7SL3wBbugddF/1u6dF1B5+0utX0nwdQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/deprecated": "^4.49.0" + "@babel/eslint-parser": "7.25.7", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "@wordpress/babel-preset-default": "^8.43.0", + "@wordpress/prettier-config": "^4.43.0", + "@wordpress/theme": "^0.10.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^4.4.4", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.4.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@babel/eslint-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz", + "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/eslint-plugin/node_modules/brace-expansion": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", + "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-import-resolver-typescript": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.5.tgz", + "integrity": "sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "debug": "^4.4.1", + "eslint-import-context": "^0.1.8", + "get-tsconfig": "^4.10.1", + "is-bun-module": "^2.0.0", + "stable-hash-x": "^0.2.0", + "tinyglobby": "^0.2.14", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^16.17.0 || >=18.6.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, - "node_modules/@wordpress/element": { - "version": "6.46.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", - "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@types/react": "^18.3.27", - "@types/react-dom": "^18.3.1", - "@wordpress/escape-html": "^3.46.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/@wordpress/escape-html": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.49.0.tgz", - "integrity": "sha512-eOSPRJhmocfi/hztIlbCXbksg54VWIvrbfRbS7AsHY8BelbMyP4YUGEXCZf2jqf5beMB/jqulcsNLsYJ/wC+yw==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/@wordpress/eslint-plugin": { - "version": "24.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-24.5.0.tgz", - "integrity": "sha512-Kd6DReqgLib710txDLFhhktNOFBYzR3Tv4hgeNJ4S3JGpflrq6Cvoku7SL3wBbugddF/1u6dF1B5+0utX0nwdQ==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@babel/eslint-parser": "7.25.7", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^8.43.0", - "@wordpress/prettier-config": "^4.43.0", - "@wordpress/theme": "^0.10.0", - "cosmiconfig": "^7.0.0", - "eslint-config-prettier": "^8.3.0", - "eslint-import-resolver-typescript": "^4.4.4", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jest": "^27.4.3", - "eslint-plugin-jsdoc": "^46.4.6", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-playwright": "^0.15.3", - "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.27.0", - "eslint-plugin-react-hooks": "^4.3.0", - "globals": "^13.12.0", - "requireindex": "^1.2.0" + "@typescript-eslint/utils": "^5.10.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "@babel/core": ">=7", - "eslint": ">=8", - "prettier": ">=3", - "typescript": ">=5" + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" }, "peerDependenciesMeta": { - "prettier": { + "@typescript-eslint/eslint-plugin": { "optional": true }, - "typescript": { + "jest": { "optional": true } } }, - "node_modules/@wordpress/hooks": { - "version": "4.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.49.0.tgz", - "integrity": "sha512-65FZ3UXWkSIwFbELFABmcWn1KTA1AUdGAUH8pQlO7HKNO8F+zIrDkkO8gZA/zUHbI3I2vI1PyTA+rherPXg+Kg==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/i18n": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.22.0.tgz", - "integrity": "sha512-o6JEr26/W3Lr/Tyu6M2Xexk+wPdt/Q+GS1o4c1T3zp1t0g+L279HFLblkSciOEIteoJYx7Eodma6/VV0kCKxow==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@tannin/sprintf": "^1.3.2", - "@wordpress/hooks": "^4.49.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@wordpress/is-shallow-equal": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.49.0.tgz", - "integrity": "sha512-pKvFYoExyT/A5h0Y5wLYs+8gQRaisJps2YF0jICo/LOfXR+TF8mYLH2txrA8ZCDGS0FPLSPjMxAl9hjUGrELRg==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@wordpress/keycodes": { - "version": "4.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.49.0.tgz", - "integrity": "sha512-nz9i9W9uD2ZZ9lD0e75CwsLK5KF+/sw8o8TxR/OPojwHBSDKet84vtdijErQg68UxKHYnAoDjfF1otIJZ9J+pw==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "BSD-2-Clause", "dependencies": { - "@wordpress/i18n": "^6.22.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@types/react": "^18.3.27" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { - "@types/react": { + "typescript": { "optional": true } } }, - "node_modules/@wordpress/prettier-config": { - "version": "4.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.49.0.tgz", - "integrity": "sha512-yP4hm2m2Hxv3I7HI5lxbrCmh95Db4QWcGJGLq/fysepbLjTnqnMIHRs5p0/QoRMV/MhwFi8vMkNmmQYJt386ug==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "prettier": ">=3" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@wordpress/priority-queue": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.49.0.tgz", - "integrity": "sha512-UcVHYan6qYvDNTFEwEnPBU9I1SnImLjEh54ISgqvvndc7jfxtdi+Akwj2kgxeLRY+bsXzMQr6byD/x4dw56yqA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "requestidlecallback": "^0.3.0" + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@wordpress/private-apis": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.49.0.tgz", - "integrity": "sha512-tGmX0XknlknSFB3UpoRQHnXW+4FufotTXYln+aXeHTFGcOuW3jSi8d8VZx7LCjUY1jqA8hCDf1vOHXW3FDcErQ==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "Apache-2.0", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@wordpress/style-runtime": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.5.0.tgz", - "integrity": "sha512-hrXvdDUJpOzT1KIomgtysysgbc5bkkwAuJyEUAXiOCgVBXBeMkZlgfN19W0PuNY51j53K7VQ42txfayxgVmfgA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jest/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=20.10.0", - "npm": ">=10.2.3" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@wordpress/stylelint-config": { - "version": "23.41.1", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.41.1.tgz", - "integrity": "sha512-+QA9RKPFCCE3DiVRdy6GDzbOmXtxwty+yEIx8tbOMZQHEW4uPQtH6k5Y2Q+qT9jb2os2skb0O9X7jOwH9PGm9Q==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jsdoc": { + "version": "46.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", + "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@stylistic/stylelint-plugin": "^3.0.1", - "@wordpress/theme": "^0.17.0", - "stylelint-config-recommended": "^14.0.1", - "stylelint-config-recommended-scss": "^14.1.0" + "@es-joy/jsdoccomment": "~0.41.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=16" }, "peerDependencies": { - "stylelint": "^16.8.2", - "stylelint-scss": "^6.4.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/@wordpress/stylelint-config/node_modules/@wordpress/element": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.1.0.tgz", - "integrity": "sha512-469K4lpolw158pipMwMVVSjGvjIhOCkA19Bct5rJ54IGj8ZaPwLiCE3QGYO1oFg4KlpyP1ro4Ao3ZvznX7DeXQ==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@types/react": "^18.3.27", - "@types/react-dom": "^18.3.1", - "@wordpress/deprecated": "^4.49.0", - "@wordpress/escape-html": "^3.49.0", - "change-case": "^4.1.2", - "is-plain-object": "^5.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=10" } }, - "node_modules/@wordpress/stylelint-config/node_modules/@wordpress/theme": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.17.0.tgz", - "integrity": "sha512-BU+PLBLxMBM4WJYrd1QEwy+IA64vUP+8IEEB9lLx2NfB+3/45vvuvXx9o3qPKRDHvtMtEaRArld4Kn05UIW9IA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/compose": "^8.2.0", - "@wordpress/deprecated": "^4.49.0", - "@wordpress/element": "^8.1.0", - "@wordpress/private-apis": "^1.49.0", - "@wordpress/style-runtime": "^0.5.0", - "colorjs.io": "^0.6.0", - "memize": "^2.1.0" + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=4.0" }, "peerDependencies": { - "@types/react": "^18.3.27", - "esbuild": "^0.27.2", - "postcss": "^8.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "stylelint": "^16.8.2", - "vite": "^7.3.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "postcss": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "vite": { - "optional": true - } + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/@wordpress/theme": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.10.0.tgz", - "integrity": "sha512-U8CaRvGzeQtFfGQFsKarcbzPEH+jfXJmpOlIpt4bq2goW9CgeWFlDC29p0oyzoMn1Ga9hX+c8ay3nUgSbhmSSA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-playwright": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", + "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/element": "^6.43.0", - "@wordpress/private-apis": "^1.43.0", - "colorjs.io": "^0.6.0", - "memize": "^2.1.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, + "license": "MIT", "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0", - "stylelint": "^16.8.2" + "eslint": ">=7", + "eslint-plugin-jest": ">=25" }, "peerDependenciesMeta": { - "stylelint": { + "eslint-plugin-jest": { "optional": true } } }, - "node_modules/@wordpress/undo-manager": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.49.0.tgz", - "integrity": "sha512-af3pfl8d6rnEJ6ZijDAcCRbgaTX/m5tM2Pyl8hmlsUROf5ZCto9syiugM1+TDQ6zRtKYDoYB3SUtbHdLk8FZZg==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "dependencies": { - "@wordpress/is-shallow-equal": "^5.49.0" + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/@wordpress/warning": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.49.0.tgz", - "integrity": "sha512-00KmZy5kT8vm48HKNQxsgiq3GXdgaPGClneMFTe9EWjop9Ghyq8MaYIqjYY75eOgPTFVcKKQyXK9/DAAQxsQuA==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, - "license": "GPL-2.0-or-later", + "license": "MIT", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=8.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, - "node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "node_modules/@wordpress/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "license": "Apache-2.0", + "engines": { + "node": ">=10" } }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/@wordpress/eslint-plugin/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": "*" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@wordpress/eslint-plugin/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "node_modules/@wordpress/hooks": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.50.0.tgz", + "integrity": "sha512-dV/AeP9iH1UydVWoUoCPuM8FUx2XvL1i65dhiwRHmZxK/zz8nR5Rq75WISpwFzRYfsyRThjl4LwUxhFAQnHrDw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "engines": { - "node": ">=14" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@wordpress/i18n": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.23.0.tgz", + "integrity": "sha512-avuywVdBpOeHm9cghFcNXCKi/VlJhbJ6KN6LydQOy/NqdRbqyRc59/XlKk1Ks+Vb+dWTGKr5gjiSzm9QJETGmA==", "dev": true, - "license": "Python-2.0" + "license": "GPL-2.0-or-later", + "dependencies": { + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.50.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "node_modules/@wordpress/is-shallow-equal": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.50.0.tgz", + "integrity": "sha512-Cq1brW/OhGVNnCqSztHgmKQ1DsNUtEq4F1xIo1awBKVmXDWFggJRxzaWZHWC+sDZmBp7pu03jWqq2u/s+hazSQ==", "dev": true, - "license": "Apache-2.0", + "license": "GPL-2.0-or-later", "engines": { - "node": ">= 0.4" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "node_modules/@wordpress/keycodes": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.50.0.tgz", + "integrity": "sha512-BtyCkA7pk5pMMx+dVjT10OuhQwr9ZjYY1LLcXJcYJjhhFsP16be2BiytrBnKDZj/479/icvEYwlooawZCPrxYQ==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" + "@wordpress/i18n": "^6.23.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/react": "^18.3.27" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "node_modules/@wordpress/prettier-config": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.50.0.tgz", + "integrity": "sha512-Q48oFBORY0TiVWIebPOG0ynjUAq1Hi9gXKJ69xw2i/UwOwghLOXXFLdAQhS4bJXOw0cdV5xiBaXEQYU+82r5hA==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@wordpress/priority-queue": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.50.0.tgz", + "integrity": "sha512-OyuAplepKQpNYr8z+nGGGNXWK2v2u9Bqnawkg7V5YkvOKYj/iBJNCiUxiWXOBMeLF1ze36RDR5LEcNDmXRev2Q==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" + "requestidlecallback": "^0.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@wordpress/private-apis": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.50.0.tgz", + "integrity": "sha512-bCVLL9YuWfnPNNqlhl4eTKPipjWbJ8MzAlasJ/SR+h979MyeMFjNPapxKqsPqnJOhDEVSdCTkRN/Wa+Xk8qFdw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "engines": { - "node": ">=8" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "node_modules/@wordpress/style-runtime": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.5.0.tgz", + "integrity": "sha512-hrXvdDUJpOzT1KIomgtysysgbc5bkkwAuJyEUAXiOCgVBXBeMkZlgfN19W0PuNY51j53K7VQ42txfayxgVmfgA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, + "license": "GPL-2.0-or-later", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=20.10.0", + "npm": ">=10.2.3" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "node_modules/@wordpress/stylelint-config": { + "version": "23.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.42.0.tgz", + "integrity": "sha512-k9lNU4sK3fdipdhHI2d/Rzd/NnfznPmOZ60ok8O8QhfCMZw2Jd1M8ckYqaIrHTKU62ZrcsugdfJlHodsdrxEzA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" + "@stylistic/stylelint-plugin": "^3.0.1", + "@wordpress/theme": "^0.17.0", + "stylelint-config-recommended": "^14.0.1", + "stylelint-config-recommended-scss": "^14.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "stylelint": "^16.8.2", + "stylelint-scss": "^6.4.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "node_modules/@wordpress/stylelint-config/node_modules/@wordpress/element": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-8.2.0.tgz", + "integrity": "sha512-cTnKRHUdZbYAd4RaJiUwhDKdQDDWY7VoGiwektCmhiBQF6WTFYlhsxl/dmHE0Sok3q7PJQwAg538XEb8WuTaew==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/deprecated": "^4.50.0", + "@wordpress/escape-html": "^3.50.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "node_modules/@wordpress/stylelint-config/node_modules/@wordpress/theme": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.17.0.tgz", + "integrity": "sha512-BU+PLBLxMBM4WJYrd1QEwy+IA64vUP+8IEEB9lLx2NfB+3/45vvuvXx9o3qPKRDHvtMtEaRArld4Kn05UIW9IA==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "@wordpress/compose": "^8.2.0", + "@wordpress/deprecated": "^4.49.0", + "@wordpress/element": "^8.1.0", + "@wordpress/private-apis": "^1.49.0", + "@wordpress/style-runtime": "^0.5.0", + "colorjs.io": "^0.6.0", + "memize": "^2.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/react": "^18.3.27", + "esbuild": "^0.27.2", + "postcss": "^8.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "stylelint": "^16.8.2", + "vite": "^7.3.2" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "postcss": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "node_modules/@wordpress/theme": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.10.0.tgz", + "integrity": "sha512-U8CaRvGzeQtFfGQFsKarcbzPEH+jfXJmpOlIpt4bq2goW9CgeWFlDC29p0oyzoMn1Ga9hX+c8ay3nUgSbhmSSA==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "@wordpress/element": "^6.43.0", + "@wordpress/private-apis": "^1.43.0", + "colorjs.io": "^0.6.0", + "memize": "^2.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0", + "stylelint": "^16.8.2" + }, + "peerDependenciesMeta": { + "stylelint": { + "optional": true + } } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "node_modules/@wordpress/undo-manager": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.50.0.tgz", + "integrity": "sha512-599I3GPXSMpmAE2jqzHteqypI7rdt5HPDAw8GrHMkDWR1T9gK2L3gObv8I1Hs4eSDM88wgAB0Ifnqpy7zPn5rw==", "dev": true, - "license": "MIT", + "license": "GPL-2.0-or-later", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" + "@wordpress/is-shallow-equal": "^5.50.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "node_modules/@wordpress/warning": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.50.0.tgz", + "integrity": "sha512-6X3ioKOGfmRuZFngmG2QZZW9CBVMTBr5FXqs6Q3li5ryhnAqn3u/ocqsx556YnB5dYdVxK14TiH9o7DDElt8gw==", "dev": true, - "license": "MIT" + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "dev": true, "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", - "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", - "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-define-polyfill-provider": "^0.6.8", - "semver": "^6.3.1" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" + "engines": { + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", - "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.8" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=14" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "MIT" + "license": "Python-2.0" }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.40", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz", - "integrity": "sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==", + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">= 0.4" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/browserslist": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", - "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", - "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cacheable/memory": "^2.2.0", - "@cacheable/utils": "^2.5.0", - "hookified": "^1.15.0", - "keyv": "^5.6.0", - "qified": "^0.10.1" - } - }, - "node_modules/cacheable/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" + "engines": { + "node": ">=8" } }, - "node_modules/call-bind": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", - "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "get-intrinsic": "^1.3.0", - "set-function-length": "^1.2.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4008,29 +5333,39 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, "license": "MIT", "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4039,274 +5374,307 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "license": "MIT", "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001800", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz", - "integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/capital-case": { + "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true, "license": "MIT" }, - "node_modules/colorjs.io": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", - "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/color" + "engines": { + "node": ">=8" } }, - "node_modules/comment-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", - "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", "dev": true, - "license": "MIT" + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } }, - "node_modules/core-js": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", - "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/core-js-compat": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", - "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.1" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "dev": true, "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.43", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz", + "integrity": "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/css-functions-list": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", - "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", + "node_modules/brace-expansion": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", + "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", "dev": true, "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, "engines": { - "node": ">=12" + "node": "18 || 20 || >=22" } }, - "node_modules/css-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" + "fill-range": "^7.1.1" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/browserslist": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", + "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.42", + "caniuse-lite": "^1.0.30001800", + "electron-to-chromium": "^1.5.387", + "node-releases": "^2.0.50", + "update-browserslist-db": "^1.2.3" + }, "bin": { - "cssesc": "bin/cssesc" + "browserslist": "cli.js" }, "engines": { - "node": ">=4" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "license": "BSD-2-Clause" + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "node_modules/cacheable": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -4315,34 +5683,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { + "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -4351,354 +5714,307 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/caniuse-lite": { + "version": "1.0.30001803", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz", + "integrity": "sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 20.19.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } + "license": "MIT" }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/colorjs.io": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", + "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.382", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.382.tgz", - "integrity": "sha512-8ETaWbV6SZOrno+G93Ffd9ENsMtetqdnqj4nlfxFW90Sm5GgnuV28Kf62hqQVD6VUgzm7qFQKsTsAPmeUiU3Ug==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "license": "MIT" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" + "engines": { + "node": ">= 12.0.0" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" } }, - "node_modules/es-abstract": { - "version": "1.24.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", - "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/es-abstract-get": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", - "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.2", - "is-callable": "^1.2.7", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" + "browserslist": "^4.28.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": ">= 6" } }, - "node_modules/es-iterator-helpers": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz", - "integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.2", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.1.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.3.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.5", - "math-intrinsics": "^1.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 8" } }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "node_modules/css-functions-list": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 0.4" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/es-to-primitive": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", - "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", "dependencies": { - "es-abstract-get": "^1.0.0", - "es-define-property": "^1.0.1", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-callable": "^1.2.7", - "is-date-object": "^1.1.0", - "is-symbol": "^1.1.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4707,164 +6023,77 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz", - "integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", - "workspaces": [ - "packages/*" - ], "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.6.0", - "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.2", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.2", - "eslint-visitor-keys": "^5.0.1", - "espree": "^11.2.0", - "esquery": "^1.7.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "node": ">= 0.4" }, "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", - "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/eslint-import-context": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", - "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", "dependencies": { - "get-tsconfig": "^4.10.1", - "stable-hash-x": "^0.2.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint-import-context" - }, - "peerDependencies": { - "unrs-resolver": "^1.0.0" - }, - "peerDependenciesMeta": { - "unrs-resolver": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", - "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.16.1", - "resolve": "^2.0.0-next.6" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "2.0.0-next.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", - "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", "dependencies": { + "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "is-core-module": "^2.16.2", - "node-exports-info": "^1.6.0", - "object-keys": "^1.1.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -4873,503 +6102,472 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.5.tgz", - "integrity": "sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "debug": "^4.4.1", - "eslint-import-context": "^0.1.8", - "get-tsconfig": "^4.10.1", - "is-bun-module": "^2.0.0", - "stable-hash-x": "^0.2.0", - "tinyglobby": "^0.2.14", - "unrs-resolver": "^1.7.11" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^16.17.0 || >=18.6.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.13.0.tgz", - "integrity": "sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==", + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "path-type": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", - "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "node_modules/electron-to-chromium": { + "version": "1.5.389", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz", + "integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "iconv-lite": "^0.6.2" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=6" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "is-arrayish": "^0.2.1" } }, - "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/es-iterator-helpers": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", + "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jsdoc": { - "version": "46.10.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", - "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", - "spdx-expression-parse": "^4.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">=16" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", "dev": true, "license": "MIT", "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", - "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/eslint-plugin-playwright": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", - "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", - "peerDependencies": { - "eslint": ">=7", - "eslint-plugin-jest": ">=25" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz", - "integrity": "sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==", + "node_modules/eslint": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz", + "integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==", "dev": true, "license": "MIT", + "workspaces": [ + "packages/*" + ], "dependencies": { - "prettier-linter-helpers": "^1.0.1", - "synckit": "^0.11.13" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" + "jiti": "*" }, "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { + "jiti": { "optional": true } } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", "dev": true, "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "node_modules/eslint-import-context": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", + "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", "dev": true, "license": "MIT", + "dependencies": { + "get-tsconfig": "^4.10.1", + "stable-hash-x": "^0.2.0" + }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-context" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "unrs-resolver": "^1.0.0" + }, + "peerDependenciesMeta": { + "unrs-resolver": { + "optional": true + } } }, - "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", - "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" } }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { + "node_modules/eslint-import-resolver-node/node_modules/resolve": { "version": "2.0.0-next.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", @@ -5393,64 +6591,66 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-module-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "debug": "^3.2.7" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/eslint/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", + "node_modules/eslint-plugin-prettier": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz", + "integrity": "sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.13" }, "engines": { - "node": "18 || 20 || >=22" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/eslint/node_modules/eslint-scope": { + "node_modules/eslint-scope": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", @@ -5469,33 +6669,17 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "18 || 20 || >=22" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { @@ -5516,19 +6700,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esquery": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", @@ -5768,6 +6939,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5832,19 +7018,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-east-asian-width": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", - "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -6075,16 +7248,13 @@ } }, "node_modules/has-flag": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", - "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -6190,13 +7360,13 @@ "license": "MIT" }, "node_modules/html-tags": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", - "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=20.10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6225,6 +7395,13 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "dev": true, + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -6242,17 +7419,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-meta-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", - "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6604,19 +7770,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -6961,18 +8114,291 @@ "node": ">=0.10" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lines-and-columns": { @@ -7056,9 +8482,9 @@ } }, "node_modules/mathml-tag-names": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", - "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, "license": "MIT", "funding": { @@ -7081,13 +8507,13 @@ "license": "MIT" }, "node_modules/meow": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz", - "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7117,17 +8543,30 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -7210,6 +8649,14 @@ "tslib": "^2.0.3" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/node-exports-info": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", @@ -7230,9 +8677,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.50", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", - "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", "dev": true, "license": "MIT", "engines": { @@ -7550,13 +8997,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -7700,6 +9147,23 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.5.tgz", + "integrity": "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/prettier-linter-helpers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", @@ -7810,6 +9274,20 @@ "dev": true, "license": "MIT" }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -7992,6 +9470,40 @@ "node": ">=0.10.0" } }, + "node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8099,6 +9611,27 @@ "dev": true, "license": "MIT" }, + "node_modules/sass": { + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.101.0.tgz", + "integrity": "sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -8331,6 +9864,16 @@ "tslib": "^2.0.3" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -8341,6 +9884,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", @@ -8391,20 +9945,18 @@ } }, "node_modules/string-width": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", - "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string.prototype.includes": { @@ -8522,19 +10074,16 @@ } }, "node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.2.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/strip-bom": { @@ -8555,9 +10104,9 @@ "license": "ISC" }, "node_modules/stylelint": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.0.tgz", - "integrity": "sha512-8xkHPpdqYryeIsOgfsYTmr6cIeC4nLYWk5S8BPxpodq8mIuepggkMljsHewWfuAjj/+qpRKou2QerhjMH3iasg==", + "version": "16.26.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", + "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", "dev": true, "funding": [ { @@ -8571,47 +10120,51 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.2.1", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.5", - "@csstools/css-tokenizer": "^4.0.0", - "@csstools/media-query-list-parser": "^5.0.0", - "@csstools/selector-resolve-nested": "^4.0.0", - "@csstools/selector-specificity": "^6.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-syntax-patches-for-csstree": "^1.0.19", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.2.1", + "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^9.0.2", - "css-functions-list": "^3.3.3", - "css-tree": "^3.2.1", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.3", + "file-entry-cache": "^11.1.1", "global-modules": "^2.0.0", - "globby": "^16.2.0", + "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^5.1.0", + "html-tags": "^3.3.1", "ignore": "^7.0.5", - "import-meta-resolve": "^4.2.0", - "mathml-tag-names": "^4.0.0", - "meow": "^14.1.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mathml-tag-names": "^2.1.3", + "meow": "^13.2.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.15", + "postcss": "^8.5.6", + "postcss-resolve-nested-selector": "^0.1.6", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.4", + "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", - "string-width": "^8.2.1", - "supports-hyperlinks": "^4.4.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.2.0", "svg-tags": "^1.0.0", "table": "^6.9.0", - "write-file-atomic": "^7.0.1" + "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": ">=20.19.0" + "node": ">=18.12.0" } }, "node_modules/stylelint-config-recommended": { @@ -8661,47 +10214,10 @@ } } }, - "node_modules/stylelint-config-recommended-scss/node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-scss": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz", - "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mdn-data": "^2.25.0", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.8.2" - } - }, "node_modules/stylelint-config-standard": { - "version": "40.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-40.0.0.tgz", - "integrity": "sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==", + "version": "39.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-39.0.1.tgz", + "integrity": "sha512-b7Fja59EYHRNOTa3aXiuWnhUWXFU2Nfg6h61bLfAb5GS5fX3LMUD0U5t4S8N/4tpHQg3Acs2UVPR9jy2l1g/3A==", "dev": true, "funding": [ { @@ -8715,31 +10231,31 @@ ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^18.0.0" + "stylelint-config-recommended": "^17.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^17.0.0" + "stylelint": "^16.23.0" } }, "node_modules/stylelint-config-standard-scss": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-17.0.0.tgz", - "integrity": "sha512-uLJS6xgOCBw5EMsDW7Ukji8l28qRoMnkRch15s0qwZpskXvWt9oPzMmcYM307m9GN4MxuWLsQh4I6hU9yI53cQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-16.0.0.tgz", + "integrity": "sha512-/FHECLUu+med/e6OaPFpprG86ShC4SYT7Tzb2PTVdDjJsehhFBOioSlWqYFqJxmGPIwO3AMBxNo+kY3dxrbczA==", "dev": true, "license": "MIT", "dependencies": { - "stylelint-config-recommended-scss": "^17.0.0", - "stylelint-config-standard": "^40.0.0" + "stylelint-config-recommended-scss": "^16.0.1", + "stylelint-config-standard": "^39.0.0" }, "engines": { "node": ">=20" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^17.0.0" + "stylelint": "^16.23.1" }, "peerDependenciesMeta": { "postcss": { @@ -8748,9 +10264,9 @@ } }, "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", - "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", + "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", "dev": true, "funding": [ { @@ -8764,29 +10280,29 @@ ], "license": "MIT", "engines": { - "node": ">=20.19.0" + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^17.0.0" + "stylelint": "^16.23.0" } }, "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended-scss": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-17.0.1.tgz", - "integrity": "sha512-x5DVehzJudcwF0od3sGpgkln2PLLranFE7twwbp7dqDINCyZvwzFkMc6TLhNOvazRiVBJYATQLouJY0xPGB8WA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-16.0.2.tgz", + "integrity": "sha512-aUTHhPPWCvFyWaxtckJlCPaXTDFsp4pKO8evXNCsW9OwsaUWyMd6jvcUhSmfGWPrTddvzNqK4rS/UuSLcbVGdQ==", "dev": true, "license": "MIT", "dependencies": { "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^18.0.0", - "stylelint-scss": "^7.0.0" + "stylelint-config-recommended": "^17.0.0", + "stylelint-scss": "^6.12.1" }, "engines": { "node": ">=20" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^17.0.0" + "stylelint": "^16.24.0" }, "peerDependenciesMeta": { "postcss": { @@ -8795,9 +10311,9 @@ } }, "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", - "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", + "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", "dev": true, "funding": [ { @@ -8811,122 +10327,53 @@ ], "license": "MIT", "engines": { - "node": ">=20.19.0" + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^17.0.0" + "stylelint": "^16.23.0" } }, "node_modules/stylelint-scss": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.2.0.tgz", - "integrity": "sha512-6E79Bachv0Iz0gqRUZgdqdXCsiq26DWBWIBNHYtjTmAp3wJu6cp/I37VfW7BPntmh2puF3bY09XWl4HZGrLhzw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz", + "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.2.1", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.4", - "@csstools/css-tokenizer": "^4.0.0", - "css-tree": "^3.2.1", + "css-tree": "^3.0.1", "is-plain-object": "^5.0.0", "known-css-properties": "^0.37.0", + "mdn-data": "^2.25.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.6", "postcss-selector-parser": "^7.1.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "stylelint": "^16.8.2 || ^17.0.0" - } - }, - "node_modules/stylelint-scss/node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" + "node": ">=18.12.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/stylelint-scss/node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" + "stylelint": "^16.8.2" } }, "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint/node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=20.19.0" + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, - "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/stylelint/node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", "dev": true, "funding": [ { @@ -8940,13 +10387,17 @@ ], "license": "MIT", "engines": { - "node": ">=20.19.0" + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, - "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": { + "node_modules/stylelint/node_modules/@csstools/selector-specificity": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.0.tgz", - "integrity": "sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", "dev": true, "funding": [ { @@ -8958,15 +10409,21 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", + "license": "MIT-0", "engines": { - "node": ">=20.19.0" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" + "postcss-selector-parser": "^7.0.0" } }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true, + "license": "MIT" + }, "node_modules/stylelint/node_modules/cosmiconfig": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", @@ -9016,31 +10473,10 @@ "hookified": "^1.15.0" } }, - "node_modules/stylelint/node_modules/globby": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz", - "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.5", - "is-path-inside": "^4.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.4.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -9061,44 +10497,41 @@ "node": ">=4" } }, - "node_modules/stylelint/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/supports-color": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", - "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "engines": { + "node": ">=8" } }, "node_modules/supports-hyperlinks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.5.0.tgz", - "integrity": "sha512-ZW2OvfeCXrNTbLakPUzjQG922EeGCOteFSVoek5DKStTh898wf7zgtuFlzQN8HfZCxC3Eh02yJVrRW51hADf+w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^5.0.1", - "supports-color": "^10.2.2" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=20" + "node": ">=14.18" }, "funding": { "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" @@ -9173,23 +10606,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/table/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -9197,42 +10613,33 @@ "dev": true, "license": "MIT" }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/tannin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", + "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "@tannin/plural-forms": "^1.1.0" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/terser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", + "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "ansi-regex": "^5.0.1" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">=8" - } - }, - "node_modules/tannin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", - "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/plural-forms": "^1.1.0" + "node": ">=10" } }, "node_modules/tinyglobby": { @@ -9252,17 +10659,13 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, + "node_modules/tinykeys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tinykeys/-/tinykeys-4.0.0.tgz", + "integrity": "sha512-z5bQRQHL1PSx3lGOZEAMM2oKp0EBtn5T5f7HJnaKPOzk6vEH0wUPvdHLeQ7F4tmkek8AgoTQISUFmn/5SNF2xA==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=22" } }, "node_modules/to-regex-range": { @@ -9451,6 +10854,130 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.63.0.tgz", + "integrity": "sha512-xgwXyzG4sK9ALkBxbyGkTMMOS+imnW65iPhxCQMK83KhxyoDNW7l+IDqEf9vMdoUidHpOoS967RCq4eMiTexwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.63.0", + "@typescript-eslint/parser": "8.63.0", + "@typescript-eslint/typescript-estree": "8.63.0", + "@typescript-eslint/utils": "8.63.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.63.0.tgz", + "integrity": "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz", + "integrity": "sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.63.0", + "@typescript-eslint/tsconfig-utils": "8.63.0", + "@typescript-eslint/types": "8.63.0", + "@typescript-eslint/visitor-keys": "8.63.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.63.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz", + "integrity": "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.63.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typescript-eslint/node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", @@ -9470,6 +10997,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true, + "license": "MIT" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", @@ -9514,19 +11048,6 @@ "node": ">=4" } }, - "node_modules/unicorn-magic": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", - "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/unrs-resolver": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", @@ -9643,6 +11164,84 @@ "dev": true, "license": "MIT" }, + "node_modules/vite": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", + "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.16", + "rolldown": "~1.1.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -9759,16 +11358,17 @@ } }, "node_modules/write-file-atomic": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", - "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", "dependencies": { + "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/yallist": { @@ -9778,16 +11378,6 @@ "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 4713532..b7f9ae1 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,33 @@ { "name": "debugpress", - "version": "4.2.0", + "version": "4.3.0", "private": true, "type": "module", "engines": { - "node": ">=22.0.0" + "node": ">=20.0.0" }, "scripts": { - "lint": "npm run lint:js && npm run lint:css", - "lint:js": "eslint \"js/**/*.js\"", - "lint:css": "stylelint \"scss/**/*.scss\"", - "lint:css:fix": "stylelint \"scss/**/*.scss\" --fix" + "dev": "vite", + "build": "vite build --mode admin && vite build --mode panel && vite build --mode print", + "lint": "eslint src/**/*.ts", + "format": "prettier --write \"src/**/*.{ts,scss}\"" }, "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/node": "^26.1.1", "@wordpress/eslint-plugin": "^24.5.0", "@wordpress/stylelint-config": "^23.35.0", "eslint": "^10.1.0", - "stylelint": "^17.6.0", - "stylelint-config-standard-scss": "^17.0.0", - "stylelint-scss": "^7.0.0" + "sass": "^1.77.8", + "stylelint": "^16.26.1", + "stylelint-config-standard-scss": "^16.0.0", + "stylelint-scss": "^6.14.0", + "terser": "^5.31.3", + "typescript": "^6.0.3", + "typescript-eslint": "^8.63.0", + "vite": "^8.1.3" }, - "overrides": { - "@wordpress/stylelint-config": { - "stylelint": "$stylelint" - } + "dependencies": { + "@dev4press/flyin": "^1.1.0" } } diff --git a/readme.txt b/readme.txt index 528e8a1..4df5e75 100644 --- a/readme.txt +++ b/readme.txt @@ -1,8 +1,8 @@ -=== DebugPress: Debugger in Popup === +=== DebugPress: Debugger in a Popup === Contributors: GDragoN Donate link: https://buymeacoffee.com/millan Tags: dev4press, query monitor, debugging, development, ajax monitor -Stable tag: 4.2 +Stable tag: 4.3 Requires at least: 5.6 Tested up to: 7.0 Requires PHP: 7.4 @@ -56,10 +56,15 @@ Currently, the plugin has the following panels: * Store (for any user stored objects during the page loading) * Tools (internal and external tools links) * Debug Log (load content on demand from WordPress 'debug.log') -* Layout (control the size, position and activation of the popup) +* Layout (control the size, position, and activation of the popup) + += Flyin = +Flyin is library used to create popups used to generate the popup or the debugger. + +[Flyin Website](https://dev4press.github.io/flyin/) · [Flyin on Github](https://github.com/dev4press/flyin) = SQL Queries = -This panel lists all the queries WordPress has run. It allows you to order the queries by execution order or length of execution, and all queries can be filtered by the query type, database table it targets or the WordPress function that called it. Every query displays the execution time, order, caller functions stack and fully formatted SQL query that is easy to read. For some Dev4Press created plugins (and that list will grow), DebugPress can detect the source of the query and allow you to filter by the plugin calling the query. +This panel lists all the queries WordPress has run. It allows you to order the queries by execution order or length of execution, and all queries can be filtered by the query type, database table it targets, or the WordPress function that called it. Every query displays the execution time, order, caller functions stack, and fully formatted SQL query that is easy to read. For some Dev4Press created plugins (and that list will grow), DebugPress can detect the source of the query and allow you to filter by the plugin calling the query. = PHP and WordPress Errors = Plugin has 3 panels dedicated to showing PHP and WordPress errors and warnings. The Plugin captures this information during the page load, and it shows full debug trace as returned by the PHP debug tracing function. @@ -75,10 +80,10 @@ In the administration Tools menu, the plugin adds a DebugPress Info page showing * MySQL Variables: full MySQL settings retrieved from the database = Plugin Settings = -The plugin has various options controlling the plugin activation, button integration position, user roles that can see the debugger window, options to attempt overriding WordPress debug flags and options controlling the visibility of optional debugger panels. +The plugin has various options controlling the plugin activation, button integration position, user roles that can see the debugger window, options to attempt overriding WordPress debug flags, and options controlling the visibility of optional debugger panels. = Log into Database = -Debugger popup is visible for the request running in the browser. But there are many requests that are happening in the background (AJAX calls, REST API calls...), and for them, you can't see errors, call information and other stuff in the debugger. Because of that, DebugPress supports logging of various events into database with the use of 'coreActivity' plugin, and it is highly recommended to install and use coreActivity. +Debugger popup is visible for the request running in the browser. But there are many requests that are happening in the background (AJAX calls, REST API calls...), and for them, you can't see errors, call information, and other stuff in the debugger. Because of that, DebugPress supports logging of various events into database with the use of 'coreActivity' plugin, and it is highly recommended to install and use coreActivity. Log various debug events into a database with the free plugin: [coreActivity Plugin](https://wordpress.org/plugins/coreactivity/), supporting over 120 events and 10 popular WordPress plugins. DebugPress related events will be logged and available for later analysis, and this includes errors, AJAX calls, and HTTP API calls. @@ -110,12 +115,18 @@ To enable WordPress debug mode via `wp-config.php`, check out the article here: If you have enabled debugger (for admin side and/or frontend), Debugger is activated via Bug button placed in the WordPress Toolbar or as a float button (depending on the settings). Since version 3.0, you can activate the button via keyboard shortcut, default combination is `ctrl+shift+u`, but it can be changed in the plugin settings. = Can I change the size and position of the popup? = -Yes. Once the popup is open, you will find the Layout icon next to the button to close the popup. On the layout panel, you can change the location for the popup, size, modal status and auto activation on page load. +Yes. Once the popup is open, you will find the Layout icon next to the button to close the popup. On the layout panel, you can change the location for the popup, size, modal status, and auto activation on page load. = Where can I configure the plugin? = Open the WordPress 'Settings' menu, there you will find 'DebugPress' panel. == Changelog == += 4.3 (2026.07.17) = +* New: replaced SmartAnimatedPopup with Flyin +* New: rewritten all JS into TypeScript with no jQuery dependencies +* New: modern Vite and TypeScript build system +* Removed: all external JavaScript libraries + = 4.2 (2026.06.30) = * New: tested with WordPress 7.0 * New: tested and compatible with `PHP` 8.5 @@ -172,97 +183,12 @@ Open the WordPress 'Settings' menu, there you will find 'DebugPress' panel. * Edit: Kint Pretty Print Library 5.1.0 * Fix: Small issue with getting the OPCache version when not allowed by the server -= 3.5.1 (2023.11.18) = -* Fix: Internal debug to error log remain in the source code - -= 3.5 (2023.11.06) = -* New: Tracker logs the trace for each HTTP API request made -* New: Tracker executes action for every completed HTTP API request -* New: AJAX Tracker executes action for every completed Admin AJAX request -* New: HTTP API log shows the trace and timestamps for each request -* New: Popup tools links to the coreActivity events and logs -* New: Popup header shows icons for tabs with labels with improved sizing -* New: Popup tabs show label or icon only, depending on the screen size -* Fix: Trace information for tracker HTTP API request was lost - -= 3.4.1 (2023.10.15) = -* Fix: Function `apache_get_version` not working on every server - -= 3.4 (2023.10.06) = -* New: Updated some plugin system requirements -* Edit: KINT now loads own helper d() and s() functions -* Edit: Various styling improvements and tweaks -* Edit: Improved organization of the print libraries now moved to vendor directory -* Fix: MySQL tools panel showing error if the server information can't be retrieved -* Fix: Problem with the Info method for getting server IP in some cases -* Fix: Few more issues with Info method for getting database information - -= 3.3 (2023.07.03) = -* New: Support for more versions of the Dev4Press Library -* New: System tab shows additional information about Apache -* New: System tab shows WordPress database overview information -* New: Remember open/close sections on some panels -* Edit: Some changes to the displayed System and Basic tabs -* Edit: Various small tweaks to the plugin PHP code -* Edit: Kint Pretty Print Library 5.0.7 -* Fix: Few issues with Info method for getting database information - -= 3.2 (2023.06.22) = -* New: Support for the deprecated hook run handling -* New: Execute actions when each error has been logged -* New: Deprecated tracking now logs the caller information -* Edit: Improved caller trace cleanup for error calls -* Edit: Display more relevant error source file and log for errors -* Edit: Errors tab moved to the end of the display order -* Edit: Changed tab order for several other debugger tabs -* Edit: Various small tweaks to the plugin PHP code -* Fix: Fatal error tracking calling default handler directly -* Fix: Sometimes errors not getting displayed in the Error tab - -= 3.1 (2023.06.14) = -* New: Identify SQL queries sources for Dev4Press plugins -* New: Hooks panel can filter by the WordPress Admin callbacks -* Edit: Improved method for displaying button activation flags -* Edit: Many improvements to escaping variables for display -* Edit: Better optimized included images for logos -* Edit: Various small tweaks to the plugin PHP code -* Edit: Various small tweaks to the main JavaScript file -* Fix: Hooks panel not filtering MU Plugins - -= 3.0.1 (2023.05.05) = -* Edit: Minor updates to the plugin readme file -* Edit: Various improvements to the PHP core code -* Fix: Warnings related to OPCache for some PHP configurations - -= 3.0 (2023.04.03) = -* New: Modify debugger popup layout and size -* New: Modify debugger popup modal state -* New: Modify debugger popup opening state (auto, manual, remember state) -* New: Save active tab and show it first on next page load -* New: Trigger debugger popup display via keyboard shortcut -* New: Access Key option to enable loading on demand via URL -* New: Settings block and information for the On Demand access -* New: Settings block and information for shortcut key activation -* New: Admin bar button has basic stats dropdown menu -* New: Plugin settings Help tab with On Demand information -* New: Content tab split into Content and Rewrite tabs -* New: Basic tab shows currently active theme information -* New: Admin tab content moved to the Request tab -* New: Refreshed the debugger look with new icons -* New: Function to write log entry into custom info/log file -* New: `IP` class mostly rewritten and expanded -* New: Mousetrap Javascript v1.6.5 library -* Edit: Few improvements to the plugin init and load process -* Edit: Various improvements to the PHP core code -* Edit: Changes to some plugin default settings -* Edit: `IP` class expanded Cloudflare IP range -* Edit: Smart Animated Popup v2.0 library -* Del: Removed the dedicated Admin tab -* Fix: Few issues with the `IP` class range methods - Full changelog: [DebugPress Changelog](https://www.dev4press.com/plugins/debugpress/changelog/) == Upgrade Notice == += 4.3 = +Dropped jQuery dependency. New popup library. + = 4.2 = Various updates and improvements. Updated Kint Library. @@ -272,9 +198,6 @@ Few updates and improvements. Updated Kint Library. = 4.0 = Various updates and improvements. -= 3.9 = -Various updates and improvements. - == Screenshots == * Debugger popup: Basic debugger panel * Debugger popup: Current page Query diff --git a/scss/adminpanel.scss b/scss/adminpanel.scss deleted file mode 100644 index 7559438..0000000 --- a/scss/adminpanel.scss +++ /dev/null @@ -1,2 +0,0 @@ -@use "components/admin"; -@use "components/tools"; \ No newline at end of file diff --git a/scss/components/_admin.scss b/scss/components/_admin.scss deleted file mode 100644 index ce5d86d..0000000 --- a/scss/components/_admin.scss +++ /dev/null @@ -1,159 +0,0 @@ -.debugpress-panel { - .nav-tab { - margin-left: 10px; - padding: 5px 15px; - - .dashicons { - font-size: 16px; - margin-right: 5px; - vertical-align: middle; - } - } - - .nav-tab-right { - float: right; - margin-right: 10px; - margin-left: 0; - } -} - -.debugpress-panel-settings { - .tab-content { - display: none; - - &.tab-content-active { - display: block; - } - } -} - -.debugpress_settings { - width: calc(100% - 330px); - float: left; - color: #000; - - .debugpress-settings-section { - max-width: 720px; - background-color: #FFF; - padding: 15px; - margin: 15px 0 0 15px; - border: 1px solid #1E72BD; - - h2 { - margin: -15px -15px 15px; - padding: 15px; - background-color: #1E72BD; - color: #FFF; - } - - .debugpress-section-info { - margin: -15px -15px 0; - padding: 15px; - background-color: #DAEEFF; - } - - p.description { - border-top: 1px solid #1E72BD; - margin: 10px 0 0; - padding: 5px 0 0; - } - } -} - -.debugpress_sidebar { - float: right; - padding-left: 20px; - margin-right: 15px; - width: 280px; - - img { - height: auto; - width: 100%; - } - - > div { - text-align: center; - padding: 15px; - margin: 15px 0; - max-width: 360px; - } - - .debugpress_plugin { - color: #FFF; - background: #1E72BD; - - > span { - display: block; - text-transform: uppercase; - letter-spacing: 2px; - } - - > div { - border-top: 1px solid #FFF; - border-bottom: 1px solid #FFF; - padding: 15px 0; - margin: 15px 0; - font-weight: 700; - font-size: 1.1em; - } - - .button-secondary { - font-weight: 700; - } - } - - .debugpress_help { - color: #111; - background: #FFF; - border: 1px solid #1E72BD; - - > p { - margin: 0; - padding: 0 0 15px; - } - } - - .debugpress_dev4press { - color: #111; - background: #E0E0E0; - border: 1px solid #1E72BD; - - > p { - margin: 0; - padding: 0 0 10px; - font-weight: 700; - } - - > div { - border-top: 1px solid #1E72BD; - padding: 15px 0 0; - margin: 15px 0 0; - font-weight: 700; - font-size: 1.2em; - } - } -} - -@media screen and (width <= 900px) { - .debugpress_settings { - width: 100%; - float: none; - - .debugpress-settings-section { - margin: 15px; - } - } - - .debugpress_sidebar { - border-top: 1px solid #1E72BD; - padding-top: 20px; - padding-left: 0; - width: 100%; - float: none; - margin: 0; - - > div { - margin: 0 auto 15px; - } - } -} diff --git a/scss/components/_popup.scss b/scss/components/_popup.scss deleted file mode 100644 index c9c0148..0000000 --- a/scss/components/_popup.scss +++ /dev/null @@ -1,111 +0,0 @@ -.debugpress-style-popup { - color: #444; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - line-height: 1.4; - font-size: var(--debugpress-base-font-size); - font-style: normal; - font-weight: 400; - box-sizing: border-box; - - * { - font-family: inherit; - box-sizing: border-box; - } - - pre { - margin: 0; - padding: 5px 7px; - line-height: 1.4; - white-space: pre; - } - - a { - color: #0073AA; - text-decoration: none; - box-shadow: none; - outline: none; - - &.sqlq-option-on { - font-weight: 700; - color: #FFF; - background: #0073AA; - padding: 0 3px 1px; - } - } - - .sanp-wrapper { - background: #FFF; - border-radius: 0; - border: 4px solid #23282D; - box-shadow: 1px 1px 5px rgb(32 32 32 / 60%); - - > button { - appearance: none; - background: none; - border: medium none; - color: #E00; - cursor: pointer; - float: right; - font-size: 20px; - font-weight: 900; - line-height: 1; - right: 5px; - top: 3px; - } - - .sanp-header { - background: #23282D; - border-radius: 0; - padding: 5px 5px 0; - color: #FFF; - height: 38px; - - h5 { - border-bottom: 4px solid #23282D; - color: #FFF; - font-size: 18px; - font-weight: 900; - line-height: 24px; - margin: 0; - padding: 0; - text-transform: uppercase; - } - } - - .sanp-content { - padding: 0; - } - - .sanp-footer { - border-radius: 0; - padding: 5px; - background: #E0E0E0; - text-align: left; - - button { - appearance: none; - margin: 0; - padding: 0; - cursor: pointer; - color: #23282D; - font-weight: 700; - outline: 1px solid transparent; - background: none; - border: none; - font-size: 16px; - text-transform: uppercase; - letter-spacing: 2px; - } - } - } - - &.sanp-button-alt { - .sanp-wrapper { - > button { - background: #500; - box-shadow: 1px 1px 4px rgb(32 32 32 / 30%); - color: #FFF; - } - } - } -} diff --git a/scss/debugpress.scss b/scss/debugpress.scss deleted file mode 100644 index 51f2c24..0000000 --- a/scss/debugpress.scss +++ /dev/null @@ -1,13 +0,0 @@ -@use "includes/functions" as *; -@use "includes/icons" as *; -@use "includes/embeds"; -@use "includes/variables" as *; -@use "components/vars"; -@use "components/icons"; -@use "components/grid" as *; -@use "components/basic" as *; -@use "components/button"; -@use "components/layout"; -@use "components/popup"; -@use "components/debugger"; -@use "components/responsive" as *; \ No newline at end of file diff --git a/scss/prettyprint.scss b/scss/prettyprint.scss deleted file mode 100644 index 3fd5fc9..0000000 --- a/scss/prettyprint.scss +++ /dev/null @@ -1,2 +0,0 @@ -@use "includes/variables" as *; -@use "components/pretty"; diff --git a/scss/components/_tools.scss b/src/scripts/admin/index.scss similarity index 53% rename from scss/components/_tools.scss rename to src/scripts/admin/index.scss index 80e0570..af7aad3 100644 --- a/scss/components/_tools.scss +++ b/src/scripts/admin/index.scss @@ -1,186 +1,347 @@ -.debugpress-panel-tools { - .tab-content { - margin: 15px; - } -} - -.debugpress_phpinfo { - overflow: auto; - - h1.p { - background-color: #222; - color: #FFF; - font-size: 28px; - margin: 0; - padding: 22px 16px; - } - - td img { - float: right; - margin: 7px 16px 0 0; - } - - table { - width: 100%; - background: #FFF; - border-collapse: collapse; - border: 1px solid #BBB; - margin: 0 0 5px; - - td, - th { - padding: 5px; - text-align: left; - vertical-align: top; - } - - tr { - th, - td.first { - width: 20%; - } - - td.b, - th.first { - color: #333; - font-weight: 700; - } - - td { - border-bottom: 1px solid #ECECEC; - word-break: break-all; - - .options { - text-align: right; - white-space: normal; - padding-right: 0; - } - } - - &.first { - th { - color: #222; - font-weight: 700; - } - } - - &:last-child { - td { - border-bottom: none; - } - } - - &.h, - &.with-header { - th { - background: #666; - color: #FFF; - padding: 10px; - } - } - } - - th { - text-align: left; - background-color: #ECECEC; - padding: 3px 5px; - } - } - - div.inside { - margin: -1px 0 10px; - } - - p.sub { - color: #777; - font-size: 13px; - font-style: italic; - padding: 5px 10px 15px; - margin: -12px; - } - - h3 { - background: #333 !important; - color: #FFF; - text-shadow: none !important; - font-size: 14px; - font-weight: 700; - } - - div.inside .link { - text-align: right; - font-weight: 700; - } - - a { - text-decoration: none; - } - - a:hover { - text-decoration: underline; - } - - h2.phpsection { - background-color: #333; - color: #FFF; - font-style: normal; - padding: 5px 10px; - font-size: 18px; - line-height: 24px; - margin-bottom: 5px; - text-shadow: none; - } - - h2.phpsection a { - color: #FFF; - } -} - -.debugpress_info { - table { - min-width: 50%; - max-width: 100%; - line-height: 1.5; - border-collapse: collapse; - border: 1px solid #BBB; - border-top: 0; - - thead { - th { - text-align: left; - padding: 5px; - background: #666; - color: #FFF; - } - } - - tbody { - tr { - border-bottom: 1px solid #BBB; - background: #FFF; - - th, td { - vertical-align: top; - padding: 5px; - text-align: left; - } - - td { - border-left: 1px solid #BBB; - - div { - word-break: break-all; - } - } - } - } - } -} - -@media screen and (width <= 1200px) { - .debugpress_info { - table { - width: 100%; - } - } -} \ No newline at end of file +.debugpress-panel { + .nav-tab { + margin-left: 10px; + padding: 5px 15px; + + .dashicons { + font-size: 16px; + margin-right: 5px; + vertical-align: middle; + } + } + + .nav-tab-right { + float: right; + margin-right: 10px; + margin-left: 0; + } +} + +.debugpress-panel-settings { + .tab-content { + display: none; + + &.tab-content-active { + display: block; + } + } +} + +.debugpress_settings { + width: calc(100% - 330px); + float: left; + color: #000; + + .debugpress-settings-section { + max-width: 720px; + background-color: #FFF; + padding: 15px; + margin: 15px 0 0 15px; + border: 1px solid #1E72BD; + + h2 { + margin: -15px -15px 15px; + padding: 15px; + background-color: #1E72BD; + color: #FFF; + } + + .debugpress-section-info { + margin: -15px -15px 0; + padding: 15px; + background-color: #DAEEFF; + } + + p.description { + border-top: 1px solid #1E72BD; + margin: 10px 0 0; + padding: 5px 0 0; + } + } +} + +.debugpress_sidebar { + float: right; + padding-left: 20px; + margin-right: 15px; + width: 280px; + + img { + height: auto; + width: 100%; + } + + > div { + text-align: center; + padding: 15px; + margin: 15px 0; + max-width: 360px; + } + + .debugpress_plugin { + color: #FFF; + background: #1E72BD; + + > span { + display: block; + text-transform: uppercase; + letter-spacing: 2px; + } + + > div { + border-top: 1px solid #FFF; + border-bottom: 1px solid #FFF; + padding: 15px 0; + margin: 15px 0; + font-weight: 700; + font-size: 1.1em; + } + + .button-secondary { + font-weight: 700; + background-color: #FFF; + } + } + + .debugpress_help { + color: #111; + background: #FFF; + border: 1px solid #1E72BD; + + > p { + margin: 0; + padding: 0 0 15px; + } + } + + .debugpress_dev4press { + color: #111; + background: #E0E0E0; + border: 1px solid #1E72BD; + + > p { + margin: 0; + padding: 0 0 10px; + font-weight: 700; + } + + > div { + border-top: 1px solid #1E72BD; + padding: 15px 0 0; + margin: 15px 0 0; + font-weight: 700; + font-size: 1.2em; + } + } +} + +.debugpress-panel-tools { + .tab-content { + margin: 15px; + } +} + +.debugpress_phpinfo { + overflow: auto; + + h1.p { + background-color: #222; + color: #FFF; + font-size: 28px; + margin: 0; + padding: 22px 16px; + } + + td img { + float: right; + margin: 7px 16px 0 0; + } + + table { + width: 100%; + background: #FFF; + border-collapse: collapse; + border: 1px solid #BBB; + margin: 0 0 5px; + + td, + th { + padding: 5px; + text-align: left; + vertical-align: top; + } + + tr { + th, + td.first { + width: 20%; + } + + td.b, + th.first { + color: #333; + font-weight: 700; + } + + td { + border-bottom: 1px solid #ECECEC; + word-break: break-all; + + .options { + text-align: right; + white-space: normal; + padding-right: 0; + } + } + + &.first { + th { + color: #222; + font-weight: 700; + } + } + + &:last-child { + td { + border-bottom: none; + } + } + + &.h, + &.with-header { + th { + background: #666; + color: #FFF; + padding: 10px; + } + } + } + + th { + text-align: left; + background-color: #ECECEC; + padding: 3px 5px; + } + } + + div.inside { + margin: -1px 0 10px; + } + + p.sub { + color: #777; + font-size: 13px; + font-style: italic; + padding: 5px 10px 15px; + margin: -12px; + } + + h3 { + background: #333 !important; + color: #FFF; + text-shadow: none !important; + font-size: 14px; + font-weight: 700; + } + + div.inside .link { + text-align: right; + font-weight: 700; + } + + a { + text-decoration: none; + } + + a:hover { + text-decoration: underline; + } + + h2.phpsection { + background-color: #333; + color: #FFF; + font-style: normal; + padding: 5px 10px; + font-size: 18px; + line-height: 24px; + margin-bottom: 5px; + text-shadow: none; + } + + h2.phpsection a { + color: #FFF; + } +} + +.debugpress_info { + table { + min-width: 50%; + max-width: 100%; + line-height: 1.5; + border-collapse: collapse; + border: 1px solid #BBB; + border-top: 0; + + thead { + th { + text-align: left; + padding: 5px; + background: #666; + color: #FFF; + } + } + + tbody { + tr { + border-bottom: 1px solid #BBB; + background: #FFF; + + th, td { + vertical-align: top; + padding: 5px; + text-align: left; + } + + td { + border-left: 1px solid #BBB; + + div { + word-break: break-all; + } + } + } + } + } +} + +@media screen and (width <= 900px) { + .debugpress_settings { + width: 100%; + float: none; + + .debugpress-settings-section { + margin: 15px; + } + } + + .debugpress_sidebar { + border-top: 1px solid #1E72BD; + padding-top: 20px; + padding-left: 0; + width: 100%; + float: none; + margin: 0; + + > div { + margin: 0 auto 15px; + } + } +} + +@media screen and (width <= 1200px) { + .debugpress_info { + table { + width: 100%; + } + } +} diff --git a/src/scripts/admin/index.ts b/src/scripts/admin/index.ts new file mode 100644 index 0000000..186a490 --- /dev/null +++ b/src/scripts/admin/index.ts @@ -0,0 +1,37 @@ +import './index.scss'; + +class DebugPressAdmin { + constructor() { + document.addEventListener('click', (event: MouseEvent) => { + const target = event.target as HTMLElement; + const link = target.closest('.debugpress-panel-settings nav a.nav-tab-change'); + + if (link) { + event.preventDefault(); + + const href = link.getAttribute('href'); + if (!href || !href.startsWith('#')) { + return; + } + + const tab = href.substring(1); + + const allLinks = document.querySelectorAll('.debugpress-panel-settings nav a.nav-tab-change'); + allLinks.forEach((el) => el.classList.remove('nav-tab-active')); + link.classList.add('nav-tab-active'); + + const allTabs = document.querySelectorAll('.debugpress-panel-settings .tab-content'); + allTabs.forEach((el) => el.classList.remove('tab-content-active')); + + const activeTab = document.querySelector(`.debugpress-panel-settings .tab-content.nav-tab-content-${tab}`); + if (activeTab) { + activeTab.classList.add('tab-content-active'); + } + } + }); + } +} + +document.addEventListener('DOMContentLoaded', () => { + new DebugPressAdmin(); +}); diff --git a/src/scripts/panel/features/AJAXTrace.ts b/src/scripts/panel/features/AJAXTrace.ts new file mode 100644 index 0000000..e9531ca --- /dev/null +++ b/src/scripts/panel/features/AJAXTrace.ts @@ -0,0 +1,184 @@ +import { DebugPressPanel } from "../index"; +import { AJAXTraceData } from "../types/panel"; + +export class AJAXTrace { + private panel: DebugPressPanel; + + constructor(panel: DebugPressPanel) { + this.panel = panel; + } + + init(): void { + this.interceptAJAX(); + } + + private interceptAJAX(): void { + const self = this; + + // XMLHttpRequest Interception + const oldOpen = XMLHttpRequest.prototype.open; + XMLHttpRequest.prototype.open = function(method: string, url: string | URL) { + (this as any)._method = method; + (this as any)._url = url.toString(); + return oldOpen.apply(this, arguments as any); + }; + + const oldSend = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.send = function() { + this.addEventListener('load', () => { + const headers = self.parseHeaders(this.getAllResponseHeaders()); + if (Object.keys(headers).length > 0) { + self.render({ + status: 'success', + url: (this as any)._url, + type: (this as any)._method, + response: this.getResponseHeader('content-type') || 'unknown', + headers: headers + }); + } + }); + this.addEventListener('error', () => { + const headers = self.parseHeaders(this.getAllResponseHeaders()); + self.render({ + status: 'error', + url: (this as any)._url, + type: (this as any)._method, + error: this.statusText, + headers: headers + }); + }); + return oldSend.apply(this, arguments as any); + }; + + // Fetch Interception + const oldFetch = window.fetch; + window.fetch = async (...args) => { + const response = await oldFetch(...args); + const clone = response.clone(); + const headers: Record = {}; + clone.headers.forEach((val, key) => { + if (key.toLowerCase().startsWith('x-debugpress-')) { + headers[key.substring(13)] = val; + } + }); + + if (Object.keys(headers).length > 0) { + self.render({ + status: response.ok ? 'success' : 'error', + url: response.url, + type: (args[1] as RequestInit)?.method || 'GET', + response: response.headers.get('content-type') || 'unknown', + headers: headers + }); + } + return response; + }; + } + + private parseHeaders(rawHeaders: string): Record { + const list = rawHeaders.trim().split(/[\r\n]+/); + const headers: Record = {}; + + list.forEach((line) => { + const parts = line.split(": "); + const header = parts.shift(); + const value = parts.join(": "); + + if (header && header.substring(0, 13).toLowerCase() === "x-debugpress-") { + headers[header.substring(13)] = value; + } + }); + + return headers; + } + + render(ajax: AJAXTraceData): void { + if (!this.panel.ajax) { + return; + } + + const el = document.getElementById("debugpress-debugger-ajax-wrapper"); + const tab = document.getElementById("debugpress-debugger-tab-ajax-li"); + const buttons = document.querySelectorAll(".debugpress-debug-dialog-button"); + + if (!el) return; + + let count = parseInt(el.getAttribute("data-calls") || "0"); + if (count === 0) { + el.innerHTML = ""; + } + + count++; + el.setAttribute("data-calls", count.toString()); + + if (tab) { + const counter = tab.querySelector("a span.debugpress-counter"); + if (counter) counter.innerHTML = count.toString(); + } + + let response = "UNKNOWN"; + let render = ""; + + if (ajax.status === "success") { + if (ajax.response) { + response = ajax.response.toString().toUpperCase(); + } + render = `
    [SUCCESS] [${ajax.type} => ${response}] ${ajax.url}
    `; + } else { + render = `
    [ERROR] [${ajax.type} => ${ajax.error}] ${ajax.url}
    `; + } + + render += '
    '; + + Object.entries(ajax.headers).forEach(([key, val]) => { + render += ``; + }); + + render += '
    NameValue
    ${key}${val}
    '; + + const temp = document.createElement("div"); + temp.innerHTML = render; + while (temp.firstChild) { + el.appendChild(temp.firstChild); + } + + buttons.forEach(button => { + const btnEl = button as HTMLElement; + const ajaxIndicator = btnEl.querySelector(".debugpress-debug-has-ajax") as HTMLElement; + if (ajaxIndicator) { + ajaxIndicator.style.display = ""; + ajaxIndicator.innerHTML = count.toString(); + } + this.animateButton(btnEl); + }); + + // Also update main counts if it was meant to (original code did this differently in render) + // Original render didn't update this.panel.counts directly, it only updated UI. + // Wait, I should check if I should update main counts. + // In original code, update_counts was separate but not called from render! + // Oh, wait! I see... in original code, there were TWO renders! + // One in wp.dev4press.debugpress.ajax.render (line 83) and one in wp.dev4press.debugpress.tabs.ajax.render (line 91). + // I am confused. + } + + private animateButton(el: HTMLElement): void { + const steps = [ + { opacity: '0', duration: 50 }, + { opacity: '1', duration: 50 }, + { opacity: '0', duration: 100 }, + { opacity: '1', duration: 100 }, + { opacity: '0', duration: 50 }, + { opacity: '1', duration: 50 } + ]; + + let current = 0; + const nextStep = () => { + if (current < steps.length) { + el.style.opacity = steps[current].opacity; + setTimeout(nextStep, steps[current].duration); + current++; + } + }; + nextStep(); + } +} diff --git a/src/scripts/panel/features/Button.ts b/src/scripts/panel/features/Button.ts new file mode 100644 index 0000000..d91c941 --- /dev/null +++ b/src/scripts/panel/features/Button.ts @@ -0,0 +1,86 @@ +import { DebugPressPanel } from "../index"; + +export class Button { + private panel: DebugPressPanel; + + constructor(panel: DebugPressPanel) { + this.panel = panel; + } + + init(): void { + this.update(); + this.adminbar(); + + document.addEventListener("click", (e: MouseEvent) => { + const target = e.target as HTMLElement; + const link = target.closest(".debugpress-debug-dialog-button a"); + + if (link) { + e.preventDefault(); + + if (this.panel.popup) { + this.panel.popup.open(); + } + } + }); + } + + update(): void { + const buttons = document.querySelectorAll(".debugpress-debug-dialog-button"); + + buttons.forEach(button => { + const btnEl = button as HTMLElement; + + if (this.panel.counts.total > 0) { + const extra = this.panel.counts.errors > 0 ? "debugpress-debug-has-errors" : "debugpress-debug-has-warnings"; + + const errorsSpan = btnEl.querySelector(".debugpress-debug-has-errors") as HTMLElement; + if (errorsSpan) { + errorsSpan.style.display = "inline"; + errorsSpan.innerHTML = this.panel.counts.total.toString(); + } + + btnEl.classList.add(extra); + } + + if (this.panel.counts.storage !== undefined && this.panel.counts.storage > 0) { + const storedSpan = btnEl.querySelector(".debugpress-debug-has-stored") as HTMLElement; + if (storedSpan) { + storedSpan.style.display = "inline"; + storedSpan.innerHTML = this.panel.counts.storage.toString(); + } + } + + if (this.panel.counts.http !== undefined && this.panel.counts.http > 0) { + const httpSpan = btnEl.querySelector(".debugpress-debug-has-httpcalls") as HTMLElement; + if (httpSpan) { + httpSpan.style.display = "inline"; + httpSpan.innerHTML = this.panel.counts.http.toString(); + } + } + }); + } + + private adminbar(): void { + const bar = document.getElementById("wp-admin-bar-debugpress-debugger-button"); + + if (bar) { + const subWrapper = document.createElement("div"); + subWrapper.className = "ab-sub-wrapper"; + subWrapper.innerHTML = "
        "; + bar.appendChild(subWrapper); + + const statsKeys = Object.keys(this.panel.stats); + statsKeys.forEach((label, i) => { + const sel = (i + 1) === statsKeys.length ? ".ab-sub-secondary" : ".ab-sub-primary"; + const ul = subWrapper.querySelector(sel); + + if (ul) { + const li = document.createElement("li"); + li.innerHTML = `${label}: ${this.panel.stats[label]}`; + ul.appendChild(li); + } + }); + } + } +} diff --git a/src/scripts/panel/features/DebugLog.ts b/src/scripts/panel/features/DebugLog.ts new file mode 100644 index 0000000..9aeb121 --- /dev/null +++ b/src/scripts/panel/features/DebugLog.ts @@ -0,0 +1,49 @@ +export class DebugLog { + constructor() { + } + + init(): void { + document.addEventListener("click", (e: MouseEvent) => { + const target = e.target as HTMLElement; + const button = target.closest("button.debugpress-action-debuglog-load"); + if (button) { + e.preventDefault(); + this.loadDebugLog(); + } + }); + + window.addEventListener("resize", () => this.resize()); + window.addEventListener("orientationchange", () => this.resize()); + } + + private async loadDebugLog(): Promise { + const url = `${window.debugpress_data.ajax_endpoint}?action=debugpress_load_debuglog&_ajax_nonce=${window.debugpress_data.call_nonce}`; + + try { + const response = await fetch(url, { cache: "no-cache" }); + if (response.ok) { + const html = await response.text(); + const contentDiv = document.querySelector("#debugpress-debuglog-content div") as HTMLElement; + + if (contentDiv) { + contentDiv.innerHTML = html; + + this.resize(); + + contentDiv.scrollTop = contentDiv.scrollHeight; + } + } + } catch (error) { + console.error("DebugPress: Failed to load debug log", error); + } + } + + resize(): void { + const contentDiv = document.querySelector("#debugpress-debuglog-content div") as HTMLElement; + const flyinContent = document.querySelector(".flyin-style-debugpress-light .flyin-content") as HTMLElement; + + if (contentDiv && flyinContent) { + contentDiv.style.height = `${flyinContent.offsetHeight - 65}px`; + } + } +} diff --git a/src/scripts/panel/features/Dialog.ts b/src/scripts/panel/features/Dialog.ts new file mode 100644 index 0000000..cf8861e --- /dev/null +++ b/src/scripts/panel/features/Dialog.ts @@ -0,0 +1,279 @@ +import { DebugPressPanel } from "../index"; +import Flyin from "@dev4press/flyin"; + +export class Dialog { + private panel: DebugPressPanel; + + constructor(panel: DebugPressPanel) { + this.panel = panel; + } + + init(): void { + this.create(); + this.events(); + } + + create(): void { + const self = this; + + this.panel.popup = new Flyin("#debugpress-debugger-content-wrapper", { + settings: { + name: "debugpress-popup", + style: "debugpress-light", + modal: true, + effect: "fade", + closeEscape: true, + onLoad: false, + onLoadDelay: 200, + positionX: "center", + positionY: "center", + width: "95%", + height: "90%", + maxWidth: "100%", + maxHeight: "100%", + minWidth: "20%", + minHeight: "20%", + offsetX: "0px", + offsetY: "0px", + buttonFooter: false, + titleTag: "div", + keysOpen: window.debugpress_data.mousetrap ? window.debugpress_data.mousetrap_sequence : null, + keysClose: window.debugpress_data.mousetrap ? window.debugpress_data.mousetrap_sequence : null, + headerContent: document.getElementById("debugpress-debugger-content-header") || undefined, + footerContent: document.getElementById("debugpress-debugger-content-footer") || undefined, + buttonXContent: "", + storeCode: "debugpress-settings-" + (this.panel.admin ? "admin" : "frontend"), + save: this.panel.default_layout_object() + }, + callbacks: { + prepared: function(skin: any) { + self.panel.layout = { ...self.panel.default_layout_object(), ...skin.settings.save }; + self.load_state(skin); + }, + ready: function(core: any) { + self.panel.layout.last = core.skinInstance.settings.onLoad ? "open" : "closed"; + }, + afterOpen: function(skin: any) { + const activeTab = document.querySelector("#debugpress-debugger-tabs .debugpress-tab-active a") as HTMLElement; + + if (activeTab) { + activeTab.focus(); + } + + self.panel.layout.last = "open"; + self.save_state(skin); + self.panel.head.resize(); + }, + afterClose: function(skin: any) { + self.panel.layout.last = "closed"; + self.save_state(skin); + } + } + }); + } + + reposition(skin?: any): void { + const move: any = { + positionX: "center", + positionY: "center", + offsetX: 0, + offsetY: 0 + }; + const size: any = { + width: "95%", + height: "90%" + }; + const ratio = parseInt(this.panel.layout.ratio) + "%"; + + switch (this.panel.layout.layout) { + case "right": + move.positionX = "right"; + size.width = ratio; + size.height = "100%"; + break; + case "left": + move.positionX = "left"; + size.width = ratio; + size.height = "100%"; + break; + case "top": + move.positionY = "top"; + size.width = "100%"; + size.height = ratio; + break; + case "bottom": + move.positionY = "bottom"; + size.width = "100%"; + size.height = ratio; + break; + } + + const targetSkin = skin || this.panel.popup; + + if (targetSkin) { + targetSkin.mod({ settings: { modal: this.panel.layout.modal === "show" } }); + targetSkin.move(move); + targetSkin.resize(size); + } + + this.panel.head.resize(); + } + + save_state(skin?: any): void { + const targetSkin = skin || this.panel.popup; + + if (targetSkin) { + targetSkin.mod({ settings: { save: this.panel.layout } }); + targetSkin.save(); + } + } + + load_state(skin: any): void { + this.tab(this.panel.layout.tab); + + this.reposition(skin); + } + + events(): void { + window.addEventListener("resize", () => this.panel.head.resize()); + window.addEventListener("orientationchange", () => this.panel.head.resize()); + + document.addEventListener("click", (e: MouseEvent) => { + const target = e.target as HTMLElement; + + const openButton = target.closest("button.debugpress-action-dialog-open"); + if (openButton) { + e.preventDefault(); + const tab = openButton.getAttribute("data-tab"); + this.open(tab || undefined); + } + + const sidebarItem = target.closest("#debugpress-sidebar .debugpress-sidebar-item, #debugpress-debugger-tabs li a"); + if (sidebarItem) { + e.preventDefault(); + const tab = sidebarItem.getAttribute("data-tab") || (sidebarItem.getAttribute("href") || "").substring(1); + + if (tab && tab !== "debugpress-debugger-tab-close") { + this.tab(tab); + } else if (tab === "debugpress-debugger-tab-close") { + this.close(); + } + } + + // Layout/Modal settings + const layoutAction = target.closest(".debugpress-action-layout"); + if (layoutAction) { + e.preventDefault(); + const layout = layoutAction.getAttribute("data-layout"); + if (layout) { + this.panel.layout.layout = layout; + document.querySelectorAll(".debugpress-action-layout").forEach(el => el.classList.remove("debugpress-option-active")); + layoutAction.classList.add("debugpress-option-active"); + this.reposition(); + this.save_state(); + } + } + + const modalAction = target.closest(".debugpress-action-modal"); + if (modalAction) { + e.preventDefault(); + const modal = modalAction.getAttribute("data-modal"); + if (modal) { + this.panel.layout.modal = modal; + document.querySelectorAll(".debugpress-action-modal").forEach(el => el.classList.remove("debugpress-option-active")); + modalAction.classList.add("debugpress-option-active"); + this.reposition(); + this.save_state(); + } + } + + // Block toggle + const toggleSpan = target.closest(".debugpress-debugger-panel-block-title span"); + if (toggleSpan) { + const parent = toggleSpan.parentElement; + if (parent) { + const block = parent.nextElementSibling as HTMLElement; + const icon = toggleSpan.querySelector("i"); + + if (block && block.classList.contains("debugpress-debugger-panel-block")) { + if (block.style.display === "none") { + block.style.display = "block"; + if (icon) { + icon.classList.remove("debugpress-icon-square-plus"); + icon.classList.add("debugpress-icon-square-minus"); + } + } else { + block.style.display = "none"; + if (icon) { + icon.classList.remove("debugpress-icon-square-minus"); + icon.classList.add("debugpress-icon-square-plus"); + } + } + } + } + } + }); + + // Ratio slider + const ratioSlider = document.getElementById("debugpress-debugger-layout-ratio") as HTMLInputElement; + if (ratioSlider) { + ratioSlider.addEventListener("input", () => { + this.panel.layout.ratio = ratioSlider.value; + const valueDisplay = document.getElementById("debugpress-debugger-layout-ratio-value"); + if (valueDisplay) valueDisplay.innerHTML = ratioSlider.value + "%"; + this.reposition(); + }); + ratioSlider.addEventListener("change", () => { + this.save_state(); + }); + } + } + + tab(tab: string): void { + this.panel.layout.tab = tab; + + const sidebarItems = document.querySelectorAll("#debugpress-sidebar .debugpress-sidebar-item, #debugpress-debugger-tabs li"); + sidebarItems.forEach((item) => { + item.classList.remove("debugpress-sidebar-item-active"); + item.classList.remove("debugpress-tab-active"); + }); + + const activeSidebarItem = document.querySelector(`#debugpress-sidebar .debugpress-sidebar-item[data-tab='${tab}']`); + if (activeSidebarItem) activeSidebarItem.classList.add("debugpress-sidebar-item-active"); + + const activeTabItem = document.getElementById(`${tab}-li`); + if (activeTabItem) activeTabItem.classList.add("debugpress-tab-active"); + + const allTabs = document.querySelectorAll(".debugpress-tab-content"); + allTabs.forEach((t) => { + (t as HTMLElement).style.display = "none"; + t.classList.remove("debugpress-tab-active"); + }); + + const currentTab = document.getElementById(tab); + if (currentTab) { + currentTab.style.display = "block"; + currentTab.classList.add("debugpress-tab-active"); + } + + if (tab === "debugpress-debugger-tab-debuglog") { + this.panel.tabs.debuglog.resize(); + } + } + + open(tab?: string): void { + if (tab) { + this.tab(tab); + } + + if (this.panel.popup) { + this.panel.popup.open(); + } + } + + close(): void { + if (this.panel.popup) { + this.panel.popup.close(); + } + } +} diff --git a/src/scripts/panel/features/Header.ts b/src/scripts/panel/features/Header.ts new file mode 100644 index 0000000..6f07461 --- /dev/null +++ b/src/scripts/panel/features/Header.ts @@ -0,0 +1,100 @@ +import { DebugPressPanel } from "../index"; +import { HeaderSize } from "../types/panel"; + +export class Header { + private panel: DebugPressPanel; + + constructor(panel: DebugPressPanel) { + this.panel = panel; + } + + size(): HeaderSize { + const header = document.getElementById("debugpress-debugger-content-header"); + const firstTabIcon = document.querySelector("#debugpress-debugger-content-header li:first-child .debugpress-tab-ctrl-icon") as HTMLElement; + const firstTabSpan = document.querySelector("#debugpress-debugger-content-header li:first-child .debugpress-tab-ctrl-span") as HTMLElement; + + const iVisible = firstTabIcon ? (firstTabIcon.offsetWidth > 0 || firstTabIcon.offsetHeight > 0) : false; + const sVisible = firstTabSpan ? (firstTabSpan.offsetWidth > 0 || firstTabSpan.offsetHeight > 0) : false; + + const allIcons = document.querySelectorAll("#debugpress-debugger-content-header .debugpress-tab-ctrl-icon"); + const allSpans = document.querySelectorAll("#debugpress-debugger-content-header .debugpress-tab-ctrl-span"); + + allIcons.forEach(el => (el as HTMLElement).style.display = "inline-block"); + allSpans.forEach(el => (el as HTMLElement).style.display = "inline"); + + const lis = document.querySelectorAll("#debugpress-debugger-content-header ul li"); + let elements = 0; + let tabs = 0; + + lis.forEach(li => { + const el = li as HTMLElement; + tabs++; + const style = window.getComputedStyle(el); + const margin = parseFloat(style.marginLeft) + parseFloat(style.marginRight); + elements += el.offsetWidth + margin; + }); + + if (!iVisible) { + allIcons.forEach(el => (el as HTMLElement).style.display = "none"); + } + if (!sVisible) { + allSpans.forEach(el => (el as HTMLElement).style.display = "none"); + } + + return { + tabs: tabs, + icons: 24 * tabs, + elements: elements, + labels: elements - 24 * tabs, + full: (header ? header.clientWidth : 0) - 128 + }; + } + + resize(): void { + let s = 'full'; + + if (window.innerWidth > 800) { + const size = this.size(); + + if (size.full < size.elements) { + s = 'labels'; + + if (size.full < size.labels) { + s = 'icons'; + } + } + } + + if (this.panel.header.state !== s) { + this.panel.header.state = s; + this.update(); + } + } + + update(): void { + const icons = document.querySelectorAll("#debugpress-debugger-content-header .debugpress-tab-ctrl-icon"); + const spans = document.querySelectorAll("#debugpress-debugger-content-header .debugpress-tab-ctrl-span"); + + icons.forEach(el => { + const element = el as HTMLElement; + element.style.display = "inline-block"; + element.style.paddingRight = "5px"; + }); + spans.forEach(el => (el as HTMLElement).style.display = "inline"); + + switch (this.panel.header.state) { + case 'labels': + icons.forEach(el => (el as HTMLElement).style.display = "none"); + spans.forEach(el => (el as HTMLElement).style.display = "inline"); + break; + case 'icons': + icons.forEach(el => { + const element = el as HTMLElement; + element.style.display = "inline-block"; + element.style.paddingRight = "0"; + }); + spans.forEach(el => (el as HTMLElement).style.display = "none"); + break; + } + } +} diff --git a/src/scripts/panel/features/Hooks.ts b/src/scripts/panel/features/Hooks.ts new file mode 100644 index 0000000..c258e31 --- /dev/null +++ b/src/scripts/panel/features/Hooks.ts @@ -0,0 +1,179 @@ +import { HookFilters } from "../types/panel"; + +export class Hooks { + public filters: HookFilters = { + all: { + types: [] + }, + active: { + show: "all", + types: [] + } + }; + + constructor() { + } + + init(): void { + this.prepare(); + this.events(); + } + + private prepare(): void { + const types = document.querySelectorAll("#debugpress-debugger-tab-hooks .sqlq-option-type"); + types.forEach((el) => { + const type = el.getAttribute("data-type"); + if (type) { + this.filters.active.types.push(type); + this.filters.all.types.push(type); + } + }); + } + + private filter(): void { + this.filters.all.types.forEach((type) => { + const selector = "dbg-hook-" + type.replace(/::/g, "--"); + const elements = document.querySelectorAll(`table.dbg-hooks-actions .${selector}, table#dbg-hooks-list > tbody > tr.${selector}`); + elements.forEach((el) => (el as HTMLElement).style.display = "none"); + }); + + this.filters.active.types.forEach((type) => { + const selector = "dbg-hook-" + type.replace(/::/g, "--"); + const elements = document.querySelectorAll(`table.dbg-hooks-actions .${selector}, table#dbg-hooks-list > tbody > tr.${selector}`); + elements.forEach((el) => (el as HTMLElement).style.display = ""); + }); + } + + private events(): void { + document.addEventListener("click", (e: MouseEvent) => { + const target = e.target as HTMLElement; + + // Search button + const searchButton = target.closest("button.debugpress-action-hooks-search"); + if (searchButton) { + e.preventDefault(); + this.performSearch(); + } + + // Item header toggle + const header = target.closest("#debugpress-hooks-items .debugpress-hooks-item-header"); + if (header) { + const parent = header.parentElement; + if (parent) { + const details = parent.querySelector(".debugpress-hooks-item-details") as HTMLElement; + if (parent.classList.contains("debugpress-hooks-item-open")) { + parent.classList.remove("debugpress-hooks-item-open"); + if (details) details.style.display = "none"; + } else { + parent.classList.add("debugpress-hooks-item-open"); + if (details) details.style.display = "block"; + } + } + } + + // Callbacks visibility + const callbackOption = target.closest("#debugpress-debugger-tab-hooks .sqlq-option-callbacks"); + if (callbackOption) { + e.preventDefault(); + if (callbackOption.classList.contains("sqlq-option-off")) { + const on = callbackOption.id.substring(9); + const tds = document.querySelectorAll(".dbg-hooks-actions .dbg-hook-column-action"); + + tds.forEach((td) => { + if (on === "full") { + td.classList.add("dbg-calls-show"); + } else { + td.classList.remove("dbg-calls-show"); + } + }); + + document.querySelectorAll("#debugpress-debugger-tab-hooks .sqlq-option-callbacks").forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + callbackOption.classList.remove("sqlq-option-off"); + callbackOption.classList.add("sqlq-option-on"); + } + } + + // Type filter + const typeOption = target.closest("#debugpress-debugger-tab-hooks .sqlq-option-type"); + if (typeOption) { + e.preventDefault(); + const id = typeOption.getAttribute("data-type"); + if (id) { + if (typeOption.classList.contains("sqlq-option-off")) { + this.filters.active.types.push(id); + typeOption.classList.add("sqlq-option-on"); + typeOption.classList.remove("sqlq-option-off"); + } else { + this.filters.active.types = this.filters.active.types.filter(t => t !== id); + typeOption.classList.add("sqlq-option-off"); + typeOption.classList.remove("sqlq-option-on"); + } + this.filter(); + } + } + + // Reset filters + const resetOption = target.closest("#debugpress-debugger-tab-hooks .sqlq-types-reset"); + if (resetOption) { + e.preventDefault(); + const on = resetOption.id.substring(10); + const allTypesOptions = document.querySelectorAll("#debugpress-debugger-tab-hooks .sqlq-option-type"); + + if (on === "hide") { + this.filters.active.types = []; + allTypesOptions.forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + } else { + this.filters.active.types = [...this.filters.all.types]; + allTypesOptions.forEach(el => { + el.classList.add("sqlq-option-on"); + el.classList.remove("sqlq-option-off"); + }); + } + + document.querySelectorAll("#debugpress-debugger-tab-hooks .sqlq-types-reset").forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + resetOption.classList.remove("sqlq-option-off"); + resetOption.classList.add("sqlq-option-on"); + + this.filter(); + } + + // Callback expander + const expander = target.closest("#debugpress-debugger-tab-hooks .dbg-callback-button-expander"); + if (expander) { + const parent = expander.parentElement; + if (parent) { + parent.classList.toggle("dbg-calls-show"); + } + } + }); + } + + private performSearch(): void { + const searchInput = document.getElementById("debugpress-hooks-search-value") as HTMLInputElement; + const search = searchInput?.value || ""; + const items = document.querySelectorAll("#debugpress-hooks-items .debugpress-hooks-item"); + + items.forEach((item) => { + const htmlItem = item as HTMLElement; + if (search === "") { + htmlItem.style.display = ""; + } else { + const searchAttr = htmlItem.getAttribute("data-search") || ""; + if (searchAttr.includes(search)) { + htmlItem.style.display = ""; + } else { + htmlItem.style.display = "none"; + } + } + }); + } +} diff --git a/src/scripts/panel/features/Queries.ts b/src/scripts/panel/features/Queries.ts new file mode 100644 index 0000000..c79e947 --- /dev/null +++ b/src/scripts/panel/features/Queries.ts @@ -0,0 +1,430 @@ +import { DebugPressPanel } from "../index"; +import { QueryFilters } from "../types/panel"; + +export class Queries { + private panel: DebugPressPanel; + public filters: QueryFilters = { + total: { + queries: 0, + total: 0 + }, + all: { + caller: [], + types: [], + tables: [], + sources: [] + }, + active: { + show: "all", + caller: [], + types: [], + tables: [], + sources: [], + search: "" + } + }; + + constructor(panel: DebugPressPanel) { + this.panel = panel; + } + + init(): void { + this.prepare(); + this.events(); + } + + private prepare(): void { + const caller = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-caller"); + const types = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-type"); + const tables = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-table"); + const sources = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-source"); + + const queriesStat = document.getElementById("sqlq-stats-filter-queries"); + const totalStat = document.getElementById("sqlq-stats-filter-total"); + + this.filters.total.queries = parseInt(queriesStat?.innerHTML || "0"); + this.filters.total.total = parseFloat(totalStat?.innerHTML || "0"); + + caller.forEach((el) => { + const val = parseInt(el.getAttribute("data-caller") || "0"); + this.filters.active.caller.push(val); + this.filters.all.caller.push(val); + }); + + types.forEach((el) => { + const val = el.getAttribute("data-type") || ""; + this.filters.active.types.push(val); + this.filters.all.types.push(val); + }); + + tables.forEach((el) => { + const val = parseInt(el.getAttribute("data-table") || "0"); + this.filters.active.tables.push(val); + this.filters.all.tables.push(val); + }); + + if (sources.length > 0) { + sources.forEach((el) => { + const val = el.getAttribute("data-source") || ""; + this.filters.active.sources.push(val); + this.filters.all.sources.push(val); + }); + } else { + this.filters.active.sources.push("n/a"); + this.filters.all.sources.push("n/a"); + } + } + + public filter(): void { + const sqls = document.querySelectorAll(".sql-query-list > .sql-query"); + const stats = { + queries: 0, + total: 0, + min: -1, + max: -1, + avg: 0 + }; + const ratio = { + queries: 0, + total: 0 + }; + + sqls.forEach((el) => { + const sql = el as HTMLElement; + const tables = (sql.getAttribute("data-tables") || "").split(","); + const caller = parseInt(sql.getAttribute("data-caller") || "0"); + const source = sql.getAttribute("data-source") || ""; + const type = sql.getAttribute("data-type") || ""; + const speed = sql.getAttribute("data-speed") || ""; + const timer = parseFloat(sql.getAttribute("data-time") || "0"); + const search = sql.getAttribute("data-search") || ""; + + const filters = this.filters.active; + let on = true; + + if (filters.show !== "all" && filters.show !== speed) { + on = false; + } + + if (on && filters.caller.indexOf(caller) === -1) { + on = false; + } + + if (on && filters.types.indexOf(type) === -1) { + on = false; + } + + if (on && filters.sources.indexOf(source) === -1) { + on = false; + } + + if (on && filters.search !== "" && !search.includes(filters.search)) { + on = false; + } + + if (on) { + let c = 0; + for (let i = 0; i < tables.length; i++) { + if (filters.tables.indexOf(parseInt(tables[i])) > -1) { + c++; + } + } + if (c === 0) on = false; + } + + if (on) { + if (stats.min === -1 || stats.min > timer) stats.min = timer; + if (stats.max === -1 || stats.max < timer) stats.max = timer; + + stats.queries++; + stats.total += timer; + sql.style.display = ""; + } else { + sql.style.display = "none"; + } + }); + + if (stats.queries > 0) { + stats.avg = stats.total / stats.queries; + ratio.queries = Math.round((stats.queries / this.filters.total.queries) * 100); + ratio.total = Math.round((stats.total / this.filters.total.total) * 100); + } else { + stats.min = 0; + stats.max = 0; + } + + Object.entries(stats).forEach(([idx, value]) => { + const el = document.getElementById("sqlq-stats-filter-" + idx); + if (el) { + el.innerHTML = idx !== "queries" ? value.toFixed(6) : value.toString(); + } + }); + + Object.entries(ratio).forEach(([idx, value]) => { + const el = document.getElementById("sqlq-stats-ratio-" + idx); + if (el) el.innerHTML = value + "%"; + }); + } + + private events(): void { + document.addEventListener("click", (e: MouseEvent) => { + const target = e.target as HTMLElement; + + // Calls visibility (full/compact) + const callsOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-calls"); + if (callsOption) { + e.preventDefault(); + if (callsOption.classList.contains("sqlq-option-off")) { + const on = callsOption.id.substring(9); + const off = on === "full" ? "compact" : "full"; + + document.querySelectorAll(".sql-calls-" + on).forEach(el => (el as HTMLElement).style.display = ""); + document.querySelectorAll(".sql-calls-" + off).forEach(el => (el as HTMLElement).style.display = "none"); + + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-calls").forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + callsOption.classList.remove("sqlq-option-off"); + callsOption.classList.add("sqlq-option-on"); + } + } + + // Sort option + const sortOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-sort"); + if (sortOption) { + e.preventDefault(); + const field = sortOption.id.substring(9); + if (sortOption.classList.contains("sqlq-option-off")) { + this.panel.status.sql_sort = field; + this.sort(); + + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-sort").forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + sortOption.classList.remove("sqlq-option-off"); + sortOption.classList.add("sqlq-option-on"); + } else { + this.panel.status.sql_order = this.panel.status.sql_order === "asc" ? "desc" : "asc"; + this.sort(); + } + } + + // Show option (speed) + const showOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-show"); + if (showOption) { + e.preventDefault(); + if (showOption.classList.contains("sqlq-option-off")) { + this.filters.active.show = showOption.getAttribute("data-show") || "all"; + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-show").forEach(el => { + el.classList.add("sqlq-option-off"); + el.classList.remove("sqlq-option-on"); + }); + showOption.classList.remove("sqlq-option-off"); + showOption.classList.add("sqlq-option-on"); + this.filter(); + } + } + + // Table reset + const resetOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-reset"); + if (resetOption) { + e.preventDefault(); + const on = resetOption.id.substring(10); + const tableOptions = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-table"); + if (on === "hide") { + this.filters.active.tables = []; + tableOptions.forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + } else { + this.filters.active.tables = [...this.filters.all.tables]; + tableOptions.forEach(el => { el.classList.add("sqlq-option-on"); el.classList.remove("sqlq-option-off"); }); + } + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-reset").forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + resetOption.classList.remove("sqlq-option-off"); resetOption.classList.add("sqlq-option-on"); + this.filter(); + } + + // Table option + const tableOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-table"); + if (tableOption) { + e.preventDefault(); + const id = parseInt(tableOption.getAttribute("data-table") || "0"); + if (tableOption.classList.contains("sqlq-option-off")) { + this.filters.active.tables.push(id); + tableOption.classList.add("sqlq-option-on"); tableOption.classList.remove("sqlq-option-off"); + } else { + this.filters.active.tables = this.filters.active.tables.filter(t => t !== id); + tableOption.classList.add("sqlq-option-off"); tableOption.classList.remove("sqlq-option-on"); + } + this.filter(); + } + + // Caller option + const callerOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-caller"); + if (callerOption) { + e.preventDefault(); + const id = parseInt(callerOption.getAttribute("data-caller") || "0"); + if (callerOption.classList.contains("sqlq-option-off")) { + this.filters.active.caller.push(id); + callerOption.classList.add("sqlq-option-on"); callerOption.classList.remove("sqlq-option-off"); + } else { + this.filters.active.caller = this.filters.active.caller.filter(t => t !== id); + callerOption.classList.add("sqlq-option-off"); callerOption.classList.remove("sqlq-option-on"); + } + this.filter(); + } + + // Caller reset + const callerReset = target.closest("#debugpress-debugger-tab-queries .sqlq-caller-reset"); + if (callerReset) { + e.preventDefault(); + const on = callerReset.id.substring(11); + const callerOptions = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-caller"); + if (on === "hide") { + this.filters.active.caller = []; + callerOptions.forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + } else { + this.filters.active.caller = [...this.filters.all.caller]; + callerOptions.forEach(el => { el.classList.add("sqlq-option-on"); el.classList.remove("sqlq-option-off"); }); + } + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-caller-reset").forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + callerReset.classList.remove("sqlq-option-off"); callerReset.classList.add("sqlq-option-on"); + this.filter(); + } + + // Type option + const typeOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-type"); + if (typeOption) { + e.preventDefault(); + const id = typeOption.getAttribute("data-type") || ""; + if (typeOption.classList.contains("sqlq-option-off")) { + this.filters.active.types.push(id); + typeOption.classList.add("sqlq-option-on"); typeOption.classList.remove("sqlq-option-off"); + } else { + this.filters.active.types = this.filters.active.types.filter(t => t !== id); + typeOption.classList.add("sqlq-option-off"); typeOption.classList.remove("sqlq-option-on"); + } + this.filter(); + } + + // Type reset + const typeReset = target.closest("#debugpress-debugger-tab-queries .sqlq-types-reset"); + if (typeReset) { + e.preventDefault(); + const on = typeReset.id.substring(10); + const typeOptions = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-type"); + if (on === "hide") { + this.filters.active.types = []; + typeOptions.forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + } else { + this.filters.active.types = [...this.filters.all.types]; + typeOptions.forEach(el => { el.classList.add("sqlq-on"); el.classList.remove("sqlq-off"); }); // Fixed: class names were wrong in original but I'll use consistent ones + } + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-types-reset").forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + typeReset.classList.remove("sqlq-option-off"); typeReset.classList.add("sqlq-option-on"); + this.filter(); + } + + // Source option + const sourceOption = target.closest("#debugpress-debugger-tab-queries .sqlq-option-source"); + if (sourceOption) { + e.preventDefault(); + const id = sourceOption.getAttribute("data-source") || ""; + if (sourceOption.classList.contains("sqlq-option-off")) { + this.filters.active.sources.push(id); + sourceOption.classList.add("sqlq-option-on"); sourceOption.classList.remove("sqlq-option-off"); + } else { + this.filters.active.sources = this.filters.active.sources.filter(t => t !== id); + sourceOption.classList.add("sqlq-option-off"); sourceOption.classList.remove("sqlq-option-on"); + } + this.filter(); + } + + // Source reset + const sourceReset = target.closest("#debugpress-debugger-tab-queries .sqlq-source-reset"); + if (sourceReset) { + e.preventDefault(); + const on = sourceReset.id.substring(11); + const sourceOptions = document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-option-source"); + if (on === "hide") { + this.filters.active.sources = []; + sourceOptions.forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + } else { + this.filters.active.sources = [...this.filters.all.sources]; + sourceOptions.forEach(el => { el.classList.add("sqlq-option-on"); el.classList.remove("sqlq-option-off"); }); + } + document.querySelectorAll("#debugpress-debugger-tab-queries .sqlq-source-reset").forEach(el => { el.classList.add("sqlq-option-off"); el.classList.remove("sqlq-option-on"); }); + sourceReset.classList.remove("sqlq-option-off"); sourceReset.classList.add("sqlq-option-on"); + this.filter(); + } + + // Calls expander + const expander = target.closest("#debugpress-debugger-tab-queries .sql-calls-button-expander"); + if (expander) { + const parent = expander.parentElement; + const query = parent?.parentElement; + if (parent && query) { + const full = parent.classList.contains("sql-calls-full"); + parent.style.display = "none"; + if (full) { + const compact = query.querySelector(".sql-calls-compact") as HTMLElement; + if (compact) compact.style.display = ""; + } else { + const fullEl = query.querySelector(".sql-calls-full") as HTMLElement; + if (fullEl) fullEl.style.display = ""; + } + } + } + + // Item header toggle + const header = target.closest("#debugpress-queries-items .debugpress-queries-item-header"); + if (header) { + const parent = header.parentElement; + if (parent) { + const details = parent.querySelector(".debugpress-queries-item-details") as HTMLElement; + if (parent.classList.contains("debugpress-queries-item-open")) { + parent.classList.remove("debugpress-queries-item-open"); + if (details) details.style.display = "none"; + } else { + parent.classList.add("debugpress-queries-item-open"); + if (details) details.style.display = "block"; + } + } + } + }); + + // Search input + const searchInput = document.getElementById("debugpress-queries-search-value") as HTMLInputElement; + if (searchInput) { + searchInput.addEventListener("input", () => { + this.filters.active.search = searchInput.value; + this.filter(); + }); + } + } + + public sort(): void { + const container = document.querySelector(".sql-query-list"); + if (!container) return; + + const items = Array.from(container.querySelectorAll(".sql-query")); + const sortField = this.panel.status.sql_sort; + const order = this.panel.status.sql_order; + + items.sort((a, b) => { + const an = parseFloat(a.getAttribute(`data-${sortField}`) || "0"); + const bn = parseFloat(b.getAttribute(`data-${sortField}`) || "0"); + + if (order === "asc") { + return an - bn; + } else { + return bn - an; + } + }); + + items.forEach((item) => { + container.appendChild(item); + }); + } +} diff --git a/src/scripts/panel/index.scss b/src/scripts/panel/index.scss new file mode 100644 index 0000000..22fd58f --- /dev/null +++ b/src/scripts/panel/index.scss @@ -0,0 +1,13 @@ +@use "scss/functions" as *; +@use "scss/icons" as *; +@use "scss/embeds"; +@use "scss/variables" as *; +@use "scss/vars"; +@use "scss/font"; +@use "scss/grid" as *; +@use "scss/basic" as *; +@use "scss/button"; +@use "scss/layout"; +@use "scss/flyin"; +@use "scss/debugger"; +@use "scss/responsive" as *; diff --git a/src/scripts/panel/index.ts b/src/scripts/panel/index.ts new file mode 100644 index 0000000..aebc4a4 --- /dev/null +++ b/src/scripts/panel/index.ts @@ -0,0 +1,93 @@ +import Flyin from '@dev4press/flyin'; +import {DebugLog} from './features/DebugLog'; +import {AJAXTrace} from './features/AJAXTrace'; +import {Hooks} from './features/Hooks'; +import {Queries} from './features/Queries'; +import {Dialog} from './features/Dialog'; +import {Button} from './features/Button'; +import {Header} from './features/Header'; +import {DebugPressCounts, DebugPressHeader, DebugPressLayout, DebugPressStatus} from './types/panel'; +import './index.scss'; + +export class DebugPressPanel { + public layout: DebugPressLayout; + public header: DebugPressHeader = { + state: "full" + }; + public status: DebugPressStatus = { + sql_sort: "order", + sql_order: "asc" + }; + public counts: DebugPressCounts = { + total: 0, + errors: 0, + doingitwrong: 0, + deprecated: 0, + http: 0, + storage: 0 + }; + public stats: Record = {}; + public ajax: boolean = false; + public admin: boolean = false; + public tab: string = ""; + + public tabs: { + debuglog: DebugLog; + ajax: AJAXTrace; + hooks: Hooks; + queries: Queries; + }; + public dialog: Dialog; + public button: Button; + public head: Header; + public popup: Flyin | null = null; + + constructor() { + this.layout = this.default_layout_object(); + this.tabs = { + debuglog: new DebugLog(), + ajax: new AJAXTrace(this), + hooks: new Hooks(), + queries: new Queries(this) + }; + this.dialog = new Dialog(this); + this.button = new Button(this); + this.head = new Header(this); + } + + public default_layout_object(): DebugPressLayout { + return { + layout: "full", + modal: "show", + open: "manual", + ratio: "40", + tab: "debugpress-debugger-tab-basics", + last: "closed", + close: [] + }; + } + + public init(counts: DebugPressCounts, stats: Record, ajax: boolean, admin: boolean): void { + this.counts = counts; + this.stats = stats; + this.ajax = ajax; + this.admin = admin; + + this.button.init(); + this.dialog.init(); + + if (this.ajax) { + this.tabs.ajax.init(); + } + + this.tabs.debuglog.init(); + this.tabs.queries.init(); + this.tabs.hooks.init(); + + this.head.resize(); + } +} + +// Global exposure +const DebugPressPanelInstance = new DebugPressPanel(); +window.DebugPressPanelInstance = DebugPressPanelInstance; diff --git a/scss/components/_basic.scss b/src/scripts/panel/scss/_basic.scss similarity index 87% rename from scss/components/_basic.scss rename to src/scripts/panel/scss/_basic.scss index 4a43f02..57b06d7 100644 --- a/scss/components/_basic.scss +++ b/src/scripts/panel/scss/_basic.scss @@ -1,22 +1,22 @@ -@use "../includes/variables" as *; - -.#{$prefix}-clearfix:before, -.#{$prefix}-clearfix:after { - content: " "; - display: table; -} - -.#{$prefix}-clearfix:after { - clear: both; -} - -#wpadminbar .#{$font-prefix-ctrl} { - vertical-align: text-top !important; - font-size: 19px !important; - font-family: debugpress, cursive !important; - line-height: 1; -} - -#wp-admin-bar-debugpress-debugger-button { - float: right !important; -} +@use "./variables" as *; + +.#{$prefix}-clearfix:before, +.#{$prefix}-clearfix:after { + content: " "; + display: table; +} + +.#{$prefix}-clearfix:after { + clear: both; +} + +#wpadminbar .#{$font-prefix-ctrl} { + vertical-align: text-top !important; + font-size: 19px !important; + font-family: debugpress, cursive !important; + line-height: 1; +} + +#wp-admin-bar-debugpress-debugger-button { + float: right !important; +} diff --git a/scss/components/_button.scss b/src/scripts/panel/scss/_button.scss similarity index 95% rename from scss/components/_button.scss rename to src/scripts/panel/scss/_button.scss index 92ebab2..6ef3000 100644 --- a/scss/components/_button.scss +++ b/src/scripts/panel/scss/_button.scss @@ -1,119 +1,119 @@ -.debugpress-float-button { - position: fixed; - background-color: #23282D; - border: 1px solid #23282D; - box-shadow: 0 0 3px rgb(35 40 45 / 70%); - z-index: 142000; - padding: 5px; - - a { - display: block; - height: 22px; - line-height: 22px; - outline: none !important; - text-decoration: none; - - &:focus { - box-shadow: none; - } - } - - &.debugpress-position-topright { - right: 5px; - top: 5px; - } - - &.debugpress-position-topleft { - left: 5px; - top: 5px; - } - - &.debugpress-position-bottomright { - right: 5px; - bottom: 5px; - } - - &.debugpress-position-bottomleft { - left: 5px; - bottom: 5px; - } - - .debugpress-icon { - font-size: 24px !important; - vertical-align: top; - } -} - -.debugpress-debug-dialog-button { - &.debugpress-float-button { - a { - .debugpress-debug-button-indicators { - vertical-align: 8px; - } - } - } - - a { - .debugpress-debug-button-indicators { - .debugpress-debug-has-errors, - .debugpress-debug-has-stored, - .debugpress-debug-has-httpcalls, - .debugpress-debug-has-ajax { - padding: 2px 3px !important; - border-radius: 3px !important; - color: #FFF; - font-size: 11px !important; - max-height: 12px !important; - margin: 4px !important; - } - - .debugpress-debug-has-httpcalls { - background-color: #2AAAE5; - } - - .debugpress-debug-has-ajax { - background-color: #D82AE5; - } - - .debugpress-debug-has-stored { - background-color: #19A514; - } - - .debugpress-debug-has-errors { - background-color: #ED1E24; - } - } - } - - > a, > a:hover { - color: #69FB3B !important; - } - - &.debugpress-debug-has-warnings { - > a, > :hover { - color: #FF0 !important; - } - } - - &.debugpress-debug-has-errors { - > a, > :hover { - color: #FF3232 !important; - } - } - - .ab-sub-wrapper { - left: auto; - right: 0; - - .ab-item { - display: flex !important; - justify-content: space-between; - align-items: center; - column-gap: 1em; - - span { - font-weight: 700; - } - } - } -} +.debugpress-float-button { + position: fixed; + background-color: #23282D; + border: 1px solid #23282D; + box-shadow: 0 0 3px rgb(35 40 45 / 70%); + z-index: 142000; + padding: 5px; + + a { + display: block; + height: 22px; + line-height: 22px; + outline: none !important; + text-decoration: none; + + &:focus { + box-shadow: none; + } + } + + &.debugpress-position-topright { + right: 5px; + top: 5px; + } + + &.debugpress-position-topleft { + left: 5px; + top: 5px; + } + + &.debugpress-position-bottomright { + right: 5px; + bottom: 5px; + } + + &.debugpress-position-bottomleft { + left: 5px; + bottom: 5px; + } + + .debugpress-icon { + font-size: 24px !important; + vertical-align: top; + } +} + +.debugpress-debug-dialog-button { + &.debugpress-float-button { + a { + .debugpress-debug-button-indicators { + vertical-align: 8px; + } + } + } + + a { + .debugpress-debug-button-indicators { + .debugpress-debug-has-errors, + .debugpress-debug-has-stored, + .debugpress-debug-has-httpcalls, + .debugpress-debug-has-ajax { + padding: 2px 3px !important; + border-radius: 3px !important; + color: #FFF; + font-size: 11px !important; + max-height: 12px !important; + margin: 4px !important; + } + + .debugpress-debug-has-httpcalls { + background-color: #2AAAE5; + } + + .debugpress-debug-has-ajax { + background-color: #D82AE5; + } + + .debugpress-debug-has-stored { + background-color: #19A514; + } + + .debugpress-debug-has-errors { + background-color: #ED1E24; + } + } + } + + > a, > a:hover { + color: #69FB3B !important; + } + + &.debugpress-debug-has-warnings { + > a, > :hover { + color: #FF0 !important; + } + } + + &.debugpress-debug-has-errors { + > a, > :hover { + color: #FF3232 !important; + } + } + + .ab-sub-wrapper { + left: auto; + right: 0; + + .ab-item { + display: flex !important; + justify-content: space-between; + align-items: center; + column-gap: 1em; + + span { + font-weight: 700; + } + } + } +} diff --git a/scss/components/_debugger.scss b/src/scripts/panel/scss/_debugger.scss similarity index 95% rename from scss/components/_debugger.scss rename to src/scripts/panel/scss/_debugger.scss index 1c3e35f..27acd7a 100644 --- a/scss/components/_debugger.scss +++ b/src/scripts/panel/scss/_debugger.scss @@ -1,532 +1,532 @@ -.debugpress-style-popup { - #debugpress-debugger-tabs { - margin: 0; - padding: 0; - list-style: none; - font-size: var(--debugpress-base-font-size); - line-height: 26px; - width: calc(100% - 30px); - - li { - float: left; - height: 28px; - line-height: 26px; - margin: 0; - padding: 0 10px; - list-style: none; - - .debugpress-tab-ctrl-icon { - padding-right: 5px; - font-size: calc(var(--debugpress-base-font-size) + 2px); - } - - a { - color: #EEE; - box-shadow: none; - outline: none; - text-decoration: none; - } - - &.debugpress-tab-active { - background: #FFF; - height: 33px; - - a { - color: #23282D; - font-weight: 700; - } - } - - &#debugpress-debugger-tab-layout-li, - &#debugpress-debugger-tab-tools-li, - &#debugpress-debugger-tab-debuglog-li { - float: right; - - i { - font-size: 120%; - vertical-align: text-bottom; - } - } - } - } - - .debugpress-pre-wrap { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-weight: 700; - font-size: var(--debugpress-sql-font-size); - margin: 0 0 5px; - padding: 5px; - - pre { - color: #000; - background-color: #FFF; - } - } - - #debugpress-debugger-content-wrapper { - .debugpress-tab-content { - display: none; - - &.debugpress-tab-active { - display: block; - } - } - } - - #debugpress-debugger-select { - display: none; - font-size: calc(var(--debugpress-base-font-size) + 1px); - height: 28px; - line-height: 28px; - margin: 0; - padding: 0 10px; - width: calc(100% - 30px); - min-height: 28px; - max-width: 100%; - border-radius: 0; - border: 0; - } - - .debugpress-debugger-footer-right { - float: right; - } - - .debugpress-debugger-footer-left { - float: left; - - div { - display: inline; - } - } - - #debugpress-debugger-content-wrapper { - .debugpress-events-log-toggle { - font-weight: 700; - } - - .debugpress-events-log-toggler { - border-left: 1px solid #888; - padding-left: 10px; - display: none; - - &.debugpress-events-log-toggler-opened { - display: block; - } - } - - .debugpress-error-message { - font-weight: 700; - font-style: italic; - color: #F00; - } - } - - .debugpress-debugger-panel-block { - margin: 5px 0 10px; - display: block; - overflow: auto; - - p { - padding: 0; - margin: 0 0 .5em; - } - - .sql-calls-button-expander { - font-weight: 700; - font-size: calc(var(--debugpress-base-font-size) - 1px); - color: #FFF !important; - background: #0073AA; - padding: 0 6px 3px; - margin: 0 0 0 10px; - border-radius: 3px; - } - } - - .debugpress-debugger-panel-block-title { - background: #23282D; - color: #FFF; - padding: 5px 8px !important; - font-size: 12px; - margin: 0; - - > i.debugpress-icon { - font-size: 1.5em; - margin: 0 5px 0 0; - } - - span { - float: right; - font-size: 18px; - cursor: pointer; - - i.debugpress-icon { - vertical-align: top; - } - } - } - - .debugpress-query-sidebar-control { - background: #23282D; - color: #FFF; - padding: 5px !important; - font-size: calc(var(--debugpress-base-font-size) - 1px); - margin: 0 0 10px; - text-align: right; - - span { - font-size: calc(var(--debugpress-base-font-size) + 4px); - cursor: pointer; - padding-right: 4px; - vertical-align: top; - - i.debugpress-icon { - vertical-align: bottom; - } - } - } - - .debugpress-debugger-panel-block-subtitle { - background: #777; - color: #FFF; - margin: 5px 0; - padding: 2px 5px !important; - font-size: calc(var(--debugpress-base-font-size) - 2px); - line-height: 20px; - } - - .debugpress-debugger-table { - width: 100%; - table-layout: auto; - margin: 0; - border: 1px solid #DDD; - background: #FFF; - border-collapse: collapse; - font-size: calc(var(--debugpress-base-font-size) - 1px); - line-height: 20px; - - thead { - background: #DDD; - } - - th, - td { - border: 1px solid #E8E8E8; - text-align: left; - padding: 1px 4px !important; - font-size: calc(var(--debugpress-base-font-size) - 1px); - - .kint-rich { - margin: 0; - - > dl > .kint-parent { - margin-top: 0; - } - } - } - - td { - border-width: 0 1px 1px 0; - vertical-align: top; - } - - tr:nth-of-type(2n) { - background: #FAFAFA; - } - - &.debugpress-table-keyvalue { - tr { - td { - &:first-child { - width: 30%; - } - } - } - } - - .debugpress_r.debugpress_r_root { - margin: 0; - } - } - - #debugpress-debugger-tab-hooks, - #debugpress-debugger-tab-queries { - .debugpress-debugger-table { - &.debugpress-table-keyvalue { - tr { - td { - &:first-child { - width: 70%; - } - } - } - } - } - } - - #debugpress-debugger-tab-hooks { - #dbg-hooks-list { - > thead { - th, - td { - padding: 3px 8px !important; - } - } - - > tbody { - > tr { - > th { - padding: 3px 8px !important; - vertical-align: top; - width: 20%; - } - - > td { - padding: 0 !important; - - &.dbg-hook-no-callbacks { - padding: 4px 6px 4px 82px !important; - font-weight: 700; - } - } - } - } - - .dbg-hooks-actions { - width: 100%; - table-layout: auto; - margin: 0; - border: 0; - background: #FFF; - border-collapse: collapse; - font-size: calc(var(--debugpress-base-font-size) - 1px); - - tr { - td { - padding: 3px 5px !important; - - &:first-child { - width: 80px; - text-align: right; - } - - &:last-child { - width: 30%; - } - - &.dbg-hook-column-action { - em { - font-family: monospace; - font-weight: 700; - font-style: normal; - } - - div { - display: none; - } - - .dbg-hook-action-callback-call { - display: block; - - strong { - font-weight: 400; - font-family: monospace; - } - } - - &.dbg-calls-show { - div { - display: block; - } - } - - button { - float: right; - font-weight: 700; - font-size: calc(var(--debugpress-base-font-size) - 1px); - color: #FFF !important; - background: #0073AA; - padding: 0 6px 3px; - margin: 0 0 0 10px; - border: 0; - border-radius: 3px; - cursor: pointer; - } - } - } - - &:last-child { - td { - border-bottom: 0; - } - } - } - } - } - } - - .query-sql-run-full, - #debugpress-debuglog-content { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-size: var(--debugpress-sql-font-size); - margin: 5px 0 0; - padding: 5px; - } - - .query-sql-run-full { - font-weight: 700; - - pre { - color: #000; - background-color: #FFF; - } - } - - #debugpress-debuglog-content { - font-weight: 400; - - > div { - overflow: auto; - color: #000; - background-color: #FFF; - - pre { - background: none; - overflow: visible; - } - } - } - - .sql-query-list { - .sql-query { - border: 1px solid #777; - margin: 5px 0; - padding: 5px; - - .sql-query-full { - background-color: #F4F4F4; - color: #000; - font-family: monospace; - font-weight: 700; - font-size: var(--debugpress-sql-font-size); - margin: 5px 0 0; - padding: 5px; - - pre { - color: #000; - background-color: #FFF; - } - } - } - } - - .debugpress-wrapper-warning { - border: 1px solid #23282D; - padding: 10px; - margin: 0 0 10px; - - h4 { - color: #900; - font-size: calc(var(--debugpress-base-font-size) + 3px); - margin: 0 0 5px; - } - } - - .debugpress-debug-environment { - margin: 0 0 10px; - padding: 10px; - background-color: #F3FFE7; - - .debugpress-debugger-panel-block-title { - background-color: #12AE00; - text-align: center; - font-size: 110%; - } - - &.debugpress-debug-env-development { - background-color: #FFE7F2; - - .debugpress-debugger-panel-block-title { - background-color: #AE0060; - } - } - - &.debugpress-debug-env-local { - background-color: #F7E7FF; - - .debugpress-debugger-panel-block-title { - background-color: #8800AE; - } - } - - &.debugpress-debug-env-staging { - background-color: #E7EEFF; - - .debugpress-debugger-panel-block-title { - background-color: #0026AE; - } - } - } - - .debugpress-debugger-footer-left { - .debugpress-debugger-environment { - color: #12AE00; - - &.debugpress-env-development { - color: #AE0060; - } - - &.debugpress-env-local { - color: #8800AE; - } - - &.debugpress-env-staging { - color: #0026AE; - } - } - } - - .debugpress-debug-notice-block { - margin: 10px 0; - padding: 10px 10px 1px; - border-left: 4px solid #F00; - background-color: #FFE7E7; - - .debugpress-debugger-panel-block-title { - background-color: #F00; - } - } - - .debugpress-tab-content { - &.debugpress-queries-sidebar-closed { - .one-quarter { - width: 44px; - - h5, div { - display: none !important; - } - } - - .three-quarters { - width: calc(100% - 44px); - } - } - } - - .debugpress-button-action { - background: #27B; - color: #FFF; - display: inline-block; - cursor: pointer; - border: 0; - text-align: center; - width: max-content; - border-radius: 0; - margin: 5px 5px 0 0; - padding: 8px 14px; - font-size: calc(var(--debugpress-base-font-size) + 3px); - } -} +.flyin-style-debugpress-light { + #debugpress-debugger-tabs { + margin: 0; + padding: 0; + list-style: none; + font-size: var(--debugpress-base-font-size); + line-height: 26px; + width: calc(100% - 30px); + + li { + float: left; + height: 28px; + line-height: 26px; + margin: 0; + padding: 0 10px; + list-style: none; + + .debugpress-tab-ctrl-icon { + padding-right: 5px; + font-size: calc(var(--debugpress-base-font-size) + 2px); + } + + a { + color: #EEE; + box-shadow: none; + outline: none; + text-decoration: none; + } + + &.debugpress-tab-active { + background: #FFF; + height: 33px; + + a { + color: #23282D; + font-weight: 700; + } + } + + &#debugpress-debugger-tab-layout-li, + &#debugpress-debugger-tab-tools-li, + &#debugpress-debugger-tab-debuglog-li { + float: right; + + i { + font-size: 120%; + vertical-align: text-bottom; + } + } + } + } + + .debugpress-pre-wrap { + background-color: #F4F4F4; + color: #000; + font-family: monospace; + font-weight: 700; + font-size: var(--debugpress-sql-font-size); + margin: 0 0 5px; + padding: 5px; + + pre { + color: #000; + background-color: #FFF; + } + } + + #debugpress-debugger-content-wrapper { + .debugpress-tab-content { + display: none; + + &.debugpress-tab-active { + display: block; + } + } + } + + #debugpress-debugger-select { + display: none; + font-size: calc(var(--debugpress-base-font-size) + 1px); + height: 28px; + line-height: 28px; + margin: 0; + padding: 0 10px; + width: calc(100% - 30px); + min-height: 28px; + max-width: 100%; + border-radius: 0; + border: 0; + } + + .debugpress-debugger-footer-right { + float: right; + } + + .debugpress-debugger-footer-left { + float: left; + + div { + display: inline; + } + } + + #debugpress-debugger-content-wrapper { + .debugpress-events-log-toggle { + font-weight: 700; + } + + .debugpress-events-log-toggler { + border-left: 1px solid #888; + padding-left: 10px; + display: none; + + &.debugpress-events-log-toggler-opened { + display: block; + } + } + + .debugpress-error-message { + font-weight: 700; + font-style: italic; + color: #F00; + } + } + + .debugpress-debugger-panel-block { + margin: 5px 0 10px; + display: block; + overflow: auto; + + p { + padding: 0; + margin: 0 0 .5em; + } + + .sql-calls-button-expander { + font-weight: 700; + font-size: calc(var(--debugpress-base-font-size) - 1px); + color: #FFF !important; + background: #0073AA; + padding: 0 6px 3px; + margin: 0 0 0 10px; + border-radius: 3px; + } + } + + .debugpress-debugger-panel-block-title { + background: #23282D; + color: #FFF; + padding: 5px 8px !important; + font-size: 12px; + margin: 0; + + > i.debugpress-icon { + font-size: 1.5em; + margin: 0 5px 0 0; + } + + span { + float: right; + font-size: 18px; + cursor: pointer; + + i.debugpress-icon { + vertical-align: top; + } + } + } + + .debugpress-query-sidebar-control { + background: #23282D; + color: #FFF; + padding: 5px !important; + font-size: calc(var(--debugpress-base-font-size) - 1px); + margin: 0 0 10px; + text-align: right; + + span { + font-size: calc(var(--debugpress-base-font-size) + 4px); + cursor: pointer; + padding-right: 4px; + vertical-align: top; + + i.debugpress-icon { + vertical-align: bottom; + } + } + } + + .debugpress-debugger-panel-block-subtitle { + background: #777; + color: #FFF; + margin: 5px 0; + padding: 2px 5px !important; + font-size: calc(var(--debugpress-base-font-size) - 2px); + line-height: 20px; + } + + .debugpress-debugger-table { + width: 100%; + table-layout: auto; + margin: 0; + border: 1px solid #DDD; + background: #FFF; + border-collapse: collapse; + font-size: calc(var(--debugpress-base-font-size) - 1px); + line-height: 20px; + + thead { + background: #DDD; + } + + th, + td { + border: 1px solid #E8E8E8; + text-align: left; + padding: 1px 4px !important; + font-size: calc(var(--debugpress-base-font-size) - 1px); + + .kint-rich { + margin: 0; + + > dl > .kint-parent { + margin-top: 0; + } + } + } + + td { + border-width: 0 1px 1px 0; + vertical-align: top; + } + + tr:nth-of-type(2n) { + background: #FAFAFA; + } + + &.debugpress-table-keyvalue { + tr { + td { + &:first-child { + width: 30%; + } + } + } + } + + .debugpress_r.debugpress_r_root { + margin: 0; + } + } + + #debugpress-debugger-tab-hooks, + #debugpress-debugger-tab-queries { + .debugpress-debugger-table { + &.debugpress-table-keyvalue { + tr { + td { + &:first-child { + width: 70%; + } + } + } + } + } + } + + #debugpress-debugger-tab-hooks { + #dbg-hooks-list { + > thead { + th, + td { + padding: 3px 8px !important; + } + } + + > tbody { + > tr { + > th { + padding: 3px 8px !important; + vertical-align: top; + width: 20%; + } + + > td { + padding: 0 !important; + + &.dbg-hook-no-callbacks { + padding: 4px 6px 4px 82px !important; + font-weight: 700; + } + } + } + } + + .dbg-hooks-actions { + width: 100%; + table-layout: auto; + margin: 0; + border: 0; + background: #FFF; + border-collapse: collapse; + font-size: calc(var(--debugpress-base-font-size) - 1px); + + tr { + td { + padding: 3px 5px !important; + + &:first-child { + width: 80px; + text-align: right; + } + + &:last-child { + width: 30%; + } + + &.dbg-hook-column-action { + em { + font-family: monospace; + font-weight: 700; + font-style: normal; + } + + div { + display: none; + } + + .dbg-hook-action-callback-call { + display: block; + + strong { + font-weight: 400; + font-family: monospace; + } + } + + &.dbg-calls-show { + div { + display: block; + } + } + + button { + float: right; + font-weight: 700; + font-size: calc(var(--debugpress-base-font-size) - 1px); + color: #FFF !important; + background: #0073AA; + padding: 0 6px 3px; + margin: 0 0 0 10px; + border: 0; + border-radius: 3px; + cursor: pointer; + } + } + } + + &:last-child { + td { + border-bottom: 0; + } + } + } + } + } + } + + .query-sql-run-full, + #debugpress-debuglog-content { + background-color: #F4F4F4; + color: #000; + font-family: monospace; + font-size: var(--debugpress-sql-font-size); + margin: 5px 0 0; + padding: 5px; + } + + .query-sql-run-full { + font-weight: 700; + + pre { + color: #000; + background-color: #FFF; + } + } + + #debugpress-debuglog-content { + font-weight: 400; + + > div { + overflow: auto; + color: #000; + background-color: #FFF; + + pre { + background: none; + overflow: visible; + } + } + } + + .sql-query-list { + .sql-query { + border: 1px solid #777; + margin: 5px 0; + padding: 5px; + + .sql-query-full { + background-color: #F4F4F4; + color: #000; + font-family: monospace; + font-weight: 700; + font-size: var(--debugpress-sql-font-size); + margin: 5px 0 0; + padding: 5px; + + pre { + color: #000; + background-color: #FFF; + } + } + } + } + + .debugpress-wrapper-warning { + border: 1px solid #23282D; + padding: 10px; + margin: 0 0 10px; + + h4 { + color: #900; + font-size: calc(var(--debugpress-base-font-size) + 3px); + margin: 0 0 5px; + } + } + + .debugpress-debug-environment { + margin: 0 0 10px; + padding: 10px; + background-color: #F3FFE7; + + .debugpress-debugger-panel-block-title { + background-color: #12AE00; + text-align: center; + font-size: 110%; + } + + &.debugpress-debug-env-development { + background-color: #FFE7F2; + + .debugpress-debugger-panel-block-title { + background-color: #AE0060; + } + } + + &.debugpress-debug-env-local { + background-color: #F7E7FF; + + .debugpress-debugger-panel-block-title { + background-color: #8800AE; + } + } + + &.debugpress-debug-env-staging { + background-color: #E7EEFF; + + .debugpress-debugger-panel-block-title { + background-color: #0026AE; + } + } + } + + .debugpress-debugger-footer-left { + .debugpress-debugger-environment { + color: #12AE00; + + &.debugpress-env-development { + color: #AE0060; + } + + &.debugpress-env-local { + color: #8800AE; + } + + &.debugpress-env-staging { + color: #0026AE; + } + } + } + + .debugpress-debug-notice-block { + margin: 10px 0; + padding: 10px 10px 1px; + border-left: 4px solid #F00; + background-color: #FFE7E7; + + .debugpress-debugger-panel-block-title { + background-color: #F00; + } + } + + .debugpress-tab-content { + &.debugpress-queries-sidebar-closed { + .one-quarter { + width: 44px; + + h5, div { + display: none !important; + } + } + + .three-quarters { + width: calc(100% - 44px); + } + } + } + + .debugpress-button-action { + background: #27B; + color: #FFF; + display: inline-block; + cursor: pointer; + border: 0; + text-align: center; + width: max-content; + border-radius: 0; + margin: 5px 5px 0 0; + padding: 8px 14px; + font-size: calc(var(--debugpress-base-font-size) + 3px); + } +} diff --git a/scss/includes/_embeds.scss b/src/scripts/panel/scss/_embeds.scss similarity index 100% rename from scss/includes/_embeds.scss rename to src/scripts/panel/scss/_embeds.scss diff --git a/src/scripts/panel/scss/_flyin.scss b/src/scripts/panel/scss/_flyin.scss new file mode 100644 index 0000000..767a20e --- /dev/null +++ b/src/scripts/panel/scss/_flyin.scss @@ -0,0 +1,52 @@ +.flyin-style-debugpress-light { + --flyin-close-btn-color: #F00; + + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: var(--debugpress-base-font-size); + font-style: normal; + font-weight: 400; + line-height: 1.4; + + * { + font-family: inherit; + box-sizing: border-box; + } + + pre { + margin: 0; + padding: 5px 7px; + line-height: 1.4; + white-space: pre; + } + + a { + color: #0073AA; + text-decoration: none; + box-shadow: none; + outline: none; + + &.sqlq-option-on { + font-weight: 700; + color: #FFF; + background: #0073AA; + padding: 0 3px 1px; + } + } + + .flyin-wrapper { + .flyin-header { + height: 38px; + + .flyin-button-close { + i.debugpress-icon { + font-size: 18px; + margin: 4px 2px 0 0; + } + } + } + + .flyin-footer { + text-align: left; + } + } +} \ No newline at end of file diff --git a/scss/components/_icons.scss b/src/scripts/panel/scss/_font.scss similarity index 87% rename from scss/components/_icons.scss rename to src/scripts/panel/scss/_font.scss index 86694f3..c15ed4e 100644 --- a/scss/components/_icons.scss +++ b/src/scripts/panel/scss/_font.scss @@ -1,102 +1,102 @@ -@use "../includes/variables" as *; -@use "../includes/functions" as *; -@use "../includes/embeds" as *; -@use "../includes/icons" as *; - -@font-face { - font-family: $font-name; - src: url('data:application/font-woff2;charset=utf-8;base64,#{$font-woff2}') format('woff2'), - url('data:application/font-woff;charset=utf-8;base64,#{$font-woff}') format('woff'); - font-weight: 400; - font-style: normal; - font-display: swap; -} - -i.#{$font-prefix-ctrl} { - font: 400 normal normal $font-size / 1 $font-name; - font-size: inherit; - text-transform: none; - display: inline-block; - vertical-align: text-bottom; - speak: never; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -h1, h2, h3, h4, h5, h6 { - > .#{$font-prefix-ctrl} { - line-height: inherit; - vertical-align: bottom; - } -} - -a { - > .#{$font-prefix-ctrl} { - line-height: normal; - } -} - -/* Icons */ -@each $icon, $deg in $rotate { - .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} { - transform: rotate(#{$deg}deg); - } -} - -@each $icon, $char in $icons { - .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} { - &::before { - content: icon($char); - } - } -} - -/* Full Width */ -i.#{$font-prefix-ctrl} { - &.#{$font-prefix-ctrl}-fw { - width: 1.2857em; - text-align: center; - } - - /* Sizes */ - &.#{$font-prefix-ctrl}-lg { - font-size: 1.3333em; - line-height: 0.75; - vertical-align: -15%; - } - - @for $i from 2 to 8 { - &.#{$font-prefix-ctrl}-#{$i}x { - font-size: #{$i}em; - } - } -} - -/* Flip */ -.#{$font-prefix-ctrl}-flip-horizontal { - transform: scaleX(-1); -} - -.#{$font-prefix-ctrl}-flip-vertical { - transform: scaleY(-1); -} - -.#{$font-prefix-ctrl}-flip-both, -.#{$font-prefix-ctrl}-flip-horizontal.#{$font-prefix-ctrl}-flip-vertical { - transform: scale(-1); -} - -/* Spin */ -.#{$font-prefix-ctrl}-spin { - animation: #{$font-prefix}-icon-spin 2s infinite linear; -} - -@keyframes #{$font-prefix}-icon-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} +@use "./variables" as *; +@use "./functions" as *; +@use "./embeds" as *; +@use "./icons" as *; + +@font-face { + font-family: $font-name; + src: url('data:application/font-woff2;charset=utf-8;base64,#{$font-woff2}') format('woff2'), + url('data:application/font-woff;charset=utf-8;base64,#{$font-woff}') format('woff'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +i.#{$font-prefix-ctrl} { + font: 400 normal normal $font-size $font-name; + font-size: inherit; + text-transform: none; + display: inline-block; + vertical-align: text-bottom; + speak: never; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +h1, h2, h3, h4, h5, h6 { + > .#{$font-prefix-ctrl} { + line-height: inherit; + vertical-align: bottom; + } +} + +a { + > .#{$font-prefix-ctrl} { + line-height: normal; + } +} + +/* Icons */ +@each $icon, $deg in $rotate { + .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} { + transform: rotate(#{$deg}deg); + } +} + +@each $icon, $char in $icons { + .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} { + &::before { + content: icon($char); + } + } +} + +/* Full Width */ +i.#{$font-prefix-ctrl} { + &.#{$font-prefix-ctrl}-fw { + width: 1.2857em; + text-align: center; + } + + /* Sizes */ + &.#{$font-prefix-ctrl}-lg { + font-size: 1.3333em; + line-height: 0.75; + vertical-align: -15%; + } + + @for $i from 2 to 8 { + &.#{$font-prefix-ctrl}-#{$i}x { + font-size: #{$i}em; + } + } +} + +/* Flip */ +.#{$font-prefix-ctrl}-flip-horizontal { + transform: scaleX(-1); +} + +.#{$font-prefix-ctrl}-flip-vertical { + transform: scaleY(-1); +} + +.#{$font-prefix-ctrl}-flip-both, +.#{$font-prefix-ctrl}-flip-horizontal.#{$font-prefix-ctrl}-flip-vertical { + transform: scale(-1); +} + +/* Spin */ +.#{$font-prefix-ctrl}-spin { + animation: #{$font-prefix}-icon-spin 2s infinite linear; +} + +@keyframes #{$font-prefix}-icon-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} diff --git a/scss/includes/_functions.scss b/src/scripts/panel/scss/_functions.scss similarity index 96% rename from scss/includes/_functions.scss rename to src/scripts/panel/scss/_functions.scss index f23354e..dc57443 100644 --- a/scss/includes/_functions.scss +++ b/src/scripts/panel/scss/_functions.scss @@ -1,6 +1,6 @@ -@use "sass:string"; - -@function icon($character) { - - @return string.unquote("\"") + string.unquote(string.insert($character, "\\", 1)) + string.unquote("\""); -} +@use "sass:string"; + +@function icon($character) { + + @return string.unquote("\"") + string.unquote(string.insert($character, "\\", 1)) + string.unquote("\""); +} diff --git a/scss/components/_grid.scss b/src/scripts/panel/scss/_grid.scss similarity index 90% rename from scss/components/_grid.scss rename to src/scripts/panel/scss/_grid.scss index ae7a003..6525f3e 100644 --- a/scss/components/_grid.scss +++ b/src/scripts/panel/scss/_grid.scss @@ -1,132 +1,130 @@ -@use "../includes/variables" as *; - -.#{$grid-prefix}-grid, -.#{$grid-prefix}-unit { - box-sizing: border-box; -} - -.#{$grid-prefix}-grid { - display: block; - clear: both; - - .#{$grid-prefix}-unit { - float: left; - width: 100%; - padding: 10px; - margin: 0; - } - - .wrap { - max-width: 978px; - margin: 0 auto; - } - - *zoom: 1; - - &::before, - &::after { - display: table; - content: ""; - line-height: 0; - } - - &::after { - clear: both; - } - - .whole, .w-1-1 { - width: 100%; - } - - .half, .w-1-2 { - width: 50%; - } - - .one-third, .w-1-3 { - width: 33.3332%; - } - - .two-thirds, .w-2-3 { - width: 66.6665%; - } - - .one-quarter, .w-1-4 { - width: 25%; - } - - .three-quarters, .w-3-4 { - width: 75%; - } - - .one-fifth, .w-1-5 { - width: 20%; - } - - .two-fifths, .w-2-5 { - width: 40%; - } - - .three-fifths, .w-3-5 { - width: 60%; - } - - .four-fifths, .w-4-5 { - width: 80%; - } - - .golden-small, .w-g-s { - width: 38.2716%; - } - - .golden-large, .w-g-l { - width: 61.7283%; - } -} - -.#{$grid-prefix}-unit { - .#{$grid-prefix}-unit { - &:first-child { - padding-left: 0; - } - - &:last-child { - padding-right: 0; - } - - &:first-child { - > .#{$grid-prefix}-unit { - padding-top: 0; - } - } - - &:last-child { - > .#{$grid-prefix}-unit { - padding-bottom: 0; - } - } - } - - &.no-gutters { - padding: 0 !important; - } -} - -.align-center { - text-align: center; -} - -.align-left { - text-align: left; -} - -.align-right { - text-align: right; -} - -.pull-left { - float: left; -} - -.pull-right { - float: right; -} +@use "./variables" as *; + +.#{$grid-prefix}-grid, +.#{$grid-prefix}-unit { + box-sizing: border-box; +} + +.#{$grid-prefix}-grid { + display: block; + clear: both; + + .#{$grid-prefix}-unit { + float: left; + width: 100%; + padding: 10px; + margin: 0; + } + + .wrap { + max-width: 978px; + margin: 0 auto; + } + + &::before, + &::after { + display: table; + content: ""; + line-height: 0; + } + + &::after { + clear: both; + } + + .whole, .w-1-1 { + width: 100%; + } + + .half, .w-1-2 { + width: 50%; + } + + .one-third, .w-1-3 { + width: 33.3332%; + } + + .two-thirds, .w-2-3 { + width: 66.6665%; + } + + .one-quarter, .w-1-4 { + width: 25%; + } + + .three-quarters, .w-3-4 { + width: 75%; + } + + .one-fifth, .w-1-5 { + width: 20%; + } + + .two-fifths, .w-2-5 { + width: 40%; + } + + .three-fifths, .w-3-5 { + width: 60%; + } + + .four-fifths, .w-4-5 { + width: 80%; + } + + .golden-small, .w-g-s { + width: 38.2716%; + } + + .golden-large, .w-g-l { + width: 61.7283%; + } +} + +.#{$grid-prefix}-unit { + .#{$grid-prefix}-unit { + &:first-child { + padding-left: 0; + } + + &:last-child { + padding-right: 0; + } + + &:first-child { + > .#{$grid-prefix}-unit { + padding-top: 0; + } + } + + &:last-child { + > .#{$grid-prefix}-unit { + padding-bottom: 0; + } + } + } + + &.no-gutters { + padding: 0 !important; + } +} + +.align-center { + text-align: center; +} + +.align-left { + text-align: left; +} + +.align-right { + text-align: right; +} + +.pull-left { + float: left; +} + +.pull-right { + float: right; +} diff --git a/scss/includes/_icons.scss b/src/scripts/panel/scss/_icons.scss similarity index 100% rename from scss/includes/_icons.scss rename to src/scripts/panel/scss/_icons.scss diff --git a/scss/components/_layout.scss b/src/scripts/panel/scss/_layout.scss similarity index 94% rename from scss/components/_layout.scss rename to src/scripts/panel/scss/_layout.scss index 549242b..0f59850 100644 --- a/scss/components/_layout.scss +++ b/src/scripts/panel/scss/_layout.scss @@ -1,39 +1,39 @@ -.debugpress-layout-position { - display: flex; - gap: 2em; - flex-wrap: wrap; - padding: 1em; - - > div { - text-align: center; - - &.selected { - color: #0073AA; - font-weight: 700; - } - - > span { - display: block; - } - } -} - -.debugpress-layout-settings { - padding: 1em; - - .debugpress-layout-option { - display: flex; - column-gap: 2em; - margin: 0 0 1em; - align-items: center; - - label { - min-width: 120px; - } - - select { - min-width: 120px; - width: 200px; - } - } -} +.debugpress-layout-position { + display: flex; + gap: 2em; + flex-wrap: wrap; + padding: 1em; + + > div { + text-align: center; + + &.selected { + color: #0073AA; + font-weight: 700; + } + + > span { + display: block; + } + } +} + +.debugpress-layout-settings { + padding: 1em; + + .debugpress-layout-option { + display: flex; + column-gap: 2em; + margin: 0 0 1em; + align-items: center; + + label { + min-width: 120px; + } + + select { + min-width: 120px; + width: 200px; + } + } +} diff --git a/scss/components/_responsive.scss b/src/scripts/panel/scss/_responsive.scss similarity index 91% rename from scss/components/_responsive.scss rename to src/scripts/panel/scss/_responsive.scss index 76427fd..50d0897 100644 --- a/scss/components/_responsive.scss +++ b/src/scripts/panel/scss/_responsive.scss @@ -1,107 +1,108 @@ -@use "../includes/variables" as *; - -@media screen and (width <= 568px) { - .#{$grid-prefix}-grid { - .#{$grid-prefix}-unit { - width: 100% !important; - padding-left: 20px; - padding-right: 20px; - } - } - - .#{$grid-prefix}-unit { - .#{$grid-prefix}-grid { - .#{$grid-prefix}-unit { - padding-left: 0; - padding-right: 0; - } - } - } - - .center-on-mobiles { - text-align: center !important; - } - - .hide-on-mobiles { - display: none !important; - } -} - -@media screen and (width <= 1080px) { - #debugpress-debugger-tab-queries { - .#{$grid-prefix}-grid { - .one-quarter { - width: 45%; - } - - .three-quarters { - width: 55%; - } - } - } - - .debugpress-debugger-footer-left { - div { - display: block; - - span { - display: none; - } - } - } -} - -@media screen and (width <= 800px) { - .debugpress-style-popup { - .debugpress-query-sidebar-control { - margin-bottom: 5px; - } - - .debugpress-debugger-footer-left, - .debugpress-debugger-footer-right { - float: none; - text-align: center; - } - - #debugpress-debugger-tabs { - display: none; - } - - #debugpress-debugger-select { - display: block; - } - - .sanp-wrapper { - .sanp-header { - height: 40px; - } - - > button { - top: 5px; - } - } - - .debugpress-tab-content { - .#{$grid-prefix}-grid .#{$grid-prefix}-unit { - padding-left: 10px; - padding-right: 10px; - } - } - } -} - -@media screen and (width <= 782px) { - #wpadminbar { - .debugpress-debug-dialog-button { - display: block !important; - - > .ab-item { - padding: 0 10px !important; - - i.debugpress-icon { - font-size: 24px !important; - } - } - } - } -} +@use "./variables" as *; + +@media screen and (width <= 568px) { + .#{$grid-prefix}-grid { + .#{$grid-prefix}-unit { + width: 100% !important; + padding-left: 20px; + padding-right: 20px; + } + } + + .#{$grid-prefix}-unit { + .#{$grid-prefix}-grid { + .#{$grid-prefix}-unit { + padding-left: 0; + padding-right: 0; + } + } + } + + .center-on-mobiles { + text-align: center !important; + } + + .hide-on-mobiles { + display: none !important; + } +} + +@media screen and (width <= 1080px) { + #debugpress-debugger-tab-queries { + .#{$grid-prefix}-grid { + .one-quarter { + width: 45%; + } + + .three-quarters { + width: 55%; + } + } + } + + .debugpress-debugger-footer-left { + div { + display: block; + + span { + display: none; + } + } + } +} + +@media screen and (width <= 800px) { + .flyin-style-debugpress-light { + .debugpress-query-sidebar-control { + margin-bottom: 5px; + } + + .debugpress-debugger-footer-left, + .debugpress-debugger-footer-right { + float: none; + text-align: center; + } + + #debugpress-debugger-tabs { + display: none; + } + + #debugpress-debugger-select { + display: block; + } + + .flyin-wrapper + .flyin-wrapper { + .sanp-header { + height: 40px; + } + + > button { + top: 5px; + } + } + + .debugpress-tab-content { + .#{$grid-prefix}-grid .#{$grid-prefix}-unit { + padding-left: 10px; + padding-right: 10px; + } + } + } +} + +@media screen and (width <= 782px) { + #wpadminbar { + .debugpress-debug-dialog-button { + display: block !important; + + > .ab-item { + padding: 0 10px !important; + + i.debugpress-icon { + font-size: 24px !important; + } + } + } + } +} diff --git a/scss/includes/_variables.scss b/src/scripts/panel/scss/_variables.scss similarity index 88% rename from scss/includes/_variables.scss rename to src/scripts/panel/scss/_variables.scss index d20173f..151174e 100644 --- a/scss/includes/_variables.scss +++ b/src/scripts/panel/scss/_variables.scss @@ -1,15 +1,15 @@ -// Global // -$prefix: "debugpress"; -$grid-prefix: "debugpress"; - -// Font // -$font-name: "debugpress"; -$font-version: "3.5"; -$font-prefix: "debugpress-icon"; -$font-prefix-ctrl: "debugpress-icon"; -$font-size: 14px; - -// Base // -$base-font-size: 13px; -$sql-font-size: 13px; -$pretty-font-size: 12px; +// Global // +$prefix: "debugpress"; +$grid-prefix: "debugpress"; + +// Font // +$font-name: "debugpress"; +$font-version: "4.3"; +$font-prefix: "debugpress-icon"; +$font-prefix-ctrl: "debugpress-icon"; +$font-size: 14px; + +// Base // +$base-font-size: 13px; +$sql-font-size: 13px; +$pretty-font-size: 12px; diff --git a/scss/components/_vars.scss b/src/scripts/panel/scss/_vars.scss similarity index 80% rename from scss/components/_vars.scss rename to src/scripts/panel/scss/_vars.scss index 5afb035..278c1e6 100644 --- a/scss/components/_vars.scss +++ b/src/scripts/panel/scss/_vars.scss @@ -1,7 +1,7 @@ -@use "../includes/variables" as *; - -:root { - --debugpress-base-font-size: #{$base-font-size}; - --debugpress-sql-font-size: #{$sql-font-size}; - --debugpress-pretty-font-size: #{$pretty-font-size}; -} +@use "./variables" as *; + +:root { + --debugpress-base-font-size: #{$base-font-size}; + --debugpress-sql-font-size: #{$sql-font-size}; + --debugpress-pretty-font-size: #{$pretty-font-size}; +} diff --git a/src/scripts/panel/types/panel.ts b/src/scripts/panel/types/panel.ts new file mode 100644 index 0000000..3460871 --- /dev/null +++ b/src/scripts/panel/types/panel.ts @@ -0,0 +1,96 @@ +import Flyin from "@dev4press/flyin"; + +export interface DebugPressLayout { + layout: string; + modal: string; + open: string; + ratio: string; + tab: string; + last: string; + close: Flyin | any[]; +} + +export interface DebugPressHeader { + state: string; +} + +export interface DebugPressStatus { + sql_sort: string; + sql_order: string; +} + +export interface DebugPressCounts { + total: number; + errors: number; + doingitwrong: number; + deprecated: number; + storage?: number; + http?: number; +} + +export interface DebugPressData { + ajax_endpoint: string; + call_nonce: string; + mousetrap: boolean; + mousetrap_sequence: string | null; + events_show_details: string; + events_hide_details: string; + icon_right: string; + icon_down: string; +} + +export interface HookFilters { + all: { + types: string[]; + }; + active: { + show: string; + types: string[]; + }; +} + +export interface QueryFilters { + total: { + queries: number; + total: number; + }; + all: { + caller: number[]; + types: string[]; + tables: number[]; + sources: string[]; + }; + active: { + show: string; + caller: number[]; + types: string[]; + tables: number[]; + sources: string[]; + search: string; + }; +} + +export interface AJAXTraceData { + status: 'success' | 'error'; + url: string; + type: string; + response?: string; + error?: string; + headers: Record; +} + +export interface HeaderSize { + tabs: number; + icons: number; + elements: number; + labels: number; + full: number; +} + +declare global { + interface Window { + debugpress_data: DebugPressData; + wp: any; + DebugPressPanelInstance: any; + } +} diff --git a/scss/components/_pretty.scss b/src/scripts/print/index.scss similarity index 95% rename from scss/components/_pretty.scss rename to src/scripts/print/index.scss index 570b783..7bfc999 100644 --- a/scss/components/_pretty.scss +++ b/src/scripts/print/index.scss @@ -1,220 +1,220 @@ -.debugpress_r { - font-size: var(--debugpress-pretty-font-size); - font-family: Consolas, "Lucida Console", monospace; - line-height: 1.4; - cursor: default; - - .debugpress-icon { - vertical-align: text-bottom; - font-size: calc(var(--debugpress-pretty-font-size) + 2px); - } - - &.debugpress_r_root { - background: #FFF; - border: 1px solid #000; - margin: 1em 0; - } - - a { - outline: none; - box-shadow: none; - display: block !important; - text-decoration: none !important; - - &:focus, - &:hover { - outline: none; - box-shadow: none; - } - } - - p { - line-height: inherit !important; - margin: 0 !important; - } - - .debugpress_r_f { - padding: 3px; - border-top: 1px dashed #444; - font: 11px Verdana, sans-serif; - - code { - color: #F00; - background: none; - padding: 0; - margin: 0; - border: 0; - font: 11px Consolas, "Liberation Mono", Courier, monospace; - font-weight: 700; - } - } - - .debugpress_r_c { - display: block; - text-decoration: none; - color: #222; - padding: 2px; - overflow: hidden; - text-overflow: ellipsis; - } - - .debugpress_r_a { - color: #F00; - display: inline-block; - width: 15px; - text-align: center; - } - - .debugpress_r_ad { - .debugpress_r_a { - color: #000; - opacity: 0.2; - } - } - - .debugpress_r_k { - color: #060; - font-weight: 700; - } - - .debugpress_r_d { - font-size: calc(var(--debugpress-pretty-font-size) - 1px); - color: #777; - margin: 0 2px; - - span { - color: #333; - } - } - - .debugpress_r_p { - color: #000; - font-weight: 700; - - &.debugpress_r_t_integer, - &.debugpress_r_t_double { - color: #F0E; - } - - &.debugpress_r_t_string { - color: #E00; - } - - &.debugpress_r_t_boolean { - color: #00E; - } - } - - .debugpress_r_v { - margin-left: 9px; - padding-left: 7px; - border-left: 1px dotted #CCC; - display: none; - - &.debugpress_r_open { - display: block; - } - } - - .debugpress_r_ir { - font-style: italic; - } - - .debugpress_r_t_comment { - color: #080; - } - - .debugpress_r_m { - .debugpress_r_k { - color: #909; - } - - .debugpress_r_ma { - font-weight: 400; - color: #777; - } - - .debugpress_r_mv { - color: #00E; - } - } - - .debugpress_r_m_public, - .debugpress_r_m_protected, - .debugpress_r_m_private, - .debugpress_r_m_abstract, - .debugpress_r_m_final { - .debugpress_r_mo { - font-weight: 400; - color: #008; - } - } - - &.debugpress_r_root { - .debugpress_r_rn { - font-weight: 700; - color: #008000; - } - } - - .debugpress_r_m_magic { - font-style: italic; - } - - .debugpress_r_m_deprecated { - text-decoration: line-through; - } - - a { - &.debugpress_r_c { - &.debugpress_r_m_constructor, - &.debugpress_r_m_destructor { - .debugpress_r_k { - color: #C02; - } - } - - &:hover { - background-color: Highlight; - color: HighlightText; - - .debugpress_r_k, - .debugpress_r_d, - .debugpress_r_d span, - .debugpress_r_ma, - .debugpress_r_mo, - .debugpress_r_mv, - .debugpress_r_p, - .debugpress_r_a { - background-color: Highlight; - color: HighlightText; - } - } - } - } -} - -.debugpress_rs { - &.debugpress_rs_null { - color: #C00; - } - - &.debugpress_rs_empty { - color: #090; - } - - &.debugpress_rs_number { - color: #009; - } - - &.debugpress_rs_bool { - &.debugpress_rs_bool_true { - font-weight: 700; - color: #050; - } - - &.debugpress_rs_bool_false { - color: #700; - } - } -} +.debugpress_r { + font-size: var(--debugpress-pretty-font-size); + font-family: Consolas, "Lucida Console", monospace; + line-height: 1.4; + cursor: default; + + .debugpress-icon { + vertical-align: text-bottom; + font-size: calc(var(--debugpress-pretty-font-size) + 2px); + } + + &.debugpress_r_root { + background: #FFF; + border: 1px solid #000; + margin: 1em 0; + } + + a { + outline: none; + box-shadow: none; + display: block !important; + text-decoration: none !important; + + &:focus, + &:hover { + outline: none; + box-shadow: none; + } + } + + p { + line-height: inherit !important; + margin: 0 !important; + } + + .debugpress_r_f { + padding: 3px; + border-top: 1px dashed #444; + font: 11px Verdana, sans-serif; + + code { + color: #F00; + background: none; + padding: 0; + margin: 0; + border: 0; + font: 11px Consolas, "Liberation Mono", Courier, monospace; + font-weight: 700; + } + } + + .debugpress_r_c { + display: block; + text-decoration: none; + color: #222; + padding: 2px; + overflow: hidden; + text-overflow: ellipsis; + } + + .debugpress_r_a { + color: #F00; + display: inline-block; + width: 15px; + text-align: center; + } + + .debugpress_r_ad { + .debugpress_r_a { + color: #000; + opacity: 0.2; + } + } + + .debugpress_r_k { + color: #060; + font-weight: 700; + } + + .debugpress_r_d { + font-size: calc(var(--debugpress-pretty-font-size) - 1px); + color: #777; + margin: 0 2px; + + span { + color: #333; + } + } + + .debugpress_r_p { + color: #000; + font-weight: 700; + + &.debugpress_r_t_integer, + &.debugpress_r_t_double { + color: #F0E; + } + + &.debugpress_r_t_string { + color: #E00; + } + + &.debugpress_r_t_boolean { + color: #00E; + } + } + + .debugpress_r_v { + margin-left: 9px; + padding-left: 7px; + border-left: 1px dotted #CCC; + display: none; + + &.debugpress_r_open { + display: block; + } + } + + .debugpress_r_ir { + font-style: italic; + } + + .debugpress_r_t_comment { + color: #080; + } + + .debugpress_r_m { + .debugpress_r_k { + color: #909; + } + + .debugpress_r_ma { + font-weight: 400; + color: #777; + } + + .debugpress_r_mv { + color: #00E; + } + } + + .debugpress_r_m_public, + .debugpress_r_m_protected, + .debugpress_r_m_private, + .debugpress_r_m_abstract, + .debugpress_r_m_final { + .debugpress_r_mo { + font-weight: 400; + color: #008; + } + } + + &.debugpress_r_root { + .debugpress_r_rn { + font-weight: 700; + color: #008000; + } + } + + .debugpress_r_m_magic { + font-style: italic; + } + + .debugpress_r_m_deprecated { + text-decoration: line-through; + } + + a { + &.debugpress_r_c { + &.debugpress_r_m_constructor, + &.debugpress_r_m_destructor { + .debugpress_r_k { + color: #C02; + } + } + + &:hover { + background-color: Highlight; + color: HighlightText; + + .debugpress_r_k, + .debugpress_r_d, + .debugpress_r_d span, + .debugpress_r_ma, + .debugpress_r_mo, + .debugpress_r_mv, + .debugpress_r_p, + .debugpress_r_a { + background-color: Highlight; + color: HighlightText; + } + } + } + } +} + +.debugpress_rs { + &.debugpress_rs_null { + color: #C00; + } + + &.debugpress_rs_empty { + color: #090; + } + + &.debugpress_rs_number { + color: #009; + } + + &.debugpress_rs_bool { + &.debugpress_rs_bool_true { + font-weight: 700; + color: #050; + } + + &.debugpress_rs_bool_false { + color: #700; + } + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..bd1067e --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,4 @@ +declare module '*.scss' { + const content: Record; + export default content; +} diff --git a/stylelint.config.js b/stylelint.config.js deleted file mode 100644 index c5fc24b..0000000 --- a/stylelint.config.js +++ /dev/null @@ -1,27 +0,0 @@ -export default { - extends: [ - 'stylelint-config-standard-scss', - '@wordpress/stylelint-config' - ], - ignoreFiles: [ - '**/*.min.css', - '**/vendor/**', - '**/node_modules/**', - ], - rules: { - 'at-rule-no-unknown': null, - 'scss/at-rule-no-unknown': true, - 'scss/dollar-variable-pattern': null, - - 'selector-class-pattern': null, - 'selector-id-pattern': null, - - 'max-nesting-depth': 8, - 'no-descending-specificity': null, - - 'rule-empty-line-before': null, - - 'font-family-no-missing-generic-family-keyword': null, - 'no-duplicate-selectors': null, - }, -}; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3c7c5fa --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "bundler", + "strict": true, + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true + }, + "include": ["src", "vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..d77066d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,73 @@ +import {defineConfig} from 'vite'; +import {resolve} from 'path'; +import {copyFileSync, existsSync, mkdirSync, unlinkSync} from 'node:fs'; + +export default defineConfig(({mode}) => { + const isPanel = mode === 'panel'; + const isPrint = mode === 'print'; + const entry = isPrint ? 'print' : (isPanel ? 'panel' : 'admin'); + const ext = isPrint ? 'scss' : 'ts'; + + return { + css: { + lightningcss: { + errorRecovery: true, + }, + }, + build: { + outDir: 'dist', + emptyOutDir: mode === 'admin', + minify: 'terser', + lib: { + entry: resolve(__dirname, `src/scripts/${entry}/index.${ext}`), + formats: ['iife'], + name: `DebugPress${entry.charAt(0).toUpperCase() + entry.slice(1)}`, + fileName: () => `${entry}.js`, + }, + rollupOptions: { + output: { + assetFileNames: `${entry}.[ext]`, + }, + }, + }, + plugins: [ + { + name: 'copy-flyin-assets', + apply: 'build', + closeBundle() { + if (mode === 'admin') { + const distDir = resolve(__dirname, 'dist'); + const flyinDist = resolve(__dirname, 'node_modules/@dev4press/flyin/dist'); + + if (!existsSync(distDir)) { + mkdirSync(distDir, {recursive: true}); + } + + try { + copyFileSync(resolve(flyinDist, 'flyin.css'), resolve(distDir, 'flyin.css')); + copyFileSync(resolve(flyinDist, 'flyin.umd.js'), resolve(distDir, 'flyin.js')); + } catch (e) { + } + } + }, + }, + { + name: 'remove-js-output', + apply: 'build', + writeBundle(options, bundle) { + if (isPrint) { + for (const fileName in bundle) { + if (fileName.endsWith('.js')) { + try { + unlinkSync(resolve(options.dir!, fileName)); + } catch (e) { + // Ignore errors + } + } + } + } + }, + }, + ], + }; +});