diff --git a/admin/class-searchcraft-admin.php b/admin/class-searchcraft-admin.php index 6034701..67abc79 100644 --- a/admin/class-searchcraft-admin.php +++ b/admin/class-searchcraft-admin.php @@ -1034,8 +1034,11 @@ private function searchcraft_on_layout_settings_config_request( $request ) { if ( isset( $request['searchcraft_search_experience'] ) ) { $experience = sanitize_text_field( wp_unslash( $request['searchcraft_search_experience'] ) ); - // Validate the experience value. - $valid_experiences = array( 'full', 'popover' ); + // Validate the experience value. Map legacy 'popover' to 'modal'. + if ( 'popover' === $experience ) { + $experience = 'modal'; + } + $valid_experiences = array( 'full', 'modal', 'inline' ); if ( ! in_array( $experience, $valid_experiences, true ) ) { $experience = 'full'; } @@ -1485,6 +1488,30 @@ private function searchcraft_on_layout_settings_config_request( $request ) { update_option( 'searchcraft_popover_element_behavior', $popover_element_behavior ); } + // Handle enable view all results setting. + $enable_view_all_results = isset( $request['searchcraft_enable_view_all_results'] ) ? true : false; + update_option( 'searchcraft_enable_view_all_results', $enable_view_all_results ); + + // Handle view all results label. + if ( isset( $request['searchcraft_view_all_results_label'] ) ) { + $view_all_results_label = sanitize_text_field( wp_unslash( $request['searchcraft_view_all_results_label'] ) ); + update_option( 'searchcraft_view_all_results_label', $view_all_results_label ); + } + + // Handle overlay results per page setting. + if ( isset( $request['searchcraft_overlay_results_per_page'] ) ) { + $overlay_results_per_page = absint( wp_unslash( $request['searchcraft_overlay_results_per_page'] ) ); + + // Validate the overlay results per page value (between 1 and 20). + if ( $overlay_results_per_page < 1 ) { + $overlay_results_per_page = 1; + } elseif ( $overlay_results_per_page > 20 ) { + $overlay_results_per_page = 20; + } + + update_option( 'searchcraft_overlay_results_per_page', $overlay_results_per_page ); + } + // Handle retain get_search_form setting. $retain_get_search_form = isset( $request['searchcraft_retain_get_search_form'] ) ? true : false; update_option( 'searchcraft_retain_get_search_form', $retain_get_search_form ); diff --git a/admin/js/searchcraft-admin.js b/admin/js/searchcraft-admin.js index f49c77a..82829c0 100644 --- a/admin/js/searchcraft-admin.js +++ b/admin/js/searchcraft-admin.js @@ -114,12 +114,27 @@ function toggleFormFields() { row.classList.toggle('hidden', !isFullSelected); }); - // Show/hide popover fields + // Show/hide popover fields (modal and inline are both popover variants) popoverOnlyRows.forEach((row) => { row.classList.toggle('hidden', isFullSelected); }); } +/** + * Toggle view all label row visibility based on checkbox state + */ +function toggleViewAllLabelRow() { + const checkbox = document.getElementById('searchcraft_enable_view_all_results'); + const labelRows = document.querySelectorAll('.searchcraft-view-all-label-row'); + if (!checkbox || !labelRows.length) { + return; + } + const isChecked = checkbox.checked; + labelRows.forEach((row) => { + row.style.display = isChecked ? '' : 'none'; + }); +} + /** * Toggle filter panel options visibility */ @@ -647,32 +662,28 @@ function updateFilterPanelOrder() { } document.addEventListener('DOMContentLoaded', () => { - // Initialize color pickers initColorPickers(); - - // Initialize password toggle functionality initPasswordToggle(); - - // Initialize button with spinner functionality initButtonWithSpinner(); - - // Initialize custom post type checkboxes initCustomPostTypeCheckboxes(); - - // Initialize excerpt override inputs with datalist initExcerptOverrideInputs(); // layout tab functionality if (document.querySelector('.searchcraft-layout')) { - const fullRadio = document.querySelector('input[name="searchcraft_search_experience"][value="full"]'); - const popoverRadio = document.querySelector('input[name="searchcraft_search_experience"][value="popover"]'); + // Search behavior toggle for input container description + const onPageRadio = document.querySelector('input[name="searchcraft_search_behavior"][value="on_page"]'); + const standAloneRadio = document.querySelector('input[name="searchcraft_search_behavior"][value="stand_alone"]'); // Initial state toggleFormFields(); + updateSearchInputContainerDescription(); - // Add event listeners - fullRadio?.addEventListener('change', toggleFormFields); - popoverRadio?.addEventListener('change', toggleFormFields); + // Add event listeners for all three experience radio buttons + document.querySelectorAll('input[name="searchcraft_search_experience"]').forEach((radio) => { + radio.addEventListener('change', toggleFormFields); + }); + onPageRadio?.addEventListener('change', updateSearchInputContainerDescription); + standAloneRadio?.addEventListener('change', updateSearchInputContainerDescription); // Filter panel options toggle const filterPanelCheckbox = document.getElementById('searchcraft_include_filter_panel'); @@ -684,20 +695,9 @@ document.addEventListener('DOMContentLoaded', () => { filterPanelCheckbox.addEventListener('change', toggleFilterPanelOptions); } - // Search behavior toggle for input container description - const onPageRadio = document.querySelector('input[name="searchcraft_search_behavior"][value="on_page"]'); - const standAloneRadio = document.querySelector('input[name="searchcraft_search_behavior"][value="stand_alone"]'); - // Initialize container ID tag UI initContainerIdTagUI(); - // Initial state - updateSearchInputContainerDescription(); - - // Add event listeners - onPageRadio?.addEventListener('change', updateSearchInputContainerDescription); - standAloneRadio?.addEventListener('change', updateSearchInputContainerDescription); - // Facets options toggle const facetsCheckbox = document.getElementById('searchcraft_enable_facets'); if (facetsCheckbox) { @@ -708,6 +708,16 @@ document.addEventListener('DOMContentLoaded', () => { facetsCheckbox.addEventListener('change', toggleFacetsOptions); } + // View all label row toggle + const viewAllCheckbox = document.getElementById('searchcraft_enable_view_all_results'); + if (viewAllCheckbox) { + // Initial state + toggleViewAllLabelRow(); + + // Add event listener + viewAllCheckbox.addEventListener('change', toggleViewAllLabelRow); + } + // AI summary banner text toggle const aiSummaryCheckbox = document.getElementById('searchcraft_enable_ai_summary'); if (aiSummaryCheckbox) { diff --git a/admin/partials/searchcraft-admin-layout-tab.php b/admin/partials/searchcraft-admin-layout-tab.php index c22a213..bac59c2 100644 --- a/admin/partials/searchcraft-admin-layout-tab.php +++ b/admin/partials/searchcraft-admin-layout-tab.php @@ -35,6 +35,7 @@ $search_experience = get_option( 'searchcraft_search_experience', 'full' ); $include_filter_panel = get_option( 'searchcraft_include_filter_panel', false ); $results_per_page = get_option( 'searchcraft_results_per_page', 10 ); + $overlay_results_per_page = get_option( 'searchcraft_overlay_results_per_page', 5 ); $enable_most_recent_toggle = get_option( 'searchcraft_enable_most_recent_toggle', '1' ); $enable_exact_match_toggle = get_option( 'searchcraft_enable_exact_match_toggle', '1' ); $enable_date_range = get_option( 'searchcraft_enable_date_range', '1' ); @@ -89,6 +90,10 @@
Search Experience Type @@ -98,12 +103,17 @@

+

+

- Choose how you want search to be presented to your users. The full experience provides deep filtering controls while the popover offers a simple, single input experience. + Choose how you want search to be presented to your users. The full experience provides deep filtering controls, while Modal and Inline offer a compact popover experience.

@@ -233,6 +243,55 @@

+ + + + + + +

+ When enabled, a link will appear in the search form directing users to the full search results page. +

+ + + + + + + + + +

+ The label text for the “View All Results” link. +

+ + + + + + + + +

+ Number of search results to display in the modal or inline overlay. Default is 5 results. +

+ + diff --git a/public/class-searchcraft-public.php b/public/class-searchcraft-public.php index da933c7..b38d79b 100644 --- a/public/class-searchcraft-public.php +++ b/public/class-searchcraft-public.php @@ -302,7 +302,8 @@ public function get_js_config() { $oldest_post_year = $admin_instance->get_oldest_post_year(); $js_config['oldestPostYear'] = $oldest_post_year; - $js_config['resultsPerPage'] = intval( get_option( 'searchcraft_results_per_page', 10 ) ); + $js_config['resultsPerPage'] = intval( get_option( 'searchcraft_results_per_page', 10 ) ); + $js_config['overlayResultsPerPage'] = intval( get_option( 'searchcraft_overlay_results_per_page', 5 ) ); // Filter taxonomies. $filter_taxonomies = get_option( 'searchcraft_filter_taxonomies', array() ); @@ -387,6 +388,7 @@ private function prepare_script_data() { 'resultsContainerId' => $results_container_id, 'popoverContainerId' => $popover_container_id, 'popoverInsertBehavior' => $popover_insert_behavior, + 'isSearchPage' => is_search(), ); } diff --git a/public/js/searchcraft-sdk-integration.js b/public/js/searchcraft-sdk-integration.js index 20a51c6..53ea9e0 100644 --- a/public/js/searchcraft-sdk-integration.js +++ b/public/js/searchcraft-sdk-integration.js @@ -67,12 +67,21 @@ return; } const isWPSearchPage = searchcraft_config.isWPSearchPage || false; + + // Determine which results per page setting to use + // Use overlayResultsPerPage for modal/inline when NOT on search page + // Use regular resultsPerPage for full experience or when on search page + let resultsPerPage = parseInt(searchcraft_config.resultsPerPage) || 10; + if (!isWPSearchPage && searchcraft_config.overlayResultsPerPage) { + resultsPerPage = parseInt(searchcraft_config.overlayResultsPerPage) || 5; + } + const config = { indexName: searchcraft_config.indexName, readKey: searchcraft_config.readKey, endpointURL: searchcraft_config.endpointURL, searchDebounceDelay: 50, - searchResultsPerPage: parseInt(searchcraft_config.resultsPerPage) || 10 + searchResultsPerPage: resultsPerPage }; // Add cortexURL if AI summary is enabled diff --git a/public/js/searchcraft-sdk-settings.js b/public/js/searchcraft-sdk-settings.js index e78d5cb..6c7ea7c 100644 --- a/public/js/searchcraft-sdk-settings.js +++ b/public/js/searchcraft-sdk-settings.js @@ -36,17 +36,31 @@ templatesInjected = true; - // Handle full experience or popover with no container specified - if (settings.searchExperience === 'full' || - (settings.searchExperience === 'popover' && !settings.popoverContainerId)) { + const isPopover = settings.searchExperience === 'modal' || settings.searchExperience === 'inline' + // Legacy support for old 'popover' value. + || settings.searchExperience === 'popover'; + + const isSearchPage = settings.isSearchPage == 1; + // On search page with modal/inline, always inject full header + results + if (isSearchPage && isPopover) { injectSearchHeader(settings.headerContent, settings.inputContainerId); - // Inject results content for full experience - if (settings.searchExperience === 'full' && settings.resultsContent) { + if (settings.resultsContent) { injectSearchResults(settings.resultsContent, settings.resultsContainerId); } } + // Handle full experience + else if (settings.searchExperience === 'full') { + injectSearchHeader(settings.headerContent, settings.inputContainerId); + if (settings.resultsContent) { + injectSearchResults(settings.resultsContent, settings.resultsContainerId); + } + } + // Handle popover with no container specified + else if (isPopover && !settings.popoverContainerId) { + injectSearchHeader(settings.headerContent, settings.inputContainerId); + } // Handle popover with specific container - else if (settings.searchExperience === 'popover' && settings.popoverContainerId) { + else if (isPopover && settings.popoverContainerId) { injectPopoverContent( settings.headerContent, settings.popoverContainerId, diff --git a/public/sdk/components/defineCustomElements.js b/public/sdk/components/defineCustomElements.js index b4c171e..5097d20 100644 --- a/public/sdk/components/defineCustomElements.js +++ b/public/sdk/components/defineCustomElements.js @@ -1,26 +1,26 @@ -import { defineCustomElement as define_searchcraft_ad } from './searchcraft-ad.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_button } from './searchcraft-button.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_error_message } from './searchcraft-error-message.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_facet_list } from './searchcraft-facet-list.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_filter_panel } from './searchcraft-filter-panel.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_input_form } from './searchcraft-input-form.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_input_label } from './searchcraft-input-label.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_loading } from './searchcraft-loading.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_pagination } from './searchcraft-pagination.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_popover_button } from './searchcraft-popover-button.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_popover_footer } from './searchcraft-popover-footer.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_popover_form } from './searchcraft-popover-form.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_popover_list_item } from './searchcraft-popover-list-item.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_popover_list_view } from './searchcraft-popover-list-view.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_results_info } from './searchcraft-results-info.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_search_result } from './searchcraft-search-result.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_search_results_per_page } from './searchcraft-search-results-per-page.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_search_results } from './searchcraft-search-results.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_select } from './searchcraft-select.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_slider } from './searchcraft-slider.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_summary_box } from './searchcraft-summary-box.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_theme } from './searchcraft-theme.js?v=0.13.3'; -import { defineCustomElement as define_searchcraft_toggle_button } from './searchcraft-toggle-button.js?v=0.13.3'; +import { defineCustomElement as define_searchcraft_ad } from './searchcraft-ad.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_button } from './searchcraft-button.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_error_message } from './searchcraft-error-message.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_facet_list } from './searchcraft-facet-list.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_filter_panel } from './searchcraft-filter-panel.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_input_form } from './searchcraft-input-form.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_input_label } from './searchcraft-input-label.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_loading } from './searchcraft-loading.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_pagination } from './searchcraft-pagination.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_popover_button } from './searchcraft-popover-button.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_popover_footer } from './searchcraft-popover-footer.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_popover_form } from './searchcraft-popover-form.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_popover_list_item } from './searchcraft-popover-list-item.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_popover_list_view } from './searchcraft-popover-list-view.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_results_info } from './searchcraft-results-info.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_search_result } from './searchcraft-search-result.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_search_results_per_page } from './searchcraft-search-results-per-page.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_search_results } from './searchcraft-search-results.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_select } from './searchcraft-select.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_slider } from './searchcraft-slider.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_summary_box } from './searchcraft-summary-box.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_theme } from './searchcraft-theme.js?scv=0.14.0'; +import { defineCustomElement as define_searchcraft_toggle_button } from './searchcraft-toggle-button.js?scv=0.14.0'; export const defineCustomElements = () => { define_searchcraft_ad(); diff --git a/public/sdk/components/html.js b/public/sdk/components/html.js index 2ea114d..aa472de 100644 --- a/public/sdk/components/html.js +++ b/public/sdk/components/html.js @@ -1,4 +1,4 @@ -import { p as purify } from './purify.es.js?v=0.13.3'; +import { p as purify } from './purify.es.js?scv=0.14.0'; /** * This allows you to parse a template string with a function. diff --git a/public/sdk/components/index.d.ts b/public/sdk/components/index.d.ts index ef42b48..8b9faec 100644 --- a/public/sdk/components/index.d.ts +++ b/public/sdk/components/index.d.ts @@ -1054,6 +1054,11 @@ export namespace Components { * ``` */ interface SearchcraftPagination { + /** + * The URL query string parameter name used to track the current page. When a user navigates to a URL that contains this parameter, the pagination component will automatically navigate to that page. + * @default "p" + */ + "pageQueryParam": string; /** * Whether to scroll to the top of the search results when pagination buttons are clicked. * @default true @@ -1063,6 +1068,11 @@ export namespace Components { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to use a query string parameter to track and restore the current page. Set to `false` to disable query string synchronisation entirely. + * @default true + */ + "usePageQueryParam": boolean; } /** * Renders a button which, when clicked, turns on popover visibility. @@ -1122,10 +1132,23 @@ export namespace Components { * Renders the footer for the searchcraft-popover-form. */ interface SearchcraftPopoverFooter { + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * @default 'js' + */ + "sdkVariant"?: "js" | "react" | "vue"; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Optional href for the "View all" button. + */ + "viewAllResultsHref"?: string; + /** + * Optional label for the "View all" button. + */ + "viewAllResultsLabel"?: string; } /** * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed. @@ -1175,15 +1198,33 @@ export namespace Components { * Formats the content rendered for each result. */ "popoverResultMappings"?: PopoverResultMappings; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * @default 'js' + */ + "sdkVariant"?: "js" | "react" | "vue"; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to display the AI generative summary box before the search results. NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + * @default false + */ + "showSummaryBox"?: boolean; /** * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component. * @default 'inline' */ "type"?: "inline" | "fullscreen" | "modal"; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + "viewAllResultsBaseUrl"?: string; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + "viewAllResultsLabel"?: string; } /** * A single list item rendered in a searchcraft-popover-list-view. @@ -2411,6 +2452,11 @@ declare namespace LocalJSX { * ``` */ interface SearchcraftPagination { + /** + * The URL query string parameter name used to track the current page. When a user navigates to a URL that contains this parameter, the pagination component will automatically navigate to that page. + * @default "p" + */ + "pageQueryParam"?: string; /** * Whether to scroll to the top of the search results when pagination buttons are clicked. * @default true @@ -2420,6 +2466,11 @@ declare namespace LocalJSX { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to use a query string parameter to track and restore the current page. Set to `false` to disable query string synchronisation entirely. + * @default true + */ + "usePageQueryParam"?: boolean; } /** * Renders a button which, when clicked, turns on popover visibility. @@ -2479,10 +2530,23 @@ declare namespace LocalJSX { * Renders the footer for the searchcraft-popover-form. */ interface SearchcraftPopoverFooter { + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * @default 'js' + */ + "sdkVariant"?: "js" | "react" | "vue"; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Optional href for the "View all" button. + */ + "viewAllResultsHref"?: string; + /** + * Optional label for the "View all" button. + */ + "viewAllResultsLabel"?: string; } /** * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed. @@ -2532,15 +2596,33 @@ declare namespace LocalJSX { * Formats the content rendered for each result. */ "popoverResultMappings"?: PopoverResultMappings; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * @default 'js' + */ + "sdkVariant"?: "js" | "react" | "vue"; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to display the AI generative summary box before the search results. NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + * @default false + */ + "showSummaryBox"?: boolean; /** * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component. * @default 'inline' */ "type"?: "inline" | "fullscreen" | "modal"; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + "viewAllResultsBaseUrl"?: string; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + "viewAllResultsLabel"?: string; } /** * A single list item rendered in a searchcraft-popover-list-view. diff --git a/public/sdk/components/index.js b/public/sdk/components/index.js index ca57526..559d490 100644 --- a/public/sdk/components/index.js +++ b/public/sdk/components/index.js @@ -1,29 +1,30 @@ -export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './index2.js?v=0.13.3'; -import { n as nanoid } from './searchcraft-ad2.js?v=0.13.3'; -import { D as DEFAULT_CORE_INSTANCE_ID, r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -export { SearchcraftAd, defineCustomElement as defineCustomElementSearchcraftAd } from './searchcraft-ad.js?v=0.13.3'; -export { SearchcraftButton, defineCustomElement as defineCustomElementSearchcraftButton } from './searchcraft-button.js?v=0.13.3'; -export { SearchcraftErrorMessage, defineCustomElement as defineCustomElementSearchcraftErrorMessage } from './searchcraft-error-message.js?v=0.13.3'; -export { SearchcraftFacetList, defineCustomElement as defineCustomElementSearchcraftFacetList } from './searchcraft-facet-list.js?v=0.13.3'; -export { SearchcraftFilterPanel, defineCustomElement as defineCustomElementSearchcraftFilterPanel } from './searchcraft-filter-panel.js?v=0.13.3'; -export { SearchcraftInputForm, defineCustomElement as defineCustomElementSearchcraftInputForm } from './searchcraft-input-form.js?v=0.13.3'; -export { SearchcraftInputLabel, defineCustomElement as defineCustomElementSearchcraftInputLabel } from './searchcraft-input-label.js?v=0.13.3'; -export { SearchcraftLoading, defineCustomElement as defineCustomElementSearchcraftLoading } from './searchcraft-loading.js?v=0.13.3'; -export { SearchcraftPagination, defineCustomElement as defineCustomElementSearchcraftPagination } from './searchcraft-pagination.js?v=0.13.3'; -export { SearchcraftPopoverButton, defineCustomElement as defineCustomElementSearchcraftPopoverButton } from './searchcraft-popover-button.js?v=0.13.3'; -export { SearchcraftPopoverFooter, defineCustomElement as defineCustomElementSearchcraftPopoverFooter } from './searchcraft-popover-footer.js?v=0.13.3'; -export { SearchcraftPopoverForm, defineCustomElement as defineCustomElementSearchcraftPopoverForm } from './searchcraft-popover-form.js?v=0.13.3'; -export { SearchcraftPopoverListItem, defineCustomElement as defineCustomElementSearchcraftPopoverListItem } from './searchcraft-popover-list-item.js?v=0.13.3'; -export { SearchcraftPopoverListView, defineCustomElement as defineCustomElementSearchcraftPopoverListView } from './searchcraft-popover-list-view.js?v=0.13.3'; -export { SearchcraftResultsInfo, defineCustomElement as defineCustomElementSearchcraftResultsInfo } from './searchcraft-results-info.js?v=0.13.3'; -export { SearchcraftSearchResult, defineCustomElement as defineCustomElementSearchcraftSearchResult } from './searchcraft-search-result.js?v=0.13.3'; -export { SearchcraftSearchResults, defineCustomElement as defineCustomElementSearchcraftSearchResults } from './searchcraft-search-results.js?v=0.13.3'; -export { SearchcraftSearchResultsPerPage, defineCustomElement as defineCustomElementSearchcraftSearchResultsPerPage } from './searchcraft-search-results-per-page.js?v=0.13.3'; -export { SearchcraftSelect, defineCustomElement as defineCustomElementSearchcraftSelect } from './searchcraft-select.js?v=0.13.3'; -export { SearchcraftSlider, defineCustomElement as defineCustomElementSearchcraftSlider } from './searchcraft-slider.js?v=0.13.3'; -export { SearchcraftSummaryBox, defineCustomElement as defineCustomElementSearchcraftSummaryBox } from './searchcraft-summary-box.js?v=0.13.3'; -export { SearchcraftTheme, defineCustomElement as defineCustomElementSearchcraftTheme } from './searchcraft-theme.js?v=0.13.3'; -export { SearchcraftToggleButton, defineCustomElement as defineCustomElementSearchcraftToggleButton } from './searchcraft-toggle-button.js?v=0.13.3'; +export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './index2.js?scv=0.14.0'; +import { n as nanoid } from './searchcraft-ad2.js?scv=0.14.0'; +import { D as DEFAULT_CORE_INSTANCE_ID, r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { v as version, n as name } from './searchcraft-popover-footer2.js?scv=0.14.0'; +export { SearchcraftAd, defineCustomElement as defineCustomElementSearchcraftAd } from './searchcraft-ad.js?scv=0.14.0'; +export { SearchcraftButton, defineCustomElement as defineCustomElementSearchcraftButton } from './searchcraft-button.js?scv=0.14.0'; +export { SearchcraftErrorMessage, defineCustomElement as defineCustomElementSearchcraftErrorMessage } from './searchcraft-error-message.js?scv=0.14.0'; +export { SearchcraftFacetList, defineCustomElement as defineCustomElementSearchcraftFacetList } from './searchcraft-facet-list.js?scv=0.14.0'; +export { SearchcraftFilterPanel, defineCustomElement as defineCustomElementSearchcraftFilterPanel } from './searchcraft-filter-panel.js?scv=0.14.0'; +export { SearchcraftInputForm, defineCustomElement as defineCustomElementSearchcraftInputForm } from './searchcraft-input-form.js?scv=0.14.0'; +export { SearchcraftInputLabel, defineCustomElement as defineCustomElementSearchcraftInputLabel } from './searchcraft-input-label.js?scv=0.14.0'; +export { SearchcraftLoading, defineCustomElement as defineCustomElementSearchcraftLoading } from './searchcraft-loading.js?scv=0.14.0'; +export { SearchcraftPagination, defineCustomElement as defineCustomElementSearchcraftPagination } from './searchcraft-pagination.js?scv=0.14.0'; +export { SearchcraftPopoverButton, defineCustomElement as defineCustomElementSearchcraftPopoverButton } from './searchcraft-popover-button.js?scv=0.14.0'; +export { SearchcraftPopoverFooter, defineCustomElement as defineCustomElementSearchcraftPopoverFooter } from './searchcraft-popover-footer.js?scv=0.14.0'; +export { SearchcraftPopoverForm, defineCustomElement as defineCustomElementSearchcraftPopoverForm } from './searchcraft-popover-form.js?scv=0.14.0'; +export { SearchcraftPopoverListItem, defineCustomElement as defineCustomElementSearchcraftPopoverListItem } from './searchcraft-popover-list-item.js?scv=0.14.0'; +export { SearchcraftPopoverListView, defineCustomElement as defineCustomElementSearchcraftPopoverListView } from './searchcraft-popover-list-view.js?scv=0.14.0'; +export { SearchcraftResultsInfo, defineCustomElement as defineCustomElementSearchcraftResultsInfo } from './searchcraft-results-info.js?scv=0.14.0'; +export { SearchcraftSearchResult, defineCustomElement as defineCustomElementSearchcraftSearchResult } from './searchcraft-search-result.js?scv=0.14.0'; +export { SearchcraftSearchResults, defineCustomElement as defineCustomElementSearchcraftSearchResults } from './searchcraft-search-results.js?scv=0.14.0'; +export { SearchcraftSearchResultsPerPage, defineCustomElement as defineCustomElementSearchcraftSearchResultsPerPage } from './searchcraft-search-results-per-page.js?scv=0.14.0'; +export { SearchcraftSelect, defineCustomElement as defineCustomElementSearchcraftSelect } from './searchcraft-select.js?scv=0.14.0'; +export { SearchcraftSlider, defineCustomElement as defineCustomElementSearchcraftSlider } from './searchcraft-slider.js?scv=0.14.0'; +export { SearchcraftSummaryBox, defineCustomElement as defineCustomElementSearchcraftSummaryBox } from './searchcraft-summary-box.js?scv=0.14.0'; +export { SearchcraftTheme, defineCustomElement as defineCustomElementSearchcraftTheme } from './searchcraft-theme.js?scv=0.14.0'; +export { SearchcraftToggleButton, defineCustomElement as defineCustomElementSearchcraftToggleButton } from './searchcraft-toggle-button.js?scv=0.14.0'; var LogLevel; (function (LogLevel) { @@ -1236,9 +1237,6 @@ class SearchcraftCore { }; } -const name = "@searchcraft/javascript-sdk"; -const version = "0.13.3"; - /** * @fileoverview entry point for your component library * @@ -1264,4 +1262,4 @@ export { Searchcraft, SearchcraftCore }; //# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map -export { defineCustomElements } from './defineCustomElements.js?v=0.13.3'; +export { defineCustomElements } from './defineCustomElements.js?scv=0.14.0'; diff --git a/public/sdk/components/index.js.map b/public/sdk/components/index.js.map index 6b61ea1..8ec6bc1 100644 --- a/public/sdk/components/index.js.map +++ b/public/sdk/components/index.js.map @@ -1 +1 @@ -{"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAY,QAMX;AAND,CAAA,UAAY,QAAQ,EAAA;IAClB,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;IACT,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;IACR,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;IACR,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;IACT,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACV,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA;AAOD,MAAM,iBAAiB,CAAA;AACb,IAAA,QAAQ;AACR,IAAA,YAAY;AAEpB,IAAA,WAAA,CAAY,OAAiC,EAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;QACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB;;IAG3D,gBAAgB,CAAC,KAAe,EAAE,OAAe,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChC,QAAA,OAAO,CAAI,CAAA,EAAA,QAAQ,CAAK,EAAA,EAAA,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE;;AAGhE,IAAA,KAAK,CAAC,OAAe,EAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACnC,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;;AAI3D,IAAA,IAAI,CAAC,OAAe,EAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;;AAI3D,IAAA,IAAI,CAAC,OAAe,EAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;;AAI3D,IAAA,KAAK,CAAC,OAAe,EAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACnC,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;;IAI7D,GAAG,CAAC,KAAe,EAAE,OAAe,EAAA;QAClC,QAAQ,KAAK;YACX,KAAK,QAAQ,CAAC,KAAK;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnB;YACF,KAAK,QAAQ,CAAC,IAAI;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAClB;YACF,KAAK,QAAQ,CAAC,IAAI;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAClB;YACF,KAAK,QAAQ,CAAC,KAAK;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnB;;;AAGP;AAEM,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;;ACrExE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAid,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,YAAY,WAAW,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAuP,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAoY,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,OAAO,SAAS,CAAC,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,iFAAiF,CAAC,2EAA2E,CAAC,4CAA4C,CAAC,4DAA4D,CAAC,+CAA+C,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAM,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAsB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,2IAA2I,CAAC,CAAC,CAAC,sKAAsK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAA6B,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;;MCOt1lB,QAAQ,CAAA;AACnB,IAAA,MAAM;AAEN,IAAA,WAAA,CAAY,MAAyB,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;IAGtB,MAAM,MAAM,CACV,WAA0C,EAAA;AAE1C,QAAA,OAAO,EAAE;;AAGX,IAAA,MAAM,gBAAgB,CAAC,WAA0C;AAEjE,IAAA,MAAM,cAAc,CAClB,WAA0C,EAC1C,SAA8B;IAGhC,MAAM,cAAc,GAAA;AAEpB,IAAA,MAAM,qBAAqB,CAAC,KAI3B;AAED,IAAA,MAAM,mBAAmB,CAAC,KAIzB;AACF;;AC/BK,MAAO,mBAAoB,SAAQ,QAAQ,CAAA;AAC/C;;AAEG;IACH,MAAM,MAAM,CACV,WAA0C,EAAA;AAE1C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;AAEzC,QAAA,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC;AAC/C,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;AACtC,YAAA,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,SAAS,CAAC,GAAG;YACnB,EAAE,EAAE,WAAW,CAAC,UAAU;AAC1B,YAAA,CAAC,EAAE,KAAK;AACR,YAAA,GAAG,EAAE,gBAAgB;AACrB,YAAA,YAAY,EAAE,CAAG,EAAA,SAAS,CAAC,cAAc,IAAI,CAAC,CAAE,CAAA;AAChD,YAAA,YAAY,EAAE,CAAG,EAAA,SAAS,CAAC,iBAAiB,IAAI,CAAC,CAAE,CAAA;SACpD,CAAC,CAAC,QAAQ,EAAE;AAEb,QAAA,MAAM,IAAI,GAAG,CAAsC,mCAAA,EAAA,WAAW,EAAE;AAEhE,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACrD,MAAM,WAAW,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB;AAE1D,QAAA,MAAM,UAAU,GAA4B,WAAW,CAAC,WAAW,CAAC,GAAG,CACrE,CAAC,EAAE,MAAM;YACP,EAAE,EAAE,MAAM,EAAE;AACZ,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC,CACH;AAED,QAAA,MAAM,OAAO,GAA4B,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;YACzE,EAAE,EAAE,MAAM,EAAE;AACZ,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;AAEzC,QAAA,OAAO,MAAM;;IAGf,MAAM,mBAAmB,CAAC,IAIzB,EAAA;;AAEC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,oBAA6C;AAC/D,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE;AAC9B,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;;;AAGrC;;AChEK,MAAO,cAAe,SAAQ,QAAQ,CAAA;IAC1C,MAAM,MAAM,CACV,WAA0C,EAAA;AAE1C,QAAA,OAAO,EAAE;;AAEZ;;ACHD,MAAM,yBAAyB,GAAG,IAAI;AAEhC,MAAO,YAAa,SAAQ,QAAQ,CAAA;AACxC,IAAA,aAAa;AAEb,IAAA,WAAA,CAAY,MAAyB,EAAA;QACnC,KAAK,CAAC,MAAM,CAAC;QACb,IAAI,CAAC,sBAAsB,EAAE;;IAG/B,MAAM,gBAAgB,CAAC,WAA0C,EAAA;QAC/D,IAAI,CAAC,sBAAsB,EAAE;;AAG/B,IAAA,MAAM,cAAc,CAClB,WAA0C,EAC1C,QAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;YAC3C,IAAI,CAAC,2BAA2B,EAAE;YAClC;;AAGF,QAAA,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC;;AAG/C,IAAA,MAAM,cAAc,GAAA;QAClB,IAAI,CAAC,2BAA2B,EAAE;;AAGpC,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGlC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YACnC,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI;;AAEF,gBAAA,WAAW,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;;YAC5D,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;;SAGvB,EAAE,KAAK,CAAC;;IAGX,MAAM,MAAM,CACV,WAA0C,EAAA;AAE1C,QAAA,OAAO,EAAE;;IAGH,sBAAsB,GAAA;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,YAAA,SAAS,CAAC,IAAI,GAAG,iBAAiB;AAClC,YAAA,SAAS,CAAC,GAAG,GAAG,gCAAgC;AAChD,YAAA,SAAS,CAAC,EAAE,GAAG,YAAY;AAC3B,YAAA,SAAS,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,CAAC;AAC5D,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;;;IAIhC,2BAA2B,GAAA;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAC5D,IAAI,SAAS,EAAE;AACb,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;;;AAGzC;;ACrED,MAAM,wBAAwB,GAAG,GAAG;MAEvB,aAAa,CAAA;AAChB,IAAA,qBAAqB;IACrB,sBAAsB,GAAqB,EAAE;AAC7C,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,QAAQ;AAChB,IAAA,SAAS;AAET,IAAA,WAAA,CACE,MAAyB,EACzB,OAA2B,EAC3B,MAAc,EACd,QAAuC,EAAA;AAEvC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE;QACzB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACvD,YAAA,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC;AAC9D,SAAC,CAAC;;AAGJ;;AAEG;AACH,IAAA,IAAY,cAAc,GAAA;AACxB,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,UAAU;;AAG7C;;AAEG;AACH,IAAA,IAAY,kBAAkB,GAAA;QAC5B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM;AACpB,YAAA,MAAM,EAAE,SAAS,CAAC,QAAQ,IAAI,OAAO;YACrC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS;AACxC,kBAAE;kBACA,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK;AAClC,sBAAE;sBACA,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO;AACpC,0BAAE;AACF,0BAAE,SAAS;AACjB,YAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS;AACzC,YAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;AACpC,YAAA,UAAU,EAAE,SAAS,CAAC,SAAS,IAAI,SAAS;SAC7C;;AAGH;;;;;;AAMG;AACH,IAAA,gBAAgB,GAAG,OACjB,SAA2B,EAC3B,UAAgD,GAAA,EAAE,EAClD,IAAA,GAAoC,EAAE,KACpC;AACF;;AAEG;AACH,QAAA,MAAM,OAAO,GAAmB;AAC9B,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,UAAU,EAAE;AACV,gBAAA,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC;AACnC,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;AACxB,sBAAE,EAAE;AACN,gBAAA,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBACvD,UAAU,EAAE,IAAI,CAAC,SAAS;AAC1B,gBAAA,GAAG,UAAU;AACd,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,GAAG,IAAI,CAAC,kBAAkB;AAC1B,gBAAA,GAAG,IAAI;AACR,aAAA;SACF;;AAGD,QAAA,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AACpC,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,cAAc,QAAQ;AAE1C,YAAA,IAAI;AACF,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAChC,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA,cAAc,EAAE,kBAAkB;AAClC,wBAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;wBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;wBAC3B,iBAAiB,EAAE,IAAI,CAAC,SAAS;wBACjC,gBAAgB,EAAE,IAAI,CAAC,QAAQ;AAChC,qBAAA;oBACD,IAAI;AACJ,oBAAA,SAAS,EAAE,IAAI;AAChB,iBAAA,CAAC;AAEF,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,oBAAA,OAAO,CAAC,KAAK,CACX,CAAA,8BAAA,EAAiC,QAAQ,CAAC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAC,UAAU,CAAA,CAAE,CAC1E;;;YAEH,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;;;aAElD;;AAEL,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,YAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAExC,YAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,MAAK;AAC3C,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtE,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,cAAc,QAAQ;gBAE1C,CAAC,YAAW;AACV,oBAAA,IAAI;AACF,wBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAChC,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,OAAO,EAAE;AACP,gCAAA,cAAc,EAAE,kBAAkB;AAClC,gCAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gCAClC,cAAc,EAAE,IAAI,CAAC,MAAM;gCAC3B,iBAAiB,EAAE,IAAI,CAAC,SAAS;gCACjC,gBAAgB,EAAE,IAAI,CAAC,QAAQ;AAChC,6BAAA;AACD,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,SAAS,EAAE,IAAI;AAChB,yBAAA,CAAC;AAEF,wBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAChC,wBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,4BAAA,OAAO,CAAC,KAAK,CACX,CAAA,8BAAA,EAAiC,QAAQ,CAAC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAC,UAAU,CAAA,CAAE,CAC1E;;;oBAEH,OAAO,KAAK,EAAE;AACd,wBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAChC,wBAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;;iBAExD,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACnB,oBAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAClE,iBAAC,CAAC;aACH,EAAE,wBAAwB,CAAC;;AAEhC,KAAC;AACF;;ACnKM,MAAM,0BAA0B,GAAG,CAAC,WAAmB,KAC5D,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW;;ACD7D,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAI;IACtC,IAAI,YAAY,GAAG,EAAE;;AAGrB,IAAA,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE;;IAGzB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AACvD,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;SACT;AACD,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK;AAC5B,KAAC,CAAC;;AAGF,IAAA,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM;AAE1D,IAAA,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE;;AAGH,IAAA,OAAO,YAAY;AACrB,CAAC;;ACdD,MAAM,+BAA+B,GAAG,GAAG;MAE9B,YAAY,CAAA;AACf,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,2BAA2B;AAC3B,IAAA,eAAe;AACf,IAAA,2BAA2B;AAEnC,IAAA,WAAA,CACE,MAAuB,EACvB,MAAyB,EACzB,MAAc,EAAA;AAEd,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGtB;;;AAGG;AACH,IAAA,IAAY,aAAa,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC;AACjB,cAAE,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA,YAAA,EAAe,IAAI,CAAC,MAAM,CAAC,cAAc,CAAS,OAAA;AAC9E,cAAE,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAU,OAAA,EAAA,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS;;AAGxE;;AAEG;IACH,aAAa,GAAG,MAAK;AACnB,QAAA,IAAI,CAAC,eAAe,EAAE,KAAK,CACzB,gDAAgD,CACjD;AACD,QAAA,IAAI,CAAC,2BAA2B,EAAE,KAAK,CACrC,gDAAgD,CACjD;AACH,KAAC;AAED;;;;;AAKG;IACH,sBAAsB,GAAG,OACvB,UAAkD,EAClD,cAAc,GAAG,KAAK,KACpB;AACF,QAAA,IAAI,QAA6B;QACjC,IAAI,UAAU,GAAG,EAAE;AAEnB,QAAA,IAAI,eAAgC;QACpC,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,2BAA2B,EAAE,KAAK,CACrC,+CAA+C,CAChD;AACD,YAAA,eAAe,GAAG,IAAI,eAAe,EAAE;AACvC,YAAA,IAAI,CAAC,2BAA2B,GAAG,eAAe;;aAC7C;AACL,YAAA,IAAI,CAAC,eAAe,EAAE,KAAK,CACzB,+CAA+C,CAChD;AACD,YAAA,eAAe,GAAG,IAAI,eAAe,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;;;;AAKxC,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,YAAA,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;;aAC5B;YACL,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACvD,YAAA,UAAU,GAAG,UAAU,CAAC,UAAU;;QAGpC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE;AAC9D,YAAA,WAAW,EAAE,UAAU;AACxB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;AACvC,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,IAAI,EAAE;gBACJ,UAAU;AACX,aAAA;AACF,SAAA,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CACpC,OAAO,UAAU,KAAK;AACpB,cAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO;cAC3B,UAAU,CACf;AAED,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,QAAQ,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAC1D,UAAU,EACV,eAAe,CAChB;;aACI;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAC1D,UAAU,EACV,eAAe,CAChB;;QAGH,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;AACtE,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;AACzC,aAAA,CAAC;AAEF,YAAA,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9C,YAAA,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,MAAK;gBACjD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE;AAC9D,oBAAA,WAAW,EAAE,UAAU;AACvB,oBAAA,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;AACzC,iBAAA,CAAC;aACH,EAAE,+BAA+B,CAAC;AAEnC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE;AACrC,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,IAAI,EAAE;oBACJ,UAAU;AACX,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE;AAC3C,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAC;;YAGJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAClC,OAAO,UAAU,KAAK;AACpB,kBAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO;AAC7B,kBAAE,UAAU,EACd,QAAQ,CACT;;AAGH,QAAA,OAAO,QAAQ;AACjB,KAAC;AAEO,IAAA,sCAAsC,GAAG,OAC/C,GAAW,EACX,eAAgC,KACA;AAChC,QAAA,IAAI,mBAAwC;AAE5C,QAAA,IAAI;AACF,YAAA,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,YAAA,mBAAmB,GAAG;AACpB,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;AACvC,gBAAA,GAAG,mBAAmB;aACvB;;AACD,QAAA,MAAM;AACN,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;QAG3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;AAC/C,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAClC,gBAAA,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,MAAM,EAAE;AACnE,gBAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AACvC,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACzC,MAAM,EAAE,eAAe,CAAC,MAAM;AAC/B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,UAAU,CAAA,UAAA,EAAa,QAAQ,CAAC,MAAM,CAAA,CAAA,CAAG,CAC7D;;AAGH,QAAA,QAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC/B,KAAC;AAEO,IAAA,sCAAsC,GAAG,OAC/C,UAAyC,EACzC,eAAgC,KACA;AAChC,QAAA,MAAM,mBAAmB,GAAG;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;AAC9C,YAAA,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE;AACjE,YAAA,IAAI,UAAU,CAAC,QAAQ,IAAI;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC;AACF,YAAA,IAAI,UAAU,CAAC,IAAI,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC;SAC2B;QAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;AAC/C,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAClC,gBAAA,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,MAAM,EAAE;AACnE,gBAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AACvC,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACzC,MAAM,EAAE,eAAe,CAAC,MAAM;AAC/B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,UAAU,CAAA,UAAA,EAAa,QAAQ,CAAC,MAAM,CAAA,CAAA,CAAG,CAC7D;;AAGH,QAAA,QAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC/B,KAAC;AAED;;;;AAIG;AACK,IAAA,sBAAsB,CAC5B,UAAyC,EAAA;QAEzC,MAAM,OAAO,GAAwB,EAAE;QACvC,IAAI,KAAK,GAAsB,QAAQ;AAEvC,QAAA,IAAI,UAAU,CAAC,wBAAwB,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACrE,MAAM,IAAI,GAAG,UAAU,CAAC,wBAAwB,GAAG,SAAS,CAAC;gBAE7D,IAAI,IAAI,EAAE;oBACR,KAAK,GAAG,MAAM;oBACd,OAAO,CAAC,IAAI,CAAC;AACX,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,KAAK,EAAE;AACL,4BAAA,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA,CAAC;;AAEN,aAAC,CAAC;;AAGJ,QAAA,IAAI,UAAU,CAAC,wBAAwB,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACrE,MAAM,IAAI,GAAG,UAAU,CAAC,wBAAwB,GAAG,SAAS,CAAC;gBAE7D,IAAI,IAAI,EAAE;oBACR,KAAK,GAAG,MAAM;oBACd,OAAO,CAAC,IAAI,CAAC;AACX,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,KAAK,EAAE;AACL,4BAAA,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA,CAAC;;AAEN,aAAC,CAAC;;AAGJ,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU;AACxC,QAAA,MAAM,KAAK,GACT,UAAU,CAAC,IAAI,KAAK;cAChB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;AAC9B,cAAE;AACE,gBAAA,KAAK,EAAE;AACL,oBAAA,GAAG,EAAE,CAAG,EAAA,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAI,CAAA,EAAA,UAAU,GAAG,CAAE,CAAA;AACtE,iBAAA;aACF;QACP,OAAO,CAAC,IAAI,CAAC;AACX,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK;AACnD,YAAA,GAAG,KAAK;AACT,SAAA,CAAC;AAEF,QAAA,OAAO,OAAO;;AAEjB;;AC1SD,MAAM,eAAe,GAAG,CAAC,WAAW,KAAK;AACzC,EAAE,IAAI,KAAK;AACX,EAAE,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE;AAC7C,EAAE,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACzC,IAAI,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO;AAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AACtC,MAAM,MAAM,aAAa,GAAG,KAAK;AACjC,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;AACjJ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACrE;AACA,GAAG;AACH,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK;AAC9B,EAAE,MAAM,eAAe,GAAG,MAAM,YAAY;AAC5C,EAAE,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK;AAClC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3B,IAAI,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3C,GAAG;AACH,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE;AAChE,EAAE,MAAM,YAAY,GAAG,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC;AACnE,EAAE,OAAO,GAAG;AACZ,CAAC;AACD,MAAM,WAAW,IAAI,CAAC,WAAW,KAAK,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC;;ACnBnG,MAAM,cAAc,GAAG,IAAI;MAEd,aAAa,CAAA;AAChB,IAAA,GAAG;AACH,IAAA,GAAG;AACH,IAAA,eAAe;AACf,IAAA,OAAO;IAEf,WACE,CAAA,GAAiC,EACjC,GAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;IAGhB,iBAAiB,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,YAAW;AACvB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACxB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM;YAEjC,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC;gBAChE;;AAGF,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,gBAAA,OAAO,CAAC,KAAK,CACX,2EAA2E,CAC5E;gBACD;;YAGF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS;YAE9C,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE;gBACtC;;AAGF,YAAA,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,wCAAwC,CAAC;AACrE,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE;YAE5C,IAAI,CAAC,GAAG,CAAC;AACP,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC;AAEF,YAAA,MAAM,WAAW,GAAG,CAAG,EAAA,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB;AAE/E,YAAA,IAAI;AACF,gBAAA,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;AAC7C,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;AAC/C,wBAAA,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE;wBACxC,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE;AAC7D,wBAAA,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,WAAW;AACtD,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,WAAW,EAAE,KAAK,CAAC,mBAAmB;AACtC,wBAAA,yBAAyB,EACvB,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,yBAAyB;AAC9C,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW;qBAC5C,CAAC;AACF,oBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;AACpC,iBAAA,CAAC;gBAEF,IAAI,CAAC,aAAa,EAAE;AAClB,oBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAG3C,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACvB,oBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAG3C,gBAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;AACrB,oBAAA,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE;AAChC,wBAAA,OAAO,CAAC,IAAI,CACV,qEAAqE,CACtE;wBACD,IAAI,CAAC,GAAG,CAAC;AACP,4BAAA,gBAAgB,EAAE,KAAK;AACvB,4BAAA,mBAAmB,EAAE,IAAI;AAC1B,yBAAA,CAAC;wBACF;;oBAEF,MAAM,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,aAAa,CAAC,MAAM,CAAE,CAAA,CAAC;;gBAGjD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7C,gBAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;gBAEjC,IAAI,eAAe,GAAG,KAAK;AAC3B,gBAAA,GAAG;oBACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;oBAC3C,eAAe,GAAG,IAAI;AAEtB,oBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBACrD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACnB,wBAAA,gBAAgB,EAAE,KAAK;AACvB,wBAAA,OAAO,EAAE,CAAG,EAAA,KAAK,CAAC,OAAO,CAAA,EAAG,KAAK,CAAE,CAAA;AACpC,qBAAA,CAAC,CAAC;iBACJ,QAAQ,CAAC,eAAe;;YACzB,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;;gBAE9B,IAAI,CAAC,GAAG,CAAC;AACP,oBAAA,gBAAgB,EAAE,KAAK;AACxB,iBAAA,CAAC;;AAEN,SAAC;AAED,QAAA,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,IAAI,cAAc;AAChE,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,KAAK,CAAC;;AAElD;;ACxGD,MAAM,6BAA6B,GAA2B;AAC5D,IAAA,qBAAqB,EAAE,EAAE;AACzB,IAAA,2BAA2B,EAAE,EAAE;AAC/B,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,wBAAwB,EAAE,EAAE;AAC5B,IAAA,oBAAoB,EAAE,IAAI;AAC1B,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,wBAAwB,EAAE,EAAE;AAC5B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,6BAA6B,EAAE,SAAS;AACxC,IAAA,yBAAyB,EAAE,EAAE;AAC7B,IAAA,+BAA+B,EAAE,EAAE;AACnC,IAAA,8BAA8B,EAAE,SAAS;AACzC,IAAA,4BAA4B,EAAE,SAAS;AACvC,IAAA,6BAA6B,EAAE,SAAS;AACxC,IAAA,wBAAwB,EAAE,SAAS;AACnC,IAAA,mCAAmC,EAAE,SAAS;AAC9C,IAAA,uBAAuB,EAAE,SAAS;AAClC,IAAA,wBAAwB,EAAE,SAAS;AACnC,IAAA,sBAAsB,EAAE,SAAS;AACjC,IAAA,kBAAkB,EAAE,CAAC;AACrB,IAAA,oBAAoB,EAAE,EAAE;AACxB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,mBAAmB,EAAE,KAAK;CAC3B;AAED;AACA,MAAM,cAAc,GAA+C,EAAE;AAErE;;;;;;;AAOG;AACH,MAAM,sBAAsB,GAAG,CAC7B,aAAiC,EACjC,YAAgD,GAAA,EAAE,KACpB;AAC9B,IAAA,MAAM,EAAE,GAAG,aAAa,IAAI,wBAAwB;AACpD,IAAA,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE;QACtB,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;AACzC,QAAA,OAAO,cAAc,CAAC,EAAE,CAAC;;IAG3B,MAAM,QAAQ,GAAG,WAAW,CAAmB,CAAC,GAAG,EAAE,GAAG,KAAI;AAC1D,QAAA,MAAM,SAAS,GAA8B;AAC3C,YAAA,0BAA0B,EAAE,CAAC,UAAmC,KAAI;AAClE,gBAAA,GAAG,CAAC,CAAC,KAAK,MAAM;AACd,oBAAA,wBAAwB,EAAE;wBACxB,GAAG,KAAK,CAAC,wBAAwB;AACjC,wBAAA,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU;AACnC,qBAAA;oBACD,iBAAiB,EAAE,CAAC;AACrB,iBAAA,CAAC,CAAC;aACJ;AACD,YAAA,0BAA0B,EAAE,CAAC,UAAmC,KAC9D,GAAG,CAAC,CAAC,KAAK,MAAM;AACd,gBAAA,wBAAwB,EAAE;oBACxB,GAAG,KAAK,CAAC,wBAAwB;AACjC,oBAAA,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU;AACnC,iBAAA;AACF,aAAA,CAAC,CAAC;AACL,YAAA,6BAA6B,EAAE,CAAC,SAAiB,KAAI;AACnD,gBAAA,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE;oBACnD,SAAS;AACT,oBAAA,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB;AACpC,oBAAA,UAAU,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;AAC9B,iBAAA,CAAC;AACF,gBAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,oBAAA,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB;AACnD,oBAAA,OAAO,YAAY,CAAC,SAAS,CAAC;oBAC9B,OAAO;AACL,wBAAA,wBAAwB,EAAE;AACxB,4BAAA,GAAG,YAAY;AAChB,yBAAA;wBACD,iBAAiB,EAAE,CAAC;qBACrB;AACH,iBAAC,CAAC;aACH;YACD,6BAA6B,EAAE,CAAC,SAAiB,KAC/C,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,gBAAA,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB;AACpD,gBAAA,OAAO,aAAa,CAAC,SAAS,CAAC;gBAC/B,OAAO;AACL,oBAAA,wBAAwB,EAAE;AACxB,wBAAA,GAAG,aAAa;AACjB,qBAAA;iBACF;AACH,aAAC,CAAC;YACJ,iBAAiB,EAAE,MAAK;AACtB,gBAAA,MAAM,KAAK,GAAG,GAAG,EAAE;AACnB,gBAAA,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE;AACzC,gBAAA,GAAG,CAAC;AACF,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,iBAAiB,EAAE,CAAC;AACpB,oBAAA,yBAAyB,EAAE,CAAC,GAAG,KAAK,CAAC,+BAA+B,CAAC;AACrE,oBAAA,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;AAC9D,iBAAA,CAAC;aACH;AACD,YAAA,MAAM,EAAE,OAAO,OAAmC,KAAI;AACpD,gBAAA,MAAM,KAAK,GAAG,GAAG,EAAE;AAEnB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,oBAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;AAG7D,gBAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;AACxD,oBAAA,KAAK,CAAC,aAAa,EAAE,iBAAiB,EAAE;;;AAI1C,gBAAA,MAAM,cAAc,GAClB,OAAO,KAAK,CAAC,mCAAmC,KAAK,QAAQ;AAC7D,oBAAA,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;;AAGhC,gBAAA,MAAM,gBAAgB,GACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC;oBACtD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC;AACxD,gBAAA,MAAM,uBAAuB,GAAG,KAAK,CAAC,iBAAiB,KAAK,CAAC;AAC7D,gBAAA,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,KAAK,OAAO;gBAE5D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;;AAE5B,oBAAA,IACE,cAAc;AACd,yBAAC,gBAAgB;4BACf,uBAAuB;4BACvB,uBAAuB,CAAC,EAC1B;;wBAEA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,KAAK,CAAC,mCAA6C,CACpD;AAED,wBAAA,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;;wBAGjC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK;AACnD,8BAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC,KAAK;AACnD,8BAAE,CAAC,eAAe,CAAC,KAAK,CAAC;AAE3B,wBAAA,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC;;AAG9B,wBAAA,IAAI,KAAK,CAAC,wBAAwB,EAAE;AAClC,4BAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,CACjD,CAAC,SAAS,KAAI;gCACZ,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,GAAG,SAAS,CAAC;gCACxD,IAAI,IAAI,EAAE;oCACR,OAAO,CAAC,IAAI,CAAC;AACX,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,KAAK,EAAE;4CACL,GAAG,EAAE,IAAI,CAAC,KAAK;AAChB,yCAAA;AACF,qCAAA,CAAC;;AAEN,6BAAC,CACF;;;AAIH,wBAAA,IAAI,KAAK,CAAC,wBAAwB,EAAE;AAClC,4BAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,CACjD,CAAC,SAAS,KAAI;gCACZ,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,GAAG,SAAS,CAAC;gCACxD,IAAI,IAAI,EAAE;oCACR,OAAO,CAAC,IAAI,CAAC;AACX,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,KAAK,EAAE;4CACL,GAAG,EAAE,IAAI,CAAC,KAAK;AAChB,yCAAA;AACF,qCAAA,CAAC;;AAEN,6BAAC,CACF;;;AAIH,wBAAA,MAAM,eAAe,GAAG;AACtB,4BAAA,GAAG,eAAe;AAClB,4BAAA,KAAK,EAAE,OAAO;4BACd,MAAM,EAAE,KAAK,CAAC;kCACV,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC;AAC3D,kCAAE,CAAC;4BACL,KAAK,EAAE,KAAK,CAAC,oBAAoB;yBAClC;AAED,wBAAA,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC1B,4BAAA,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;AAClD,4BAAA,+BAA+B,EAAE,KAAK;AACvC,yBAAA,CAAC;wBACF;;;AAIF,oBAAA,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE;AACzC,oBAAA,GAAG,CAAC;AACF,wBAAA,yBAAyB,EAAE;4BACzB,GAAG,KAAK,CAAC,+BAA+B;AACzC,yBAAA;AACD,wBAAA,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;wBAC7D,wBAAwB,EAAE,KAAK,CAAC,8BAA8B;wBAC9D,sBAAsB,EAAE,KAAK,CAAC,4BAA4B;wBAC1D,uBAAuB,EAAE,KAAK,CAAC,6BAA6B;AAC5D,wBAAA,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,IAAI,CAAC;wBACvD,6BAA6B,EAC3B,KAAK,CAAC,mCAAmC;AAC3C,wBAAA,iBAAiB,EAAE,CAAC;AACpB,wBAAA,UAAU,EAAE,EAAE;AACf,qBAAA,CAAC;oBACF;;AAGF,gBAAA,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAEjC,gBAAA,MAAM,6BAA6B,GAAkC;oBACnE,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,IAAI,EAAE,KAAK,CAAC,UAAU;oBACtB,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,QAAQ,EAAE,KAAK,CAAC,YAAY;oBAC5B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;oBACxD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;oBACxD,MAAM,EAAE,KAAK,CAAC;0BACV,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC;AAC3D,0BAAE,CAAC;oBACL,KAAK,EAAE,KAAK,CAAC,oBAAoB;iBAClC;AAED,gBAAA,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC1B,oBAAA,iBAAiB,EAAE,6BAA6B;AAChD,oBAAA,+BAA+B,EAAE,KAAK;AACvC,iBAAA,CAAC;aACH;AACD,YAAA,wBAAwB,EAAE,CAAC,SAAS,KAClC,GAAG,CAAC;AACF,gBAAA,oBAAoB,EAAE,SAAS;aAChC,CAAC;AACJ,YAAA,oBAAoB,EAAE,CAAC,SAAS,KAC9B,GAAG,CAAC;AACF,gBAAA,gBAAgB,EAAE,SAAS;aAC5B,CAAC;AACJ,YAAA,aAAa,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAClD,YAAA,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KACvC,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACjC,YAAA,aAAa,EAAE,CAAC,UAAU,KAAI;AAC5B,gBAAA,MAAM,KAAK,GAAG,GAAG,EAAE;AAEnB,gBAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,oBAAA,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE;;AAElC;;AAEG;AACH,gBAAA,GAAG,CAAC;oBACF,UAAU;AACV,oBAAA,iBAAiB,EAAE,CAAC;oBACpB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI;AACpC,wBAAA,UAAU,EAAE,OAAO;AACnB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,yBAAyB,EAAE;4BACzB,GAAG,KAAK,CAAC,+BAA+B;AACzC,yBAAA;AACD,wBAAA,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;wBAC7D,wBAAwB,EAAE,KAAK,CAAC,8BAA8B;wBAC9D,sBAAsB,EAAE,KAAK,CAAC,4BAA4B;wBAC1D,uBAAuB,EAAE,KAAK,CAAC,6BAA6B;AAC5D,wBAAA,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,IAAI,CAAC;wBACvD,6BAA6B,EAC3B,KAAK,CAAC,mCAAmC;qBAC5C,CAAC;AACH,iBAAA,CAAC;aACH;AACD,YAAA,qBAAqB,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AACpE,YAAA,oBAAoB,EAAE,OAAO,IAAI,KAAI;AACnC,gBAAA,GAAG,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;gBAChC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC9C;AACD,YAAA,uBAAuB,EAAE,OAAO,OAAO,KAAI;AACzC,gBAAA,GAAG,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;gBACtC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC9C;AACD,YAAA,0BAA0B,EAAE,CAAC,MAAM,EAAE,cAAc,KAAI;gBACrD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,GACpE,6BAA6B;AAC/B,gBAAA,GAAG,CAAC;oBACF,MAAM,EAAE,MAAM,IAAI,aAAa;oBAC/B,cAAc,EAAE,cAAc,IAAI,qBAAqB;AACxD,iBAAA,CAAC;aACH;SACF;AAED,QAAA,MAAM,WAAW,GAAqB;AACpC,YAAA,GAAG,6BAA6B;AAChC,YAAA,GAAG,YAAY;AACf,YAAA,GAAG,SAAS;YACZ,GAAG;AACD,gBAAA,aAAa,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3C,aAAA;SACF;AAED,QAAA,OAAO,WAAW;AACpB,KAAC,CAAC;AAEF,IAAA,cAAc,CAAC,EAAE,CAAC,GAAG,QAAQ;AAE7B,IAAA,OAAO,QAAQ;AACjB,CAAC;;ACrTD;;AAEG;MACU,eAAe,CAAA;AAC1B,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,aAAa;AACb,IAAA,YAAY;AACZ,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,QAAQ;AAEA,IAAA,cAAc;IACd,kBAAkB,GAEtB,EAAE;AAEN;;;;AAIG;AACH,IAAA,WAAA,CACE,MAAyB,EACzB,OAA2B,EAC3B,aAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;;AAGxE,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;;QAGpE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF;;QAGH,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG;;QAGH,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,GAAG,MAAM;;AAET,YAAA,WAAW,EAAE,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC;SAC5D;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;QAE3B,IACE,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,cAAc,KAAK,WAAW;YACrC,OAAO,CAAC,OAAO,KAAK,6BAA6B;YACjD,UAAU,CAAC,0BAA0B,EACrC;YACA,UAAU,CAAC,0BAA0B,EAAE;;AAGzC,QAAA,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,aAAa,EAAE;AACjD,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,EAAE;AACxD,SAAA,CAAC;AAEF,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC;AAE7C,QAAA,CAAC,OAAO,MAAM,KAAI;AAChB,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;;AAGzC,YAAA,IAAI,MAAM,CAAC,YAAY,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC;oBACpB,iBAAiB,EAAE,MAAM,CAAC,YAAY;AACtC,oBAAA,+BAA+B,EAAE,IAAI;AACtC,iBAAA,CAAC;;AAEN,SAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAGT,IAAA,MAAM,WAAW,CACvB,MAAyB,EACzB,OAA2B,EAAA;AAE3B,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB;QAE9C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,WAAW,GAAG,MAAMA,CAAc,EAAE;YAC1C,MAAM,GAAG,WAAW;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;;aACtB;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,eAAe;AAC/B,YAAA,MAAM,OAAO,CAAC,OAAO,EAAE;;AAGzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,CAAC,QAAQ,CACd;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAE1D,QAAA,IAAI,MAAM,CAAC,cAAc,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC;;AACrC,aAAA,IAAI,MAAM,CAAC,YAAY,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;;AACnC,aAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC;;AAGjD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AAC5B,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA,CAAC;;IAGJ,SAAS,CACP,SAAY,EACZ,KAA8B,EAAA;QAE9B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAI;YACtD,QAAyC,CAAC,KAAK,CAAC;AACnD,SAAC,CAAC;;IAGJ,SAAS,CACP,SAAY,EACZ,QAAsC,EAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE;;QAExC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAoC,CAAC,IAAI,CACzE,QAAQ,CACT;AAED,QAAA,OAAO,MAAK;YACT,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAoC,GACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAClC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,QAAQ,CAAC;AACnC,SAAC;;AAGH;;AAEG;AACH,IAAA,yBAAyB,CAAC,IAIzB,EAAA;AACC,QAAA,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC;;AAG1C,QAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;AACtC,YAAA,IAAI,EAAE,uBAAuB;AAC7B,YAAA,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,aAAA;AACF,SAAA,CAAC;;AAGJ;;AAEG;AACH,IAAA,uBAAuB,CAAC,IAIvB,EAAA;AACC,QAAA,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC;;AAGxC,QAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACpC,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,aAAA;AACF,SAAA,CAAC;;AAGJ;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;AAC9B,YAAA,IAAI,EAAE,eAAe;AACtB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE;;AAGjC,IAAA,gBAAgB,GAAG,CAAC,KAGnB,KAAI;AACH,QAAA,MAAM,yBAAyB,GAAG,YAAW;AAC3C;;AAEG;YACH,CAAC,YAAW;AACV,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,oBAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC;oBACnD;;AAGF,gBAAA,IAAI,QAAyC;AAE7C,gBAAA,IAAI;AACF,oBAAA,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvD,KAAK,CAAC,iBAAiB,EACvB,KAAK,CACN;;gBACD,OAAO,KAAK,EAAE;AACd,oBAAA,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAA,CAAE,CAAC;oBAC7C;;gBAGF,IAAI,CAAC,QAAQ,EAAE;AACb,oBAAA,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC;oBAClE;;gBAGF,MAAM,KAAK,GAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;qBAChE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG;AACzB,qBAAA,GAAG,CAAC,CAAC,GAAmB,MAAM;oBAC7B,EAAE,EAAE,MAAM,EAAE;oBACZ,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC/B,YAAY,EAAE,GAAG,CAAC,YAAY;AAC9B,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAC,CAAC;AAEL;;AAEG;AACH,gBAAA,IAAI,oBAAqD;AACzD,gBAAA,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;AAC/C,oBAAA,IACE,KAAK,CAAC,iBAAiB,CAAC,wBAAwB;wBAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB;6BACzD,MAAM,GAAG,CAAC,EACb;AACA,wBAAA,MAAM,EACJ,wBAAwB,EAAE,CAAC,EAC3B,GAAG,6BAA6B,EACjC,GAAG,KAAK,CAAC,iBAAiB;AAE3B,wBAAA,IAAI;4BACF,oBAAoB;gCAClB,MAAM,IAAI,EAAE,YAAY,EAAE,sBAAsB,CAC9C,6BAA6B,EAC7B,IAAI,CACL;;wBACH,OAAO,KAAK,EAAE;AACd,4BAAA,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAA,CAAE,CAAC;4BAC7C;;;;AAGC,qBAAA,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;;oBAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;;oBAEtD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;0BAC7C,UAAU,CAAC;AACb,0BAAE,CAAC,UAAU,CAAC,KAAK,CAAC;AAEtB,oBAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEzB,wBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,CAAqB,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,CAC9C;AACD,wBAAA,MAAM,mBAAmB,GAAG;AAC1B,4BAAA,GAAG,UAAU;4BACb,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;yBACjE;AAED,wBAAA,IAAI;4BACF,oBAAoB;AAClB,gCAAA,MAAM,IAAI,EAAE,YAAY,EAAE,sBAAsB,CAC9C,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EACnC,IAAI,CACL;;wBACH,OAAO,KAAK,EAAE;AACd,4BAAA,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAA,CAAE,CAAC;4BAC7C;;;;AAKN,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClB,oBAAA,kBAAkB,EAAE,KAAK;AACzB,oBAAA,yBAAyB,EAAE,KAAK;AAChC,oBAAA,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;AACjD,oBAAA,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;AACvC,oBAAA,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;AAC9C,oBAAA,sBAAsB,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM;oBACzD,6BAA6B,EAAE,KAAK,CAAC,iBAAiB;AACtD,oBAAA,IAAI,KAAK,CAAC,+BAA+B,IAAI;AAC3C,wBAAA,+BAA+B,EAAE,KAAK;AACtC,wBAAA,8BAA8B,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;AACpD,wBAAA,4BAA4B,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM;AAC/D,wBAAA,6BAA6B,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;AACvD,wBAAA,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;wBAC7C,mCAAmC,EAAE,KAAK,CAAC,iBAAiB;qBAC7D,CAAC;AACH,iBAAA,CAAC;aACH,GAAG;AAEJ;;AAEG;YACH,CAAC,YAAW;gBACV,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;AAChE,oBAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;AACjE,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClB,wBAAA,qBAAqB,EAAE,KAAK;AAC5B,wBAAA,IAAI,KAAK,CAAC,+BAA+B,IAAI;AAC3C,4BAAA,2BAA2B,EAAE,KAAK;yBACnC,CAAC;AACH,qBAAA,CAAC;;aAEL,GAAG;AACN,SAAC;AAED,QAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAC9B,yBAAyB,EACzB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAChC;;aACI;AACL,YAAA,yBAAyB,EAAE;;AAE/B,KAAC;AACF;;;;;AC7WD;;;;;;;;AAQG;AAEH;;AAEG;AACG,MAAO,WAAY,SAAQ,eAAe,CAAA;AAC9C,IAAA,WAAA,CACE,MAAyB,EACzB,aAAA,GAAoC,SAAS,EAAA;QAE7C,KAAK,CACH,MAAM,EACN;AACE,YAAA,OAAO,EAAEC,IAAW;AACpB,YAAA,UAAU,EAAEC,OAAc;SAC3B,EACD,aAAa,CACd;;AAEJ;;;;","names":["getFingerprint","packageName","packageVersion"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/esm/vanilla.mjs","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;nr[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?Edge|Edg)\\/(?\\d+(?:\\.\\d+)?)/,/(?(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?\\d+(?:\\.\\d+)?)/,/(?(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?\\d+(?:\\.\\d+)?)/,/(?Safari)\\/(?\\d+(?:\\.\\d+)?)/,/(?MSIE|Trident|IEMobile).+?(?\\d+(?:\\.\\d+)?)/,/(?[A-Za-z]+)\\/(?\\d+(?:\\.\\d+)?)/,/(?SamsungBrowser)\\/(?\\d+(?:\\.\\d+)?)/];nt&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import type {\n ADMClientResponseItem,\n ADMResponse,\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { nanoid } from 'nanoid';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\nimport { nanoid } from 'nanoid';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n private userType: 'authenticated' | 'anonymous';\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n userType: 'authenticated' | 'anonymous',\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial} properties - Additional properties to send with the event.\n * @param {Partial} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial = {},\n user: Partial = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import type { SearchcraftCore } from '@classes';\nimport { nanoid } from 'nanoid';\n\nimport type {\n SearchClientQuery,\n SearchClientRequest,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n private get baseSearchUrl(): string {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn(\n 'Please contact Searchcraft to enable AI summaries with your account',\n );\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { type StoreApi, createStore } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial = {},\n): StoreApi => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options?: { skipSummary?: boolean }) => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n // Check if there are any active filters or pagination changes\n const hasActiveFilters =\n Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (\n isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)\n ) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(\n state.cachedSearchClientRequestProperties as string,\n );\n\n set({ isSearchInProgress: true });\n\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q: any) => !q.occur)\n : [initialQueryObj.query];\n\n const queries = [...baseQuery];\n\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach(\n (fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach(\n (fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) =>\n set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchClientResponseItem,\n SearchIndexHit,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchcraftSDKInfo,\n SubscriptionEventCallback,\n SubscriptionEventMap,\n SubscriptionEventName,\n UnsubscribeFunction,\n} from '@types';\n\nimport { type SearchcraftStore, createSearchcraftStore } from '@store';\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n userType: 'authenticated' | 'anonymous';\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName && !config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Either indexName or federationName must be specified.',\n );\n }\n\n if (config.indexName && config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.',\n );\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n this.userType = 'anonymous';\n } else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n\n this.measureClient = new MeasureClient(\n config,\n sdkInfo,\n userId,\n this.userType,\n );\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback)(event);\n });\n }\n\n subscribe(\n eventName: T,\n callback: SubscriptionEventCallback,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n } else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter(\n (q: { occur?: string }) => q.occur !== 'must',\n );\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n JSON.stringify(supplementalRequest),\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3} \ No newline at end of file +{"file":"index.js","mappings":"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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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","names":["getFingerprint","packageName","packageVersion"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/esm/vanilla.mjs","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;nr[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?Edge|Edg)\\/(?\\d+(?:\\.\\d+)?)/,/(?(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?\\d+(?:\\.\\d+)?)/,/(?(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?\\d+(?:\\.\\d+)?)/,/(?Safari)\\/(?\\d+(?:\\.\\d+)?)/,/(?MSIE|Trident|IEMobile).+?(?\\d+(?:\\.\\d+)?)/,/(?[A-Za-z]+)\\/(?\\d+(?:\\.\\d+)?)/,/(?SamsungBrowser)\\/(?\\d+(?:\\.\\d+)?)/];nt&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import type {\n ADMClientResponseItem,\n ADMResponse,\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { nanoid } from 'nanoid';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\nimport { nanoid } from 'nanoid';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n private userType: 'authenticated' | 'anonymous';\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n userType: 'authenticated' | 'anonymous',\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial} properties - Additional properties to send with the event.\n * @param {Partial} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial = {},\n user: Partial = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(\n `Error sending MeasureRequest: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import type { SearchcraftCore } from '@classes';\nimport { nanoid } from 'nanoid';\n\nimport type {\n SearchClientQuery,\n SearchClientRequest,\n SearchClientRequestProperties,\n SearchcraftConfig,\n SearchcraftResponse,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n private get baseSearchUrl(): string {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn(\n 'Please contact Searchcraft to enable AI summaries with your account',\n );\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { type StoreApi, createStore } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientQuery,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial = {},\n): StoreApi => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options?: { skipSummary?: boolean }) => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n // Check if there are any active filters or pagination changes\n const hasActiveFilters =\n Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (\n isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)\n ) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(\n state.cachedSearchClientRequestProperties as string,\n );\n\n set({ isSearchInProgress: true });\n\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q: SearchClientQuery) => !q.occur)\n : [initialQueryObj.query];\n\n const queries = [...baseQuery];\n\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach(\n (fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach(\n (fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) =>\n set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchClientResponseItem,\n SearchIndexHit,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchcraftSDKInfo,\n SubscriptionEventCallback,\n SubscriptionEventMap,\n SubscriptionEventName,\n UnsubscribeFunction,\n} from '@types';\n\nimport { type SearchcraftStore, createSearchcraftStore } from '@store';\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n userType: 'authenticated' | 'anonymous';\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName && !config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Either indexName or federationName must be specified.',\n );\n }\n\n if (config.indexName && config.federationName) {\n throw new Error(\n 'SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.',\n );\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n this.userType = 'anonymous';\n } else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n\n this.measureClient = new MeasureClient(\n config,\n sdkInfo,\n userId,\n this.userType,\n );\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback)(event);\n });\n }\n\n subscribe(\n eventName: T,\n callback: SubscriptionEventCallback,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n } else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter(\n (q: { occur?: string }) => q.occur !== 'must',\n );\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n JSON.stringify(supplementalRequest),\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-ad.js b/public/sdk/components/searchcraft-ad.js index c81bc48..7669575 100644 --- a/public/sdk/components/searchcraft-ad.js +++ b/public/sdk/components/searchcraft-ad.js @@ -1,4 +1,4 @@ -import { S as SearchcraftPopoverListItemAd, d as defineCustomElement$1 } from './searchcraft-ad2.js?v=0.13.3'; +import { S as SearchcraftPopoverListItemAd, d as defineCustomElement$1 } from './searchcraft-ad2.js?scv=0.14.0'; const SearchcraftAd = SearchcraftPopoverListItemAd; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-ad2.js b/public/sdk/components/searchcraft-ad2.js index 482a89e..d2b8a7e 100644 --- a/public/sdk/components/searchcraft-ad2.js +++ b/public/sdk/components/searchcraft-ad2.js @@ -1,7 +1,7 @@ -import { p as proxyCustomElement, t as transformTag, H, h } from './index2.js?v=0.13.3'; -import { c as classNames } from './index3.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { h as html } from './html.js?v=0.13.3'; +import { p as proxyCustomElement, t as transformTag, H, h } from './index2.js?scv=0.14.0'; +import { c as classNames } from './index3.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { h as html } from './html.js?scv=0.14.0'; const urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'; diff --git a/public/sdk/components/searchcraft-button.js b/public/sdk/components/searchcraft-button.js index 230269d..15675d2 100644 --- a/public/sdk/components/searchcraft-button.js +++ b/public/sdk/components/searchcraft-button.js @@ -1,4 +1,4 @@ -import { S as SearchcraftButton$1, d as defineCustomElement$1 } from './searchcraft-button2.js?v=0.13.3'; +import { S as SearchcraftButton$1, d as defineCustomElement$1 } from './searchcraft-button2.js?scv=0.14.0'; const SearchcraftButton = SearchcraftButton$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-button2.js b/public/sdk/components/searchcraft-button2.js index c2db799..a4d6cfa 100644 --- a/public/sdk/components/searchcraft-button2.js +++ b/public/sdk/components/searchcraft-button2.js @@ -1,5 +1,5 @@ -import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, t as transformTag } from './index2.js?v=0.13.3'; -import { c as classNames } from './index3.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, t as transformTag } from './index2.js?scv=0.14.0'; +import { c as classNames } from './index3.js?scv=0.14.0'; const SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-error-message.js b/public/sdk/components/searchcraft-error-message.js index f3c2cd9..723273d 100644 --- a/public/sdk/components/searchcraft-error-message.js +++ b/public/sdk/components/searchcraft-error-message.js @@ -1,4 +1,4 @@ -import { S as SearchcraftErrorMessage$1, d as defineCustomElement$1 } from './searchcraft-error-message2.js?v=0.13.3'; +import { S as SearchcraftErrorMessage$1, d as defineCustomElement$1 } from './searchcraft-error-message2.js?scv=0.14.0'; const SearchcraftErrorMessage = SearchcraftErrorMessage$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-error-message2.js b/public/sdk/components/searchcraft-error-message2.js index 3f626c9..348cdb8 100644 --- a/public/sdk/components/searchcraft-error-message2.js +++ b/public/sdk/components/searchcraft-error-message2.js @@ -1,4 +1,4 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; const SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class SearchcraftErrorMessage extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-facet-list.js b/public/sdk/components/searchcraft-facet-list.js index 83f15be..deb5ddd 100644 --- a/public/sdk/components/searchcraft-facet-list.js +++ b/public/sdk/components/searchcraft-facet-list.js @@ -1,4 +1,4 @@ -import { S as SearchcraftFacetList$1, d as defineCustomElement$1 } from './searchcraft-facet-list2.js?v=0.13.3'; +import { S as SearchcraftFacetList$1, d as defineCustomElement$1 } from './searchcraft-facet-list2.js?scv=0.14.0'; const SearchcraftFacetList = SearchcraftFacetList$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-facet-list2.js b/public/sdk/components/searchcraft-facet-list2.js index f67b7f5..86fae4b 100644 --- a/public/sdk/components/searchcraft-facet-list2.js +++ b/public/sdk/components/searchcraft-facet-list2.js @@ -1,5 +1,5 @@ -import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; import './purify.es.js'; /** diff --git a/public/sdk/components/searchcraft-facet-list2.js.map b/public/sdk/components/searchcraft-facet-list2.js.map index c41fee6..0257f31 100644 --- a/public/sdk/components/searchcraft-facet-list2.js.map +++ b/public/sdk/components/searchcraft-facet-list2.js.map @@ -1 +1 @@ -{"file":"searchcraft-facet-list2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/facets.ts","src/components/searchcraft-facet-list/searchcraft-facet-list.tsx"],"sourcesContent":["import type {\n Facet,\n FacetTree,\n FacetWithChildrenArray,\n FacetWithChildrenObject,\n} from '@types';\n\n/**\n * Helper function for getting a Node (FacetWithChildrenObject)\n * at a given path. Traverses the node tree to get the node.\n */\nexport const getFacetTreeNodeAtPath = (\n tree: FacetTree,\n nodePaths: string[],\n): FacetWithChildrenObject | undefined => {\n let cursor: FacetWithChildrenObject | undefined = tree;\n for (const nodePath of nodePaths) {\n cursor = cursor?.children[nodePath];\n }\n\n return cursor;\n};\n\n/**\n * Helper function to perform a deep merge.\n * Used for merging two branches of a facet tree together.\n */\nexport const deepMergeWithSpread = (obj1, obj2) => {\n const result = { ...obj1 };\n\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: \n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n } else {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n};\n\n/**\n * Given an array of facet paths, removes parent facet paths so that only the\n * Leaf facets are sent with the search request.\n */\nexport function removeSubstringMatches(arr: string[]): string[] {\n return arr.filter(\n (entry, index, array) =>\n !array.some(\n (otherEntry, otherIndex) =>\n otherIndex !== index && otherEntry.includes(entry),\n ),\n );\n}\n\n/**\n * Merges a current facet tree with an incoming facet tree.\n *\n * At each branch, the incoming facet tree's facets override current facet tree\n *\n * @param currentTree\n * @param incomingTree\n */\nexport const mergeFacetTrees = (\n currentTree: FacetTree,\n incomingTree: FacetTree,\n): FacetTree => {\n const mergedTree: FacetTree = structuredClone(currentTree);\n\n const merge = (\n currentBranch: FacetWithChildrenObject,\n nodePath: string[],\n ): FacetWithChildrenObject => {\n const mergedBranch = structuredClone(currentBranch);\n const incomingBranch = getFacetTreeNodeAtPath(incomingTree, nodePath);\n\n if (!incomingBranch) {\n return mergedBranch;\n }\n\n for (const nodeName of Object.keys(currentBranch.children)) {\n if (incomingBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = {\n ...deepMergeWithSpread(\n currentBranch.children[nodeName],\n incomingBranch.children[nodeName],\n ),\n count: mergedBranch.children[nodeName]?.count || 0,\n };\n } else if (mergedBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = merge(\n mergedBranch.children[nodeName],\n [...nodePath, nodeName],\n );\n }\n }\n\n return mergedBranch;\n };\n\n return merge(mergedTree, []);\n};\n\n/**\n * A function that converts a FacetWithChidrenArray to a complete FacetTree object.\n *\n * It uses the `path` of each Facet to build the tree.\n *\n * @param facetWithChildArray\n * @param exclude - Optional array of facet values or paths to exclude from the tree.\n * - Values starting with \"/\" are treated as full paths and exclude the path and all children\n * (e.g., \"/news\" excludes \"/news\", \"/news/local\", \"/news/national\", etc.)\n * - Values without \"/\" are treated as segment names (e.g., \"local\" excludes all paths containing \"local\")\n */\nexport const facetWithChildrenArrayToCompleteFacetTree = (\n rootArray: FacetWithChildrenArray,\n exclude?: string[],\n): FacetTree => {\n // 1) Start with an empty tree at root \"/\"\n const tree: FacetTree = {\n path: '/',\n count: 0,\n children: {},\n };\n\n // 2) Recursively collect all nodes except the implicit \"/\" itself\n const allFacets: Facet[] = [];\n const collect = (node: FacetWithChildrenArray) => {\n if (node.path !== '/') {\n allFacets.push({ path: node.path, count: node.count });\n }\n if (node.children) {\n for (const child of node.children) {\n collect(child);\n }\n }\n };\n collect(rootArray);\n\n // 3) Insert each flat node into our tree, creating missing ancestors\n for (const { path, count } of allFacets) {\n const segments = path.split('/').filter(Boolean); // \"/sports/outdoors\" -> [\"sports\",\"outdoors\"]\n\n // Skip this facet if it matches any excluded value\n if (exclude && exclude.length > 0) {\n let shouldExclude = false;\n\n for (const excludeValue of exclude) {\n if (excludeValue.startsWith('/')) {\n // Full path exclusion: prefix match (excludes the path and all children)\n if (path === excludeValue || path.startsWith(`${excludeValue}/`)) {\n shouldExclude = true;\n break;\n }\n } else {\n // Segment exclusion: check if any segment matches\n if (segments.includes(excludeValue)) {\n shouldExclude = true;\n break;\n }\n }\n }\n\n if (shouldExclude) {\n continue;\n }\n }\n\n let cursor: FacetWithChildrenObject = tree; // start at the root\n for (const segment of segments) {\n // Build the full path of this level\n const prefixPath =\n cursor.path === '/' ? `/${segment}` : `${cursor.path}/${segment}`;\n\n // If this segment doesn't exist yet, create it\n if (!cursor.children[segment]) {\n cursor.children[segment] = {\n path: prefixPath,\n count: count,\n children: {},\n };\n }\n\n // Descend to the next level deeper\n cursor = cursor.children[segment];\n }\n\n // 4) Now `cursor` is the node matching `path` assign its real count\n cursor.count = count;\n }\n\n return tree;\n};\n","import {\n Component,\n Event,\n type EventEmitter,\n Method,\n Prop,\n State,\n h,\n} from '@stencil/core';\n\nimport type {\n FacetRoot,\n FacetWithChildrenArray,\n FacetWithChildrenObject,\n SearchClientQuery,\n} from '@types';\n\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport type { SearchcraftState } from '@store';\nimport {\n deepMergeWithSpread,\n facetWithChildrenArrayToCompleteFacetTree,\n getFacetTreeNodeAtPath,\n mergeFacetTrees,\n removeSubstringMatches,\n} from '@utils';\n\ntype HandlerActionType =\n | 'SEARCH_TERM_EMPTY'\n | 'NEW_SEARCH_TERM'\n | 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE'\n | 'RANGE_VALUE_UPDATE'\n | 'EXACT_MATCH_UPDATE'\n | 'SORT_ORDER_UPDATE'\n | 'FACET_UPDATE'\n | 'UNKNOWN';\n\n/**\n * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.\n * It is consumed within the `searchcraft-filter-panel`.\n *\n * @js-example\n * ```html\n * \n * \n * \n *\n * \n * \n *\n * \n * \n * ```\n *\n * ```js\n * // index.js\n * const facetList = document.querySelector('searchcraft-facet-list');\n *\n * facetList.addEventListener('facetSelectionUpdated', () => {\n * console.log('Facet selection updated');\n * });\n *\n * // Programmatically toggle collapse state\n * await facetList.handleCollapseToggle();\n * ```\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-facet-list',\n shadow: false,\n})\nexport class SearchcraftFacetList {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The name of the field where facets are applied.\n */\n @Prop() fieldName = '';\n /**\n * Array of facet values to exclude from rendering.\n */\n @Prop() exclude?: string[];\n /**\n * Initial collapse state of the facet section.\n * @default 'open'\n */\n @Prop() initialCollapseState?: 'open' | 'closed' = 'open';\n /**\n * The number of facets to show before displaying a \"view more\" link.\n * Set to 0 to show all facets without a \"view more\" link.\n * @default 8\n */\n @Prop() viewMoreThreshold?: number = 8;\n\n /**\n * Emitted when the facets are updated.\n */\n @Event() facetSelectionUpdated?: EventEmitter<{ paths: string[] }>;\n\n /**\n * The currently selected facet paths.\n */\n @State() selectedPaths: Record = {};\n\n /**\n * A Tree representing all of the facets collected from search responses.\n */\n @State() facetTreeCollectedFromSearchResponse: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * A Tree representing the facet paths that are selected, but were not included\n * in any search response.\n */\n facetTreeFromFacetPathsNotInSearchResponse: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * The facet tree that ultimately gets rendered.\n * This is a mergin of the facetTreeCollectedFromSearchResponse and the facetTreeFromFacetPathsNotInSearchResponse tree\n */\n @State() renderedFacetTree: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * Tracks whether the facet section is collapsed or expanded.\n */\n @State() isCollapsed = false;\n\n /**\n * Tracks whether all facets are shown or limited by the threshold.\n */\n @State() showAllFacets = false;\n\n // Internal vars used to track when to perform various facet actions.\n private lastTimeTaken?: number;\n private lastSearchTerm?: string;\n private lastSearchMode?: string;\n private lastSortType?: string | null;\n private lastRangeValues?: string;\n private lastFacetValues?: string;\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n get areAnyFacetPathsSelected(): boolean {\n return Object.keys(this.selectedPaths).some(\n (key) => this.selectedPaths[key],\n );\n }\n\n handleIncomingSearchResponse(\n state: SearchcraftState,\n actionType: HandlerActionType,\n ) {\n // Look at the incoming facet root from the search response, and convert it to a FacetTree\n const incomingFacetRoot: FacetRoot | undefined =\n state.searchResponseFacetPrime?.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n const incomingFacetsWithChildrenArray = incomingFacetRoot?.[this.fieldName];\n const incomingFacetTree = facetWithChildrenArrayToCompleteFacetTree(\n {\n path: '/',\n count: 0,\n children: incomingFacetsWithChildrenArray || [],\n },\n this.exclude,\n );\n\n // Determine what action to take to accumulate items into the `facetTreeCollectedFromSearchResponse`.\n // This facet tree gets accumulated in different ways depending on what action type occured.\n switch (actionType) {\n case 'SEARCH_TERM_EMPTY':\n this.facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n break;\n case 'NEW_SEARCH_TERM':\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n break;\n case 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE':\n case 'EXACT_MATCH_UPDATE':\n case 'RANGE_VALUE_UPDATE': {\n if (state.supplementalFacetPrime) {\n const supplementalFacetRoot: FacetRoot | undefined =\n state.supplementalFacetPrime?.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n const supplementalFacetsWithChildrenArray =\n supplementalFacetRoot?.[this.fieldName];\n const supplementalFacetTree =\n facetWithChildrenArrayToCompleteFacetTree(\n {\n path: '/',\n count: 0,\n children: supplementalFacetsWithChildrenArray || [],\n },\n this.exclude,\n );\n\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(\n supplementalFacetTree,\n incomingFacetTree,\n );\n } else {\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n }\n break;\n }\n case 'FACET_UPDATE':\n case 'SORT_ORDER_UPDATE':\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(\n this.facetTreeCollectedFromSearchResponse,\n incomingFacetTree,\n );\n break;\n default:\n return;\n }\n\n // Determine if there are any selected facet paths not in the current tree.\n // If there are, we add them to \"facetTreeFromFacetPathsNotInSearchResponse\"\n this.facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n const collectedFacetArray: FacetWithChildrenArray = {\n path: '/',\n count: 0,\n children: [],\n };\n for (const pathName of Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n )) {\n const nodePaths = pathName.startsWith('/')\n ? pathName.substring(1).split('/')\n : pathName.split('/');\n\n const wasFoundInFacetTree = !!getFacetTreeNodeAtPath(\n this.facetTreeCollectedFromSearchResponse,\n nodePaths,\n );\n\n const pathKeyName = nodePaths.at(-1);\n if (!wasFoundInFacetTree && pathKeyName) {\n collectedFacetArray.children?.push({\n children: [],\n count: 0,\n path: pathName,\n });\n }\n }\n this.facetTreeFromFacetPathsNotInSearchResponse =\n facetWithChildrenArrayToCompleteFacetTree(\n collectedFacetArray,\n this.exclude,\n );\n\n // Merges facetTreeCollectedFromSearchResponse with selectedFacetPathsNotInCurrentFacetTree.\n // This results in a single, final facet tree that gets rendered in as Checkboxes\n this.renderedFacetTree = deepMergeWithSpread(\n this.facetTreeFromFacetPathsNotInSearchResponse,\n this.facetTreeCollectedFromSearchResponse,\n );\n }\n\n handleStateUpdate(_state: SearchcraftState) {\n const state = { ..._state };\n // Determine what action to take based on the current State\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.searchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n if (state.searchTerm.trim() === '' && !isInitialQuery) {\n this.handleIncomingSearchResponse(state, 'SEARCH_TERM_EMPTY');\n this.lastSearchTerm = '';\n } else if (\n this.lastTimeTaken !== state.searchResponseTimeTaken &&\n state.searchClientRequestProperties\n ) {\n // Handle both object and string requestProperties (string is used for initialQuery)\n if (typeof state.searchClientRequestProperties === 'object') {\n const requestProperties = state.searchClientRequestProperties;\n let actionType: HandlerActionType = 'UNKNOWN';\n\n if (this.lastSearchTerm !== requestProperties.searchTerm) {\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n } else {\n actionType = 'NEW_SEARCH_TERM';\n }\n } else if (\n this.lastRangeValues !==\n JSON.stringify(requestProperties.rangeValueForIndexFields)\n ) {\n actionType = 'RANGE_VALUE_UPDATE';\n } else if (\n this.lastFacetValues !==\n JSON.stringify(requestProperties.facetPathsForIndexFields)\n ) {\n actionType = 'FACET_UPDATE';\n } else if (this.lastSortType !== requestProperties.order_by) {\n actionType = 'SORT_ORDER_UPDATE';\n } else if (this.lastSearchMode !== requestProperties.mode) {\n actionType = 'EXACT_MATCH_UPDATE';\n }\n\n this.lastRangeValues = JSON.stringify(\n requestProperties.rangeValueForIndexFields,\n );\n this.lastFacetValues = JSON.stringify(\n requestProperties.facetPathsForIndexFields,\n );\n this.lastSortType = requestProperties.order_by;\n this.lastSearchMode = requestProperties.mode;\n this.lastSearchTerm = requestProperties.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n } else if (typeof state.searchClientRequestProperties === 'string') {\n // Handle initialQuery case where requestProperties is a string\n // For initialQuery, searchTerm will be empty but we still want to show facets\n let actionType: HandlerActionType = 'NEW_SEARCH_TERM';\n\n // Parse the request to get facet and range filters from the query array\n const requestObj = JSON.parse(state.searchClientRequestProperties);\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n // Extract filter queries (those with occur: 'must')\n const filterQueries = queryArray.filter(\n (q: SearchClientQuery) => q.occur === 'must',\n );\n const currentFilters = JSON.stringify(filterQueries);\n\n // Determine the action type based on what changed\n if (\n this.lastFacetValues !== undefined &&\n this.lastFacetValues !== currentFilters\n ) {\n // Filters have changed (not initial load)\n actionType = 'FACET_UPDATE';\n } else if (\n state.searchTerm.trim() === '' &&\n this.lastSearchTerm === ''\n ) {\n // Initial load or no changes with empty search term\n actionType = 'NEW_SEARCH_TERM';\n } else if (this.lastSearchTerm !== state.searchTerm) {\n // User has typed a new search term after initialQuery\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n } else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n\n this.lastFacetValues = currentFilters;\n this.lastSearchTerm = state.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n }\n }\n\n onCoreAvailable(core: SearchcraftCore) {\n this.handleStateUpdate(core.store.getState());\n\n this.unsubscribe = core.store.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n\n connectedCallback() {\n // Initialize collapse state based on prop\n this.isCollapsed = this.initialCollapseState === 'closed';\n\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n handleCheckboxChange(path: string) {\n const isCheckboxChecked = !this.selectedPaths[path];\n\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n } else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter(\n (testPath) => !testPath.includes(path),\n );\n\n this.selectedPaths = updatedPaths.reduce(\n (acc, str) => {\n acc[str] = true;\n return acc;\n },\n {} as Record,\n );\n }\n\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n );\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n\n formatFacetName = (name: string): string => {\n const label = name.replace(/^\\//, '');\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())}`;\n };\n\n /**\n * Toggles the collapsed state of the facet section.\n * @returns A promise that resolves when the toggle is complete.\n */\n @Method()\n async handleCollapseToggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n\n /**\n * Returns whether the facet section is currently collapsed.\n * @returns A promise that resolves to true if collapsed, false if expanded.\n */\n @Method()\n async getIsCollapsed() {\n return this.isCollapsed;\n }\n\n handleViewMoreToggle = () => {\n this.showAllFacets = !this.showAllFacets;\n };\n\n renderFacet(keyName: string, facet: FacetWithChildrenObject) {\n let isChildSelected = false;\n for (const path of Object.keys(this.selectedPaths)) {\n if (\n this.selectedPaths[path] &&\n path.startsWith(facet.path) &&\n path.length > facet.path.length\n ) {\n isChildSelected = true;\n }\n }\n\n const isSelected = Object.keys(this.selectedPaths).includes(facet.path);\n\n const shouldRenderChildren =\n (Object.keys(facet.children).length > 0 &&\n (isSelected || isChildSelected)) ||\n keyName === '@@root';\n\n return (\n
\n {keyName !== '@@root' && (\n \n )}\n {shouldRenderChildren && (\n \n {Object.keys(facet.children).map((key) => {\n if (facet.children[key]) {\n return this.renderFacet(key, facet.children[key]);\n }\n })}\n
\n )}\n \n );\n }\n\n render() {\n if (!this.fieldName) {\n return;\n }\n\n if (\n Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length === 0\n ) {\n return;\n }\n\n if (\n Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length > 0\n ) {\n return (\n

\n No facets are available for this search query.\n

\n );\n }\n\n // Get root-level facets for view more functionality\n const rootFacets = Object.keys(this.renderedFacetTree.children);\n const threshold = this.viewMoreThreshold ?? 8;\n const shouldShowViewMore = threshold > 0 && rootFacets.length > threshold;\n const visibleFacets = shouldShowViewMore && !this.showAllFacets\n ? rootFacets.slice(0, threshold)\n : rootFacets;\n\n return (\n \n {!this.isCollapsed && (\n
\n
\n {visibleFacets.map((key) => {\n if (this.renderedFacetTree.children[key]) {\n return this.renderFacet(key, this.renderedFacetTree.children[key]);\n }\n })}\n
\n {shouldShowViewMore && (\n \n {this.showAllFacets ? 'View less' : 'View more...'}\n \n )}\n
\n )}\n \n );\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-facet-list2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/facets.ts","src/components/searchcraft-facet-list/searchcraft-facet-list.tsx"],"sourcesContent":["import type {\n Facet,\n FacetTree,\n FacetWithChildrenArray,\n FacetWithChildrenObject,\n} from '@types';\n\n/**\n * Helper function for getting a Node (FacetWithChildrenObject)\n * at a given path. Traverses the node tree to get the node.\n */\nexport const getFacetTreeNodeAtPath = (\n tree: FacetTree,\n nodePaths: string[],\n): FacetWithChildrenObject | undefined => {\n let cursor: FacetWithChildrenObject | undefined = tree;\n for (const nodePath of nodePaths) {\n cursor = cursor?.children[nodePath];\n }\n\n return cursor;\n};\n\n/**\n * Helper function to perform a deep merge.\n * Used for merging two branches of a facet tree together.\n */\nexport const deepMergeWithSpread = (obj1, obj2) => {\n const result = { ...obj1 };\n\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: \n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n } else {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n};\n\n/**\n * Given an array of facet paths, removes parent facet paths so that only the\n * Leaf facets are sent with the search request.\n */\nexport function removeSubstringMatches(arr: string[]): string[] {\n return arr.filter(\n (entry, index, array) =>\n !array.some(\n (otherEntry, otherIndex) =>\n otherIndex !== index && otherEntry.includes(entry),\n ),\n );\n}\n\n/**\n * Merges a current facet tree with an incoming facet tree.\n *\n * At each branch, the incoming facet tree's facets override current facet tree\n *\n * @param currentTree\n * @param incomingTree\n */\nexport const mergeFacetTrees = (\n currentTree: FacetTree,\n incomingTree: FacetTree,\n): FacetTree => {\n const mergedTree: FacetTree = structuredClone(currentTree);\n\n const merge = (\n currentBranch: FacetWithChildrenObject,\n nodePath: string[],\n ): FacetWithChildrenObject => {\n const mergedBranch = structuredClone(currentBranch);\n const incomingBranch = getFacetTreeNodeAtPath(incomingTree, nodePath);\n\n if (!incomingBranch) {\n return mergedBranch;\n }\n\n for (const nodeName of Object.keys(currentBranch.children)) {\n if (incomingBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = {\n ...deepMergeWithSpread(\n currentBranch.children[nodeName],\n incomingBranch.children[nodeName],\n ),\n count: mergedBranch.children[nodeName]?.count || 0,\n };\n } else if (mergedBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = merge(\n mergedBranch.children[nodeName],\n [...nodePath, nodeName],\n );\n }\n }\n\n return mergedBranch;\n };\n\n return merge(mergedTree, []);\n};\n\n/**\n * A function that converts a FacetWithChidrenArray to a complete FacetTree object.\n *\n * It uses the `path` of each Facet to build the tree.\n *\n * @param facetWithChildArray\n * @param exclude - Optional array of facet values or paths to exclude from the tree.\n * - Values starting with \"/\" are treated as full paths and exclude the path and all children\n * (e.g., \"/news\" excludes \"/news\", \"/news/local\", \"/news/national\", etc.)\n * - Values without \"/\" are treated as segment names (e.g., \"local\" excludes all paths containing \"local\")\n */\nexport const facetWithChildrenArrayToCompleteFacetTree = (\n rootArray: FacetWithChildrenArray,\n exclude?: string[],\n): FacetTree => {\n // 1) Start with an empty tree at root \"/\"\n const tree: FacetTree = {\n path: '/',\n count: 0,\n children: {},\n };\n\n // 2) Recursively collect all nodes except the implicit \"/\" itself\n const allFacets: Facet[] = [];\n const collect = (node: FacetWithChildrenArray) => {\n if (node.path !== '/') {\n allFacets.push({ path: node.path, count: node.count });\n }\n if (node.children) {\n for (const child of node.children) {\n collect(child);\n }\n }\n };\n collect(rootArray);\n\n // 3) Insert each flat node into our tree, creating missing ancestors\n for (const { path, count } of allFacets) {\n const segments = path.split('/').filter(Boolean); // \"/sports/outdoors\" -> [\"sports\",\"outdoors\"]\n\n // Skip this facet if it matches any excluded value\n if (exclude && exclude.length > 0) {\n let shouldExclude = false;\n\n for (const excludeValue of exclude) {\n if (excludeValue.startsWith('/')) {\n // Full path exclusion: prefix match (excludes the path and all children)\n if (path === excludeValue || path.startsWith(`${excludeValue}/`)) {\n shouldExclude = true;\n break;\n }\n } else {\n // Segment exclusion: check if any segment matches\n if (segments.includes(excludeValue)) {\n shouldExclude = true;\n break;\n }\n }\n }\n\n if (shouldExclude) {\n continue;\n }\n }\n\n let cursor: FacetWithChildrenObject = tree; // start at the root\n for (const segment of segments) {\n // Build the full path of this level\n const prefixPath =\n cursor.path === '/' ? `/${segment}` : `${cursor.path}/${segment}`;\n\n // If this segment doesn't exist yet, create it\n if (!cursor.children[segment]) {\n cursor.children[segment] = {\n path: prefixPath,\n count: count,\n children: {},\n };\n }\n\n // Descend to the next level deeper\n cursor = cursor.children[segment];\n }\n\n // 4) Now `cursor` is the node matching `path` assign its real count\n cursor.count = count;\n }\n\n return tree;\n};\n","import {\n Component,\n Event,\n type EventEmitter,\n Method,\n Prop,\n State,\n h,\n} from '@stencil/core';\n\nimport type {\n FacetRoot,\n FacetWithChildrenArray,\n FacetWithChildrenObject,\n SearchClientQuery,\n} from '@types';\n\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport type { SearchcraftState } from '@store';\nimport {\n deepMergeWithSpread,\n facetWithChildrenArrayToCompleteFacetTree,\n getFacetTreeNodeAtPath,\n mergeFacetTrees,\n removeSubstringMatches,\n} from '@utils';\n\ntype HandlerActionType =\n | 'SEARCH_TERM_EMPTY'\n | 'NEW_SEARCH_TERM'\n | 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE'\n | 'RANGE_VALUE_UPDATE'\n | 'EXACT_MATCH_UPDATE'\n | 'SORT_ORDER_UPDATE'\n | 'FACET_UPDATE'\n | 'UNKNOWN';\n\n/**\n * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.\n * It is consumed within the `searchcraft-filter-panel`.\n *\n * @js-example\n * ```html\n * \n * \n * \n *\n * \n * \n *\n * \n * \n * ```\n *\n * ```js\n * // index.js\n * const facetList = document.querySelector('searchcraft-facet-list');\n *\n * facetList.addEventListener('facetSelectionUpdated', () => {\n * console.log('Facet selection updated');\n * });\n *\n * // Programmatically toggle collapse state\n * await facetList.handleCollapseToggle();\n * ```\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-facet-list',\n shadow: false,\n})\nexport class SearchcraftFacetList {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The name of the field where facets are applied.\n */\n @Prop() fieldName = '';\n /**\n * Array of facet values to exclude from rendering.\n */\n @Prop() exclude?: string[];\n /**\n * Initial collapse state of the facet section.\n * @default 'open'\n */\n @Prop() initialCollapseState?: 'open' | 'closed' = 'open';\n /**\n * The number of facets to show before displaying a \"view more\" link.\n * Set to 0 to show all facets without a \"view more\" link.\n * @default 8\n */\n @Prop() viewMoreThreshold?: number = 8;\n\n /**\n * Emitted when the facets are updated.\n */\n @Event() facetSelectionUpdated?: EventEmitter<{ paths: string[] }>;\n\n /**\n * The currently selected facet paths.\n */\n @State() selectedPaths: Record = {};\n\n /**\n * A Tree representing all of the facets collected from search responses.\n */\n @State() facetTreeCollectedFromSearchResponse: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * A Tree representing the facet paths that are selected, but were not included\n * in any search response.\n */\n facetTreeFromFacetPathsNotInSearchResponse: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * The facet tree that ultimately gets rendered.\n * This is a mergin of the facetTreeCollectedFromSearchResponse and the facetTreeFromFacetPathsNotInSearchResponse tree\n */\n @State() renderedFacetTree: FacetWithChildrenObject = {\n path: '/',\n count: 0,\n children: {},\n };\n\n /**\n * Tracks whether the facet section is collapsed or expanded.\n */\n @State() isCollapsed = false;\n\n /**\n * Tracks whether all facets are shown or limited by the threshold.\n */\n @State() showAllFacets = false;\n\n // Internal vars used to track when to perform various facet actions.\n private lastTimeTaken?: number;\n private lastSearchTerm?: string;\n private lastSearchMode?: string;\n private lastSortType?: string | null;\n private lastRangeValues?: string;\n private lastFacetValues?: string;\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n get areAnyFacetPathsSelected(): boolean {\n return Object.keys(this.selectedPaths).some(\n (key) => this.selectedPaths[key],\n );\n }\n\n handleIncomingSearchResponse(\n state: SearchcraftState,\n actionType: HandlerActionType,\n ) {\n // Look at the incoming facet root from the search response, and convert it to a FacetTree\n const incomingFacetRoot: FacetRoot | undefined =\n state.searchResponseFacetPrime?.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n const incomingFacetsWithChildrenArray = incomingFacetRoot?.[this.fieldName];\n const incomingFacetTree = facetWithChildrenArrayToCompleteFacetTree(\n {\n path: '/',\n count: 0,\n children: incomingFacetsWithChildrenArray || [],\n },\n this.exclude,\n );\n\n // Determine what action to take to accumulate items into the `facetTreeCollectedFromSearchResponse`.\n // This facet tree gets accumulated in different ways depending on what action type occured.\n switch (actionType) {\n case 'SEARCH_TERM_EMPTY':\n this.facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n break;\n case 'NEW_SEARCH_TERM':\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n break;\n case 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE':\n case 'EXACT_MATCH_UPDATE':\n case 'RANGE_VALUE_UPDATE': {\n if (state.supplementalFacetPrime) {\n const supplementalFacetRoot: FacetRoot | undefined =\n state.supplementalFacetPrime?.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n const supplementalFacetsWithChildrenArray =\n supplementalFacetRoot?.[this.fieldName];\n const supplementalFacetTree =\n facetWithChildrenArrayToCompleteFacetTree(\n {\n path: '/',\n count: 0,\n children: supplementalFacetsWithChildrenArray || [],\n },\n this.exclude,\n );\n\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(\n supplementalFacetTree,\n incomingFacetTree,\n );\n } else {\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n }\n break;\n }\n case 'FACET_UPDATE':\n case 'SORT_ORDER_UPDATE':\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(\n this.facetTreeCollectedFromSearchResponse,\n incomingFacetTree,\n );\n break;\n default:\n return;\n }\n\n // Determine if there are any selected facet paths not in the current tree.\n // If there are, we add them to \"facetTreeFromFacetPathsNotInSearchResponse\"\n this.facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n const collectedFacetArray: FacetWithChildrenArray = {\n path: '/',\n count: 0,\n children: [],\n };\n for (const pathName of Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n )) {\n const nodePaths = pathName.startsWith('/')\n ? pathName.substring(1).split('/')\n : pathName.split('/');\n\n const wasFoundInFacetTree = !!getFacetTreeNodeAtPath(\n this.facetTreeCollectedFromSearchResponse,\n nodePaths,\n );\n\n const pathKeyName = nodePaths.at(-1);\n if (!wasFoundInFacetTree && pathKeyName) {\n collectedFacetArray.children?.push({\n children: [],\n count: 0,\n path: pathName,\n });\n }\n }\n this.facetTreeFromFacetPathsNotInSearchResponse =\n facetWithChildrenArrayToCompleteFacetTree(\n collectedFacetArray,\n this.exclude,\n );\n\n // Merges facetTreeCollectedFromSearchResponse with selectedFacetPathsNotInCurrentFacetTree.\n // This results in a single, final facet tree that gets rendered in as Checkboxes\n this.renderedFacetTree = deepMergeWithSpread(\n this.facetTreeFromFacetPathsNotInSearchResponse,\n this.facetTreeCollectedFromSearchResponse,\n );\n }\n\n handleStateUpdate(_state: SearchcraftState) {\n const state = { ..._state };\n // Determine what action to take based on the current State\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.searchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n if (state.searchTerm.trim() === '' && !isInitialQuery) {\n this.handleIncomingSearchResponse(state, 'SEARCH_TERM_EMPTY');\n this.lastSearchTerm = '';\n } else if (\n this.lastTimeTaken !== state.searchResponseTimeTaken &&\n state.searchClientRequestProperties\n ) {\n // Handle both object and string requestProperties (string is used for initialQuery)\n if (typeof state.searchClientRequestProperties === 'object') {\n const requestProperties = state.searchClientRequestProperties;\n let actionType: HandlerActionType = 'UNKNOWN';\n\n if (this.lastSearchTerm !== requestProperties.searchTerm) {\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n } else {\n actionType = 'NEW_SEARCH_TERM';\n }\n } else if (\n this.lastRangeValues !==\n JSON.stringify(requestProperties.rangeValueForIndexFields)\n ) {\n actionType = 'RANGE_VALUE_UPDATE';\n } else if (\n this.lastFacetValues !==\n JSON.stringify(requestProperties.facetPathsForIndexFields)\n ) {\n actionType = 'FACET_UPDATE';\n } else if (this.lastSortType !== requestProperties.order_by) {\n actionType = 'SORT_ORDER_UPDATE';\n } else if (this.lastSearchMode !== requestProperties.mode) {\n actionType = 'EXACT_MATCH_UPDATE';\n }\n\n this.lastRangeValues = JSON.stringify(\n requestProperties.rangeValueForIndexFields,\n );\n this.lastFacetValues = JSON.stringify(\n requestProperties.facetPathsForIndexFields,\n );\n this.lastSortType = requestProperties.order_by;\n this.lastSearchMode = requestProperties.mode;\n this.lastSearchTerm = requestProperties.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n } else if (typeof state.searchClientRequestProperties === 'string') {\n // Handle initialQuery case where requestProperties is a string\n // For initialQuery, searchTerm will be empty but we still want to show facets\n let actionType: HandlerActionType = 'NEW_SEARCH_TERM';\n\n // Parse the request to get facet and range filters from the query array\n const requestObj = JSON.parse(state.searchClientRequestProperties);\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n // Extract filter queries (those with occur: 'must')\n const filterQueries = queryArray.filter(\n (q: SearchClientQuery) => q.occur === 'must',\n );\n const currentFilters = JSON.stringify(filterQueries);\n\n // Determine the action type based on what changed\n if (\n this.lastFacetValues !== undefined &&\n this.lastFacetValues !== currentFilters\n ) {\n // Filters have changed (not initial load)\n actionType = 'FACET_UPDATE';\n } else if (\n state.searchTerm.trim() === '' &&\n this.lastSearchTerm === ''\n ) {\n // Initial load or no changes with empty search term\n actionType = 'NEW_SEARCH_TERM';\n } else if (this.lastSearchTerm !== state.searchTerm) {\n // User has typed a new search term after initialQuery\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n } else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n\n this.lastFacetValues = currentFilters;\n this.lastSearchTerm = state.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n }\n }\n\n onCoreAvailable(core: SearchcraftCore) {\n this.handleStateUpdate(core.store.getState());\n\n this.unsubscribe = core.store.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n\n connectedCallback() {\n // Initialize collapse state based on prop\n this.isCollapsed = this.initialCollapseState === 'closed';\n\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n handleCheckboxChange(path: string) {\n const isCheckboxChecked = !this.selectedPaths[path];\n\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n } else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter(\n (testPath) => !testPath.includes(path),\n );\n\n this.selectedPaths = updatedPaths.reduce(\n (acc, str) => {\n acc[str] = true;\n return acc;\n },\n {} as Record,\n );\n }\n\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n );\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n\n formatFacetName = (name: string): string => {\n const label = name.replace(/^\\//, '');\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())}`;\n };\n\n /**\n * Toggles the collapsed state of the facet section.\n * @returns A promise that resolves when the toggle is complete.\n */\n @Method()\n async handleCollapseToggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n\n /**\n * Returns whether the facet section is currently collapsed.\n * @returns A promise that resolves to true if collapsed, false if expanded.\n */\n @Method()\n async getIsCollapsed() {\n return this.isCollapsed;\n }\n\n handleViewMoreToggle = () => {\n this.showAllFacets = !this.showAllFacets;\n };\n\n renderFacet(keyName: string, facet: FacetWithChildrenObject) {\n let isChildSelected = false;\n for (const path of Object.keys(this.selectedPaths)) {\n if (\n this.selectedPaths[path] &&\n path.startsWith(facet.path) &&\n path.length > facet.path.length\n ) {\n isChildSelected = true;\n }\n }\n\n const isSelected = Object.keys(this.selectedPaths).includes(facet.path);\n\n const shouldRenderChildren =\n (Object.keys(facet.children).length > 0 &&\n (isSelected || isChildSelected)) ||\n keyName === '@@root';\n\n return (\n
\n {keyName !== '@@root' && (\n \n )}\n {shouldRenderChildren && (\n \n {Object.keys(facet.children).map((key) => {\n if (facet.children[key]) {\n return this.renderFacet(key, facet.children[key]);\n }\n })}\n
\n )}\n \n );\n }\n\n render() {\n if (!this.fieldName) {\n return;\n }\n\n if (\n Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length === 0\n ) {\n return;\n }\n\n if (\n Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length > 0\n ) {\n return (\n

\n No facets are available for this search query.\n

\n );\n }\n\n // Get root-level facets for view more functionality\n const rootFacets = Object.keys(this.renderedFacetTree.children);\n const threshold = this.viewMoreThreshold ?? 8;\n const shouldShowViewMore = threshold > 0 && rootFacets.length > threshold;\n const visibleFacets =\n shouldShowViewMore && !this.showAllFacets\n ? rootFacets.slice(0, threshold)\n : rootFacets;\n\n return (\n \n {!this.isCollapsed && (\n
\n
\n {visibleFacets.map((key) => {\n if (this.renderedFacetTree.children[key]) {\n return this.renderFacet(\n key,\n this.renderedFacetTree.children[key],\n );\n }\n })}\n
\n {shouldShowViewMore && (\n \n {this.showAllFacets ? 'View less' : 'View more...'}\n \n )}\n
\n )}\n \n );\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-filter-panel.js b/public/sdk/components/searchcraft-filter-panel.js index fe33a55..9d5721e 100644 --- a/public/sdk/components/searchcraft-filter-panel.js +++ b/public/sdk/components/searchcraft-filter-panel.js @@ -1,8 +1,8 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { d as defineCustomElement$4 } from './searchcraft-facet-list2.js?v=0.13.3'; -import { d as defineCustomElement$3 } from './searchcraft-slider2.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-toggle-button2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { d as defineCustomElement$4 } from './searchcraft-facet-list2.js?scv=0.14.0'; +import { d as defineCustomElement$3 } from './searchcraft-slider2.js?scv=0.14.0'; +import { d as defineCustomElement$2 } from './searchcraft-toggle-button2.js?scv=0.14.0'; const SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftFilterPanel extends H { constructor(registerHost) { @@ -292,7 +292,9 @@ const SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class Searchcr } }; const handleToggle = async () => { - if (facetListElement && 'handleCollapseToggle' in facetListElement && 'getIsCollapsed' in facetListElement) { + if (facetListElement && + 'handleCollapseToggle' in facetListElement && + 'getIsCollapsed' in facetListElement) { await facetListElement.handleCollapseToggle(); const isCollapsed = await facetListElement.getIsCollapsed(); updateLabelAttributes(isCollapsed); @@ -301,12 +303,19 @@ const SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class Searchcr // return "filters-list" return (h("div", { class: 'searchcraft-filter-panel-section' }, h("p", { ref: (el) => { labelElement = el || null; - }, class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' ? '' : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' ? '' : undefined, onClick: handleToggle, onKeyDown: async (event) => { + }, "aria-expanded": item.options.initialCollapseState !== 'closed', class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' + ? '' + : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' + ? '' + : undefined, onClick: () => void handleToggle(), onKeyDown: (event) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); - await handleToggle(); + void handleToggle(); } - }, tabIndex: 0, role: 'button', "aria-expanded": item.options.initialCollapseState !== 'closed' }, filterItem.label), h("searchcraft-facet-list", { ref: (el) => { + }, + /* biome-ignore lint/a11y/useSemanticElements: This label is intentionally a

for styling/layout; it behaves like a button. */ + /* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: This

is intentionally used as an interactive control. */ + role: 'button', tabIndex: 0 }, filterItem.label), h("searchcraft-facet-list", { ref: (el) => { facetListElement = el || null; }, fieldName: item.fieldName, exclude: item.options.exclude, initialCollapseState: item.options.initialCollapseState, viewMoreThreshold: item.options.viewMoreThreshold, onFacetSelectionUpdated: (event) => { this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths); diff --git a/public/sdk/components/searchcraft-filter-panel.js.map b/public/sdk/components/searchcraft-filter-panel.js.map index 0b47f0e..e65ae50 100644 --- a/public/sdk/components/searchcraft-filter-panel.js.map +++ b/public/sdk/components/searchcraft-filter-panel.js.map @@ -1 +1 @@ -{"file":"searchcraft-filter-panel.js","mappings":"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","names":["SearchcraftFilterPanel","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-filter-panel/searchcraft-filter-panel.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Element, Prop, State, h } from '@stencil/core';\nimport type {\n DateRangeFilterItem,\n ExactMatchToggleFilterItem,\n FacetsFilterItem,\n FilterItem,\n MostRecentToggleFilterItem,\n NumericFilterItem,\n} from '@types';\n\n/**\n * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftFilterPanel } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftFilterPanel } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * \n * ```\n *\n * ```js\n * // index.js\n * const filterPanel = document.querySelector('searchcraft-filter-panel');\n *\n * if (filterPanel) {\n * filterPanel.items = [];\n * }\n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-filter-panel',\n shadow: false,\n})\nexport class SearchcraftFilterPanel {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The items to filter.\n */\n @Prop() items: FilterItem[] = [];\n /**\n * The breakpoint (in pixels) below which the filter panel will be hidden.\n * Defaults to 768px (--sc-breakpoint-md).\n */\n @Prop() responsiveBreakpoint?: number = 768;\n /**\n * Controls whether the filter panel automatically hides/shows based on window size.\n * - 'auto': Automatically hide/show based on window width\n * - 'manual': User controls visibility manually\n */\n @Prop() responsiveBehavior?: 'auto' | 'manual' = 'auto';\n\n @State() lastSearchTerm: string | undefined;\n @State() isFilterPanelVisible = true;\n\n @Element() hostElement!: HTMLElement;\n\n private core?: SearchcraftCore;\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n private resizeObserver?: ResizeObserver;\n private manuallyToggled = false; // Track if user manually toggled visibility\n private toggleClickHandler?: (event: Event) => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n this.setInitialDateRanges();\n\n // Initialize visibility based on current window size if in auto mode\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n\n this.unsubscribe = core.store.subscribe((state, prevState) => {\n if (this.lastSearchTerm !== state.searchTerm) {\n // A place to put actions to do when the query changes\n }\n this.lastSearchTerm = state.searchTerm || '';\n\n // Check if visibility was manually changed (not by auto-resize)\n if (prevState.isFilterPanelVisible !== state.isFilterPanelVisible) {\n const windowWidth = window.innerWidth;\n const autoVisibility =\n windowWidth >= (this.responsiveBreakpoint || 768);\n\n // If the new state differs from what auto mode would set, it was manual\n if (state.isFilterPanelVisible !== autoVisibility) {\n this.manuallyToggled = true;\n }\n\n // Update toggle element attributes when visibility changes\n this.updateToggleElementAttributes(state.isFilterPanelVisible);\n }\n\n this.isFilterPanelVisible = state.isFilterPanelVisible;\n });\n }\n\n componentDidLoad() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n\n // Set up resize observer if in auto mode\n if (this.responsiveBehavior === 'auto' && typeof window !== 'undefined') {\n this.setupResizeObserver();\n }\n\n // Set up click handlers for elements with data-toggle-filter-panel attribute\n this.setupToggleClickHandlers();\n\n // Set initial toggle element state immediately\n // Use setTimeout to ensure this runs after the store is initialized\n setTimeout(() => {\n if (this.core) {\n const currentVisibility =\n this.core.store.getState().isFilterPanelVisible;\n this.updateToggleElementAttributes(currentVisibility);\n }\n }, 0);\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n this.resizeObserver?.disconnect();\n\n // Clean up window resize listener if it was used as fallback\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleWindowResize);\n }\n\n // Clean up toggle click handlers\n this.cleanupToggleClickHandlers();\n }\n\n /**\n * Sets up a ResizeObserver to watch for window size changes\n */\n setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback to window resize event if ResizeObserver is not available\n window.addEventListener('resize', this.handleWindowResize);\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n this.handleWindowResize();\n });\n\n // Observe the document body for size changes\n this.resizeObserver.observe(document.body);\n }\n\n /**\n * Handles window resize events\n */\n handleWindowResize = () => {\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n };\n\n /**\n * Updates filter panel visibility based on current window width\n */\n updateVisibilityBasedOnWindowSize() {\n if (typeof window === 'undefined') return;\n\n // Don't auto-hide/show if user manually toggled it\n if (this.manuallyToggled) return;\n\n const windowWidth = window.innerWidth;\n const shouldBeVisible = windowWidth >= (this.responsiveBreakpoint || 768);\n\n if (this.core && this.isFilterPanelVisible !== shouldBeVisible) {\n this.core.store.getState().setFilterPanelVisibility(shouldBeVisible);\n }\n }\n\n /**\n * Sets up click handlers for elements with data-toggle-filter-panel attribute\n */\n setupToggleClickHandlers() {\n if (typeof document === 'undefined') return;\n\n this.toggleClickHandler = (event: Event) => {\n // Only allow toggle on mobile (below breakpoint)\n const windowWidth = window.innerWidth;\n if (windowWidth >= (this.responsiveBreakpoint || 768)) {\n return; // Don't toggle on desktop\n }\n\n event.preventDefault();\n if (this.core) {\n const currentVisibility =\n this.core.store.getState().isFilterPanelVisible;\n this.core.store.getState().setFilterPanelVisibility(!currentVisibility);\n }\n };\n\n // Find all elements with the data attribute\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.addEventListener('click', this.toggleClickHandler);\n }\n });\n }\n\n /**\n * Updates data attributes on toggle elements to reflect panel visibility state\n */\n updateToggleElementAttributes(isVisible: boolean) {\n if (typeof document === 'undefined') return;\n\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (isVisible) {\n element.removeAttribute('data-filter-panel-collapsed');\n element.setAttribute('data-filter-panel-expanded', '');\n } else {\n element.removeAttribute('data-filter-panel-expanded');\n element.setAttribute('data-filter-panel-collapsed', '');\n }\n });\n }\n\n /**\n * Cleans up click handlers for toggle elements\n */\n cleanupToggleClickHandlers() {\n if (typeof document === 'undefined' || !this.toggleClickHandler) return;\n\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.removeEventListener('click', this.toggleClickHandler);\n }\n });\n }\n\n /**\n * Sets the initial min/max date range values for search queries based on the filter items provided.\n */\n setInitialDateRanges() {\n for (const item of this.items) {\n if (item.type === 'dateRange') {\n const dateItem = item as DateRangeFilterItem;\n\n const startingMinDate = dateItem.options.minDate;\n const startingMaxDate = dateItem.options.maxDate || new Date();\n\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: dateItem.fieldName,\n value: `${dateItem.fieldName}:[${startingMinDate.toISOString()} TO ${startingMaxDate.toISOString()}]`,\n });\n }\n }\n }\n\n handleDateRangeChanged(item: DateRangeFilterItem, min: number, max: number) {\n const start = new Date(min);\n const end = new Date(max);\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: item.fieldName,\n value: `${item.fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n\n this.core?.store.getState()?.search();\n }\n\n handleNumericRangeChanged(fieldName: string, min: number, max: number) {\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.core?.store.getState()?.search();\n }\n\n handleFacetSelectionUpdated(fieldName: string, paths: string[]) {\n if (paths.length > 0) {\n this.core?.store.getState()?.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n } else {\n this.core?.store.getState()?.removeFacetPathsForIndexField(fieldName);\n }\n this.core?.store.getState()?.search();\n }\n\n handleExactMatchToggleUpdated(isActive: boolean) {\n this.core?.store.getState()?.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.core?.store.getState()?.search();\n }\n\n handleMostRecentToggleUpdated(fieldName: string, isActive: boolean) {\n if (isActive) {\n this.core?.store.getState()?.setSortOrder({\n orderByField: fieldName,\n sortType: 'desc',\n });\n } else {\n this.core?.store.getState()?.setSortOrder({\n orderByField: null,\n sortType: null,\n });\n }\n this.core?.store.getState()?.search();\n }\n\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n // Don't render if not visible\n if (!this.isFilterPanelVisible) {\n return null;\n }\n\n return (\n

\n {this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem as DateRangeFilterItem;\n const maxDate = item.options.maxDate || new Date();\n\n // return date range slider\n return (\n
\n

\n {filterItem.label}\n

\n {\n this.handleDateRangeChanged(\n item,\n event.detail.startValue,\n event.detail.endValue,\n );\n }}\n />\n
\n );\n }\n case 'numericRange': {\n const item = filterItem as NumericFilterItem;\n // return date range slider\n return (\n
\n

\n {filterItem.label}\n

\n {\n this.handleNumericRangeChanged(\n item.fieldName,\n event.detail.startValue,\n event.detail.endValue,\n );\n }}\n />\n
\n );\n }\n case 'facets': {\n const item = filterItem as FacetsFilterItem;\n let facetListElement: HTMLElement | null = null;\n let labelElement: HTMLElement | null = null;\n\n const updateLabelAttributes = (isCollapsed: boolean) => {\n if (labelElement) {\n if (isCollapsed) {\n labelElement.removeAttribute('data-facet-section-expanded');\n labelElement.setAttribute('data-facet-section-collapsed', '');\n labelElement.setAttribute('aria-expanded', 'false');\n } else {\n labelElement.removeAttribute('data-facet-section-collapsed');\n labelElement.setAttribute('data-facet-section-expanded', '');\n labelElement.setAttribute('aria-expanded', 'true');\n }\n }\n };\n\n const handleToggle = async () => {\n if (facetListElement && 'handleCollapseToggle' in facetListElement && 'getIsCollapsed' in facetListElement) {\n await (facetListElement as { handleCollapseToggle: () => Promise; getIsCollapsed: () => Promise }).handleCollapseToggle();\n const isCollapsed = await (facetListElement as { getIsCollapsed: () => Promise }).getIsCollapsed();\n updateLabelAttributes(isCollapsed);\n }\n };\n\n // return \"filters-list\"\n return (\n
\n {\n labelElement = el || null;\n }}\n class='searchcraft-filter-panel-label'\n data-toggle-facet-section\n data-facet-section-expanded={item.options.initialCollapseState !== 'closed' ? '' : undefined}\n data-facet-section-collapsed={item.options.initialCollapseState === 'closed' ? '' : undefined}\n onClick={handleToggle}\n onKeyDown={async (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n await handleToggle();\n }\n }}\n tabIndex={0}\n role='button'\n aria-expanded={item.options.initialCollapseState !== 'closed'}\n >\n {filterItem.label}\n

\n {\n facetListElement = el || null;\n }}\n fieldName={item.fieldName}\n exclude={item.options.exclude}\n initialCollapseState={item.options.initialCollapseState}\n viewMoreThreshold={item.options.viewMoreThreshold}\n onFacetSelectionUpdated={(event) => {\n this.handleFacetSelectionUpdated(\n item.fieldName,\n event.detail.paths,\n );\n }}\n />\n
\n );\n }\n case 'exactMatchToggle': {\n const item = filterItem as ExactMatchToggleFilterItem;\n return (\n {\n this.handleExactMatchToggleUpdated(event.detail);\n }}\n />\n );\n }\n case 'mostRecentToggle': {\n const item = filterItem as MostRecentToggleFilterItem;\n return (\n {\n this.handleMostRecentToggleUpdated(\n item.fieldName,\n event.detail,\n );\n }}\n />\n );\n }\n }\n })}\n
\n );\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-filter-panel.js","mappings":"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","names":["SearchcraftFilterPanel","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-filter-panel/searchcraft-filter-panel.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Element, Prop, State, h } from '@stencil/core';\nimport type {\n DateRangeFilterItem,\n ExactMatchToggleFilterItem,\n FacetsFilterItem,\n FilterItem,\n MostRecentToggleFilterItem,\n NumericFilterItem,\n} from '@types';\n\n/**\n * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftFilterPanel } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftFilterPanel } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * \n * ```\n *\n * ```js\n * // index.js\n * const filterPanel = document.querySelector('searchcraft-filter-panel');\n *\n * if (filterPanel) {\n * filterPanel.items = [];\n * }\n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-filter-panel',\n shadow: false,\n})\nexport class SearchcraftFilterPanel {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The items to filter.\n */\n @Prop() items: FilterItem[] = [];\n /**\n * The breakpoint (in pixels) below which the filter panel will be hidden.\n * Defaults to 768px (--sc-breakpoint-md).\n */\n @Prop() responsiveBreakpoint?: number = 768;\n /**\n * Controls whether the filter panel automatically hides/shows based on window size.\n * - 'auto': Automatically hide/show based on window width\n * - 'manual': User controls visibility manually\n */\n @Prop() responsiveBehavior?: 'auto' | 'manual' = 'auto';\n\n @State() lastSearchTerm: string | undefined;\n @State() isFilterPanelVisible = true;\n\n @Element() hostElement!: HTMLElement;\n\n private core?: SearchcraftCore;\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n private resizeObserver?: ResizeObserver;\n private manuallyToggled = false; // Track if user manually toggled visibility\n private toggleClickHandler?: (event: Event) => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n this.setInitialDateRanges();\n\n // Initialize visibility based on current window size if in auto mode\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n\n this.unsubscribe = core.store.subscribe((state, prevState) => {\n if (this.lastSearchTerm !== state.searchTerm) {\n // A place to put actions to do when the query changes\n }\n this.lastSearchTerm = state.searchTerm || '';\n\n // Check if visibility was manually changed (not by auto-resize)\n if (prevState.isFilterPanelVisible !== state.isFilterPanelVisible) {\n const windowWidth = window.innerWidth;\n const autoVisibility =\n windowWidth >= (this.responsiveBreakpoint || 768);\n\n // If the new state differs from what auto mode would set, it was manual\n if (state.isFilterPanelVisible !== autoVisibility) {\n this.manuallyToggled = true;\n }\n\n // Update toggle element attributes when visibility changes\n this.updateToggleElementAttributes(state.isFilterPanelVisible);\n }\n\n this.isFilterPanelVisible = state.isFilterPanelVisible;\n });\n }\n\n componentDidLoad() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n\n // Set up resize observer if in auto mode\n if (this.responsiveBehavior === 'auto' && typeof window !== 'undefined') {\n this.setupResizeObserver();\n }\n\n // Set up click handlers for elements with data-toggle-filter-panel attribute\n this.setupToggleClickHandlers();\n\n // Set initial toggle element state immediately\n // Use setTimeout to ensure this runs after the store is initialized\n setTimeout(() => {\n if (this.core) {\n const currentVisibility =\n this.core.store.getState().isFilterPanelVisible;\n this.updateToggleElementAttributes(currentVisibility);\n }\n }, 0);\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n this.resizeObserver?.disconnect();\n\n // Clean up window resize listener if it was used as fallback\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleWindowResize);\n }\n\n // Clean up toggle click handlers\n this.cleanupToggleClickHandlers();\n }\n\n /**\n * Sets up a ResizeObserver to watch for window size changes\n */\n setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback to window resize event if ResizeObserver is not available\n window.addEventListener('resize', this.handleWindowResize);\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n this.handleWindowResize();\n });\n\n // Observe the document body for size changes\n this.resizeObserver.observe(document.body);\n }\n\n /**\n * Handles window resize events\n */\n handleWindowResize = () => {\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n };\n\n /**\n * Updates filter panel visibility based on current window width\n */\n updateVisibilityBasedOnWindowSize() {\n if (typeof window === 'undefined') return;\n\n // Don't auto-hide/show if user manually toggled it\n if (this.manuallyToggled) return;\n\n const windowWidth = window.innerWidth;\n const shouldBeVisible = windowWidth >= (this.responsiveBreakpoint || 768);\n\n if (this.core && this.isFilterPanelVisible !== shouldBeVisible) {\n this.core.store.getState().setFilterPanelVisibility(shouldBeVisible);\n }\n }\n\n /**\n * Sets up click handlers for elements with data-toggle-filter-panel attribute\n */\n setupToggleClickHandlers() {\n if (typeof document === 'undefined') return;\n\n this.toggleClickHandler = (event: Event) => {\n // Only allow toggle on mobile (below breakpoint)\n const windowWidth = window.innerWidth;\n if (windowWidth >= (this.responsiveBreakpoint || 768)) {\n return; // Don't toggle on desktop\n }\n\n event.preventDefault();\n if (this.core) {\n const currentVisibility =\n this.core.store.getState().isFilterPanelVisible;\n this.core.store.getState().setFilterPanelVisibility(!currentVisibility);\n }\n };\n\n // Find all elements with the data attribute\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.addEventListener('click', this.toggleClickHandler);\n }\n });\n }\n\n /**\n * Updates data attributes on toggle elements to reflect panel visibility state\n */\n updateToggleElementAttributes(isVisible: boolean) {\n if (typeof document === 'undefined') return;\n\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (isVisible) {\n element.removeAttribute('data-filter-panel-collapsed');\n element.setAttribute('data-filter-panel-expanded', '');\n } else {\n element.removeAttribute('data-filter-panel-expanded');\n element.setAttribute('data-filter-panel-collapsed', '');\n }\n });\n }\n\n /**\n * Cleans up click handlers for toggle elements\n */\n cleanupToggleClickHandlers() {\n if (typeof document === 'undefined' || !this.toggleClickHandler) return;\n\n const toggleElements = document.querySelectorAll(\n '[data-toggle-filter-panel]',\n );\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.removeEventListener('click', this.toggleClickHandler);\n }\n });\n }\n\n /**\n * Sets the initial min/max date range values for search queries based on the filter items provided.\n */\n setInitialDateRanges() {\n for (const item of this.items) {\n if (item.type === 'dateRange') {\n const dateItem = item as DateRangeFilterItem;\n\n const startingMinDate = dateItem.options.minDate;\n const startingMaxDate = dateItem.options.maxDate || new Date();\n\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: dateItem.fieldName,\n value: `${dateItem.fieldName}:[${startingMinDate.toISOString()} TO ${startingMaxDate.toISOString()}]`,\n });\n }\n }\n }\n\n handleDateRangeChanged(item: DateRangeFilterItem, min: number, max: number) {\n const start = new Date(min);\n const end = new Date(max);\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: item.fieldName,\n value: `${item.fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n\n this.core?.store.getState()?.search();\n }\n\n handleNumericRangeChanged(fieldName: string, min: number, max: number) {\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.core?.store.getState()?.search();\n }\n\n handleFacetSelectionUpdated(fieldName: string, paths: string[]) {\n if (paths.length > 0) {\n this.core?.store.getState()?.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n } else {\n this.core?.store.getState()?.removeFacetPathsForIndexField(fieldName);\n }\n this.core?.store.getState()?.search();\n }\n\n handleExactMatchToggleUpdated(isActive: boolean) {\n this.core?.store.getState()?.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.core?.store.getState()?.search();\n }\n\n handleMostRecentToggleUpdated(fieldName: string, isActive: boolean) {\n if (isActive) {\n this.core?.store.getState()?.setSortOrder({\n orderByField: fieldName,\n sortType: 'desc',\n });\n } else {\n this.core?.store.getState()?.setSortOrder({\n orderByField: null,\n sortType: null,\n });\n }\n this.core?.store.getState()?.search();\n }\n\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n // Don't render if not visible\n if (!this.isFilterPanelVisible) {\n return null;\n }\n\n return (\n
\n {this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem as DateRangeFilterItem;\n const maxDate = item.options.maxDate || new Date();\n\n // return date range slider\n return (\n
\n

\n {filterItem.label}\n

\n {\n this.handleDateRangeChanged(\n item,\n event.detail.startValue,\n event.detail.endValue,\n );\n }}\n />\n
\n );\n }\n case 'numericRange': {\n const item = filterItem as NumericFilterItem;\n // return date range slider\n return (\n
\n

\n {filterItem.label}\n

\n {\n this.handleNumericRangeChanged(\n item.fieldName,\n event.detail.startValue,\n event.detail.endValue,\n );\n }}\n />\n
\n );\n }\n case 'facets': {\n const item = filterItem as FacetsFilterItem;\n let facetListElement: HTMLElement | null = null;\n let labelElement: HTMLElement | null = null;\n\n const updateLabelAttributes = (isCollapsed: boolean) => {\n if (labelElement) {\n if (isCollapsed) {\n labelElement.removeAttribute('data-facet-section-expanded');\n labelElement.setAttribute(\n 'data-facet-section-collapsed',\n '',\n );\n labelElement.setAttribute('aria-expanded', 'false');\n } else {\n labelElement.removeAttribute(\n 'data-facet-section-collapsed',\n );\n labelElement.setAttribute(\n 'data-facet-section-expanded',\n '',\n );\n labelElement.setAttribute('aria-expanded', 'true');\n }\n }\n };\n\n const handleToggle = async () => {\n if (\n facetListElement &&\n 'handleCollapseToggle' in facetListElement &&\n 'getIsCollapsed' in facetListElement\n ) {\n await (\n facetListElement as {\n handleCollapseToggle: () => Promise;\n getIsCollapsed: () => Promise;\n }\n ).handleCollapseToggle();\n const isCollapsed = await (\n facetListElement as {\n getIsCollapsed: () => Promise;\n }\n ).getIsCollapsed();\n updateLabelAttributes(isCollapsed);\n }\n };\n\n // return \"filters-list\"\n return (\n
\n {\n labelElement = el || null;\n }}\n aria-expanded={\n item.options.initialCollapseState !== 'closed'\n }\n class='searchcraft-filter-panel-label'\n data-toggle-facet-section\n data-facet-section-expanded={\n item.options.initialCollapseState !== 'closed'\n ? ''\n : undefined\n }\n data-facet-section-collapsed={\n item.options.initialCollapseState === 'closed'\n ? ''\n : undefined\n }\n onClick={() => void handleToggle()}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n void handleToggle();\n }\n }}\n /* biome-ignore lint/a11y/useSemanticElements: This label is intentionally a

for styling/layout; it behaves like a button. */\n /* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: This

is intentionally used as an interactive control. */\n role='button'\n tabIndex={0}\n >\n {filterItem.label}\n

\n {\n facetListElement = el || null;\n }}\n fieldName={item.fieldName}\n exclude={item.options.exclude}\n initialCollapseState={item.options.initialCollapseState}\n viewMoreThreshold={item.options.viewMoreThreshold}\n onFacetSelectionUpdated={(event) => {\n this.handleFacetSelectionUpdated(\n item.fieldName,\n event.detail.paths,\n );\n }}\n />\n
\n );\n }\n case 'exactMatchToggle': {\n const item = filterItem as ExactMatchToggleFilterItem;\n return (\n {\n this.handleExactMatchToggleUpdated(event.detail);\n }}\n />\n );\n }\n case 'mostRecentToggle': {\n const item = filterItem as MostRecentToggleFilterItem;\n return (\n {\n this.handleMostRecentToggleUpdated(\n item.fieldName,\n event.detail,\n );\n }}\n />\n );\n }\n }\n })}\n
\n );\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-input-form.js b/public/sdk/components/searchcraft-input-form.js index 48f56c6..e962277 100644 --- a/public/sdk/components/searchcraft-input-form.js +++ b/public/sdk/components/searchcraft-input-form.js @@ -1,4 +1,4 @@ -import { S as SearchcraftInputForm$1, d as defineCustomElement$1 } from './searchcraft-input-form2.js?v=0.13.3'; +import { S as SearchcraftInputForm$1, d as defineCustomElement$1 } from './searchcraft-input-form2.js?scv=0.14.0'; const SearchcraftInputForm = SearchcraftInputForm$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-input-form2.js b/public/sdk/components/searchcraft-input-form2.js index 5bfe49f..1f52696 100644 --- a/public/sdk/components/searchcraft-input-form2.js +++ b/public/sdk/components/searchcraft-input-form2.js @@ -1,9 +1,9 @@ -import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.3'; -import { c as classNames } from './index3.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { d as defineCustomElement$3 } from './searchcraft-button2.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-error-message2.js?v=0.13.3'; -import { d as defineCustomElement$1 } from './searchcraft-input-label2.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { c as classNames } from './index3.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { d as defineCustomElement$3 } from './searchcraft-button2.js?scv=0.14.0'; +import { d as defineCustomElement$2 } from './searchcraft-error-message2.js?scv=0.14.0'; +import { d as defineCustomElement$1 } from './searchcraft-input-label2.js?scv=0.14.0'; const SearchcraftInputForm = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputForm extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-input-label.js b/public/sdk/components/searchcraft-input-label.js index bb99d9b..a9aebc7 100644 --- a/public/sdk/components/searchcraft-input-label.js +++ b/public/sdk/components/searchcraft-input-label.js @@ -1,4 +1,4 @@ -import { S as SearchcraftInputLabel$1, d as defineCustomElement$1 } from './searchcraft-input-label2.js?v=0.13.3'; +import { S as SearchcraftInputLabel$1, d as defineCustomElement$1 } from './searchcraft-input-label2.js?scv=0.14.0'; const SearchcraftInputLabel = SearchcraftInputLabel$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-input-label2.js b/public/sdk/components/searchcraft-input-label2.js index 3d43a99..74939a4 100644 --- a/public/sdk/components/searchcraft-input-label2.js +++ b/public/sdk/components/searchcraft-input-label2.js @@ -1,5 +1,5 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { c as classNames } from './index3.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { c as classNames } from './index3.js?scv=0.14.0'; const SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-loading.js b/public/sdk/components/searchcraft-loading.js index 8448e92..9d48be6 100644 --- a/public/sdk/components/searchcraft-loading.js +++ b/public/sdk/components/searchcraft-loading.js @@ -1,4 +1,4 @@ -import { S as SearchcraftInputLabel, d as defineCustomElement$1 } from './searchcraft-loading2.js?v=0.13.3'; +import { S as SearchcraftInputLabel, d as defineCustomElement$1 } from './searchcraft-loading2.js?scv=0.14.0'; const SearchcraftLoading = SearchcraftInputLabel; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-loading2.js b/public/sdk/components/searchcraft-loading2.js index dbafba3..73c3a35 100644 --- a/public/sdk/components/searchcraft-loading2.js +++ b/public/sdk/components/searchcraft-loading2.js @@ -1,4 +1,4 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; const SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H { constructor(registerHost) { @@ -9,7 +9,10 @@ const SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class Searchcraft } label; render() { - return (h("div", { key: '5bda164202246eeb2e56bb6a25bede9931898e7a', class: 'searchcraft-loading' }, h("div", { key: 'e33a5abc6686f9983c718a2532aa2d46902d98a2', class: 'searchcraft-loading-bars' }, h("div", { key: '85ff7af527b8f419c9bfd6e84331dd68772e6fdd', class: 'searchcraft-loading-bar-1' }), h("div", { key: '1485d17e9262dbec6d2e5976a63149878137821c', class: 'searchcraft-loading-bar-2' }), h("div", { key: 'd2939b9f7bc0599df7d96db91802ebfcbf232f3e', class: 'searchcraft-loading-bar-3' }), h("div", { key: '7a73bd5baf25ec789c3170e066d1333b905bfe7b', class: 'searchcraft-loading-bar-4' }), h("div", { key: 'b644b618766727773b21d288945c21b6ef0be958', class: 'searchcraft-loading-bar-5' }), h("div", { key: '4f5123a786fc40891ca54edc538dd56f683b26ce', class: 'searchcraft-loading-bar-6' })), h("p", { key: '967c1a6fb41231c8d713b78facca98e7f5a80709', class: 'searchcraft-loading-label' }, this.label))); + const accessibleLabel = this.label ?? 'Loading'; + return (h("div", { key: 'd749250c5f56c703da7f1cba4a226a202ae269c0', class: 'searchcraft-loading', + // biome-ignore lint/a11y/useSemanticElements: is semantically incorrect for a loading indicator + role: 'status', "aria-live": 'polite', "aria-label": accessibleLabel }, h("div", { key: '0f834793686bcf8dff56769ad65311c1f591e8dd', class: 'searchcraft-loading-dots', "aria-hidden": 'true' }, h("div", { key: '2174c333eecf0630ce984b2dece74675356259d9', class: 'searchcraft-loading-dot-1' }), h("div", { key: '927fee69cd86dbd9ae57776c2a15fa6956707fac', class: 'searchcraft-loading-dot-2' }), h("div", { key: 'cfd37c9a9a12dfc9963aa53c3979fb59dc7a132c', class: 'searchcraft-loading-dot-3' })), this.label ? (h("p", { class: 'searchcraft-loading-label' }, this.label)) : null)); } }, [768, "searchcraft-loading", { "label": [1] diff --git a/public/sdk/components/searchcraft-loading2.js.map b/public/sdk/components/searchcraft-loading2.js.map index f331edc..237bb3c 100644 --- a/public/sdk/components/searchcraft-loading2.js.map +++ b/public/sdk/components/searchcraft-loading2.js.map @@ -1 +1 @@ -{"file":"searchcraft-loading2.js","mappings":";;MAWa,qBAAqB,iBAAAA,kBAAA,CAAA,MAAA,qBAAA,SAAAC,CAAA,CAAA;;;;;;;AACxB,IAAA,KAAK;IAEb,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACnC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,2BAA2B,EAAA,CAAG,CACrC,EACN,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAE,EAAA,IAAI,CAAC,KAAK,CAAK,CACjD;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-loading/searchcraft-loading.tsx"],"sourcesContent":["import { Component, Prop, h } from '@stencil/core';\n\n/**\n * Renders a loading spinner/loading state for use in things like the summary box.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-loading',\n shadow: false,\n})\nexport class SearchcraftInputLabel {\n @Prop() label?: string;\n\n render() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

{this.label}

\n
\n );\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-loading2.js","mappings":";;MAWa,qBAAqB,iBAAAA,kBAAA,CAAA,MAAA,qBAAA,SAAAC,CAAA,CAAA;;;;;;;AACxB,IAAA,KAAK;IAEb,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS;AAC/C,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,qBAAqB;;YAE3B,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,gBACN,eAAe,EAAA,EAE3B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,0BAA0B,EAAA,aAAA,EAAa,MAAM,EAAA,EACtD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,2BAA2B,EAAA,CAAG,CACrC,EACL,IAAI,CAAC,KAAK,IACT,CAAA,CAAA,GAAA,EAAA,EAAG,KAAK,EAAC,2BAA2B,EAAA,EAAE,IAAI,CAAC,KAAK,CAAK,IACnD,IAAI,CACJ;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-loading/searchcraft-loading.tsx"],"sourcesContent":["import { Component, Prop, h } from '@stencil/core';\n\n/**\n * Renders a loading spinner/loading state for use in things like the summary box.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-loading',\n shadow: false,\n})\nexport class SearchcraftInputLabel {\n @Prop() label?: string;\n\n render() {\n const accessibleLabel = this.label ?? 'Loading';\n return (\n is semantically incorrect for a loading indicator\n role='status'\n aria-live='polite'\n aria-label={accessibleLabel}\n >\n \n );\n }\n }\n\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (\n \n
\n \n \n Cancel\n \n
\n
\n {this.hasResultsToShow && (\n \n )}\n
\n \n
\n );\n }\n }\n\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-popover-form.js","mappings":"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","names":["SearchcraftPopoverForm","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-popover-form/searchcraft-popover-form.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Element, Prop, State, h } from '@stencil/core';\nimport type {\n AdClientResponseItem,\n PopoverResultMappings,\n SearchClientResponseItem,\n} from '@types';\nimport classNames from 'classnames';\n\n/**\n * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftPopoverForm } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftPopoverForm } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * \n * ```\n *\n * ```js\n * // index.js\n * const popoverForm = document.querySelector('searchcraft-popover-form');\n *\n * popoverForm.popoverResultMappings = {};\n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n *\n */\n@Component({\n tag: 'searchcraft-popover-form',\n shadow: false,\n})\nexport class SearchcraftPopoverForm {\n /**\n * The type of popover form to render.\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n @Prop() type?: 'inline' | 'fullscreen' | 'modal' = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n @Prop() popoverResultMappings?: PopoverResultMappings;\n /**\n * The hotkey that activates the popover.\n */\n @Prop() hotkey?: string = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n @Prop() hotkeyModifier?: 'ctrl' | 'meta' | 'alt' | 'option' = 'meta';\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The input element's placeholder value.\n */\n @Prop() placeholderValue?: string = 'Enter Search';\n /**\n * The placeholder's render behavior.\n * 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.\n * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.\n */\n @Prop() placeholderBehavior?: 'hide-on-focus' | 'hide-on-text-entered';\n /**\n * Base URL for the \"View all\" footer link. The current search term will be appended (URL encoded).\n *\n * For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`.\n */\n @Prop() viewAllResultsBaseUrl?: string;\n /**\n * Optional label for the \"View All\" footer button. Defaults to \"View All\".\n */\n @Prop() viewAllResultsLabel?: string;\n /**\n * Whether to display the AI generative summary box before the search results.\n * NOTE: This requires the usage of a read key that has \"SUMMARY\" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected.\n */\n @Prop() showSummaryBox?: boolean = false;\n /**\n * The SDK variant used to render this component. Used for UTM attribution on the footer link.\n *\n * @internal\n */\n @Prop() sdkVariant?: 'js' | 'react' | 'vue' = 'js';\n\n @State() isPopoverVisibleInState = false;\n @State() searchClientResponseItems: SearchClientResponseItem[] = [];\n @State() adClientResponseItems: AdClientResponseItem[] = [];\n @State() searchTerm: string | undefined;\n @State() isFocused = false;\n @State() breakpointSm = 576;\n @State() breakpointMd = 768;\n @State() breakpointLg = 992;\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n\n @State() modalElement;\n\n @Element() hostElement!: HTMLElement;\n\n private unsubscribe: (() => void) | undefined;\n private cleanupCore?: () => void;\n core?: SearchcraftCore;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-sm').trim(),\n );\n this.breakpointMd = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-md').trim(),\n );\n this.breakpointLg = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-lg').trim(),\n );\n // Set popover visiblity in state\n this.isPopoverVisibleInState = core.store.getState().isPopoverVisible;\n\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n\n // Subscribe to state events\n this.unsubscribe = core.store.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n });\n\n // Set hotkey and hotkeyModifier in state.\n core.store\n .getState()\n .setHotKeyAndHotKeyModifier(this.hotkey, this.hotkeyModifier);\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleDocumentClick = (event: MouseEvent) => {\n if (!this.hostElement.contains(event.target as Node)) {\n this.isFocused = false;\n }\n };\n\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible: boolean) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event: KeyboardEvent) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n this.core?.store.getState().setPopoverVisibility(false);\n break;\n case 'Enter':\n if (\n (event.metaKey || event.ctrlKey) &&\n this.viewAllResultsHref &&\n this.hasResultsToShow\n ) {\n event.preventDefault();\n this.navigateToViewAllResults();\n }\n break;\n default:\n return;\n }\n };\n\n handleInputInit = () => {\n const input = this.hostElement.querySelector(\n '.searchcraft-input-form-input',\n ) as HTMLInputElement | undefined;\n input?.focus();\n };\n\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n\n if (\n this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm\n ) {\n this.core?.store.getState().setPopoverVisibility(true);\n\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n this.modalElement.setAttribute('searchcraft-id', this.searchcraftId);\n if (this.placeholderValue) {\n this.modalElement.setAttribute(\n 'placeholder-value',\n this.placeholderValue,\n );\n }\n if (this.placeholderBehavior) {\n this.modalElement.setAttribute(\n 'placeholder-behavior',\n this.placeholderBehavior,\n );\n }\n if (this.viewAllResultsBaseUrl) {\n this.modalElement.setAttribute(\n 'view-all-results-base-url',\n this.viewAllResultsBaseUrl,\n );\n }\n if (this.viewAllResultsLabel) {\n this.modalElement.setAttribute(\n 'view-all-results-label',\n this.viewAllResultsLabel,\n );\n }\n document.body.appendChild(this.modalElement);\n }\n }\n }\n\n handleModalBackdropClick(_event: MouseEvent) {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event: KeyboardEvent) {\n if (\n (event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')\n ) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector(\n '.searchcraft-input-form-input',\n ) as HTMLInputElement | undefined;\n hostElementInput?.focus();\n } else {\n this.core?.store\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n\n handleCancelButtonClick() {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction: 'ArrowDown' | 'ArrowUp') {\n const listItems = Array.from(\n document.querySelectorAll(\n '.searchcraft-popover-list-item-link',\n ),\n ).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n\n const currentIndex = listItems.indexOf(\n document.activeElement as HTMLAnchorElement,\n );\n\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n } else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n } else {\n const input = document.querySelector('.searchcraft-input-form-input') as\n | HTMLInputElement\n | undefined;\n\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n\n get hasResultsToShow() {\n return (\n this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n this.searchClientResponseItems.length > 0\n );\n }\n\n get viewAllResultsHref() {\n const baseUrl = this.viewAllResultsBaseUrl;\n if (!baseUrl) {\n return undefined;\n }\n\n const term = this.searchTerm?.trim();\n if (!term) {\n return baseUrl;\n }\n\n return `${baseUrl}${encodeURIComponent(term).replace(/%20/g, '+')}`;\n }\n\n get resolvedViewAllResultsLabel() {\n return this.viewAllResultsLabel ?? 'View All';\n }\n\n navigateToViewAllResults() {\n const href = this.viewAllResultsHref;\n\n if (!href || !this.hasResultsToShow) {\n return;\n }\n\n if (typeof window !== 'undefined') {\n window.location.href = href;\n }\n }\n\n renderInlinePopover() {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n\n return (\n \n
\n \n
\n {isListViewVisible && (\n
\n {this.showSummaryBox && (\n \n )}\n \n \n
\n )}\n
\n );\n }\n\n renderModalPopover() {\n if (this.isPopoverVisibleInState) {\n return (\n \n {/* biome-ignore lint/a11y/useKeyWithClickEvents: */}\n \n
\n
\n \n \n Cancel\n \n
\n
\n {this.showSummaryBox && this.hasResultsToShow && (\n \n )}\n {this.hasResultsToShow && (\n \n )}\n
\n \n
\n
\n );\n }\n }\n\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (\n \n
\n \n \n Cancel\n \n
\n
\n {this.showSummaryBox && this.hasResultsToShow && (\n \n )}\n {this.hasResultsToShow && (\n \n )}\n
\n \n
\n );\n }\n }\n\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-popover-list-item.js b/public/sdk/components/searchcraft-popover-list-item.js index db077f1..4be18c2 100644 --- a/public/sdk/components/searchcraft-popover-list-item.js +++ b/public/sdk/components/searchcraft-popover-list-item.js @@ -1,4 +1,4 @@ -import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.3'; +import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?scv=0.14.0'; const SearchcraftPopoverListItem = SearchcraftPopoverListItem$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-popover-list-item2.js b/public/sdk/components/searchcraft-popover-list-item2.js index 3543e6f..078fc68 100644 --- a/public/sdk/components/searchcraft-popover-list-item2.js +++ b/public/sdk/components/searchcraft-popover-list-item2.js @@ -1,6 +1,6 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { g as getDocumentValueFromSearchResultMapping } from './units.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { g as getDocumentValueFromSearchResultMapping } from './units.js?scv=0.14.0'; import './purify.es.js'; const SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItem extends H { @@ -57,7 +57,7 @@ const SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class Search } }; render() { - return (h("div", { key: 'd1c9c310b8abc9d2370efb802eac1edf4189519d', class: 'searchcraft-popover-list-item' }, h("a", { key: '30eb1a5076c5b4b95ae43147eaee0bb72ce46179', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (h("div", { key: 'd18ff55823dc2c61f3786f423936af8b009aeeda', class: 'searchcraft-popover-list-item-image-wrapper' }, h("img", { key: '56f4cc1d472f7da05e64fcf52c560a7ad0cdf7a6', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), h("div", { key: '78a0f0235d5e71d10076b70ccbaf4b58e0d6fea0', class: 'searchcraft-popover-list-item-content' }, this.title && (h("p", { key: '4489047af56e5aa295cb5f036e970dcad053d3b7', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (h("p", { key: '4d177c227a1dbf1233022d738403c8eb93ba328d', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); + return (h("div", { key: '119fc0a527160924a22d185ce764202b1d342e9b', class: 'searchcraft-popover-list-item' }, h("a", { key: '95a5db24035c3be7decb2f062710214fa5726f27', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (h("div", { key: '6a5ddee0b5f03bc7cf5c5dacc5b4a5ee2fcbe511', class: 'searchcraft-popover-list-item-image-wrapper' }, h("img", { key: '3cdae906aee5b6ef7d1f618419476e75af4c4ebe', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), h("div", { key: 'd0b55113188fb8fafff8ee15d3dc919617852b62', class: 'searchcraft-popover-list-item-content' }, this.title && (h("p", { key: '1482260827b057f03db9eb6e8d7df7f5977fe3dc', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (h("p", { key: 'c4210cef3c4372ee4f9ce4a41dbea10d0e915175', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); } }, [768, "searchcraft-popover-list-item", { "item": [16], diff --git a/public/sdk/components/searchcraft-popover-list-view.js b/public/sdk/components/searchcraft-popover-list-view.js index 1e99abd..ba6ae32 100644 --- a/public/sdk/components/searchcraft-popover-list-view.js +++ b/public/sdk/components/searchcraft-popover-list-view.js @@ -1,4 +1,4 @@ -import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './searchcraft-popover-list-view2.js?v=0.13.3'; +import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './searchcraft-popover-list-view2.js?scv=0.14.0'; const SearchcraftPopoverListView = SearchcraftPopoverListView$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-popover-list-view2.js b/public/sdk/components/searchcraft-popover-list-view2.js index 1978f6c..bab2770 100644 --- a/public/sdk/components/searchcraft-popover-list-view2.js +++ b/public/sdk/components/searchcraft-popover-list-view2.js @@ -1,7 +1,7 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-ad2.js?v=0.13.3'; -import { d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { d as defineCustomElement$2 } from './searchcraft-ad2.js?scv=0.14.0'; +import { d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?scv=0.14.0'; const SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-results-info.js b/public/sdk/components/searchcraft-results-info.js index 9bd0958..858751e 100644 --- a/public/sdk/components/searchcraft-results-info.js +++ b/public/sdk/components/searchcraft-results-info.js @@ -1,7 +1,7 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { f as formatNumberWithCommas } from './units.js?v=0.13.3'; -import { h as html } from './html.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { f as formatNumberWithCommas } from './units.js?scv=0.14.0'; +import { h as html } from './html.js?scv=0.14.0'; const SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-search-result.js b/public/sdk/components/searchcraft-search-result.js index bcf0ab4..cbacea6 100644 --- a/public/sdk/components/searchcraft-search-result.js +++ b/public/sdk/components/searchcraft-search-result.js @@ -1,4 +1,4 @@ -import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './searchcraft-search-result2.js?v=0.13.3'; +import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './searchcraft-search-result2.js?scv=0.14.0'; const SearchcraftSearchResult = SearchcraftSearchResult$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-search-result2.js b/public/sdk/components/searchcraft-search-result2.js index cfb8376..f7e4d71 100644 --- a/public/sdk/components/searchcraft-search-result2.js +++ b/public/sdk/components/searchcraft-search-result2.js @@ -1,6 +1,6 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { h as html } from './html.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { h as html } from './html.js?scv=0.14.0'; const SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResult extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-search-results-per-page.js b/public/sdk/components/searchcraft-search-results-per-page.js index 34c9019..1af83c0 100644 --- a/public/sdk/components/searchcraft-search-results-per-page.js +++ b/public/sdk/components/searchcraft-search-results-per-page.js @@ -1,6 +1,6 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-select2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { d as defineCustomElement$2 } from './searchcraft-select2.js?scv=0.14.0'; const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-search-results.js b/public/sdk/components/searchcraft-search-results.js index 601168e..74d1510 100644 --- a/public/sdk/components/searchcraft-search-results.js +++ b/public/sdk/components/searchcraft-search-results.js @@ -1,8 +1,8 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { d as defineCustomElement$4 } from './searchcraft-ad2.js?v=0.13.3'; -import { d as defineCustomElement$3 } from './searchcraft-error-message2.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-search-result2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { d as defineCustomElement$4 } from './searchcraft-ad2.js?scv=0.14.0'; +import { d as defineCustomElement$3 } from './searchcraft-error-message2.js?scv=0.14.0'; +import { d as defineCustomElement$2 } from './searchcraft-search-result2.js?scv=0.14.0'; const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-select.js b/public/sdk/components/searchcraft-select.js index 7cdfcfe..480bafd 100644 --- a/public/sdk/components/searchcraft-select.js +++ b/public/sdk/components/searchcraft-select.js @@ -1,4 +1,4 @@ -import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './searchcraft-select2.js?v=0.13.3'; +import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './searchcraft-select2.js?scv=0.14.0'; const SearchcraftSelect = SearchcraftSelect$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-select2.js b/public/sdk/components/searchcraft-select2.js index b2f29ce..5fb24b4 100644 --- a/public/sdk/components/searchcraft-select2.js +++ b/public/sdk/components/searchcraft-select2.js @@ -1,4 +1,4 @@ -import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?scv=0.14.0'; const SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H { constructor(registerHost) { diff --git a/public/sdk/components/searchcraft-slider.js b/public/sdk/components/searchcraft-slider.js index 337e193..e4a906f 100644 --- a/public/sdk/components/searchcraft-slider.js +++ b/public/sdk/components/searchcraft-slider.js @@ -1,4 +1,4 @@ -import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './searchcraft-slider2.js?v=0.13.3'; +import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './searchcraft-slider2.js?scv=0.14.0'; const SearchcraftSlider = SearchcraftSlider$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-slider2.js b/public/sdk/components/searchcraft-slider2.js index 8cf978d..35b0d33 100644 --- a/public/sdk/components/searchcraft-slider2.js +++ b/public/sdk/components/searchcraft-slider2.js @@ -1,7 +1,7 @@ -import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.3'; -import { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './units.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './units.js?scv=0.14.0'; import './purify.es.js'; -import { c as classNames } from './index3.js?v=0.13.3'; +import { c as classNames } from './index3.js?scv=0.14.0'; /** * Creates a throttled version of the given function that only invokes @@ -159,10 +159,10 @@ const SearchcraftSlider = /*@__PURE__*/ proxyCustomElement(class SearchcraftSlid 100; const startLabel = this.getLabel(this.startValue); const endLabel = this.getLabel(this.endValue); - return (h("div", { key: 'd5035ed8bcbf95c0ef5b2a7a9ef471e318a9dc30', class: 'searchcraft-slider' }, h("div", { key: 'f5f7bc48703250b4f6c75a1f07c921233bd957d5', class: 'searchcraft-slider-range' }, h("div", { key: 'fc2ec9f9786986a7306ffe43b54c47c35a1f086a', class: 'searchcraft-slider-active-range', style: { + return (h("div", { key: '59b07f5c8a14f6cbad8bae6faebf12e9a511bcbb', class: 'searchcraft-slider' }, h("div", { key: '603c0bc39c6fe018016caf17b3b73f5b3c410fba', class: 'searchcraft-slider-range' }, h("div", { key: '31d4097f29aa13d0ab14ec861ecea803e8190ed0', class: 'searchcraft-slider-active-range', style: { left: `${startPercent}%`, width: `${endPercent - startPercent}%`, - } }), h("input", { key: '716316b5ce507c40db5b7bd408f47b3bece88494', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h("input", { key: 'e2ad0d586136185faccb50d6d7fb113a64ddac42', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h("div", { key: '7e9ab9fa9563cac6a1dfdd11910e04084ae5348d', class: 'searchcraft-slider-label' }, h("span", { key: '0909279f460c4be84c1088c5981a5f5299e8e2a0', class: 'searchcraft-slider-start-label' }, startLabel), h("span", { key: '4b610a68f97fcbc0aa1eda428dfa1e53b00efe43', class: 'searchcraft-slider-end-label' }, endLabel)))); + } }), h("input", { key: '40299fe0d7b973b448151a045b7a7f6c3b8846fd', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h("input", { key: 'd46ad0cee946b168cd6004f8a2f819f6e46c50e4', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h("div", { key: 'e65452bc456b0fa69d0dc0dd1276e19b9cf521e6', class: 'searchcraft-slider-label' }, h("span", { key: '2b5aec3e96d9bc9420b047a1d00cce40f361c729', class: 'searchcraft-slider-start-label' }, startLabel), h("span", { key: 'fce2109bd481b3df9ac4beee3731a24c012e4512', class: 'searchcraft-slider-end-label' }, endLabel)))); } }, [768, "searchcraft-slider", { "max": [2], diff --git a/public/sdk/components/searchcraft-summary-box.js b/public/sdk/components/searchcraft-summary-box.js index 0c456d4..e625c76 100644 --- a/public/sdk/components/searchcraft-summary-box.js +++ b/public/sdk/components/searchcraft-summary-box.js @@ -1,2259 +1,4 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { p as purify } from './purify.es.js?v=0.13.3'; -import { d as defineCustomElement$2 } from './searchcraft-loading2.js?v=0.13.3'; - -/** - * marked v15.0.12 - a markdown parser - * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed) - * https://github.com/markedjs/marked - */ - -/** - * DO NOT EDIT THIS FILE - * The code in this file is generated from files in ./src/ - */ - - -// src/defaults.ts -function _getDefaults() { - return { - async: false, - breaks: false, - extensions: null, - gfm: true, - hooks: null, - pedantic: false, - renderer: null, - silent: false, - tokenizer: null, - walkTokens: null - }; -} -var _defaults = _getDefaults(); -function changeDefaults(newDefaults) { - _defaults = newDefaults; -} - -// src/rules.ts -var noopTest = { exec: () => null }; -function edit(regex, opt = "") { - let source = typeof regex === "string" ? regex : regex.source; - const obj = { - replace: (name, val) => { - let valSource = typeof val === "string" ? val : val.source; - valSource = valSource.replace(other.caret, "$1"); - source = source.replace(name, valSource); - return obj; - }, - getRegex: () => { - return new RegExp(source, opt); - } - }; - return obj; -} -var other = { - codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, - outputLinkReplace: /\\([\[\]])/g, - indentCodeCompensation: /^(\s+)(?:```)/, - beginningSpace: /^\s+/, - endingHash: /#$/, - startingSpaceChar: /^ /, - endingSpaceChar: / $/, - nonSpaceChar: /[^ ]/, - newLineCharGlobal: /\n/g, - tabCharGlobal: /\t/g, - multipleSpaceGlobal: /\s+/g, - blankLine: /^[ \t]*$/, - doubleBlankLine: /\n[ \t]*\n[ \t]*$/, - blockquoteStart: /^ {0,3}>/, - blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, - blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, - listReplaceTabs: /^\t+/, - listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, - listIsTask: /^\[[ xX]\] /, - listReplaceTask: /^\[[ xX]\] +/, - anyLine: /\n.*\n/, - hrefBrackets: /^<(.*)>$/, - tableDelimiter: /[:|]/, - tableAlignChars: /^\||\| *$/g, - tableRowBlankLine: /\n[ \t]*$/, - tableAlignRight: /^ *-+: *$/, - tableAlignCenter: /^ *:-+: *$/, - tableAlignLeft: /^ *:-+ *$/, - startATag: /^/i, - startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, - endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, - startAngleBracket: /^$/, - pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, - unicodeAlphaNumeric: /[\p{L}\p{N}]/u, - escapeTest: /[&<>"']/, - escapeReplace: /[&<>"']/g, - escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, - escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, - unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, - caret: /(^|[^\[])\^/g, - percentDecode: /%25/g, - findPipe: /\|/g, - splitPipe: / \|/, - slashPipe: /\\\|/g, - carriageReturn: /\r\n|\r/g, - spaceLine: /^ +$/gm, - notSpaceStart: /^\S*/, - endingNewline: /\n$/, - listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[ ][^\\n]*)?(?:\\n|$))`), - nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), - hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), - fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`), - headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`), - htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, "i") -}; -var newline = /^(?:[ \t]*(?:\n|$))+/; -var blockCode = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/; -var fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/; -var hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/; -var heading = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/; -var bullet = /(?:[*+-]|\d{1,9}[.)])/; -var lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/; -var lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(); -var lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(); -var _paragraph = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/; -var blockText = /^[^\n]+/; -var _blockLabel = /(?!\s*\])(?:\\.|[^\[\]\\])+/; -var def = edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", _blockLabel).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(); -var list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, bullet).getRegex(); -var _tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul"; -var _comment = /|$))/; -var html = edit( - "^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", - "i" -).replace("comment", _comment).replace("tag", _tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(); -var paragraph = edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); -var blockquote = edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", paragraph).getRegex(); -var blockNormal = { - blockquote, - code: blockCode, - def, - fences, - heading, - hr, - html, - lheading, - list, - newline, - paragraph, - table: noopTest, - text: blockText -}; -var gfmTable = edit( - "^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)" -).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); -var blockGfm = { - ...blockNormal, - lheading: lheadingGfm, - table: gfmTable, - paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", gfmTable).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex() -}; -var blockPedantic = { - ...blockNormal, - html: edit( - `^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))` - ).replace("comment", _comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), - def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, - heading: /^(#{1,6})(.*)(?:\n+|$)/, - fences: noopTest, - // fences not supported - lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, - paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " *#{1,6} *[^\n]").replace("lheading", lheading).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() -}; -var escape = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/; -var inlineCode = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/; -var br = /^( {2,}|\\)\n(?!\s*$)/; -var inlineText = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g; -var emStrongLDelimCore = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/; -var emStrongLDelim = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuation).getRegex(); -var emStrongLDelimGfm = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuationGfmStrongEm).getRegex(); -var emStrongRDelimAstCore = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)"; -var emStrongRDelimAst = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); -var emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex(); -var emStrongRDelimUnd = edit( - "^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", - "gu" -).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); -var anyPunctuation = edit(/\\(punct)/, "gu").replace(/punct/g, _punctuation).getRegex(); -var autolink = edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(); -var _inlineComment = edit(_comment).replace("(?:-->|$)", "-->").getRegex(); -var tag = edit( - "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^" -).replace("comment", _inlineComment).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(); -var _inlineLabel = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/; -var link = edit(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", _inlineLabel).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(); -var reflink = edit(/^!?\[(label)\]\[(ref)\]/).replace("label", _inlineLabel).replace("ref", _blockLabel).getRegex(); -var nolink = edit(/^!?\[(ref)\](?:\[\])?/).replace("ref", _blockLabel).getRegex(); -var reflinkSearch = edit("reflink|nolink(?!\\()", "g").replace("reflink", reflink).replace("nolink", nolink).getRegex(); -var inlineNormal = { - _backpedal: noopTest, - // only used for GFM url - anyPunctuation, - autolink, - blockSkip, - br, - code: inlineCode, - del: noopTest, - emStrongLDelim, - emStrongRDelimAst, - emStrongRDelimUnd, - escape, - link, - nolink, - punctuation, - reflink, - reflinkSearch, - tag, - text: inlineText, - url: noopTest -}; -var inlinePedantic = { - ...inlineNormal, - link: edit(/^!?\[(label)\]\((.*?)\)/).replace("label", _inlineLabel).getRegex(), - reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", _inlineLabel).getRegex() -}; -var inlineGfm = { - ...inlineNormal, - emStrongRDelimAst: emStrongRDelimAstGfm, - emStrongLDelim: emStrongLDelimGfm, - url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), - _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, - del: /^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/, - text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\": ">", - '"': """, - "'": "'" -}; -var getEscapeReplacement = (ch) => escapeReplacements[ch]; -function escape2(html2, encode) { - if (encode) { - if (other.escapeTest.test(html2)) { - return html2.replace(other.escapeReplace, getEscapeReplacement); - } - } else { - if (other.escapeTestNoEncode.test(html2)) { - return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement); - } - } - return html2; -} -function cleanUrl(href) { - try { - href = encodeURI(href).replace(other.percentDecode, "%"); - } catch { - return null; - } - return href; -} -function splitCells(tableRow, count) { - const row = tableRow.replace(other.findPipe, (match, offset, str) => { - let escaped = false; - let curr = offset; - while (--curr >= 0 && str[curr] === "\\") escaped = !escaped; - if (escaped) { - return "|"; - } else { - return " |"; - } - }), cells = row.split(other.splitPipe); - let i = 0; - if (!cells[0].trim()) { - cells.shift(); - } - if (cells.length > 0 && !cells.at(-1)?.trim()) { - cells.pop(); - } - if (count) { - if (cells.length > count) { - cells.splice(count); - } else { - while (cells.length < count) cells.push(""); - } - } - for (; i < cells.length; i++) { - cells[i] = cells[i].trim().replace(other.slashPipe, "|"); - } - return cells; -} -function rtrim(str, c, invert) { - const l = str.length; - if (l === 0) { - return ""; - } - let suffLen = 0; - while (suffLen < l) { - const currChar = str.charAt(l - suffLen - 1); - if (currChar === c && true) { - suffLen++; - } else { - break; - } - } - return str.slice(0, l - suffLen); -} -function findClosingBracket(str, b) { - if (str.indexOf(b[1]) === -1) { - return -1; - } - let level = 0; - for (let i = 0; i < str.length; i++) { - if (str[i] === "\\") { - i++; - } else if (str[i] === b[0]) { - level++; - } else if (str[i] === b[1]) { - level--; - if (level < 0) { - return i; - } - } - } - if (level > 0) { - return -2; - } - return -1; -} - -// src/Tokenizer.ts -function outputLink(cap, link2, raw, lexer2, rules) { - const href = link2.href; - const title = link2.title || null; - const text = cap[1].replace(rules.other.outputLinkReplace, "$1"); - lexer2.state.inLink = true; - const token = { - type: cap[0].charAt(0) === "!" ? "image" : "link", - raw, - href, - title, - text, - tokens: lexer2.inlineTokens(text) - }; - lexer2.state.inLink = false; - return token; -} -function indentCodeCompensation(raw, text, rules) { - const matchIndentToCode = raw.match(rules.other.indentCodeCompensation); - if (matchIndentToCode === null) { - return text; - } - const indentToCode = matchIndentToCode[1]; - return text.split("\n").map((node) => { - const matchIndentInNode = node.match(rules.other.beginningSpace); - if (matchIndentInNode === null) { - return node; - } - const [indentInNode] = matchIndentInNode; - if (indentInNode.length >= indentToCode.length) { - return node.slice(indentToCode.length); - } - return node; - }).join("\n"); -} -var _Tokenizer = class { - options; - rules; - // set by the lexer - lexer; - // set by the lexer - constructor(options2) { - this.options = options2 || _defaults; - } - space(src) { - const cap = this.rules.block.newline.exec(src); - if (cap && cap[0].length > 0) { - return { - type: "space", - raw: cap[0] - }; - } - } - code(src) { - const cap = this.rules.block.code.exec(src); - if (cap) { - const text = cap[0].replace(this.rules.other.codeRemoveIndent, ""); - return { - type: "code", - raw: cap[0], - codeBlockStyle: "indented", - text: !this.options.pedantic ? rtrim(text, "\n") : text - }; - } - } - fences(src) { - const cap = this.rules.block.fences.exec(src); - if (cap) { - const raw = cap[0]; - const text = indentCodeCompensation(raw, cap[3] || "", this.rules); - return { - type: "code", - raw, - lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : cap[2], - text - }; - } - } - heading(src) { - const cap = this.rules.block.heading.exec(src); - if (cap) { - let text = cap[2].trim(); - if (this.rules.other.endingHash.test(text)) { - const trimmed = rtrim(text, "#"); - if (this.options.pedantic) { - text = trimmed.trim(); - } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) { - text = trimmed.trim(); - } - } - return { - type: "heading", - raw: cap[0], - depth: cap[1].length, - text, - tokens: this.lexer.inline(text) - }; - } - } - hr(src) { - const cap = this.rules.block.hr.exec(src); - if (cap) { - return { - type: "hr", - raw: rtrim(cap[0], "\n") - }; - } - } - blockquote(src) { - const cap = this.rules.block.blockquote.exec(src); - if (cap) { - let lines = rtrim(cap[0], "\n").split("\n"); - let raw = ""; - let text = ""; - const tokens = []; - while (lines.length > 0) { - let inBlockquote = false; - const currentLines = []; - let i; - for (i = 0; i < lines.length; i++) { - if (this.rules.other.blockquoteStart.test(lines[i])) { - currentLines.push(lines[i]); - inBlockquote = true; - } else if (!inBlockquote) { - currentLines.push(lines[i]); - } else { - break; - } - } - lines = lines.slice(i); - const currentRaw = currentLines.join("\n"); - const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, "\n $1").replace(this.rules.other.blockquoteSetextReplace2, ""); - raw = raw ? `${raw} -${currentRaw}` : currentRaw; - text = text ? `${text} -${currentText}` : currentText; - const top = this.lexer.state.top; - this.lexer.state.top = true; - this.lexer.blockTokens(currentText, tokens, true); - this.lexer.state.top = top; - if (lines.length === 0) { - break; - } - const lastToken = tokens.at(-1); - if (lastToken?.type === "code") { - break; - } else if (lastToken?.type === "blockquote") { - const oldToken = lastToken; - const newText = oldToken.raw + "\n" + lines.join("\n"); - const newToken = this.blockquote(newText); - tokens[tokens.length - 1] = newToken; - raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw; - text = text.substring(0, text.length - oldToken.text.length) + newToken.text; - break; - } else if (lastToken?.type === "list") { - const oldToken = lastToken; - const newText = oldToken.raw + "\n" + lines.join("\n"); - const newToken = this.list(newText); - tokens[tokens.length - 1] = newToken; - raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw; - text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw; - lines = newText.substring(tokens.at(-1).raw.length).split("\n"); - continue; - } - } - return { - type: "blockquote", - raw, - tokens, - text - }; - } - } - list(src) { - let cap = this.rules.block.list.exec(src); - if (cap) { - let bull = cap[1].trim(); - const isordered = bull.length > 1; - const list2 = { - type: "list", - raw: "", - ordered: isordered, - start: isordered ? +bull.slice(0, -1) : "", - loose: false, - items: [] - }; - bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`; - if (this.options.pedantic) { - bull = isordered ? bull : "[*+-]"; - } - const itemRegex = this.rules.other.listItemRegex(bull); - let endsWithBlankLine = false; - while (src) { - let endEarly = false; - let raw = ""; - let itemContents = ""; - if (!(cap = itemRegex.exec(src))) { - break; - } - if (this.rules.block.hr.test(src)) { - break; - } - raw = cap[0]; - src = src.substring(raw.length); - let line = cap[2].split("\n", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => " ".repeat(3 * t.length)); - let nextLine = src.split("\n", 1)[0]; - let blankLine = !line.trim(); - let indent = 0; - if (this.options.pedantic) { - indent = 2; - itemContents = line.trimStart(); - } else if (blankLine) { - indent = cap[1].length + 1; - } else { - indent = cap[2].search(this.rules.other.nonSpaceChar); - indent = indent > 4 ? 1 : indent; - itemContents = line.slice(indent); - indent += cap[1].length; - } - if (blankLine && this.rules.other.blankLine.test(nextLine)) { - raw += nextLine + "\n"; - src = src.substring(nextLine.length + 1); - endEarly = true; - } - if (!endEarly) { - const nextBulletRegex = this.rules.other.nextBulletRegex(indent); - const hrRegex = this.rules.other.hrRegex(indent); - const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent); - const headingBeginRegex = this.rules.other.headingBeginRegex(indent); - const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent); - while (src) { - const rawLine = src.split("\n", 1)[0]; - let nextLineWithoutTabs; - nextLine = rawLine; - if (this.options.pedantic) { - nextLine = nextLine.replace(this.rules.other.listReplaceNesting, " "); - nextLineWithoutTabs = nextLine; - } else { - nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, " "); - } - if (fencesBeginRegex.test(nextLine)) { - break; - } - if (headingBeginRegex.test(nextLine)) { - break; - } - if (htmlBeginRegex.test(nextLine)) { - break; - } - if (nextBulletRegex.test(nextLine)) { - break; - } - if (hrRegex.test(nextLine)) { - break; - } - if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { - itemContents += "\n" + nextLineWithoutTabs.slice(indent); - } else { - if (blankLine) { - break; - } - if (line.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4) { - break; - } - if (fencesBeginRegex.test(line)) { - break; - } - if (headingBeginRegex.test(line)) { - break; - } - if (hrRegex.test(line)) { - break; - } - itemContents += "\n" + nextLine; - } - if (!blankLine && !nextLine.trim()) { - blankLine = true; - } - raw += rawLine + "\n"; - src = src.substring(rawLine.length + 1); - line = nextLineWithoutTabs.slice(indent); - } - } - if (!list2.loose) { - if (endsWithBlankLine) { - list2.loose = true; - } else if (this.rules.other.doubleBlankLine.test(raw)) { - endsWithBlankLine = true; - } - } - let istask = null; - let ischecked; - if (this.options.gfm) { - istask = this.rules.other.listIsTask.exec(itemContents); - if (istask) { - ischecked = istask[0] !== "[ ] "; - itemContents = itemContents.replace(this.rules.other.listReplaceTask, ""); - } - } - list2.items.push({ - type: "list_item", - raw, - task: !!istask, - checked: ischecked, - loose: false, - text: itemContents, - tokens: [] - }); - list2.raw += raw; - } - const lastItem = list2.items.at(-1); - if (lastItem) { - lastItem.raw = lastItem.raw.trimEnd(); - lastItem.text = lastItem.text.trimEnd(); - } else { - return; - } - list2.raw = list2.raw.trimEnd(); - for (let i = 0; i < list2.items.length; i++) { - this.lexer.state.top = false; - list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []); - if (!list2.loose) { - const spacers = list2.items[i].tokens.filter((t) => t.type === "space"); - const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw)); - list2.loose = hasMultipleLineBreaks; - } - } - if (list2.loose) { - for (let i = 0; i < list2.items.length; i++) { - list2.items[i].loose = true; - } - } - return list2; - } - } - html(src) { - const cap = this.rules.block.html.exec(src); - if (cap) { - const token = { - type: "html", - block: true, - raw: cap[0], - pre: cap[1] === "pre" || cap[1] === "script" || cap[1] === "style", - text: cap[0] - }; - return token; - } - } - def(src) { - const cap = this.rules.block.def.exec(src); - if (cap) { - const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "); - const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : ""; - const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : cap[3]; - return { - type: "def", - tag: tag2, - raw: cap[0], - href, - title - }; - } - } - table(src) { - const cap = this.rules.block.table.exec(src); - if (!cap) { - return; - } - if (!this.rules.other.tableDelimiter.test(cap[2])) { - return; - } - const headers = splitCells(cap[1]); - const aligns = cap[2].replace(this.rules.other.tableAlignChars, "").split("|"); - const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : []; - const item = { - type: "table", - raw: cap[0], - header: [], - align: [], - rows: [] - }; - if (headers.length !== aligns.length) { - return; - } - for (const align of aligns) { - if (this.rules.other.tableAlignRight.test(align)) { - item.align.push("right"); - } else if (this.rules.other.tableAlignCenter.test(align)) { - item.align.push("center"); - } else if (this.rules.other.tableAlignLeft.test(align)) { - item.align.push("left"); - } else { - item.align.push(null); - } - } - for (let i = 0; i < headers.length; i++) { - item.header.push({ - text: headers[i], - tokens: this.lexer.inline(headers[i]), - header: true, - align: item.align[i] - }); - } - for (const row of rows) { - item.rows.push(splitCells(row, item.header.length).map((cell, i) => { - return { - text: cell, - tokens: this.lexer.inline(cell), - header: false, - align: item.align[i] - }; - })); - } - return item; - } - lheading(src) { - const cap = this.rules.block.lheading.exec(src); - if (cap) { - return { - type: "heading", - raw: cap[0], - depth: cap[2].charAt(0) === "=" ? 1 : 2, - text: cap[1], - tokens: this.lexer.inline(cap[1]) - }; - } - } - paragraph(src) { - const cap = this.rules.block.paragraph.exec(src); - if (cap) { - const text = cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1]; - return { - type: "paragraph", - raw: cap[0], - text, - tokens: this.lexer.inline(text) - }; - } - } - text(src) { - const cap = this.rules.block.text.exec(src); - if (cap) { - return { - type: "text", - raw: cap[0], - text: cap[0], - tokens: this.lexer.inline(cap[0]) - }; - } - } - escape(src) { - const cap = this.rules.inline.escape.exec(src); - if (cap) { - return { - type: "escape", - raw: cap[0], - text: cap[1] - }; - } - } - tag(src) { - const cap = this.rules.inline.tag.exec(src); - if (cap) { - if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) { - this.lexer.state.inLink = true; - } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) { - this.lexer.state.inLink = false; - } - if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) { - this.lexer.state.inRawBlock = true; - } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) { - this.lexer.state.inRawBlock = false; - } - return { - type: "html", - raw: cap[0], - inLink: this.lexer.state.inLink, - inRawBlock: this.lexer.state.inRawBlock, - block: false, - text: cap[0] - }; - } - } - link(src) { - const cap = this.rules.inline.link.exec(src); - if (cap) { - const trimmedUrl = cap[2].trim(); - if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) { - if (!this.rules.other.endAngleBracket.test(trimmedUrl)) { - return; - } - const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), "\\"); - if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) { - return; - } - } else { - const lastParenIndex = findClosingBracket(cap[2], "()"); - if (lastParenIndex === -2) { - return; - } - if (lastParenIndex > -1) { - const start = cap[0].indexOf("!") === 0 ? 5 : 4; - const linkLen = start + cap[1].length + lastParenIndex; - cap[2] = cap[2].substring(0, lastParenIndex); - cap[0] = cap[0].substring(0, linkLen).trim(); - cap[3] = ""; - } - } - let href = cap[2]; - let title = ""; - if (this.options.pedantic) { - const link2 = this.rules.other.pedanticHrefTitle.exec(href); - if (link2) { - href = link2[1]; - title = link2[3]; - } - } else { - title = cap[3] ? cap[3].slice(1, -1) : ""; - } - href = href.trim(); - if (this.rules.other.startAngleBracket.test(href)) { - if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) { - href = href.slice(1); - } else { - href = href.slice(1, -1); - } - } - return outputLink(cap, { - href: href ? href.replace(this.rules.inline.anyPunctuation, "$1") : href, - title: title ? title.replace(this.rules.inline.anyPunctuation, "$1") : title - }, cap[0], this.lexer, this.rules); - } - } - reflink(src, links) { - let cap; - if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) { - const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, " "); - const link2 = links[linkString.toLowerCase()]; - if (!link2) { - const text = cap[0].charAt(0); - return { - type: "text", - raw: text, - text - }; - } - return outputLink(cap, link2, cap[0], this.lexer, this.rules); - } - } - emStrong(src, maskedSrc, prevChar = "") { - let match = this.rules.inline.emStrongLDelim.exec(src); - if (!match) return; - if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return; - const nextChar = match[1] || match[2] || ""; - if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) { - const lLength = [...match[0]].length - 1; - let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0; - const endReg = match[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; - endReg.lastIndex = 0; - maskedSrc = maskedSrc.slice(-1 * src.length + lLength); - while ((match = endReg.exec(maskedSrc)) != null) { - rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6]; - if (!rDelim) continue; - rLength = [...rDelim].length; - if (match[3] || match[4]) { - delimTotal += rLength; - continue; - } else if (match[5] || match[6]) { - if (lLength % 3 && !((lLength + rLength) % 3)) { - midDelimTotal += rLength; - continue; - } - } - delimTotal -= rLength; - if (delimTotal > 0) continue; - rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); - const lastCharLength = [...match[0]][0].length; - const raw = src.slice(0, lLength + match.index + lastCharLength + rLength); - if (Math.min(lLength, rLength) % 2) { - const text2 = raw.slice(1, -1); - return { - type: "em", - raw, - text: text2, - tokens: this.lexer.inlineTokens(text2) - }; - } - const text = raw.slice(2, -2); - return { - type: "strong", - raw, - text, - tokens: this.lexer.inlineTokens(text) - }; - } - } - } - codespan(src) { - const cap = this.rules.inline.code.exec(src); - if (cap) { - let text = cap[2].replace(this.rules.other.newLineCharGlobal, " "); - const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text); - const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text); - if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) { - text = text.substring(1, text.length - 1); - } - return { - type: "codespan", - raw: cap[0], - text - }; - } - } - br(src) { - const cap = this.rules.inline.br.exec(src); - if (cap) { - return { - type: "br", - raw: cap[0] - }; - } - } - del(src) { - const cap = this.rules.inline.del.exec(src); - if (cap) { - return { - type: "del", - raw: cap[0], - text: cap[2], - tokens: this.lexer.inlineTokens(cap[2]) - }; - } - } - autolink(src) { - const cap = this.rules.inline.autolink.exec(src); - if (cap) { - let text, href; - if (cap[2] === "@") { - text = cap[1]; - href = "mailto:" + text; - } else { - text = cap[1]; - href = text; - } - return { - type: "link", - raw: cap[0], - text, - href, - tokens: [ - { - type: "text", - raw: text, - text - } - ] - }; - } - } - url(src) { - let cap; - if (cap = this.rules.inline.url.exec(src)) { - let text, href; - if (cap[2] === "@") { - text = cap[0]; - href = "mailto:" + text; - } else { - let prevCapZero; - do { - prevCapZero = cap[0]; - cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? ""; - } while (prevCapZero !== cap[0]); - text = cap[0]; - if (cap[1] === "www.") { - href = "http://" + cap[0]; - } else { - href = cap[0]; - } - } - return { - type: "link", - raw: cap[0], - text, - href, - tokens: [ - { - type: "text", - raw: text, - text - } - ] - }; - } - } - inlineText(src) { - const cap = this.rules.inline.text.exec(src); - if (cap) { - const escaped = this.lexer.state.inRawBlock; - return { - type: "text", - raw: cap[0], - text: cap[0], - escaped - }; - } - } -}; - -// src/Lexer.ts -var _Lexer = class __Lexer { - tokens; - options; - state; - tokenizer; - inlineQueue; - constructor(options2) { - this.tokens = []; - this.tokens.links = /* @__PURE__ */ Object.create(null); - this.options = options2 || _defaults; - this.options.tokenizer = this.options.tokenizer || new _Tokenizer(); - this.tokenizer = this.options.tokenizer; - this.tokenizer.options = this.options; - this.tokenizer.lexer = this; - this.inlineQueue = []; - this.state = { - inLink: false, - inRawBlock: false, - top: true - }; - const rules = { - other, - block: block.normal, - inline: inline.normal - }; - if (this.options.pedantic) { - rules.block = block.pedantic; - rules.inline = inline.pedantic; - } else if (this.options.gfm) { - rules.block = block.gfm; - if (this.options.breaks) { - rules.inline = inline.breaks; - } else { - rules.inline = inline.gfm; - } - } - this.tokenizer.rules = rules; - } - /** - * Expose Rules - */ - static get rules() { - return { - block, - inline - }; - } - /** - * Static Lex Method - */ - static lex(src, options2) { - const lexer2 = new __Lexer(options2); - return lexer2.lex(src); - } - /** - * Static Lex Inline Method - */ - static lexInline(src, options2) { - const lexer2 = new __Lexer(options2); - return lexer2.inlineTokens(src); - } - /** - * Preprocessing - */ - lex(src) { - src = src.replace(other.carriageReturn, "\n"); - this.blockTokens(src, this.tokens); - for (let i = 0; i < this.inlineQueue.length; i++) { - const next = this.inlineQueue[i]; - this.inlineTokens(next.src, next.tokens); - } - this.inlineQueue = []; - return this.tokens; - } - blockTokens(src, tokens = [], lastParagraphClipped = false) { - if (this.options.pedantic) { - src = src.replace(other.tabCharGlobal, " ").replace(other.spaceLine, ""); - } - while (src) { - let token; - if (this.options.extensions?.block?.some((extTokenizer) => { - if (token = extTokenizer.call({ lexer: this }, src, tokens)) { - src = src.substring(token.raw.length); - tokens.push(token); - return true; - } - return false; - })) { - continue; - } - if (token = this.tokenizer.space(src)) { - src = src.substring(token.raw.length); - const lastToken = tokens.at(-1); - if (token.raw.length === 1 && lastToken !== void 0) { - lastToken.raw += "\n"; - } else { - tokens.push(token); - } - continue; - } - if (token = this.tokenizer.code(src)) { - src = src.substring(token.raw.length); - const lastToken = tokens.at(-1); - if (lastToken?.type === "paragraph" || lastToken?.type === "text") { - lastToken.raw += "\n" + token.raw; - lastToken.text += "\n" + token.text; - this.inlineQueue.at(-1).src = lastToken.text; - } else { - tokens.push(token); - } - continue; - } - if (token = this.tokenizer.fences(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.heading(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.hr(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.blockquote(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.list(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.html(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.def(src)) { - src = src.substring(token.raw.length); - const lastToken = tokens.at(-1); - if (lastToken?.type === "paragraph" || lastToken?.type === "text") { - lastToken.raw += "\n" + token.raw; - lastToken.text += "\n" + token.raw; - this.inlineQueue.at(-1).src = lastToken.text; - } else if (!this.tokens.links[token.tag]) { - this.tokens.links[token.tag] = { - href: token.href, - title: token.title - }; - } - continue; - } - if (token = this.tokenizer.table(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.lheading(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - let cutSrc = src; - if (this.options.extensions?.startBlock) { - let startIndex = Infinity; - const tempSrc = src.slice(1); - let tempStart; - this.options.extensions.startBlock.forEach((getStartIndex) => { - tempStart = getStartIndex.call({ lexer: this }, tempSrc); - if (typeof tempStart === "number" && tempStart >= 0) { - startIndex = Math.min(startIndex, tempStart); - } - }); - if (startIndex < Infinity && startIndex >= 0) { - cutSrc = src.substring(0, startIndex + 1); - } - } - if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) { - const lastToken = tokens.at(-1); - if (lastParagraphClipped && lastToken?.type === "paragraph") { - lastToken.raw += "\n" + token.raw; - lastToken.text += "\n" + token.text; - this.inlineQueue.pop(); - this.inlineQueue.at(-1).src = lastToken.text; - } else { - tokens.push(token); - } - lastParagraphClipped = cutSrc.length !== src.length; - src = src.substring(token.raw.length); - continue; - } - if (token = this.tokenizer.text(src)) { - src = src.substring(token.raw.length); - const lastToken = tokens.at(-1); - if (lastToken?.type === "text") { - lastToken.raw += "\n" + token.raw; - lastToken.text += "\n" + token.text; - this.inlineQueue.pop(); - this.inlineQueue.at(-1).src = lastToken.text; - } else { - tokens.push(token); - } - continue; - } - if (src) { - const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); - if (this.options.silent) { - console.error(errMsg); - break; - } else { - throw new Error(errMsg); - } - } - } - this.state.top = true; - return tokens; - } - inline(src, tokens = []) { - this.inlineQueue.push({ src, tokens }); - return tokens; - } - /** - * Lexing/Compiling - */ - inlineTokens(src, tokens = []) { - let maskedSrc = src; - let match = null; - if (this.tokens.links) { - const links = Object.keys(this.tokens.links); - if (links.length > 0) { - while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) { - if (links.includes(match[0].slice(match[0].lastIndexOf("[") + 1, -1))) { - maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex); - } - } - } - } - while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) { - maskedSrc = maskedSrc.slice(0, match.index) + "++" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); - } - while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) { - maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); - } - let keepPrevChar = false; - let prevChar = ""; - while (src) { - if (!keepPrevChar) { - prevChar = ""; - } - keepPrevChar = false; - let token; - if (this.options.extensions?.inline?.some((extTokenizer) => { - if (token = extTokenizer.call({ lexer: this }, src, tokens)) { - src = src.substring(token.raw.length); - tokens.push(token); - return true; - } - return false; - })) { - continue; - } - if (token = this.tokenizer.escape(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.tag(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.link(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.reflink(src, this.tokens.links)) { - src = src.substring(token.raw.length); - const lastToken = tokens.at(-1); - if (token.type === "text" && lastToken?.type === "text") { - lastToken.raw += token.raw; - lastToken.text += token.text; - } else { - tokens.push(token); - } - continue; - } - if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.codespan(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.br(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.del(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (token = this.tokenizer.autolink(src)) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - if (!this.state.inLink && (token = this.tokenizer.url(src))) { - src = src.substring(token.raw.length); - tokens.push(token); - continue; - } - let cutSrc = src; - if (this.options.extensions?.startInline) { - let startIndex = Infinity; - const tempSrc = src.slice(1); - let tempStart; - this.options.extensions.startInline.forEach((getStartIndex) => { - tempStart = getStartIndex.call({ lexer: this }, tempSrc); - if (typeof tempStart === "number" && tempStart >= 0) { - startIndex = Math.min(startIndex, tempStart); - } - }); - if (startIndex < Infinity && startIndex >= 0) { - cutSrc = src.substring(0, startIndex + 1); - } - } - if (token = this.tokenizer.inlineText(cutSrc)) { - src = src.substring(token.raw.length); - if (token.raw.slice(-1) !== "_") { - prevChar = token.raw.slice(-1); - } - keepPrevChar = true; - const lastToken = tokens.at(-1); - if (lastToken?.type === "text") { - lastToken.raw += token.raw; - lastToken.text += token.text; - } else { - tokens.push(token); - } - continue; - } - if (src) { - const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); - if (this.options.silent) { - console.error(errMsg); - break; - } else { - throw new Error(errMsg); - } - } - } - return tokens; - } -}; - -// src/Renderer.ts -var _Renderer = class { - options; - parser; - // set by the parser - constructor(options2) { - this.options = options2 || _defaults; - } - space(token) { - return ""; - } - code({ text, lang, escaped }) { - const langString = (lang || "").match(other.notSpaceStart)?.[0]; - const code = text.replace(other.endingNewline, "") + "\n"; - if (!langString) { - return "
" + (escaped ? code : escape2(code, true)) + "
\n"; - } - return '
' + (escaped ? code : escape2(code, true)) + "
\n"; - } - blockquote({ tokens }) { - const body = this.parser.parse(tokens); - return `
-${body}
-`; - } - html({ text }) { - return text; - } - heading({ tokens, depth }) { - return `${this.parser.parseInline(tokens)} -`; - } - hr(token) { - return "
\n"; - } - list(token) { - const ordered = token.ordered; - const start = token.start; - let body = ""; - for (let j = 0; j < token.items.length; j++) { - const item = token.items[j]; - body += this.listitem(item); - } - const type = ordered ? "ol" : "ul"; - const startAttr = ordered && start !== 1 ? ' start="' + start + '"' : ""; - return "<" + type + startAttr + ">\n" + body + "\n"; - } - listitem(item) { - let itemBody = ""; - if (item.task) { - const checkbox = this.checkbox({ checked: !!item.checked }); - if (item.loose) { - if (item.tokens[0]?.type === "paragraph") { - item.tokens[0].text = checkbox + " " + item.tokens[0].text; - if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === "text") { - item.tokens[0].tokens[0].text = checkbox + " " + escape2(item.tokens[0].tokens[0].text); - item.tokens[0].tokens[0].escaped = true; - } - } else { - item.tokens.unshift({ - type: "text", - raw: checkbox + " ", - text: checkbox + " ", - escaped: true - }); - } - } else { - itemBody += checkbox + " "; - } - } - itemBody += this.parser.parse(item.tokens, !!item.loose); - return `
  • ${itemBody}
  • -`; - } - checkbox({ checked }) { - return "'; - } - paragraph({ tokens }) { - return `

    ${this.parser.parseInline(tokens)}

    -`; - } - table(token) { - let header = ""; - let cell = ""; - for (let j = 0; j < token.header.length; j++) { - cell += this.tablecell(token.header[j]); - } - header += this.tablerow({ text: cell }); - let body = ""; - for (let j = 0; j < token.rows.length; j++) { - const row = token.rows[j]; - cell = ""; - for (let k = 0; k < row.length; k++) { - cell += this.tablecell(row[k]); - } - body += this.tablerow({ text: cell }); - } - if (body) body = `${body}`; - return "\n\n" + header + "\n" + body + "
    \n"; - } - tablerow({ text }) { - return ` -${text} -`; - } - tablecell(token) { - const content = this.parser.parseInline(token.tokens); - const type = token.header ? "th" : "td"; - const tag2 = token.align ? `<${type} align="${token.align}">` : `<${type}>`; - return tag2 + content + ` -`; - } - /** - * span level renderer - */ - strong({ tokens }) { - return `${this.parser.parseInline(tokens)}`; - } - em({ tokens }) { - return `${this.parser.parseInline(tokens)}`; - } - codespan({ text }) { - return `${escape2(text, true)}`; - } - br(token) { - return "
    "; - } - del({ tokens }) { - return `${this.parser.parseInline(tokens)}`; - } - link({ href, title, tokens }) { - const text = this.parser.parseInline(tokens); - const cleanHref = cleanUrl(href); - if (cleanHref === null) { - return text; - } - href = cleanHref; - let out = '
    "; - return out; - } - image({ href, title, text, tokens }) { - if (tokens) { - text = this.parser.parseInline(tokens, this.parser.textRenderer); - } - const cleanHref = cleanUrl(href); - if (cleanHref === null) { - return escape2(text); - } - href = cleanHref; - let out = `${text} { - const tokens2 = genericToken[childTokens].flat(Infinity); - values = values.concat(this.walkTokens(tokens2, callback)); - }); - } else if (genericToken.tokens) { - values = values.concat(this.walkTokens(genericToken.tokens, callback)); - } - } - } - } - return values; - } - use(...args) { - const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} }; - args.forEach((pack) => { - const opts = { ...pack }; - opts.async = this.defaults.async || opts.async || false; - if (pack.extensions) { - pack.extensions.forEach((ext) => { - if (!ext.name) { - throw new Error("extension name required"); - } - if ("renderer" in ext) { - const prevRenderer = extensions.renderers[ext.name]; - if (prevRenderer) { - extensions.renderers[ext.name] = function(...args2) { - let ret = ext.renderer.apply(this, args2); - if (ret === false) { - ret = prevRenderer.apply(this, args2); - } - return ret; - }; - } else { - extensions.renderers[ext.name] = ext.renderer; - } - } - if ("tokenizer" in ext) { - if (!ext.level || ext.level !== "block" && ext.level !== "inline") { - throw new Error("extension level must be 'block' or 'inline'"); - } - const extLevel = extensions[ext.level]; - if (extLevel) { - extLevel.unshift(ext.tokenizer); - } else { - extensions[ext.level] = [ext.tokenizer]; - } - if (ext.start) { - if (ext.level === "block") { - if (extensions.startBlock) { - extensions.startBlock.push(ext.start); - } else { - extensions.startBlock = [ext.start]; - } - } else if (ext.level === "inline") { - if (extensions.startInline) { - extensions.startInline.push(ext.start); - } else { - extensions.startInline = [ext.start]; - } - } - } - } - if ("childTokens" in ext && ext.childTokens) { - extensions.childTokens[ext.name] = ext.childTokens; - } - }); - opts.extensions = extensions; - } - if (pack.renderer) { - const renderer = this.defaults.renderer || new _Renderer(this.defaults); - for (const prop in pack.renderer) { - if (!(prop in renderer)) { - throw new Error(`renderer '${prop}' does not exist`); - } - if (["options", "parser"].includes(prop)) { - continue; - } - const rendererProp = prop; - const rendererFunc = pack.renderer[rendererProp]; - const prevRenderer = renderer[rendererProp]; - renderer[rendererProp] = (...args2) => { - let ret = rendererFunc.apply(renderer, args2); - if (ret === false) { - ret = prevRenderer.apply(renderer, args2); - } - return ret || ""; - }; - } - opts.renderer = renderer; - } - if (pack.tokenizer) { - const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults); - for (const prop in pack.tokenizer) { - if (!(prop in tokenizer)) { - throw new Error(`tokenizer '${prop}' does not exist`); - } - if (["options", "rules", "lexer"].includes(prop)) { - continue; - } - const tokenizerProp = prop; - const tokenizerFunc = pack.tokenizer[tokenizerProp]; - const prevTokenizer = tokenizer[tokenizerProp]; - tokenizer[tokenizerProp] = (...args2) => { - let ret = tokenizerFunc.apply(tokenizer, args2); - if (ret === false) { - ret = prevTokenizer.apply(tokenizer, args2); - } - return ret; - }; - } - opts.tokenizer = tokenizer; - } - if (pack.hooks) { - const hooks = this.defaults.hooks || new _Hooks(); - for (const prop in pack.hooks) { - if (!(prop in hooks)) { - throw new Error(`hook '${prop}' does not exist`); - } - if (["options", "block"].includes(prop)) { - continue; - } - const hooksProp = prop; - const hooksFunc = pack.hooks[hooksProp]; - const prevHook = hooks[hooksProp]; - if (_Hooks.passThroughHooks.has(prop)) { - hooks[hooksProp] = (arg) => { - if (this.defaults.async) { - return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => { - return prevHook.call(hooks, ret2); - }); - } - const ret = hooksFunc.call(hooks, arg); - return prevHook.call(hooks, ret); - }; - } else { - hooks[hooksProp] = (...args2) => { - let ret = hooksFunc.apply(hooks, args2); - if (ret === false) { - ret = prevHook.apply(hooks, args2); - } - return ret; - }; - } - } - opts.hooks = hooks; - } - if (pack.walkTokens) { - const walkTokens2 = this.defaults.walkTokens; - const packWalktokens = pack.walkTokens; - opts.walkTokens = function(token) { - let values = []; - values.push(packWalktokens.call(this, token)); - if (walkTokens2) { - values = values.concat(walkTokens2.call(this, token)); - } - return values; - }; - } - this.defaults = { ...this.defaults, ...opts }; - }); - return this; - } - setOptions(opt) { - this.defaults = { ...this.defaults, ...opt }; - return this; - } - lexer(src, options2) { - return _Lexer.lex(src, options2 ?? this.defaults); - } - parser(tokens, options2) { - return _Parser.parse(tokens, options2 ?? this.defaults); - } - parseMarkdown(blockType) { - const parse2 = (src, options2) => { - const origOpt = { ...options2 }; - const opt = { ...this.defaults, ...origOpt }; - const throwError = this.onError(!!opt.silent, !!opt.async); - if (this.defaults.async === true && origOpt.async === false) { - return throwError(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.")); - } - if (typeof src === "undefined" || src === null) { - return throwError(new Error("marked(): input parameter is undefined or null")); - } - if (typeof src !== "string") { - return throwError(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(src) + ", string expected")); - } - if (opt.hooks) { - opt.hooks.options = opt; - opt.hooks.block = blockType; - } - const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline; - const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline; - if (opt.async) { - return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError); - } - try { - if (opt.hooks) { - src = opt.hooks.preprocess(src); - } - let tokens = lexer2(src, opt); - if (opt.hooks) { - tokens = opt.hooks.processAllTokens(tokens); - } - if (opt.walkTokens) { - this.walkTokens(tokens, opt.walkTokens); - } - let html2 = parser2(tokens, opt); - if (opt.hooks) { - html2 = opt.hooks.postprocess(html2); - } - return html2; - } catch (e) { - return throwError(e); - } - }; - return parse2; - } - onError(silent, async) { - return (e) => { - e.message += "\nPlease report this to https://github.com/markedjs/marked."; - if (silent) { - const msg = "

    An error occurred:

    " + escape2(e.message + "", true) + "
    "; - if (async) { - return Promise.resolve(msg); - } - return msg; - } - if (async) { - return Promise.reject(e); - } - throw e; - }; - } -}; - -// src/marked.ts -var markedInstance = new Marked(); -function marked(src, opt) { - return markedInstance.parse(src, opt); -} -marked.options = marked.setOptions = function(options2) { - markedInstance.setOptions(options2); - marked.defaults = markedInstance.defaults; - changeDefaults(marked.defaults); - return marked; -}; -marked.getDefaults = _getDefaults; -marked.defaults = _defaults; -marked.use = function(...args) { - markedInstance.use(...args); - marked.defaults = markedInstance.defaults; - changeDefaults(marked.defaults); - return marked; -}; -marked.walkTokens = function(tokens, callback) { - return markedInstance.walkTokens(tokens, callback); -}; -marked.parseInline = markedInstance.parseInline; -marked.Parser = _Parser; -marked.parser = _Parser.parse; -marked.Renderer = _Renderer; -marked.TextRenderer = _TextRenderer; -marked.Lexer = _Lexer; -marked.lexer = _Lexer.lex; -marked.Tokenizer = _Tokenizer; -marked.Hooks = _Hooks; -marked.parse = marked; - -const SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSummaryBox extends H { - constructor(registerHost) { - super(); - if (registerHost !== false) { - this.__registerHost(); - } - } - /** - * The id of the Searchcraft instance that this component should use. - */ - searchcraftId; - summary = ''; - isLoading = false; - isSummaryNotEnabled = false; - get hostElement() { return this; } - unsubscribe; - cleanupCore; - onCoreAvailable(core) { - core.store.setState({ hasSummaryBox: true }); - this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this)); - } - connectedCallback() { - this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this)); - } - disconnectedCallback() { - this.unsubscribe?.(); - this.cleanupCore?.(); - } - /** - * Handles state changes from the store and updates component state. - */ - handleStateChange(state) { - this.isLoading = state.isSummaryLoading; - this.isSummaryNotEnabled = state.isSummaryNotEnabled; - this.summary = this.sanitizeMarkdown(state.summary); - // Update DOM directly for performance (avoids re-render) - this.updateContentElement(state.summary); - } - /** - * Sanitizes and converts markdown to HTML. - */ - sanitizeMarkdown(markdown) { - return purify.sanitize(marked.parse(markdown)); - } - /** - * Updates the content element directly without triggering a re-render. - */ - updateContentElement(markdown) { - const contentElement = this.hostElement?.querySelector('.searchcraft-summary-box-content'); - if (contentElement) { - contentElement.innerHTML = this.sanitizeMarkdown(markdown); - } - } - /** - * Renders the appropriate content based on current state. - */ - renderContent() { - if (this.isLoading) { - return h("searchcraft-loading", { label: 'LOADING' }); - } - if (this.isSummaryNotEnabled) { - return (h("div", { class: 'searchcraft-summary-box-content' }, "AI summaries are not enabled")); - } - return h("div", { class: 'searchcraft-summary-box-content' }, this.summary); - } - render() { - return h("div", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent()); - } -}, [768, "searchcraft-summary-box", { - "searchcraftId": [1, "searchcraft-id"], - "summary": [32], - "isLoading": [32], - "isSummaryNotEnabled": [32] - }]); -function defineCustomElement$1() { - if (typeof customElements === "undefined") { - return; - } - const components = ["searchcraft-summary-box", "searchcraft-loading"]; - components.forEach(tagName => { switch (tagName) { - case "searchcraft-summary-box": - if (!customElements.get(transformTag(tagName))) { - customElements.define(transformTag(tagName), SearchcraftSummaryBox$1); - } - break; - case "searchcraft-loading": - if (!customElements.get(transformTag(tagName))) { - defineCustomElement$2(); - } - break; - } }); -} +import { S as SearchcraftSummaryBox$1, d as defineCustomElement$1 } from './searchcraft-summary-box2.js?scv=0.14.0'; const SearchcraftSummaryBox = SearchcraftSummaryBox$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-summary-box.js.map b/public/sdk/components/searchcraft-summary-box.js.map index 903b1d6..f0a2f24 100644 --- a/public/sdk/components/searchcraft-summary-box.js.map +++ b/public/sdk/components/searchcraft-summary-box.js.map @@ -1 +1 @@ -{"file":"searchcraft-summary-box.js","mappings":"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","names":["SearchcraftSummaryBox","__stencil_proxyCustomElement","HTMLElement","DOMPurify"],"sources":["../../node_modules/marked/lib/marked.esm.js","src/components/searchcraft-summary-box/searchcraft-summary-box.tsx"],"sourcesContent":["/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^
    /i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|\\\\n*|$)|\\\\n*|$)|)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^|^\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"
    \" + (escaped ? code : escape2(code, true)) + \"
    \\n\";\n }\n return '
    ' + (escaped ? code : escape2(code, true)) + \"
    \\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `
    \n${body}
    \n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `${this.parser.parseInline(tokens)}\n`;\n }\n hr(token) {\n return \"
    \\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `
  • ${itemBody}
  • \n`;\n }\n checkbox({ checked }) {\n return \"';\n }\n paragraph({ tokens }) {\n return `

    ${this.parser.parseInline(tokens)}

    \n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `${body}`;\n return \"\\n\\n\" + header + \"\\n\" + body + \"
    \\n\";\n }\n tablerow({ text }) {\n return `\n${text}\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n em({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n codespan({ text }) {\n return `${escape2(text, true)}`;\n }\n br(token) {\n return \"
    \";\n }\n del({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    \" + text + \"\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"

    An error occurred:

    \" + escape2(e.message + \"\", true) + \"
    \";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = _Parser.parse;\nvar lexer = _Lexer.lex;\nexport {\n _Hooks as Hooks,\n _Lexer as Lexer,\n Marked,\n _Parser as Parser,\n _Renderer as Renderer,\n _TextRenderer as TextRenderer,\n _Tokenizer as Tokenizer,\n _defaults as defaults,\n _getDefaults as getDefaults,\n lexer,\n marked,\n options,\n parse,\n parseInline,\n parser,\n setOptions,\n use,\n walkTokens\n};\n//# sourceMappingURL=marked.esm.js.map\n","import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Element, Prop, State, h } from '@stencil/core';\nimport type { SearchcraftState } from '@store';\nimport DOMPurify from 'dompurify';\nimport { marked } from 'marked';\n\n/**\n * This component renders a summary box for RAG search result summaries.\n * When the user makes a search, a network call is made to retrieve the summary content, which is then\n * rendered in this box.\n *\n * NOTE: This component requires the usage of a read key that has \"SUMMARY\" permissions.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftSummaryBox } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftSummaryBox } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-summary-box',\n shadow: false,\n})\nexport class SearchcraftSummaryBox {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n @State() summary = '';\n @State() isLoading = false;\n @State() isSummaryNotEnabled = false;\n @Element() hostElement?: HTMLElement;\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n core.store.setState({ hasSummaryBox: true });\n this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this));\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n /**\n * Handles state changes from the store and updates component state.\n */\n private handleStateChange(state: SearchcraftState) {\n this.isLoading = state.isSummaryLoading;\n this.isSummaryNotEnabled = state.isSummaryNotEnabled;\n this.summary = this.sanitizeMarkdown(state.summary);\n\n // Update DOM directly for performance (avoids re-render)\n this.updateContentElement(state.summary);\n }\n\n /**\n * Sanitizes and converts markdown to HTML.\n */\n private sanitizeMarkdown(markdown: string): string {\n return DOMPurify.sanitize(marked.parse(markdown) as string);\n }\n\n /**\n * Updates the content element directly without triggering a re-render.\n */\n private updateContentElement(markdown: string) {\n const contentElement = this.hostElement?.querySelector(\n '.searchcraft-summary-box-content',\n );\n\n if (contentElement) {\n contentElement.innerHTML = this.sanitizeMarkdown(markdown);\n }\n }\n\n /**\n * Renders the appropriate content based on current state.\n */\n private renderContent() {\n if (this.isLoading) {\n return ;\n }\n\n if (this.isSummaryNotEnabled) {\n return (\n
    \n AI summaries are not enabled\n
    \n );\n }\n\n return
    {this.summary}
    ;\n }\n\n render() {\n return
    {this.renderContent()}
    ;\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-summary-box.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-summary-box2.js b/public/sdk/components/searchcraft-summary-box2.js new file mode 100644 index 0000000..ec256e4 --- /dev/null +++ b/public/sdk/components/searchcraft-summary-box2.js @@ -0,0 +1,2261 @@ +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { p as purify } from './purify.es.js?scv=0.14.0'; +import { d as defineCustomElement$1 } from './searchcraft-loading2.js?scv=0.14.0'; + +/** + * marked v15.0.12 - a markdown parser + * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ + +/** + * DO NOT EDIT THIS FILE + * The code in this file is generated from files in ./src/ + */ + + +// src/defaults.ts +function _getDefaults() { + return { + async: false, + breaks: false, + extensions: null, + gfm: true, + hooks: null, + pedantic: false, + renderer: null, + silent: false, + tokenizer: null, + walkTokens: null + }; +} +var _defaults = _getDefaults(); +function changeDefaults(newDefaults) { + _defaults = newDefaults; +} + +// src/rules.ts +var noopTest = { exec: () => null }; +function edit(regex, opt = "") { + let source = typeof regex === "string" ? regex : regex.source; + const obj = { + replace: (name, val) => { + let valSource = typeof val === "string" ? val : val.source; + valSource = valSource.replace(other.caret, "$1"); + source = source.replace(name, valSource); + return obj; + }, + getRegex: () => { + return new RegExp(source, opt); + } + }; + return obj; +} +var other = { + codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, + outputLinkReplace: /\\([\[\]])/g, + indentCodeCompensation: /^(\s+)(?:```)/, + beginningSpace: /^\s+/, + endingHash: /#$/, + startingSpaceChar: /^ /, + endingSpaceChar: / $/, + nonSpaceChar: /[^ ]/, + newLineCharGlobal: /\n/g, + tabCharGlobal: /\t/g, + multipleSpaceGlobal: /\s+/g, + blankLine: /^[ \t]*$/, + doubleBlankLine: /\n[ \t]*\n[ \t]*$/, + blockquoteStart: /^ {0,3}>/, + blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, + blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, + listReplaceTabs: /^\t+/, + listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, + listIsTask: /^\[[ xX]\] /, + listReplaceTask: /^\[[ xX]\] +/, + anyLine: /\n.*\n/, + hrefBrackets: /^<(.*)>$/, + tableDelimiter: /[:|]/, + tableAlignChars: /^\||\| *$/g, + tableRowBlankLine: /\n[ \t]*$/, + tableAlignRight: /^ *-+: *$/, + tableAlignCenter: /^ *:-+: *$/, + tableAlignLeft: /^ *:-+ *$/, + startATag: /^/i, + startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, + endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, + startAngleBracket: /^$/, + pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, + unicodeAlphaNumeric: /[\p{L}\p{N}]/u, + escapeTest: /[&<>"']/, + escapeReplace: /[&<>"']/g, + escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, + escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, + unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, + caret: /(^|[^\[])\^/g, + percentDecode: /%25/g, + findPipe: /\|/g, + splitPipe: / \|/, + slashPipe: /\\\|/g, + carriageReturn: /\r\n|\r/g, + spaceLine: /^ +$/gm, + notSpaceStart: /^\S*/, + endingNewline: /\n$/, + listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[ ][^\\n]*)?(?:\\n|$))`), + nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), + hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), + fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`), + headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`), + htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, "i") +}; +var newline = /^(?:[ \t]*(?:\n|$))+/; +var blockCode = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/; +var fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/; +var hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/; +var heading = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/; +var bullet = /(?:[*+-]|\d{1,9}[.)])/; +var lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/; +var lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(); +var lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(); +var _paragraph = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/; +var blockText = /^[^\n]+/; +var _blockLabel = /(?!\s*\])(?:\\.|[^\[\]\\])+/; +var def = edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", _blockLabel).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(); +var list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, bullet).getRegex(); +var _tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul"; +var _comment = /|$))/; +var html = edit( + "^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", + "i" +).replace("comment", _comment).replace("tag", _tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(); +var paragraph = edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); +var blockquote = edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", paragraph).getRegex(); +var blockNormal = { + blockquote, + code: blockCode, + def, + fences, + heading, + hr, + html, + lheading, + list, + newline, + paragraph, + table: noopTest, + text: blockText +}; +var gfmTable = edit( + "^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)" +).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); +var blockGfm = { + ...blockNormal, + lheading: lheadingGfm, + table: gfmTable, + paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", gfmTable).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex() +}; +var blockPedantic = { + ...blockNormal, + html: edit( + `^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))` + ).replace("comment", _comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), + def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, + heading: /^(#{1,6})(.*)(?:\n+|$)/, + fences: noopTest, + // fences not supported + lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, + paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " *#{1,6} *[^\n]").replace("lheading", lheading).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() +}; +var escape = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/; +var inlineCode = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/; +var br = /^( {2,}|\\)\n(?!\s*$)/; +var inlineText = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g; +var emStrongLDelimCore = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/; +var emStrongLDelim = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuation).getRegex(); +var emStrongLDelimGfm = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuationGfmStrongEm).getRegex(); +var emStrongRDelimAstCore = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)"; +var emStrongRDelimAst = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); +var emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex(); +var emStrongRDelimUnd = edit( + "^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", + "gu" +).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); +var anyPunctuation = edit(/\\(punct)/, "gu").replace(/punct/g, _punctuation).getRegex(); +var autolink = edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(); +var _inlineComment = edit(_comment).replace("(?:-->|$)", "-->").getRegex(); +var tag = edit( + "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^" +).replace("comment", _inlineComment).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(); +var _inlineLabel = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/; +var link = edit(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", _inlineLabel).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(); +var reflink = edit(/^!?\[(label)\]\[(ref)\]/).replace("label", _inlineLabel).replace("ref", _blockLabel).getRegex(); +var nolink = edit(/^!?\[(ref)\](?:\[\])?/).replace("ref", _blockLabel).getRegex(); +var reflinkSearch = edit("reflink|nolink(?!\\()", "g").replace("reflink", reflink).replace("nolink", nolink).getRegex(); +var inlineNormal = { + _backpedal: noopTest, + // only used for GFM url + anyPunctuation, + autolink, + blockSkip, + br, + code: inlineCode, + del: noopTest, + emStrongLDelim, + emStrongRDelimAst, + emStrongRDelimUnd, + escape, + link, + nolink, + punctuation, + reflink, + reflinkSearch, + tag, + text: inlineText, + url: noopTest +}; +var inlinePedantic = { + ...inlineNormal, + link: edit(/^!?\[(label)\]\((.*?)\)/).replace("label", _inlineLabel).getRegex(), + reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", _inlineLabel).getRegex() +}; +var inlineGfm = { + ...inlineNormal, + emStrongRDelimAst: emStrongRDelimAstGfm, + emStrongLDelim: emStrongLDelimGfm, + url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), + _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, + del: /^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/, + text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\": ">", + '"': """, + "'": "'" +}; +var getEscapeReplacement = (ch) => escapeReplacements[ch]; +function escape2(html2, encode) { + if (encode) { + if (other.escapeTest.test(html2)) { + return html2.replace(other.escapeReplace, getEscapeReplacement); + } + } else { + if (other.escapeTestNoEncode.test(html2)) { + return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement); + } + } + return html2; +} +function cleanUrl(href) { + try { + href = encodeURI(href).replace(other.percentDecode, "%"); + } catch { + return null; + } + return href; +} +function splitCells(tableRow, count) { + const row = tableRow.replace(other.findPipe, (match, offset, str) => { + let escaped = false; + let curr = offset; + while (--curr >= 0 && str[curr] === "\\") escaped = !escaped; + if (escaped) { + return "|"; + } else { + return " |"; + } + }), cells = row.split(other.splitPipe); + let i = 0; + if (!cells[0].trim()) { + cells.shift(); + } + if (cells.length > 0 && !cells.at(-1)?.trim()) { + cells.pop(); + } + if (count) { + if (cells.length > count) { + cells.splice(count); + } else { + while (cells.length < count) cells.push(""); + } + } + for (; i < cells.length; i++) { + cells[i] = cells[i].trim().replace(other.slashPipe, "|"); + } + return cells; +} +function rtrim(str, c, invert) { + const l = str.length; + if (l === 0) { + return ""; + } + let suffLen = 0; + while (suffLen < l) { + const currChar = str.charAt(l - suffLen - 1); + if (currChar === c && true) { + suffLen++; + } else { + break; + } + } + return str.slice(0, l - suffLen); +} +function findClosingBracket(str, b) { + if (str.indexOf(b[1]) === -1) { + return -1; + } + let level = 0; + for (let i = 0; i < str.length; i++) { + if (str[i] === "\\") { + i++; + } else if (str[i] === b[0]) { + level++; + } else if (str[i] === b[1]) { + level--; + if (level < 0) { + return i; + } + } + } + if (level > 0) { + return -2; + } + return -1; +} + +// src/Tokenizer.ts +function outputLink(cap, link2, raw, lexer2, rules) { + const href = link2.href; + const title = link2.title || null; + const text = cap[1].replace(rules.other.outputLinkReplace, "$1"); + lexer2.state.inLink = true; + const token = { + type: cap[0].charAt(0) === "!" ? "image" : "link", + raw, + href, + title, + text, + tokens: lexer2.inlineTokens(text) + }; + lexer2.state.inLink = false; + return token; +} +function indentCodeCompensation(raw, text, rules) { + const matchIndentToCode = raw.match(rules.other.indentCodeCompensation); + if (matchIndentToCode === null) { + return text; + } + const indentToCode = matchIndentToCode[1]; + return text.split("\n").map((node) => { + const matchIndentInNode = node.match(rules.other.beginningSpace); + if (matchIndentInNode === null) { + return node; + } + const [indentInNode] = matchIndentInNode; + if (indentInNode.length >= indentToCode.length) { + return node.slice(indentToCode.length); + } + return node; + }).join("\n"); +} +var _Tokenizer = class { + options; + rules; + // set by the lexer + lexer; + // set by the lexer + constructor(options2) { + this.options = options2 || _defaults; + } + space(src) { + const cap = this.rules.block.newline.exec(src); + if (cap && cap[0].length > 0) { + return { + type: "space", + raw: cap[0] + }; + } + } + code(src) { + const cap = this.rules.block.code.exec(src); + if (cap) { + const text = cap[0].replace(this.rules.other.codeRemoveIndent, ""); + return { + type: "code", + raw: cap[0], + codeBlockStyle: "indented", + text: !this.options.pedantic ? rtrim(text, "\n") : text + }; + } + } + fences(src) { + const cap = this.rules.block.fences.exec(src); + if (cap) { + const raw = cap[0]; + const text = indentCodeCompensation(raw, cap[3] || "", this.rules); + return { + type: "code", + raw, + lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : cap[2], + text + }; + } + } + heading(src) { + const cap = this.rules.block.heading.exec(src); + if (cap) { + let text = cap[2].trim(); + if (this.rules.other.endingHash.test(text)) { + const trimmed = rtrim(text, "#"); + if (this.options.pedantic) { + text = trimmed.trim(); + } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) { + text = trimmed.trim(); + } + } + return { + type: "heading", + raw: cap[0], + depth: cap[1].length, + text, + tokens: this.lexer.inline(text) + }; + } + } + hr(src) { + const cap = this.rules.block.hr.exec(src); + if (cap) { + return { + type: "hr", + raw: rtrim(cap[0], "\n") + }; + } + } + blockquote(src) { + const cap = this.rules.block.blockquote.exec(src); + if (cap) { + let lines = rtrim(cap[0], "\n").split("\n"); + let raw = ""; + let text = ""; + const tokens = []; + while (lines.length > 0) { + let inBlockquote = false; + const currentLines = []; + let i; + for (i = 0; i < lines.length; i++) { + if (this.rules.other.blockquoteStart.test(lines[i])) { + currentLines.push(lines[i]); + inBlockquote = true; + } else if (!inBlockquote) { + currentLines.push(lines[i]); + } else { + break; + } + } + lines = lines.slice(i); + const currentRaw = currentLines.join("\n"); + const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, "\n $1").replace(this.rules.other.blockquoteSetextReplace2, ""); + raw = raw ? `${raw} +${currentRaw}` : currentRaw; + text = text ? `${text} +${currentText}` : currentText; + const top = this.lexer.state.top; + this.lexer.state.top = true; + this.lexer.blockTokens(currentText, tokens, true); + this.lexer.state.top = top; + if (lines.length === 0) { + break; + } + const lastToken = tokens.at(-1); + if (lastToken?.type === "code") { + break; + } else if (lastToken?.type === "blockquote") { + const oldToken = lastToken; + const newText = oldToken.raw + "\n" + lines.join("\n"); + const newToken = this.blockquote(newText); + tokens[tokens.length - 1] = newToken; + raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw; + text = text.substring(0, text.length - oldToken.text.length) + newToken.text; + break; + } else if (lastToken?.type === "list") { + const oldToken = lastToken; + const newText = oldToken.raw + "\n" + lines.join("\n"); + const newToken = this.list(newText); + tokens[tokens.length - 1] = newToken; + raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw; + text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw; + lines = newText.substring(tokens.at(-1).raw.length).split("\n"); + continue; + } + } + return { + type: "blockquote", + raw, + tokens, + text + }; + } + } + list(src) { + let cap = this.rules.block.list.exec(src); + if (cap) { + let bull = cap[1].trim(); + const isordered = bull.length > 1; + const list2 = { + type: "list", + raw: "", + ordered: isordered, + start: isordered ? +bull.slice(0, -1) : "", + loose: false, + items: [] + }; + bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`; + if (this.options.pedantic) { + bull = isordered ? bull : "[*+-]"; + } + const itemRegex = this.rules.other.listItemRegex(bull); + let endsWithBlankLine = false; + while (src) { + let endEarly = false; + let raw = ""; + let itemContents = ""; + if (!(cap = itemRegex.exec(src))) { + break; + } + if (this.rules.block.hr.test(src)) { + break; + } + raw = cap[0]; + src = src.substring(raw.length); + let line = cap[2].split("\n", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => " ".repeat(3 * t.length)); + let nextLine = src.split("\n", 1)[0]; + let blankLine = !line.trim(); + let indent = 0; + if (this.options.pedantic) { + indent = 2; + itemContents = line.trimStart(); + } else if (blankLine) { + indent = cap[1].length + 1; + } else { + indent = cap[2].search(this.rules.other.nonSpaceChar); + indent = indent > 4 ? 1 : indent; + itemContents = line.slice(indent); + indent += cap[1].length; + } + if (blankLine && this.rules.other.blankLine.test(nextLine)) { + raw += nextLine + "\n"; + src = src.substring(nextLine.length + 1); + endEarly = true; + } + if (!endEarly) { + const nextBulletRegex = this.rules.other.nextBulletRegex(indent); + const hrRegex = this.rules.other.hrRegex(indent); + const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent); + const headingBeginRegex = this.rules.other.headingBeginRegex(indent); + const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent); + while (src) { + const rawLine = src.split("\n", 1)[0]; + let nextLineWithoutTabs; + nextLine = rawLine; + if (this.options.pedantic) { + nextLine = nextLine.replace(this.rules.other.listReplaceNesting, " "); + nextLineWithoutTabs = nextLine; + } else { + nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, " "); + } + if (fencesBeginRegex.test(nextLine)) { + break; + } + if (headingBeginRegex.test(nextLine)) { + break; + } + if (htmlBeginRegex.test(nextLine)) { + break; + } + if (nextBulletRegex.test(nextLine)) { + break; + } + if (hrRegex.test(nextLine)) { + break; + } + if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { + itemContents += "\n" + nextLineWithoutTabs.slice(indent); + } else { + if (blankLine) { + break; + } + if (line.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4) { + break; + } + if (fencesBeginRegex.test(line)) { + break; + } + if (headingBeginRegex.test(line)) { + break; + } + if (hrRegex.test(line)) { + break; + } + itemContents += "\n" + nextLine; + } + if (!blankLine && !nextLine.trim()) { + blankLine = true; + } + raw += rawLine + "\n"; + src = src.substring(rawLine.length + 1); + line = nextLineWithoutTabs.slice(indent); + } + } + if (!list2.loose) { + if (endsWithBlankLine) { + list2.loose = true; + } else if (this.rules.other.doubleBlankLine.test(raw)) { + endsWithBlankLine = true; + } + } + let istask = null; + let ischecked; + if (this.options.gfm) { + istask = this.rules.other.listIsTask.exec(itemContents); + if (istask) { + ischecked = istask[0] !== "[ ] "; + itemContents = itemContents.replace(this.rules.other.listReplaceTask, ""); + } + } + list2.items.push({ + type: "list_item", + raw, + task: !!istask, + checked: ischecked, + loose: false, + text: itemContents, + tokens: [] + }); + list2.raw += raw; + } + const lastItem = list2.items.at(-1); + if (lastItem) { + lastItem.raw = lastItem.raw.trimEnd(); + lastItem.text = lastItem.text.trimEnd(); + } else { + return; + } + list2.raw = list2.raw.trimEnd(); + for (let i = 0; i < list2.items.length; i++) { + this.lexer.state.top = false; + list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []); + if (!list2.loose) { + const spacers = list2.items[i].tokens.filter((t) => t.type === "space"); + const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw)); + list2.loose = hasMultipleLineBreaks; + } + } + if (list2.loose) { + for (let i = 0; i < list2.items.length; i++) { + list2.items[i].loose = true; + } + } + return list2; + } + } + html(src) { + const cap = this.rules.block.html.exec(src); + if (cap) { + const token = { + type: "html", + block: true, + raw: cap[0], + pre: cap[1] === "pre" || cap[1] === "script" || cap[1] === "style", + text: cap[0] + }; + return token; + } + } + def(src) { + const cap = this.rules.block.def.exec(src); + if (cap) { + const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "); + const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : ""; + const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : cap[3]; + return { + type: "def", + tag: tag2, + raw: cap[0], + href, + title + }; + } + } + table(src) { + const cap = this.rules.block.table.exec(src); + if (!cap) { + return; + } + if (!this.rules.other.tableDelimiter.test(cap[2])) { + return; + } + const headers = splitCells(cap[1]); + const aligns = cap[2].replace(this.rules.other.tableAlignChars, "").split("|"); + const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : []; + const item = { + type: "table", + raw: cap[0], + header: [], + align: [], + rows: [] + }; + if (headers.length !== aligns.length) { + return; + } + for (const align of aligns) { + if (this.rules.other.tableAlignRight.test(align)) { + item.align.push("right"); + } else if (this.rules.other.tableAlignCenter.test(align)) { + item.align.push("center"); + } else if (this.rules.other.tableAlignLeft.test(align)) { + item.align.push("left"); + } else { + item.align.push(null); + } + } + for (let i = 0; i < headers.length; i++) { + item.header.push({ + text: headers[i], + tokens: this.lexer.inline(headers[i]), + header: true, + align: item.align[i] + }); + } + for (const row of rows) { + item.rows.push(splitCells(row, item.header.length).map((cell, i) => { + return { + text: cell, + tokens: this.lexer.inline(cell), + header: false, + align: item.align[i] + }; + })); + } + return item; + } + lheading(src) { + const cap = this.rules.block.lheading.exec(src); + if (cap) { + return { + type: "heading", + raw: cap[0], + depth: cap[2].charAt(0) === "=" ? 1 : 2, + text: cap[1], + tokens: this.lexer.inline(cap[1]) + }; + } + } + paragraph(src) { + const cap = this.rules.block.paragraph.exec(src); + if (cap) { + const text = cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1]; + return { + type: "paragraph", + raw: cap[0], + text, + tokens: this.lexer.inline(text) + }; + } + } + text(src) { + const cap = this.rules.block.text.exec(src); + if (cap) { + return { + type: "text", + raw: cap[0], + text: cap[0], + tokens: this.lexer.inline(cap[0]) + }; + } + } + escape(src) { + const cap = this.rules.inline.escape.exec(src); + if (cap) { + return { + type: "escape", + raw: cap[0], + text: cap[1] + }; + } + } + tag(src) { + const cap = this.rules.inline.tag.exec(src); + if (cap) { + if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) { + this.lexer.state.inLink = true; + } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) { + this.lexer.state.inLink = false; + } + if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) { + this.lexer.state.inRawBlock = true; + } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) { + this.lexer.state.inRawBlock = false; + } + return { + type: "html", + raw: cap[0], + inLink: this.lexer.state.inLink, + inRawBlock: this.lexer.state.inRawBlock, + block: false, + text: cap[0] + }; + } + } + link(src) { + const cap = this.rules.inline.link.exec(src); + if (cap) { + const trimmedUrl = cap[2].trim(); + if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) { + if (!this.rules.other.endAngleBracket.test(trimmedUrl)) { + return; + } + const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), "\\"); + if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) { + return; + } + } else { + const lastParenIndex = findClosingBracket(cap[2], "()"); + if (lastParenIndex === -2) { + return; + } + if (lastParenIndex > -1) { + const start = cap[0].indexOf("!") === 0 ? 5 : 4; + const linkLen = start + cap[1].length + lastParenIndex; + cap[2] = cap[2].substring(0, lastParenIndex); + cap[0] = cap[0].substring(0, linkLen).trim(); + cap[3] = ""; + } + } + let href = cap[2]; + let title = ""; + if (this.options.pedantic) { + const link2 = this.rules.other.pedanticHrefTitle.exec(href); + if (link2) { + href = link2[1]; + title = link2[3]; + } + } else { + title = cap[3] ? cap[3].slice(1, -1) : ""; + } + href = href.trim(); + if (this.rules.other.startAngleBracket.test(href)) { + if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) { + href = href.slice(1); + } else { + href = href.slice(1, -1); + } + } + return outputLink(cap, { + href: href ? href.replace(this.rules.inline.anyPunctuation, "$1") : href, + title: title ? title.replace(this.rules.inline.anyPunctuation, "$1") : title + }, cap[0], this.lexer, this.rules); + } + } + reflink(src, links) { + let cap; + if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) { + const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, " "); + const link2 = links[linkString.toLowerCase()]; + if (!link2) { + const text = cap[0].charAt(0); + return { + type: "text", + raw: text, + text + }; + } + return outputLink(cap, link2, cap[0], this.lexer, this.rules); + } + } + emStrong(src, maskedSrc, prevChar = "") { + let match = this.rules.inline.emStrongLDelim.exec(src); + if (!match) return; + if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return; + const nextChar = match[1] || match[2] || ""; + if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) { + const lLength = [...match[0]].length - 1; + let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0; + const endReg = match[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; + endReg.lastIndex = 0; + maskedSrc = maskedSrc.slice(-1 * src.length + lLength); + while ((match = endReg.exec(maskedSrc)) != null) { + rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6]; + if (!rDelim) continue; + rLength = [...rDelim].length; + if (match[3] || match[4]) { + delimTotal += rLength; + continue; + } else if (match[5] || match[6]) { + if (lLength % 3 && !((lLength + rLength) % 3)) { + midDelimTotal += rLength; + continue; + } + } + delimTotal -= rLength; + if (delimTotal > 0) continue; + rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); + const lastCharLength = [...match[0]][0].length; + const raw = src.slice(0, lLength + match.index + lastCharLength + rLength); + if (Math.min(lLength, rLength) % 2) { + const text2 = raw.slice(1, -1); + return { + type: "em", + raw, + text: text2, + tokens: this.lexer.inlineTokens(text2) + }; + } + const text = raw.slice(2, -2); + return { + type: "strong", + raw, + text, + tokens: this.lexer.inlineTokens(text) + }; + } + } + } + codespan(src) { + const cap = this.rules.inline.code.exec(src); + if (cap) { + let text = cap[2].replace(this.rules.other.newLineCharGlobal, " "); + const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text); + const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text); + if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) { + text = text.substring(1, text.length - 1); + } + return { + type: "codespan", + raw: cap[0], + text + }; + } + } + br(src) { + const cap = this.rules.inline.br.exec(src); + if (cap) { + return { + type: "br", + raw: cap[0] + }; + } + } + del(src) { + const cap = this.rules.inline.del.exec(src); + if (cap) { + return { + type: "del", + raw: cap[0], + text: cap[2], + tokens: this.lexer.inlineTokens(cap[2]) + }; + } + } + autolink(src) { + const cap = this.rules.inline.autolink.exec(src); + if (cap) { + let text, href; + if (cap[2] === "@") { + text = cap[1]; + href = "mailto:" + text; + } else { + text = cap[1]; + href = text; + } + return { + type: "link", + raw: cap[0], + text, + href, + tokens: [ + { + type: "text", + raw: text, + text + } + ] + }; + } + } + url(src) { + let cap; + if (cap = this.rules.inline.url.exec(src)) { + let text, href; + if (cap[2] === "@") { + text = cap[0]; + href = "mailto:" + text; + } else { + let prevCapZero; + do { + prevCapZero = cap[0]; + cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? ""; + } while (prevCapZero !== cap[0]); + text = cap[0]; + if (cap[1] === "www.") { + href = "http://" + cap[0]; + } else { + href = cap[0]; + } + } + return { + type: "link", + raw: cap[0], + text, + href, + tokens: [ + { + type: "text", + raw: text, + text + } + ] + }; + } + } + inlineText(src) { + const cap = this.rules.inline.text.exec(src); + if (cap) { + const escaped = this.lexer.state.inRawBlock; + return { + type: "text", + raw: cap[0], + text: cap[0], + escaped + }; + } + } +}; + +// src/Lexer.ts +var _Lexer = class __Lexer { + tokens; + options; + state; + tokenizer; + inlineQueue; + constructor(options2) { + this.tokens = []; + this.tokens.links = /* @__PURE__ */ Object.create(null); + this.options = options2 || _defaults; + this.options.tokenizer = this.options.tokenizer || new _Tokenizer(); + this.tokenizer = this.options.tokenizer; + this.tokenizer.options = this.options; + this.tokenizer.lexer = this; + this.inlineQueue = []; + this.state = { + inLink: false, + inRawBlock: false, + top: true + }; + const rules = { + other, + block: block.normal, + inline: inline.normal + }; + if (this.options.pedantic) { + rules.block = block.pedantic; + rules.inline = inline.pedantic; + } else if (this.options.gfm) { + rules.block = block.gfm; + if (this.options.breaks) { + rules.inline = inline.breaks; + } else { + rules.inline = inline.gfm; + } + } + this.tokenizer.rules = rules; + } + /** + * Expose Rules + */ + static get rules() { + return { + block, + inline + }; + } + /** + * Static Lex Method + */ + static lex(src, options2) { + const lexer2 = new __Lexer(options2); + return lexer2.lex(src); + } + /** + * Static Lex Inline Method + */ + static lexInline(src, options2) { + const lexer2 = new __Lexer(options2); + return lexer2.inlineTokens(src); + } + /** + * Preprocessing + */ + lex(src) { + src = src.replace(other.carriageReturn, "\n"); + this.blockTokens(src, this.tokens); + for (let i = 0; i < this.inlineQueue.length; i++) { + const next = this.inlineQueue[i]; + this.inlineTokens(next.src, next.tokens); + } + this.inlineQueue = []; + return this.tokens; + } + blockTokens(src, tokens = [], lastParagraphClipped = false) { + if (this.options.pedantic) { + src = src.replace(other.tabCharGlobal, " ").replace(other.spaceLine, ""); + } + while (src) { + let token; + if (this.options.extensions?.block?.some((extTokenizer) => { + if (token = extTokenizer.call({ lexer: this }, src, tokens)) { + src = src.substring(token.raw.length); + tokens.push(token); + return true; + } + return false; + })) { + continue; + } + if (token = this.tokenizer.space(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (token.raw.length === 1 && lastToken !== void 0) { + lastToken.raw += "\n"; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.code(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "paragraph" || lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.fences(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.heading(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.hr(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.blockquote(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.list(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.html(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.def(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "paragraph" || lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.raw; + this.inlineQueue.at(-1).src = lastToken.text; + } else if (!this.tokens.links[token.tag]) { + this.tokens.links[token.tag] = { + href: token.href, + title: token.title + }; + } + continue; + } + if (token = this.tokenizer.table(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.lheading(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + let cutSrc = src; + if (this.options.extensions?.startBlock) { + let startIndex = Infinity; + const tempSrc = src.slice(1); + let tempStart; + this.options.extensions.startBlock.forEach((getStartIndex) => { + tempStart = getStartIndex.call({ lexer: this }, tempSrc); + if (typeof tempStart === "number" && tempStart >= 0) { + startIndex = Math.min(startIndex, tempStart); + } + }); + if (startIndex < Infinity && startIndex >= 0) { + cutSrc = src.substring(0, startIndex + 1); + } + } + if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) { + const lastToken = tokens.at(-1); + if (lastParagraphClipped && lastToken?.type === "paragraph") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.pop(); + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + lastParagraphClipped = cutSrc.length !== src.length; + src = src.substring(token.raw.length); + continue; + } + if (token = this.tokenizer.text(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.pop(); + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + continue; + } + if (src) { + const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); + if (this.options.silent) { + console.error(errMsg); + break; + } else { + throw new Error(errMsg); + } + } + } + this.state.top = true; + return tokens; + } + inline(src, tokens = []) { + this.inlineQueue.push({ src, tokens }); + return tokens; + } + /** + * Lexing/Compiling + */ + inlineTokens(src, tokens = []) { + let maskedSrc = src; + let match = null; + if (this.tokens.links) { + const links = Object.keys(this.tokens.links); + if (links.length > 0) { + while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) { + if (links.includes(match[0].slice(match[0].lastIndexOf("[") + 1, -1))) { + maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex); + } + } + } + } + while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) { + maskedSrc = maskedSrc.slice(0, match.index) + "++" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); + } + while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) { + maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); + } + let keepPrevChar = false; + let prevChar = ""; + while (src) { + if (!keepPrevChar) { + prevChar = ""; + } + keepPrevChar = false; + let token; + if (this.options.extensions?.inline?.some((extTokenizer) => { + if (token = extTokenizer.call({ lexer: this }, src, tokens)) { + src = src.substring(token.raw.length); + tokens.push(token); + return true; + } + return false; + })) { + continue; + } + if (token = this.tokenizer.escape(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.tag(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.link(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.reflink(src, this.tokens.links)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (token.type === "text" && lastToken?.type === "text") { + lastToken.raw += token.raw; + lastToken.text += token.text; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.codespan(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.br(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.del(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.autolink(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (!this.state.inLink && (token = this.tokenizer.url(src))) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + let cutSrc = src; + if (this.options.extensions?.startInline) { + let startIndex = Infinity; + const tempSrc = src.slice(1); + let tempStart; + this.options.extensions.startInline.forEach((getStartIndex) => { + tempStart = getStartIndex.call({ lexer: this }, tempSrc); + if (typeof tempStart === "number" && tempStart >= 0) { + startIndex = Math.min(startIndex, tempStart); + } + }); + if (startIndex < Infinity && startIndex >= 0) { + cutSrc = src.substring(0, startIndex + 1); + } + } + if (token = this.tokenizer.inlineText(cutSrc)) { + src = src.substring(token.raw.length); + if (token.raw.slice(-1) !== "_") { + prevChar = token.raw.slice(-1); + } + keepPrevChar = true; + const lastToken = tokens.at(-1); + if (lastToken?.type === "text") { + lastToken.raw += token.raw; + lastToken.text += token.text; + } else { + tokens.push(token); + } + continue; + } + if (src) { + const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); + if (this.options.silent) { + console.error(errMsg); + break; + } else { + throw new Error(errMsg); + } + } + } + return tokens; + } +}; + +// src/Renderer.ts +var _Renderer = class { + options; + parser; + // set by the parser + constructor(options2) { + this.options = options2 || _defaults; + } + space(token) { + return ""; + } + code({ text, lang, escaped }) { + const langString = (lang || "").match(other.notSpaceStart)?.[0]; + const code = text.replace(other.endingNewline, "") + "\n"; + if (!langString) { + return "
    " + (escaped ? code : escape2(code, true)) + "
    \n"; + } + return '
    ' + (escaped ? code : escape2(code, true)) + "
    \n"; + } + blockquote({ tokens }) { + const body = this.parser.parse(tokens); + return `
    +${body}
    +`; + } + html({ text }) { + return text; + } + heading({ tokens, depth }) { + return `${this.parser.parseInline(tokens)} +`; + } + hr(token) { + return "
    \n"; + } + list(token) { + const ordered = token.ordered; + const start = token.start; + let body = ""; + for (let j = 0; j < token.items.length; j++) { + const item = token.items[j]; + body += this.listitem(item); + } + const type = ordered ? "ol" : "ul"; + const startAttr = ordered && start !== 1 ? ' start="' + start + '"' : ""; + return "<" + type + startAttr + ">\n" + body + "\n"; + } + listitem(item) { + let itemBody = ""; + if (item.task) { + const checkbox = this.checkbox({ checked: !!item.checked }); + if (item.loose) { + if (item.tokens[0]?.type === "paragraph") { + item.tokens[0].text = checkbox + " " + item.tokens[0].text; + if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === "text") { + item.tokens[0].tokens[0].text = checkbox + " " + escape2(item.tokens[0].tokens[0].text); + item.tokens[0].tokens[0].escaped = true; + } + } else { + item.tokens.unshift({ + type: "text", + raw: checkbox + " ", + text: checkbox + " ", + escaped: true + }); + } + } else { + itemBody += checkbox + " "; + } + } + itemBody += this.parser.parse(item.tokens, !!item.loose); + return `
  • ${itemBody}
  • +`; + } + checkbox({ checked }) { + return "'; + } + paragraph({ tokens }) { + return `

    ${this.parser.parseInline(tokens)}

    +`; + } + table(token) { + let header = ""; + let cell = ""; + for (let j = 0; j < token.header.length; j++) { + cell += this.tablecell(token.header[j]); + } + header += this.tablerow({ text: cell }); + let body = ""; + for (let j = 0; j < token.rows.length; j++) { + const row = token.rows[j]; + cell = ""; + for (let k = 0; k < row.length; k++) { + cell += this.tablecell(row[k]); + } + body += this.tablerow({ text: cell }); + } + if (body) body = `${body}`; + return "\n\n" + header + "\n" + body + "
    \n"; + } + tablerow({ text }) { + return ` +${text} +`; + } + tablecell(token) { + const content = this.parser.parseInline(token.tokens); + const type = token.header ? "th" : "td"; + const tag2 = token.align ? `<${type} align="${token.align}">` : `<${type}>`; + return tag2 + content + ` +`; + } + /** + * span level renderer + */ + strong({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + em({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + codespan({ text }) { + return `${escape2(text, true)}`; + } + br(token) { + return "
    "; + } + del({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + link({ href, title, tokens }) { + const text = this.parser.parseInline(tokens); + const cleanHref = cleanUrl(href); + if (cleanHref === null) { + return text; + } + href = cleanHref; + let out = '
    "; + return out; + } + image({ href, title, text, tokens }) { + if (tokens) { + text = this.parser.parseInline(tokens, this.parser.textRenderer); + } + const cleanHref = cleanUrl(href); + if (cleanHref === null) { + return escape2(text); + } + href = cleanHref; + let out = `${text} { + const tokens2 = genericToken[childTokens].flat(Infinity); + values = values.concat(this.walkTokens(tokens2, callback)); + }); + } else if (genericToken.tokens) { + values = values.concat(this.walkTokens(genericToken.tokens, callback)); + } + } + } + } + return values; + } + use(...args) { + const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} }; + args.forEach((pack) => { + const opts = { ...pack }; + opts.async = this.defaults.async || opts.async || false; + if (pack.extensions) { + pack.extensions.forEach((ext) => { + if (!ext.name) { + throw new Error("extension name required"); + } + if ("renderer" in ext) { + const prevRenderer = extensions.renderers[ext.name]; + if (prevRenderer) { + extensions.renderers[ext.name] = function(...args2) { + let ret = ext.renderer.apply(this, args2); + if (ret === false) { + ret = prevRenderer.apply(this, args2); + } + return ret; + }; + } else { + extensions.renderers[ext.name] = ext.renderer; + } + } + if ("tokenizer" in ext) { + if (!ext.level || ext.level !== "block" && ext.level !== "inline") { + throw new Error("extension level must be 'block' or 'inline'"); + } + const extLevel = extensions[ext.level]; + if (extLevel) { + extLevel.unshift(ext.tokenizer); + } else { + extensions[ext.level] = [ext.tokenizer]; + } + if (ext.start) { + if (ext.level === "block") { + if (extensions.startBlock) { + extensions.startBlock.push(ext.start); + } else { + extensions.startBlock = [ext.start]; + } + } else if (ext.level === "inline") { + if (extensions.startInline) { + extensions.startInline.push(ext.start); + } else { + extensions.startInline = [ext.start]; + } + } + } + } + if ("childTokens" in ext && ext.childTokens) { + extensions.childTokens[ext.name] = ext.childTokens; + } + }); + opts.extensions = extensions; + } + if (pack.renderer) { + const renderer = this.defaults.renderer || new _Renderer(this.defaults); + for (const prop in pack.renderer) { + if (!(prop in renderer)) { + throw new Error(`renderer '${prop}' does not exist`); + } + if (["options", "parser"].includes(prop)) { + continue; + } + const rendererProp = prop; + const rendererFunc = pack.renderer[rendererProp]; + const prevRenderer = renderer[rendererProp]; + renderer[rendererProp] = (...args2) => { + let ret = rendererFunc.apply(renderer, args2); + if (ret === false) { + ret = prevRenderer.apply(renderer, args2); + } + return ret || ""; + }; + } + opts.renderer = renderer; + } + if (pack.tokenizer) { + const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults); + for (const prop in pack.tokenizer) { + if (!(prop in tokenizer)) { + throw new Error(`tokenizer '${prop}' does not exist`); + } + if (["options", "rules", "lexer"].includes(prop)) { + continue; + } + const tokenizerProp = prop; + const tokenizerFunc = pack.tokenizer[tokenizerProp]; + const prevTokenizer = tokenizer[tokenizerProp]; + tokenizer[tokenizerProp] = (...args2) => { + let ret = tokenizerFunc.apply(tokenizer, args2); + if (ret === false) { + ret = prevTokenizer.apply(tokenizer, args2); + } + return ret; + }; + } + opts.tokenizer = tokenizer; + } + if (pack.hooks) { + const hooks = this.defaults.hooks || new _Hooks(); + for (const prop in pack.hooks) { + if (!(prop in hooks)) { + throw new Error(`hook '${prop}' does not exist`); + } + if (["options", "block"].includes(prop)) { + continue; + } + const hooksProp = prop; + const hooksFunc = pack.hooks[hooksProp]; + const prevHook = hooks[hooksProp]; + if (_Hooks.passThroughHooks.has(prop)) { + hooks[hooksProp] = (arg) => { + if (this.defaults.async) { + return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => { + return prevHook.call(hooks, ret2); + }); + } + const ret = hooksFunc.call(hooks, arg); + return prevHook.call(hooks, ret); + }; + } else { + hooks[hooksProp] = (...args2) => { + let ret = hooksFunc.apply(hooks, args2); + if (ret === false) { + ret = prevHook.apply(hooks, args2); + } + return ret; + }; + } + } + opts.hooks = hooks; + } + if (pack.walkTokens) { + const walkTokens2 = this.defaults.walkTokens; + const packWalktokens = pack.walkTokens; + opts.walkTokens = function(token) { + let values = []; + values.push(packWalktokens.call(this, token)); + if (walkTokens2) { + values = values.concat(walkTokens2.call(this, token)); + } + return values; + }; + } + this.defaults = { ...this.defaults, ...opts }; + }); + return this; + } + setOptions(opt) { + this.defaults = { ...this.defaults, ...opt }; + return this; + } + lexer(src, options2) { + return _Lexer.lex(src, options2 ?? this.defaults); + } + parser(tokens, options2) { + return _Parser.parse(tokens, options2 ?? this.defaults); + } + parseMarkdown(blockType) { + const parse2 = (src, options2) => { + const origOpt = { ...options2 }; + const opt = { ...this.defaults, ...origOpt }; + const throwError = this.onError(!!opt.silent, !!opt.async); + if (this.defaults.async === true && origOpt.async === false) { + return throwError(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.")); + } + if (typeof src === "undefined" || src === null) { + return throwError(new Error("marked(): input parameter is undefined or null")); + } + if (typeof src !== "string") { + return throwError(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(src) + ", string expected")); + } + if (opt.hooks) { + opt.hooks.options = opt; + opt.hooks.block = blockType; + } + const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline; + const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline; + if (opt.async) { + return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError); + } + try { + if (opt.hooks) { + src = opt.hooks.preprocess(src); + } + let tokens = lexer2(src, opt); + if (opt.hooks) { + tokens = opt.hooks.processAllTokens(tokens); + } + if (opt.walkTokens) { + this.walkTokens(tokens, opt.walkTokens); + } + let html2 = parser2(tokens, opt); + if (opt.hooks) { + html2 = opt.hooks.postprocess(html2); + } + return html2; + } catch (e) { + return throwError(e); + } + }; + return parse2; + } + onError(silent, async) { + return (e) => { + e.message += "\nPlease report this to https://github.com/markedjs/marked."; + if (silent) { + const msg = "

    An error occurred:

    " + escape2(e.message + "", true) + "
    "; + if (async) { + return Promise.resolve(msg); + } + return msg; + } + if (async) { + return Promise.reject(e); + } + throw e; + }; + } +}; + +// src/marked.ts +var markedInstance = new Marked(); +function marked(src, opt) { + return markedInstance.parse(src, opt); +} +marked.options = marked.setOptions = function(options2) { + markedInstance.setOptions(options2); + marked.defaults = markedInstance.defaults; + changeDefaults(marked.defaults); + return marked; +}; +marked.getDefaults = _getDefaults; +marked.defaults = _defaults; +marked.use = function(...args) { + markedInstance.use(...args); + marked.defaults = markedInstance.defaults; + changeDefaults(marked.defaults); + return marked; +}; +marked.walkTokens = function(tokens, callback) { + return markedInstance.walkTokens(tokens, callback); +}; +marked.parseInline = markedInstance.parseInline; +marked.Parser = _Parser; +marked.parser = _Parser.parse; +marked.Renderer = _Renderer; +marked.TextRenderer = _TextRenderer; +marked.Lexer = _Lexer; +marked.lexer = _Lexer.lex; +marked.Tokenizer = _Tokenizer; +marked.Hooks = _Hooks; +marked.parse = marked; + +const SearchcraftSummaryBox = /*@__PURE__*/ proxyCustomElement(class SearchcraftSummaryBox extends H { + constructor(registerHost) { + super(); + if (registerHost !== false) { + this.__registerHost(); + } + } + /** + * The id of the Searchcraft instance that this component should use. + */ + searchcraftId; + summary = ''; + isLoading = false; + isSummaryNotEnabled = false; + get hostElement() { return this; } + unsubscribe; + cleanupCore; + onCoreAvailable(core) { + core.store.setState({ hasSummaryBox: true }); + this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this)); + } + connectedCallback() { + this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this)); + } + disconnectedCallback() { + this.unsubscribe?.(); + this.cleanupCore?.(); + } + /** + * Handles state changes from the store and updates component state. + */ + handleStateChange(state) { + this.isLoading = state.isSummaryLoading; + this.isSummaryNotEnabled = state.isSummaryNotEnabled; + this.summary = this.sanitizeMarkdown(state.summary); + // Update DOM directly for performance (avoids re-render) + this.updateContentElement(state.summary); + } + /** + * Sanitizes and converts markdown to HTML. + */ + sanitizeMarkdown(markdown) { + return purify.sanitize(marked.parse(markdown)); + } + /** + * Updates the content element directly without triggering a re-render. + */ + updateContentElement(markdown) { + const contentElement = this.hostElement?.querySelector('.searchcraft-summary-box-content'); + if (contentElement) { + contentElement.innerHTML = this.sanitizeMarkdown(markdown); + } + } + /** + * Renders the appropriate content based on current state. + */ + renderContent() { + if (this.isLoading) { + return h("searchcraft-loading", { label: 'LOADING' }); + } + if (this.isSummaryNotEnabled) { + return (h("div", { class: 'searchcraft-summary-box-content' }, "AI summaries are not enabled")); + } + return h("div", { class: 'searchcraft-summary-box-content' }, this.summary); + } + render() { + return h("div", { key: '82fe97172c3299643ba0ac303031166502c4101a', class: 'searchcraft-summary-box' }, this.renderContent()); + } +}, [768, "searchcraft-summary-box", { + "searchcraftId": [1, "searchcraft-id"], + "summary": [32], + "isLoading": [32], + "isSummaryNotEnabled": [32] + }]); +function defineCustomElement() { + if (typeof customElements === "undefined") { + return; + } + const components = ["searchcraft-summary-box", "searchcraft-loading"]; + components.forEach(tagName => { switch (tagName) { + case "searchcraft-summary-box": + if (!customElements.get(transformTag(tagName))) { + customElements.define(transformTag(tagName), SearchcraftSummaryBox); + } + break; + case "searchcraft-loading": + if (!customElements.get(transformTag(tagName))) { + defineCustomElement$1(); + } + break; + } }); +} + +export { SearchcraftSummaryBox as S, defineCustomElement as d }; +//# sourceMappingURL=searchcraft-summary-box2.js.map + +//# sourceMappingURL=searchcraft-summary-box2.js.map \ No newline at end of file diff --git a/public/sdk/components/searchcraft-summary-box2.js.map b/public/sdk/components/searchcraft-summary-box2.js.map new file mode 100644 index 0000000..fdff652 --- /dev/null +++ b/public/sdk/components/searchcraft-summary-box2.js.map @@ -0,0 +1 @@ +{"file":"searchcraft-summary-box2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","DOMPurify"],"sources":["../../node_modules/marked/lib/marked.esm.js","src/components/searchcraft-summary-box/searchcraft-summary-box.tsx"],"sourcesContent":["/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^
    /i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|\\\\n*|$)|\\\\n*|$)|)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \")|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^|^\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"
    \" + (escaped ? code : escape2(code, true)) + \"
    \\n\";\n }\n return '
    ' + (escaped ? code : escape2(code, true)) + \"
    \\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `
    \n${body}
    \n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `${this.parser.parseInline(tokens)}\n`;\n }\n hr(token) {\n return \"
    \\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `
  • ${itemBody}
  • \n`;\n }\n checkbox({ checked }) {\n return \"';\n }\n paragraph({ tokens }) {\n return `

    ${this.parser.parseInline(tokens)}

    \n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `${body}`;\n return \"\\n\\n\" + header + \"\\n\" + body + \"
    \\n\";\n }\n tablerow({ text }) {\n return `\n${text}\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n em({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n codespan({ text }) {\n return `${escape2(text, true)}`;\n }\n br(token) {\n return \"
    \";\n }\n del({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    \" + text + \"\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"

    An error occurred:

    \" + escape2(e.message + \"\", true) + \"
    \";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = _Parser.parse;\nvar lexer = _Lexer.lex;\nexport {\n _Hooks as Hooks,\n _Lexer as Lexer,\n Marked,\n _Parser as Parser,\n _Renderer as Renderer,\n _TextRenderer as TextRenderer,\n _Tokenizer as Tokenizer,\n _defaults as defaults,\n _getDefaults as getDefaults,\n lexer,\n marked,\n options,\n parse,\n parseInline,\n parser,\n setOptions,\n use,\n walkTokens\n};\n//# sourceMappingURL=marked.esm.js.map\n","import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Element, Prop, State, h } from '@stencil/core';\nimport type { SearchcraftState } from '@store';\nimport DOMPurify from 'dompurify';\nimport { marked } from 'marked';\n\n/**\n * This component renders a summary box for RAG search result summaries.\n * When the user makes a search, a network call is made to retrieve the summary content, which is then\n * rendered in this box.\n *\n * NOTE: This component requires the usage of a read key that has \"SUMMARY\" permissions.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftSummaryBox } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftSummaryBox } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-summary-box',\n shadow: false,\n})\nexport class SearchcraftSummaryBox {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n @State() summary = '';\n @State() isLoading = false;\n @State() isSummaryNotEnabled = false;\n @Element() hostElement?: HTMLElement;\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n core.store.setState({ hasSummaryBox: true });\n this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this));\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n /**\n * Handles state changes from the store and updates component state.\n */\n private handleStateChange(state: SearchcraftState) {\n this.isLoading = state.isSummaryLoading;\n this.isSummaryNotEnabled = state.isSummaryNotEnabled;\n this.summary = this.sanitizeMarkdown(state.summary);\n\n // Update DOM directly for performance (avoids re-render)\n this.updateContentElement(state.summary);\n }\n\n /**\n * Sanitizes and converts markdown to HTML.\n */\n private sanitizeMarkdown(markdown: string): string {\n return DOMPurify.sanitize(marked.parse(markdown) as string);\n }\n\n /**\n * Updates the content element directly without triggering a re-render.\n */\n private updateContentElement(markdown: string) {\n const contentElement = this.hostElement?.querySelector(\n '.searchcraft-summary-box-content',\n );\n\n if (contentElement) {\n contentElement.innerHTML = this.sanitizeMarkdown(markdown);\n }\n }\n\n /**\n * Renders the appropriate content based on current state.\n */\n private renderContent() {\n if (this.isLoading) {\n return ;\n }\n\n if (this.isSummaryNotEnabled) {\n return (\n
    \n AI summaries are not enabled\n
    \n );\n }\n\n return
    {this.summary}
    ;\n }\n\n render() {\n return
    {this.renderContent()}
    ;\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-theme.js b/public/sdk/components/searchcraft-theme.js index 1856078..8ce08bd 100644 --- a/public/sdk/components/searchcraft-theme.js +++ b/public/sdk/components/searchcraft-theme.js @@ -1,6 +1,6 @@ -import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.3'; +import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?scv=0.14.0'; -var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */ +var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form searchcraft-summary-box{margin-bottom:16px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-modal-popover-list-view searchcraft-summary-box,.searchcraft-popover-form-fullscreen-popover-list-view searchcraft-summary-box{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-inline-wrapper searchcraft-summary-box{padding:16px 12px;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{align-items:center;color:var(--sc-content-neutral-primary);display:flex;max-width:160px;padding-top:6px;width:100%}.searchcraft-popover-footer-results{align-items:center;display:flex;gap:8px}.searchcraft-popover-footer-view-all{align-items:center;border-radius:999px;border:1px solid var(--sc-border-neutral-strong);color:var(--sc-content-neutral-primary);display:inline-flex;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-bold);gap:6px;line-height:1;padding:6px 10px;text-decoration:none}.searchcraft-popover-footer-view-all-shortcut{display:inline-flex;gap:2px}.searchcraft-popover-footer-view-all-shortcut kbd{background-color:var(--sc-surface-neutral-primary);border-radius:4px;border:1px solid var(--sc-border-neutral-subtle);line-height:1;padding:1px 4px}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.searchcraft-loading-dots{display:flex;gap:8px;align-items:center;height:40px}.searchcraft-loading-dots>div{width:10px;height:10px;border-radius:50%;background-color:var(--sc-surface-brand-primary);animation:searchcraft-jump .6s ease-in-out infinite}.searchcraft-loading-dots .searchcraft-loading-dot-2{animation-delay:.15s}.searchcraft-loading-dots .searchcraft-loading-dot-3{animation-delay:.3s}.searchcraft-loading-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);letter-spacing:2px;color:#828282;margin:0}@keyframes searchcraft-jump{0%{transform:translateY(0);animation-timing-function:cubic-bezier(0.33, 1, 0.68, 1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0.32, 0, 0.67, 0)}100%{transform:translateY(0)}}/*# sourceMappingURL=hologram.css.map */ `; const SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftTheme extends H { @@ -11,7 +11,7 @@ const SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftThe } } render() { - return h("style", { key: '13c28bb6075d6fcbec33938fd2227d9fb6129bf2' }, styles); + return h("style", { key: 'e4b7c8e8d20a108df303156af5f9fcb4a19bbbe6' }, styles); } }, [256, "searchcraft-theme"]); function defineCustomElement$1() { diff --git a/public/sdk/components/searchcraft-theme.js.map b/public/sdk/components/searchcraft-theme.js.map index 05c14bf..805a41d 100644 --- a/public/sdk/components/searchcraft-theme.js.map +++ b/public/sdk/components/searchcraft-theme.js.map @@ -1 +1 @@ -{"file":"searchcraft-theme.js","mappings":";;AAAA,aAAe,CAAC;AAChB;;MCkCaA,kBAAgB,iBAAAC,kBAAA,CAAA,MAAA,gBAAA,SAAAC,CAAA,CAAA;;;;;;;IAC3B,MAAM,GAAA;AACJ,QAAA,OAAO,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAQ,MAAM,CAAS;;;;;;;;;;;;;;;;;;;;;;","names":["SearchcraftTheme","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/themes/hologram.css?raw","src/components/searchcraft-theme/searchcraft-theme.tsx"],"sourcesContent":["export default `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:\"\";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */\n`","import { Component, h } from '@stencil/core';\nimport styles from '../../themes/hologram.css?raw';\n\n/**\n * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'\n *\n * @react-import\n * ```jsx\n * import { SearchcraftTheme } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftTheme } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-theme',\n shadow: false,\n})\nexport class SearchcraftTheme {\n render() {\n return ;\n }\n}\n"],"version":3} \ No newline at end of file +{"file":"searchcraft-theme.js","mappings":";;AAAA,aAAe,CAAC;AAChB;;MCkCaA,kBAAgB,iBAAAC,kBAAA,CAAA,MAAA,gBAAA,SAAAC,CAAA,CAAA;;;;;;;IAC3B,MAAM,GAAA;AACJ,QAAA,OAAO,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAQ,MAAM,CAAS;;;;;;;;;;;;;;;;;;;;;;","names":["SearchcraftTheme","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/themes/hologram.css?raw","src/components/searchcraft-theme/searchcraft-theme.tsx"],"sourcesContent":["export default `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:\"\";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form searchcraft-summary-box{margin-bottom:16px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-modal-popover-list-view searchcraft-summary-box,.searchcraft-popover-form-fullscreen-popover-list-view searchcraft-summary-box{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-inline-wrapper searchcraft-summary-box{padding:16px 12px;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{align-items:center;color:var(--sc-content-neutral-primary);display:flex;max-width:160px;padding-top:6px;width:100%}.searchcraft-popover-footer-results{align-items:center;display:flex;gap:8px}.searchcraft-popover-footer-view-all{align-items:center;border-radius:999px;border:1px solid var(--sc-border-neutral-strong);color:var(--sc-content-neutral-primary);display:inline-flex;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-bold);gap:6px;line-height:1;padding:6px 10px;text-decoration:none}.searchcraft-popover-footer-view-all-shortcut{display:inline-flex;gap:2px}.searchcraft-popover-footer-view-all-shortcut kbd{background-color:var(--sc-surface-neutral-primary);border-radius:4px;border:1px solid var(--sc-border-neutral-subtle);line-height:1;padding:1px 4px}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.searchcraft-loading-dots{display:flex;gap:8px;align-items:center;height:40px}.searchcraft-loading-dots>div{width:10px;height:10px;border-radius:50%;background-color:var(--sc-surface-brand-primary);animation:searchcraft-jump .6s ease-in-out infinite}.searchcraft-loading-dots .searchcraft-loading-dot-2{animation-delay:.15s}.searchcraft-loading-dots .searchcraft-loading-dot-3{animation-delay:.3s}.searchcraft-loading-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);letter-spacing:2px;color:#828282;margin:0}@keyframes searchcraft-jump{0%{transform:translateY(0);animation-timing-function:cubic-bezier(0.33, 1, 0.68, 1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0.32, 0, 0.67, 0)}100%{transform:translateY(0)}}/*# sourceMappingURL=hologram.css.map */\n`","import { Component, h } from '@stencil/core';\nimport styles from '../../themes/hologram.css?raw';\n\n/**\n * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'\n *\n * @react-import\n * ```jsx\n * import { SearchcraftTheme } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftTheme } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * \n * ```\n *\n * @react-example\n * ```jsx\n * \n * ```\n *\n * @vue-example\n * ```jsx\n * \n * ```\n */\n@Component({\n tag: 'searchcraft-theme',\n shadow: false,\n})\nexport class SearchcraftTheme {\n render() {\n return ;\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/public/sdk/components/searchcraft-toggle-button.js b/public/sdk/components/searchcraft-toggle-button.js index 3a32a3e..40bde1e 100644 --- a/public/sdk/components/searchcraft-toggle-button.js +++ b/public/sdk/components/searchcraft-toggle-button.js @@ -1,4 +1,4 @@ -import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './searchcraft-toggle-button2.js?v=0.13.3'; +import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './searchcraft-toggle-button2.js?scv=0.14.0'; const SearchcraftToggleButton = SearchcraftToggleButton$1; const defineCustomElement = defineCustomElement$1; diff --git a/public/sdk/components/searchcraft-toggle-button2.js b/public/sdk/components/searchcraft-toggle-button2.js index f7cb72d..9491bdb 100644 --- a/public/sdk/components/searchcraft-toggle-button2.js +++ b/public/sdk/components/searchcraft-toggle-button2.js @@ -1,6 +1,6 @@ -import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.3'; -import { r as registry } from './CoreInstanceRegistry.js?v=0.13.3'; -import { c as classNames } from './index3.js?v=0.13.3'; +import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?scv=0.14.0'; +import { r as registry } from './CoreInstanceRegistry.js?scv=0.14.0'; +import { c as classNames } from './index3.js?scv=0.14.0'; const SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H { constructor(registerHost) { @@ -52,9 +52,9 @@ const SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class Searchcra this.cleanupCore?.(); } render() { - return (h("div", { key: '7dad6f4e4422a62f6403724ff16fe25e042ae2ac', class: classNames('searchcraft-toggle-button', { + return (h("div", { key: '27d05b370fcb2a4ca440abc3ef777c264f6139a6', class: classNames('searchcraft-toggle-button', { 'searchcraft-toggle-button-active': this.isActive, - }) }, h("div", { key: '2faa2ee1eb5cb78dc39f523415f2be96bc23fed1' }, h("p", { key: '29ea63c281b8f1ae041ba75a149ce1b60e936662', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h("p", { key: 'e51efaae5ca79eede71852e6dec8eff4575139fe', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h("button", { key: 'd590da981692db162df9b8086ba2444d6a56ef9d', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, h("div", { key: '5be6ee1dd7dc58bd67fff18923569caee37b4936', class: 'searchcraft-toggle-button-handle' })))); + }) }, h("div", { key: 'e3079a80acf706576a36efb04c52c84bda90be8a' }, h("p", { key: 'cbd732b19bd408e9b3dc3602b16a47060603e4f6', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h("p", { key: '7b68d0c50b9498e9f64968987b0d433b6bdf6327', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h("button", { key: '05366d9f252746d4860909de37b01e908f85f2fb', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, h("div", { key: '26d3ab13df50e18e6f7ec76da55089feed6d53b9', class: 'searchcraft-toggle-button-handle' })))); } }, [768, "searchcraft-toggle-button", { "label": [1], diff --git a/public/sdk/hydrate/index.js b/public/sdk/hydrate/index.js index fc6c682..d6b4cc9 100644 --- a/public/sdk/hydrate/index.js +++ b/public/sdk/hydrate/index.js @@ -5550,7 +5550,9 @@ class SearchcraftFilterPanel { } }; const handleToggle = async () => { - if (facetListElement && 'handleCollapseToggle' in facetListElement && 'getIsCollapsed' in facetListElement) { + if (facetListElement && + 'handleCollapseToggle' in facetListElement && + 'getIsCollapsed' in facetListElement) { await facetListElement.handleCollapseToggle(); const isCollapsed = await facetListElement.getIsCollapsed(); updateLabelAttributes(isCollapsed); @@ -5559,12 +5561,19 @@ class SearchcraftFilterPanel { // return "filters-list" return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { ref: (el) => { labelElement = el || null; - }, class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' ? '' : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' ? '' : undefined, onClick: handleToggle, onKeyDown: async (event) => { + }, "aria-expanded": item.options.initialCollapseState !== 'closed', class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' + ? '' + : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' + ? '' + : undefined, onClick: () => void handleToggle(), onKeyDown: (event) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); - await handleToggle(); + void handleToggle(); } - }, tabIndex: 0, role: 'button', "aria-expanded": item.options.initialCollapseState !== 'closed' }, filterItem.label), hAsync("searchcraft-facet-list", { ref: (el) => { + }, + /* biome-ignore lint/a11y/useSemanticElements: This label is intentionally a

    for styling/layout; it behaves like a button. */ + /* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: This

    is intentionally used as an interactive control. */ + role: 'button', tabIndex: 0 }, filterItem.label), hAsync("searchcraft-facet-list", { ref: (el) => { facetListElement = el || null; }, fieldName: item.fieldName, exclude: item.options.exclude, initialCollapseState: item.options.initialCollapseState, viewMoreThreshold: item.options.viewMoreThreshold, onFacetSelectionUpdated: (event) => { this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths); @@ -5853,7 +5862,10 @@ class SearchcraftInputLabel { } label; render() { - return (hAsync("div", { key: '5bda164202246eeb2e56bb6a25bede9931898e7a', class: 'searchcraft-loading' }, hAsync("div", { key: 'e33a5abc6686f9983c718a2532aa2d46902d98a2', class: 'searchcraft-loading-bars' }, hAsync("div", { key: '85ff7af527b8f419c9bfd6e84331dd68772e6fdd', class: 'searchcraft-loading-bar-1' }), hAsync("div", { key: '1485d17e9262dbec6d2e5976a63149878137821c', class: 'searchcraft-loading-bar-2' }), hAsync("div", { key: 'd2939b9f7bc0599df7d96db91802ebfcbf232f3e', class: 'searchcraft-loading-bar-3' }), hAsync("div", { key: '7a73bd5baf25ec789c3170e066d1333b905bfe7b', class: 'searchcraft-loading-bar-4' }), hAsync("div", { key: 'b644b618766727773b21d288945c21b6ef0be958', class: 'searchcraft-loading-bar-5' }), hAsync("div", { key: '4f5123a786fc40891ca54edc538dd56f683b26ce', class: 'searchcraft-loading-bar-6' })), hAsync("p", { key: '967c1a6fb41231c8d713b78facca98e7f5a80709', class: 'searchcraft-loading-label' }, this.label))); + const accessibleLabel = this.label ?? 'Loading'; + return (hAsync("div", { key: 'd749250c5f56c703da7f1cba4a226a202ae269c0', class: 'searchcraft-loading', + // biome-ignore lint/a11y/useSemanticElements: is semantically incorrect for a loading indicator + role: 'status', "aria-live": 'polite', "aria-label": accessibleLabel }, hAsync("div", { key: '0f834793686bcf8dff56769ad65311c1f591e8dd', class: 'searchcraft-loading-dots', "aria-hidden": 'true' }, hAsync("div", { key: '2174c333eecf0630ce984b2dece74675356259d9', class: 'searchcraft-loading-dot-1' }), hAsync("div", { key: '927fee69cd86dbd9ae57776c2a15fa6956707fac', class: 'searchcraft-loading-dot-2' }), hAsync("div", { key: 'cfd37c9a9a12dfc9963aa53c3979fb59dc7a132c', class: 'searchcraft-loading-dot-3' })), this.label ? (hAsync("p", { class: 'searchcraft-loading-label' }, this.label)) : null)); } static get cmpMeta() { return { "$flags$": 768, @@ -5908,6 +5920,19 @@ class SearchcraftPagination { * @default true */ scrollToTop = true; + /** + * The URL query string parameter name used to track the current page. When a user navigates + * to a URL that contains this parameter, the pagination component will automatically navigate + * to that page. + * @default "p" + */ + pageQueryParam = 'p'; + /** + * Whether to use a query string parameter to track and restore the current page. + * Set to `false` to disable query string synchronisation entirely. + * @default true + */ + usePageQueryParam = true; // store vars searchTerm; searchResultsPerPage; @@ -5922,6 +5947,7 @@ class SearchcraftPagination { setSearchResultsPage = () => { }; unsubscribe = () => { }; cleanupCore; + _initialPageApplied = false; onCoreAvailable(core) { this.unsubscribe = core.store.subscribe((state) => { // store vars @@ -5939,6 +5965,14 @@ class SearchcraftPagination { this.searchResultsPerPage; // store functions this.setSearchResultsPage = state.setSearchResultsPage; + // Apply initial page from URL query param (only once, on first subscription tick) + if (!this._initialPageApplied) { + this._initialPageApplied = true; + const initialPage = this.getPageFromUrl(); + if (initialPage !== null && initialPage !== state.searchResultsPage) { + state.setSearchResultsPage(initialPage); + } + } }); } connectedCallback() { @@ -5951,6 +5985,7 @@ class SearchcraftPagination { /** * Smooth scroll to the top of the search results component */ + scrollAnimationId; smoothScrollToSearchResults() { if (!this.scrollToTop) { return; @@ -5959,14 +5994,17 @@ class SearchcraftPagination { if (!searchResultsElement) { return; } + // Cancel any in-flight scroll animation + if (this.scrollAnimationId) { + cancelAnimationFrame(this.scrollAnimationId); + } const elementRect = searchResultsElement.getBoundingClientRect(); - const scrollOffset = 200; // Offset in pixels above the element + const scrollOffset = 200; const targetPosition = elementRect.top + window.scrollY - scrollOffset; const startPosition = window.scrollY; const distance = targetPosition - startPosition; const duration = 1500; let startTime = null; - // smooth scrolling const easeOutExpo = (t) => { return t === 1 ? 1 : 1 - 2 ** (-10 * t); }; @@ -5979,13 +6017,73 @@ class SearchcraftPagination { const ease = easeOutExpo(progress); window.scrollTo(0, startPosition + distance * ease); if (progress < 1) { - requestAnimationFrame(animation); + this.scrollAnimationId = requestAnimationFrame(animation); + } + else { + this.scrollAnimationId = undefined; } }; - requestAnimationFrame(animation); + this.scrollAnimationId = requestAnimationFrame(animation); + } + /** + * Returns the page number from the URL query string, or null if not present / disabled. + * Reads from the top-level window when inside a same-origin iframe so that the + * address-bar URL is the source of truth (consistent with updateUrlPage). + */ + getPageFromUrl() { + if (!this.usePageQueryParam || typeof window === 'undefined') { + return null; + } + let targetWindow = window; + try { + if (window.top && window.top !== window && window.top.location.href) { + targetWindow = window.top; + } + } + catch { + // Cross-origin iframe — stay with the current window + } + const params = new URLSearchParams(targetWindow.location.search); + const raw = params.get(this.pageQueryParam); + if (raw === null) { + return null; + } + const page = Number.parseInt(raw, 10); + return Number.isNaN(page) || page < 1 ? null : page; + } + /** + * Updates (or removes) the page query string parameter in the browser URL without + * triggering a navigation/reload. + * When running inside a same-origin iframe (e.g. Storybook), the top-level window's + * URL is updated so the change is visible in the address bar. + */ + updateUrlPage(page) { + if (!this.usePageQueryParam || typeof window === 'undefined') { + return; + } + // Prefer the top-level window so the address bar updates even inside iframes + // (e.g. Storybook). Falls back to the current window for cross-origin iframes. + let targetWindow = window; + try { + if (window.top && window.top !== window && window.top.location.href) { + targetWindow = window.top; + } + } + catch { + // Cross-origin iframe — stay with the current window + } + const url = new URL(targetWindow.location.href); + if (page <= 1) { + url.searchParams.delete(this.pageQueryParam); + } + else { + url.searchParams.set(this.pageQueryParam, String(page)); + } + targetWindow.history.replaceState(targetWindow.history.state, '', url.toString()); } handleGoToPage(page) { this.setSearchResultsPage(page); + this.updateUrlPage(page); if (this.scrollToTop) { this.smoothScrollToSearchResults(); } @@ -6048,6 +6146,8 @@ class SearchcraftPagination { "$members$": { "searchcraftId": [1, "searchcraft-id"], "scrollToTop": [4, "scroll-to-top"], + "pageQueryParam": [1, "page-query-param"], + "usePageQueryParam": [4, "use-page-query-param"], "searchTerm": [32], "searchResultsPerPage": [32], "searchResultsPage": [32], @@ -6214,7 +6314,7 @@ class SearchcraftPopoverButton { } } render() { - return (hAsync("button", { key: '4f11d81bb189a929372d9e398a0913b3b626e42c', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined' + return (hAsync("button", { key: 'af0bb449457f7dbefa00ac690e7d3490b5162883', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined' ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html: html$1 }) : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined' ? undefined @@ -6241,6 +6341,8 @@ class SearchcraftPopoverButton { }; } } +const version = "0.14.0"; + /** * Renders the footer for the searchcraft-popover-form. * @@ -6254,6 +6356,20 @@ class SearchcraftPopoverFooter { * The id of the Searchcraft instance that this component should use. */ searchcraftId; + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * + * @internal + */ + sdkVariant = 'js'; + /** + * Optional href for the "View all" button. + */ + viewAllResultsHref; + /** + * Optional label for the "View all" button. + */ + viewAllResultsLabel; searchResultsCount; unsubscribe = () => { }; cleanupCore; @@ -6270,16 +6386,45 @@ class SearchcraftPopoverFooter { this.unsubscribe?.(); this.cleanupCore?.(); } + get safeViewAllHref() { + const href = this.viewAllResultsHref; + if (!href) + return undefined; + try { + const url = new URL(href, window.location.href); + return url.protocol === 'https:' || url.protocol === 'http:' + ? href + : undefined; + } + catch { + return undefined; + } + } render() { - return (hAsync("footer", { key: '5e3c0da21c63453ac705d0ea2dbb1ee5053bd527', class: 'searchcraft-popover-footer' }, hAsync("p", { key: '34332a6a54af63717a6f6c36c65a321b2d18c82c', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount + const hostname = typeof window !== 'undefined' ? window.location.hostname : ''; + const utmParams = new URLSearchParams({ + utm_source: hostname, + utm_medium: this.sdkVariant ?? 'js', + utm_campaign: 'powered-by', + utm_content: 'popover-footer', + sc_sdk_version: version, + }); + const href = `https://searchcraft.io/?${utmParams.toString()}`; + const hasResults = typeof this.searchResultsCount === 'number' && + this.searchResultsCount > 0; + const showViewAll = !!this.safeViewAllHref && hasResults; + return (hAsync("footer", { key: '548704335f80a2b4bc7ebd4ea2d0a2eb73376fde', class: 'searchcraft-popover-footer' }, hAsync("a", { key: 'a10cbfd833ef0c6016932fede6ca3195eecdfaea', class: 'searchcraft-popover-footer-link', href: href, target: '_blank', rel: 'noreferrer' }, hAsync("svg", { key: 'a053515f5656f1fa9a44f5590847f0a63b0b5b4f', class: 'searchcraft-popover-footer-link-image', width: '169', height: '20', viewBox: '0 0 169 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, hAsync("title", { key: '9ebd08877c49cf03f00d88f59834b8cce2f3e707' }, "Powered by Searchcraft"), hAsync("path", { key: 'b60c62800241cb02097381351e2a36524d5c1263', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' }))), hAsync("div", { key: '75aaa228b8c01975fa957d33bc33b1e29f66ce03', class: 'searchcraft-popover-footer-results' }, hAsync("p", { key: '6a55da1e5a3a67a2eb2b9118ddfd49af3446c2ed', class: 'searchcraft-popover-footer-results-info' }, hasResults ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found` - : ' '), hAsync("a", { key: '8cd1bd1ad4e3a91e7221c5d38650b10a66dc884e', class: 'searchcraft-popover-footer-link', href: 'https://searchcraft.io/', target: '_blank', rel: 'noreferrer' }, hAsync("svg", { key: '4ebaa80bc3ee8cc2643368d84158cc46ac141376', class: 'searchcraft-popover-footer-link-image', width: '169', height: '16', viewBox: '0 0 169 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, hAsync("title", { key: '804857d081cf5cbd8e63af05c3479a96872d136d' }, "Powered by Searchcraft"), hAsync("path", { key: '43d4a2b110134036b8823e508f535c293fb2df0c', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' }))))); + : ' '), showViewAll && (hAsync("a", { key: 'f6b5d3d55a90ac722ad561a9dc1fe9435607a15f', class: 'searchcraft-popover-footer-view-all', href: this.safeViewAllHref }, hAsync("span", { key: '50bc54b0a295738323790ff8d95f83c4771ad1c6', class: 'searchcraft-popover-footer-view-all-label' }, this.viewAllResultsLabel), hAsync("span", { key: '5da21f2ae33b48f548ba3a3174798ae833fa622f', class: 'searchcraft-popover-footer-view-all-shortcut', "aria-hidden": 'true' }, hAsync("kbd", { key: 'be6a5e1b8fdc3fd01412735180ff94fecf69247e' }, "\u2318"), hAsync("kbd", { key: 'e98f65b70e75f3be6623cd768afade9bf19301d5' }, "\u21B5"))))))); } static get cmpMeta() { return { "$flags$": 768, "$tagName$": "searchcraft-popover-footer", "$members$": { "searchcraftId": [1, "searchcraft-id"], + "sdkVariant": [1, "sdk-variant"], + "viewAllResultsHref": [1, "view-all-results-href"], + "viewAllResultsLabel": [1, "view-all-results-label"], "searchResultsCount": [32] }, "$listeners$": undefined, @@ -6362,6 +6507,27 @@ class SearchcraftPopoverForm { * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it. */ placeholderBehavior; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). + * + * For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + viewAllResultsBaseUrl; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + viewAllResultsLabel; + /** + * Whether to display the AI generative summary box before the search results. + * NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + */ + showSummaryBox = false; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * + * @internal + */ + sdkVariant = 'js'; isPopoverVisibleInState = false; searchClientResponseItems = []; adClientResponseItems = []; @@ -6448,6 +6614,14 @@ class SearchcraftPopoverForm { case 'Escape': this.core?.store.getState().setPopoverVisibility(false); break; + case 'Enter': + if ((event.metaKey || event.ctrlKey) && + this.viewAllResultsHref && + this.hasResultsToShow) { + event.preventDefault(); + this.navigateToViewAllResults(); + } + break; default: return; } @@ -6478,6 +6652,12 @@ class SearchcraftPopoverForm { if (this.placeholderBehavior) { this.modalElement.setAttribute('placeholder-behavior', this.placeholderBehavior); } + if (this.viewAllResultsBaseUrl) { + this.modalElement.setAttribute('view-all-results-base-url', this.viewAllResultsBaseUrl); + } + if (this.viewAllResultsLabel) { + this.modalElement.setAttribute('view-all-results-label', this.viewAllResultsLabel); + } document.body.appendChild(this.modalElement); } } @@ -6541,24 +6721,47 @@ class SearchcraftPopoverForm { this.searchTerm?.trim()?.length > 0 && this.searchClientResponseItems.length > 0); } + get viewAllResultsHref() { + const baseUrl = this.viewAllResultsBaseUrl; + if (!baseUrl) { + return undefined; + } + const term = this.searchTerm?.trim(); + if (!term) { + return baseUrl; + } + return `${baseUrl}${encodeURIComponent(term).replace(/%20/g, '+')}`; + } + get resolvedViewAllResultsLabel() { + return this.viewAllResultsLabel ?? 'View All'; + } + navigateToViewAllResults() { + const href = this.viewAllResultsHref; + if (!href || !this.hasResultsToShow) { + return; + } + if (typeof window !== 'undefined') { + window.location.href = href; + } + } renderInlinePopover() { const isListViewVisible = this.hasResultsToShow && this.isFocused; return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', { 'searchcraft-popover-form-active': isListViewVisible, - }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper' }, hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId }))))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper' }, this.showSummaryBox && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel }))))); } renderModalPopover() { if (this.isPopoverVisibleInState) { return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', { 'searchcraft-popover-form-active': this.hasResultsToShow, - }) }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-wrapper' }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId })))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-wrapper' }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.showSummaryBox && this.hasResultsToShow && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel })))); } } renderFullscreenPopover() { if (this.isPopoverVisibleInState) { return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', { 'searchcraft-popover-form-active': this.hasResultsToShow, - }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId }))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.showSummaryBox && this.hasResultsToShow && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel }))); } } render() { @@ -6582,6 +6785,10 @@ class SearchcraftPopoverForm { "searchcraftId": [1, "searchcraft-id"], "placeholderValue": [1, "placeholder-value"], "placeholderBehavior": [1, "placeholder-behavior"], + "viewAllResultsBaseUrl": [1, "view-all-results-base-url"], + "viewAllResultsLabel": [1, "view-all-results-label"], + "showSummaryBox": [4, "show-summary-box"], + "sdkVariant": [1, "sdk-variant"], "isPopoverVisibleInState": [32], "searchClientResponseItems": [32], "adClientResponseItems": [32], @@ -6656,7 +6863,7 @@ class SearchcraftPopoverListItem { } }; render() { - return (hAsync("div", { key: 'd1c9c310b8abc9d2370efb802eac1edf4189519d', class: 'searchcraft-popover-list-item' }, hAsync("a", { key: '30eb1a5076c5b4b95ae43147eaee0bb72ce46179', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (hAsync("div", { key: 'd18ff55823dc2c61f3786f423936af8b009aeeda', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '56f4cc1d472f7da05e64fcf52c560a7ad0cdf7a6', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: '78a0f0235d5e71d10076b70ccbaf4b58e0d6fea0', class: 'searchcraft-popover-list-item-content' }, this.title && (hAsync("p", { key: '4489047af56e5aa295cb5f036e970dcad053d3b7', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (hAsync("p", { key: '4d177c227a1dbf1233022d738403c8eb93ba328d', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); + return (hAsync("div", { key: '119fc0a527160924a22d185ce764202b1d342e9b', class: 'searchcraft-popover-list-item' }, hAsync("a", { key: '95a5db24035c3be7decb2f062710214fa5726f27', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (hAsync("div", { key: '6a5ddee0b5f03bc7cf5c5dacc5b4a5ee2fcbe511', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '3cdae906aee5b6ef7d1f618419476e75af4c4ebe', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: 'd0b55113188fb8fafff8ee15d3dc919617852b62', class: 'searchcraft-popover-list-item-content' }, this.title && (hAsync("p", { key: '1482260827b057f03db9eb6e8d7df7f5977fe3dc', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (hAsync("p", { key: 'c4210cef3c4372ee4f9ce4a41dbea10d0e915175', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); } static get cmpMeta() { return { "$flags$": 768, @@ -7849,10 +8056,10 @@ class SearchcraftSlider { 100; const startLabel = this.getLabel(this.startValue); const endLabel = this.getLabel(this.endValue); - return (hAsync("div", { key: 'd5035ed8bcbf95c0ef5b2a7a9ef471e318a9dc30', class: 'searchcraft-slider' }, hAsync("div", { key: 'f5f7bc48703250b4f6c75a1f07c921233bd957d5', class: 'searchcraft-slider-range' }, hAsync("div", { key: 'fc2ec9f9786986a7306ffe43b54c47c35a1f086a', class: 'searchcraft-slider-active-range', style: { + return (hAsync("div", { key: '59b07f5c8a14f6cbad8bae6faebf12e9a511bcbb', class: 'searchcraft-slider' }, hAsync("div", { key: '603c0bc39c6fe018016caf17b3b73f5b3c410fba', class: 'searchcraft-slider-range' }, hAsync("div", { key: '31d4097f29aa13d0ab14ec861ecea803e8190ed0', class: 'searchcraft-slider-active-range', style: { left: `${startPercent}%`, width: `${endPercent - startPercent}%`, - } }), hAsync("input", { key: '716316b5ce507c40db5b7bd408f47b3bece88494', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'e2ad0d586136185faccb50d6d7fb113a64ddac42', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: '7e9ab9fa9563cac6a1dfdd11910e04084ae5348d', class: 'searchcraft-slider-label' }, hAsync("span", { key: '0909279f460c4be84c1088c5981a5f5299e8e2a0', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: '4b610a68f97fcbc0aa1eda428dfa1e53b00efe43', class: 'searchcraft-slider-end-label' }, endLabel)))); + } }), hAsync("input", { key: '40299fe0d7b973b448151a045b7a7f6c3b8846fd', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'd46ad0cee946b168cd6004f8a2f819f6e46c50e4', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: 'e65452bc456b0fa69d0dc0dd1276e19b9cf521e6', class: 'searchcraft-slider-label' }, hAsync("span", { key: '2b5aec3e96d9bc9420b047a1d00cce40f361c729', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: 'fce2109bd481b3df9ac4beee3731a24c012e4512', class: 'searchcraft-slider-end-label' }, endLabel)))); } static get cmpMeta() { return { "$flags$": 768, @@ -10129,7 +10336,7 @@ class SearchcraftSummaryBox { return hAsync("div", { class: 'searchcraft-summary-box-content' }, this.summary); } render() { - return hAsync("div", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent()); + return hAsync("div", { key: '82fe97172c3299643ba0ac303031166502c4101a', class: 'searchcraft-summary-box' }, this.renderContent()); } static get cmpMeta() { return { "$flags$": 768, @@ -10146,7 +10353,7 @@ class SearchcraftSummaryBox { }; } } -var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */ +var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form searchcraft-summary-box{margin-bottom:16px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-modal-popover-list-view searchcraft-summary-box,.searchcraft-popover-form-fullscreen-popover-list-view searchcraft-summary-box{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-inline-wrapper searchcraft-summary-box{padding:16px 12px;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{align-items:center;color:var(--sc-content-neutral-primary);display:flex;max-width:160px;padding-top:6px;width:100%}.searchcraft-popover-footer-results{align-items:center;display:flex;gap:8px}.searchcraft-popover-footer-view-all{align-items:center;border-radius:999px;border:1px solid var(--sc-border-neutral-strong);color:var(--sc-content-neutral-primary);display:inline-flex;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-bold);gap:6px;line-height:1;padding:6px 10px;text-decoration:none}.searchcraft-popover-footer-view-all-shortcut{display:inline-flex;gap:2px}.searchcraft-popover-footer-view-all-shortcut kbd{background-color:var(--sc-surface-neutral-primary);border-radius:4px;border:1px solid var(--sc-border-neutral-subtle);line-height:1;padding:1px 4px}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.searchcraft-loading-dots{display:flex;gap:8px;align-items:center;height:40px}.searchcraft-loading-dots>div{width:10px;height:10px;border-radius:50%;background-color:var(--sc-surface-brand-primary);animation:searchcraft-jump .6s ease-in-out infinite}.searchcraft-loading-dots .searchcraft-loading-dot-2{animation-delay:.15s}.searchcraft-loading-dots .searchcraft-loading-dot-3{animation-delay:.3s}.searchcraft-loading-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);letter-spacing:2px;color:#828282;margin:0}@keyframes searchcraft-jump{0%{transform:translateY(0);animation-timing-function:cubic-bezier(0.33, 1, 0.68, 1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0.32, 0, 0.67, 0)}100%{transform:translateY(0)}}/*# sourceMappingURL=hologram.css.map */ `; /** @@ -10182,7 +10389,7 @@ class SearchcraftTheme { registerInstance(this, hostRef); } render() { - return hAsync("style", { key: '13c28bb6075d6fcbec33938fd2227d9fb6129bf2' }, styles); + return hAsync("style", { key: 'e4b7c8e8d20a108df303156af5f9fcb4a19bbbe6' }, styles); } static get cmpMeta() { return { "$flags$": 256, @@ -10246,9 +10453,9 @@ class SearchcraftToggleButton { this.cleanupCore?.(); } render() { - return (hAsync("div", { key: '7dad6f4e4422a62f6403724ff16fe25e042ae2ac', class: classNames('searchcraft-toggle-button', { + return (hAsync("div", { key: '27d05b370fcb2a4ca440abc3ef777c264f6139a6', class: classNames('searchcraft-toggle-button', { 'searchcraft-toggle-button-active': this.isActive, - }) }, hAsync("div", { key: '2faa2ee1eb5cb78dc39f523415f2be96bc23fed1' }, hAsync("p", { key: '29ea63c281b8f1ae041ba75a149ce1b60e936662', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: 'e51efaae5ca79eede71852e6dec8eff4575139fe', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: 'd590da981692db162df9b8086ba2444d6a56ef9d', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: '5be6ee1dd7dc58bd67fff18923569caee37b4936', class: 'searchcraft-toggle-button-handle' })))); + }) }, hAsync("div", { key: 'e3079a80acf706576a36efb04c52c84bda90be8a' }, hAsync("p", { key: 'cbd732b19bd408e9b3dc3602b16a47060603e4f6', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: '7b68d0c50b9498e9f64968987b0d433b6bdf6327', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: '05366d9f252746d4860909de37b01e908f85f2fb', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: '26d3ab13df50e18e6f7ec76da55089feed6d53b9', class: 'searchcraft-toggle-button-handle' })))); } static get cmpMeta() { return { "$flags$": 768, diff --git a/public/sdk/hydrate/index.mjs b/public/sdk/hydrate/index.mjs index 16a94cf..24f9278 100644 --- a/public/sdk/hydrate/index.mjs +++ b/public/sdk/hydrate/index.mjs @@ -5548,7 +5548,9 @@ class SearchcraftFilterPanel { } }; const handleToggle = async () => { - if (facetListElement && 'handleCollapseToggle' in facetListElement && 'getIsCollapsed' in facetListElement) { + if (facetListElement && + 'handleCollapseToggle' in facetListElement && + 'getIsCollapsed' in facetListElement) { await facetListElement.handleCollapseToggle(); const isCollapsed = await facetListElement.getIsCollapsed(); updateLabelAttributes(isCollapsed); @@ -5557,12 +5559,19 @@ class SearchcraftFilterPanel { // return "filters-list" return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { ref: (el) => { labelElement = el || null; - }, class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' ? '' : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' ? '' : undefined, onClick: handleToggle, onKeyDown: async (event) => { + }, "aria-expanded": item.options.initialCollapseState !== 'closed', class: 'searchcraft-filter-panel-label', "data-toggle-facet-section": true, "data-facet-section-expanded": item.options.initialCollapseState !== 'closed' + ? '' + : undefined, "data-facet-section-collapsed": item.options.initialCollapseState === 'closed' + ? '' + : undefined, onClick: () => void handleToggle(), onKeyDown: (event) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); - await handleToggle(); + void handleToggle(); } - }, tabIndex: 0, role: 'button', "aria-expanded": item.options.initialCollapseState !== 'closed' }, filterItem.label), hAsync("searchcraft-facet-list", { ref: (el) => { + }, + /* biome-ignore lint/a11y/useSemanticElements: This label is intentionally a

    for styling/layout; it behaves like a button. */ + /* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: This

    is intentionally used as an interactive control. */ + role: 'button', tabIndex: 0 }, filterItem.label), hAsync("searchcraft-facet-list", { ref: (el) => { facetListElement = el || null; }, fieldName: item.fieldName, exclude: item.options.exclude, initialCollapseState: item.options.initialCollapseState, viewMoreThreshold: item.options.viewMoreThreshold, onFacetSelectionUpdated: (event) => { this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths); @@ -5851,7 +5860,10 @@ class SearchcraftInputLabel { } label; render() { - return (hAsync("div", { key: '5bda164202246eeb2e56bb6a25bede9931898e7a', class: 'searchcraft-loading' }, hAsync("div", { key: 'e33a5abc6686f9983c718a2532aa2d46902d98a2', class: 'searchcraft-loading-bars' }, hAsync("div", { key: '85ff7af527b8f419c9bfd6e84331dd68772e6fdd', class: 'searchcraft-loading-bar-1' }), hAsync("div", { key: '1485d17e9262dbec6d2e5976a63149878137821c', class: 'searchcraft-loading-bar-2' }), hAsync("div", { key: 'd2939b9f7bc0599df7d96db91802ebfcbf232f3e', class: 'searchcraft-loading-bar-3' }), hAsync("div", { key: '7a73bd5baf25ec789c3170e066d1333b905bfe7b', class: 'searchcraft-loading-bar-4' }), hAsync("div", { key: 'b644b618766727773b21d288945c21b6ef0be958', class: 'searchcraft-loading-bar-5' }), hAsync("div", { key: '4f5123a786fc40891ca54edc538dd56f683b26ce', class: 'searchcraft-loading-bar-6' })), hAsync("p", { key: '967c1a6fb41231c8d713b78facca98e7f5a80709', class: 'searchcraft-loading-label' }, this.label))); + const accessibleLabel = this.label ?? 'Loading'; + return (hAsync("div", { key: 'd749250c5f56c703da7f1cba4a226a202ae269c0', class: 'searchcraft-loading', + // biome-ignore lint/a11y/useSemanticElements: is semantically incorrect for a loading indicator + role: 'status', "aria-live": 'polite', "aria-label": accessibleLabel }, hAsync("div", { key: '0f834793686bcf8dff56769ad65311c1f591e8dd', class: 'searchcraft-loading-dots', "aria-hidden": 'true' }, hAsync("div", { key: '2174c333eecf0630ce984b2dece74675356259d9', class: 'searchcraft-loading-dot-1' }), hAsync("div", { key: '927fee69cd86dbd9ae57776c2a15fa6956707fac', class: 'searchcraft-loading-dot-2' }), hAsync("div", { key: 'cfd37c9a9a12dfc9963aa53c3979fb59dc7a132c', class: 'searchcraft-loading-dot-3' })), this.label ? (hAsync("p", { class: 'searchcraft-loading-label' }, this.label)) : null)); } static get cmpMeta() { return { "$flags$": 768, @@ -5906,6 +5918,19 @@ class SearchcraftPagination { * @default true */ scrollToTop = true; + /** + * The URL query string parameter name used to track the current page. When a user navigates + * to a URL that contains this parameter, the pagination component will automatically navigate + * to that page. + * @default "p" + */ + pageQueryParam = 'p'; + /** + * Whether to use a query string parameter to track and restore the current page. + * Set to `false` to disable query string synchronisation entirely. + * @default true + */ + usePageQueryParam = true; // store vars searchTerm; searchResultsPerPage; @@ -5920,6 +5945,7 @@ class SearchcraftPagination { setSearchResultsPage = () => { }; unsubscribe = () => { }; cleanupCore; + _initialPageApplied = false; onCoreAvailable(core) { this.unsubscribe = core.store.subscribe((state) => { // store vars @@ -5937,6 +5963,14 @@ class SearchcraftPagination { this.searchResultsPerPage; // store functions this.setSearchResultsPage = state.setSearchResultsPage; + // Apply initial page from URL query param (only once, on first subscription tick) + if (!this._initialPageApplied) { + this._initialPageApplied = true; + const initialPage = this.getPageFromUrl(); + if (initialPage !== null && initialPage !== state.searchResultsPage) { + state.setSearchResultsPage(initialPage); + } + } }); } connectedCallback() { @@ -5949,6 +5983,7 @@ class SearchcraftPagination { /** * Smooth scroll to the top of the search results component */ + scrollAnimationId; smoothScrollToSearchResults() { if (!this.scrollToTop) { return; @@ -5957,14 +5992,17 @@ class SearchcraftPagination { if (!searchResultsElement) { return; } + // Cancel any in-flight scroll animation + if (this.scrollAnimationId) { + cancelAnimationFrame(this.scrollAnimationId); + } const elementRect = searchResultsElement.getBoundingClientRect(); - const scrollOffset = 200; // Offset in pixels above the element + const scrollOffset = 200; const targetPosition = elementRect.top + window.scrollY - scrollOffset; const startPosition = window.scrollY; const distance = targetPosition - startPosition; const duration = 1500; let startTime = null; - // smooth scrolling const easeOutExpo = (t) => { return t === 1 ? 1 : 1 - 2 ** (-10 * t); }; @@ -5977,13 +6015,73 @@ class SearchcraftPagination { const ease = easeOutExpo(progress); window.scrollTo(0, startPosition + distance * ease); if (progress < 1) { - requestAnimationFrame(animation); + this.scrollAnimationId = requestAnimationFrame(animation); + } + else { + this.scrollAnimationId = undefined; } }; - requestAnimationFrame(animation); + this.scrollAnimationId = requestAnimationFrame(animation); + } + /** + * Returns the page number from the URL query string, or null if not present / disabled. + * Reads from the top-level window when inside a same-origin iframe so that the + * address-bar URL is the source of truth (consistent with updateUrlPage). + */ + getPageFromUrl() { + if (!this.usePageQueryParam || typeof window === 'undefined') { + return null; + } + let targetWindow = window; + try { + if (window.top && window.top !== window && window.top.location.href) { + targetWindow = window.top; + } + } + catch { + // Cross-origin iframe — stay with the current window + } + const params = new URLSearchParams(targetWindow.location.search); + const raw = params.get(this.pageQueryParam); + if (raw === null) { + return null; + } + const page = Number.parseInt(raw, 10); + return Number.isNaN(page) || page < 1 ? null : page; + } + /** + * Updates (or removes) the page query string parameter in the browser URL without + * triggering a navigation/reload. + * When running inside a same-origin iframe (e.g. Storybook), the top-level window's + * URL is updated so the change is visible in the address bar. + */ + updateUrlPage(page) { + if (!this.usePageQueryParam || typeof window === 'undefined') { + return; + } + // Prefer the top-level window so the address bar updates even inside iframes + // (e.g. Storybook). Falls back to the current window for cross-origin iframes. + let targetWindow = window; + try { + if (window.top && window.top !== window && window.top.location.href) { + targetWindow = window.top; + } + } + catch { + // Cross-origin iframe — stay with the current window + } + const url = new URL(targetWindow.location.href); + if (page <= 1) { + url.searchParams.delete(this.pageQueryParam); + } + else { + url.searchParams.set(this.pageQueryParam, String(page)); + } + targetWindow.history.replaceState(targetWindow.history.state, '', url.toString()); } handleGoToPage(page) { this.setSearchResultsPage(page); + this.updateUrlPage(page); if (this.scrollToTop) { this.smoothScrollToSearchResults(); } @@ -6046,6 +6144,8 @@ class SearchcraftPagination { "$members$": { "searchcraftId": [1, "searchcraft-id"], "scrollToTop": [4, "scroll-to-top"], + "pageQueryParam": [1, "page-query-param"], + "usePageQueryParam": [4, "use-page-query-param"], "searchTerm": [32], "searchResultsPerPage": [32], "searchResultsPage": [32], @@ -6212,7 +6312,7 @@ class SearchcraftPopoverButton { } } render() { - return (hAsync("button", { key: '4f11d81bb189a929372d9e398a0913b3b626e42c', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined' + return (hAsync("button", { key: 'af0bb449457f7dbefa00ac690e7d3490b5162883', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined' ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html: html$1 }) : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined' ? undefined @@ -6239,6 +6339,8 @@ class SearchcraftPopoverButton { }; } } +const version = "0.14.0"; + /** * Renders the footer for the searchcraft-popover-form. * @@ -6252,6 +6354,20 @@ class SearchcraftPopoverFooter { * The id of the Searchcraft instance that this component should use. */ searchcraftId; + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * + * @internal + */ + sdkVariant = 'js'; + /** + * Optional href for the "View all" button. + */ + viewAllResultsHref; + /** + * Optional label for the "View all" button. + */ + viewAllResultsLabel; searchResultsCount; unsubscribe = () => { }; cleanupCore; @@ -6268,16 +6384,45 @@ class SearchcraftPopoverFooter { this.unsubscribe?.(); this.cleanupCore?.(); } + get safeViewAllHref() { + const href = this.viewAllResultsHref; + if (!href) + return undefined; + try { + const url = new URL(href, window.location.href); + return url.protocol === 'https:' || url.protocol === 'http:' + ? href + : undefined; + } + catch { + return undefined; + } + } render() { - return (hAsync("footer", { key: '5e3c0da21c63453ac705d0ea2dbb1ee5053bd527', class: 'searchcraft-popover-footer' }, hAsync("p", { key: '34332a6a54af63717a6f6c36c65a321b2d18c82c', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount + const hostname = typeof window !== 'undefined' ? window.location.hostname : ''; + const utmParams = new URLSearchParams({ + utm_source: hostname, + utm_medium: this.sdkVariant ?? 'js', + utm_campaign: 'powered-by', + utm_content: 'popover-footer', + sc_sdk_version: version, + }); + const href = `https://searchcraft.io/?${utmParams.toString()}`; + const hasResults = typeof this.searchResultsCount === 'number' && + this.searchResultsCount > 0; + const showViewAll = !!this.safeViewAllHref && hasResults; + return (hAsync("footer", { key: '548704335f80a2b4bc7ebd4ea2d0a2eb73376fde', class: 'searchcraft-popover-footer' }, hAsync("a", { key: 'a10cbfd833ef0c6016932fede6ca3195eecdfaea', class: 'searchcraft-popover-footer-link', href: href, target: '_blank', rel: 'noreferrer' }, hAsync("svg", { key: 'a053515f5656f1fa9a44f5590847f0a63b0b5b4f', class: 'searchcraft-popover-footer-link-image', width: '169', height: '20', viewBox: '0 0 169 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, hAsync("title", { key: '9ebd08877c49cf03f00d88f59834b8cce2f3e707' }, "Powered by Searchcraft"), hAsync("path", { key: 'b60c62800241cb02097381351e2a36524d5c1263', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' }))), hAsync("div", { key: '75aaa228b8c01975fa957d33bc33b1e29f66ce03', class: 'searchcraft-popover-footer-results' }, hAsync("p", { key: '6a55da1e5a3a67a2eb2b9118ddfd49af3446c2ed', class: 'searchcraft-popover-footer-results-info' }, hasResults ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found` - : ' '), hAsync("a", { key: '8cd1bd1ad4e3a91e7221c5d38650b10a66dc884e', class: 'searchcraft-popover-footer-link', href: 'https://searchcraft.io/', target: '_blank', rel: 'noreferrer' }, hAsync("svg", { key: '4ebaa80bc3ee8cc2643368d84158cc46ac141376', class: 'searchcraft-popover-footer-link-image', width: '169', height: '16', viewBox: '0 0 169 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, hAsync("title", { key: '804857d081cf5cbd8e63af05c3479a96872d136d' }, "Powered by Searchcraft"), hAsync("path", { key: '43d4a2b110134036b8823e508f535c293fb2df0c', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' }))))); + : ' '), showViewAll && (hAsync("a", { key: 'f6b5d3d55a90ac722ad561a9dc1fe9435607a15f', class: 'searchcraft-popover-footer-view-all', href: this.safeViewAllHref }, hAsync("span", { key: '50bc54b0a295738323790ff8d95f83c4771ad1c6', class: 'searchcraft-popover-footer-view-all-label' }, this.viewAllResultsLabel), hAsync("span", { key: '5da21f2ae33b48f548ba3a3174798ae833fa622f', class: 'searchcraft-popover-footer-view-all-shortcut', "aria-hidden": 'true' }, hAsync("kbd", { key: 'be6a5e1b8fdc3fd01412735180ff94fecf69247e' }, "\u2318"), hAsync("kbd", { key: 'e98f65b70e75f3be6623cd768afade9bf19301d5' }, "\u21B5"))))))); } static get cmpMeta() { return { "$flags$": 768, "$tagName$": "searchcraft-popover-footer", "$members$": { "searchcraftId": [1, "searchcraft-id"], + "sdkVariant": [1, "sdk-variant"], + "viewAllResultsHref": [1, "view-all-results-href"], + "viewAllResultsLabel": [1, "view-all-results-label"], "searchResultsCount": [32] }, "$listeners$": undefined, @@ -6360,6 +6505,27 @@ class SearchcraftPopoverForm { * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it. */ placeholderBehavior; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). + * + * For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + viewAllResultsBaseUrl; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + viewAllResultsLabel; + /** + * Whether to display the AI generative summary box before the search results. + * NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + */ + showSummaryBox = false; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * + * @internal + */ + sdkVariant = 'js'; isPopoverVisibleInState = false; searchClientResponseItems = []; adClientResponseItems = []; @@ -6446,6 +6612,14 @@ class SearchcraftPopoverForm { case 'Escape': this.core?.store.getState().setPopoverVisibility(false); break; + case 'Enter': + if ((event.metaKey || event.ctrlKey) && + this.viewAllResultsHref && + this.hasResultsToShow) { + event.preventDefault(); + this.navigateToViewAllResults(); + } + break; default: return; } @@ -6476,6 +6650,12 @@ class SearchcraftPopoverForm { if (this.placeholderBehavior) { this.modalElement.setAttribute('placeholder-behavior', this.placeholderBehavior); } + if (this.viewAllResultsBaseUrl) { + this.modalElement.setAttribute('view-all-results-base-url', this.viewAllResultsBaseUrl); + } + if (this.viewAllResultsLabel) { + this.modalElement.setAttribute('view-all-results-label', this.viewAllResultsLabel); + } document.body.appendChild(this.modalElement); } } @@ -6539,24 +6719,47 @@ class SearchcraftPopoverForm { this.searchTerm?.trim()?.length > 0 && this.searchClientResponseItems.length > 0); } + get viewAllResultsHref() { + const baseUrl = this.viewAllResultsBaseUrl; + if (!baseUrl) { + return undefined; + } + const term = this.searchTerm?.trim(); + if (!term) { + return baseUrl; + } + return `${baseUrl}${encodeURIComponent(term).replace(/%20/g, '+')}`; + } + get resolvedViewAllResultsLabel() { + return this.viewAllResultsLabel ?? 'View All'; + } + navigateToViewAllResults() { + const href = this.viewAllResultsHref; + if (!href || !this.hasResultsToShow) { + return; + } + if (typeof window !== 'undefined') { + window.location.href = href; + } + } renderInlinePopover() { const isListViewVisible = this.hasResultsToShow && this.isFocused; return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', { 'searchcraft-popover-form-active': isListViewVisible, - }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper' }, hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId }))))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper' }, this.showSummaryBox && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel }))))); } renderModalPopover() { if (this.isPopoverVisibleInState) { return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', { 'searchcraft-popover-form-active': this.hasResultsToShow, - }) }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-wrapper' }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId })))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-wrapper' }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.showSummaryBox && this.hasResultsToShow && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel })))); } } renderFullscreenPopover() { if (this.isPopoverVisibleInState) { return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', { 'searchcraft-popover-form-active': this.hasResultsToShow, - }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId }))); + }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.showSummaryBox && this.hasResultsToShow && (hAsync("searchcraft-summary-box", { searchcraftId: this.searchcraftId })), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), hAsync("searchcraft-popover-footer", { searchcraftId: this.searchcraftId, sdkVariant: this.sdkVariant, viewAllResultsHref: this.viewAllResultsHref, viewAllResultsLabel: this.resolvedViewAllResultsLabel }))); } } render() { @@ -6580,6 +6783,10 @@ class SearchcraftPopoverForm { "searchcraftId": [1, "searchcraft-id"], "placeholderValue": [1, "placeholder-value"], "placeholderBehavior": [1, "placeholder-behavior"], + "viewAllResultsBaseUrl": [1, "view-all-results-base-url"], + "viewAllResultsLabel": [1, "view-all-results-label"], + "showSummaryBox": [4, "show-summary-box"], + "sdkVariant": [1, "sdk-variant"], "isPopoverVisibleInState": [32], "searchClientResponseItems": [32], "adClientResponseItems": [32], @@ -6654,7 +6861,7 @@ class SearchcraftPopoverListItem { } }; render() { - return (hAsync("div", { key: 'd1c9c310b8abc9d2370efb802eac1edf4189519d', class: 'searchcraft-popover-list-item' }, hAsync("a", { key: '30eb1a5076c5b4b95ae43147eaee0bb72ce46179', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (hAsync("div", { key: 'd18ff55823dc2c61f3786f423936af8b009aeeda', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '56f4cc1d472f7da05e64fcf52c560a7ad0cdf7a6', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: '78a0f0235d5e71d10076b70ccbaf4b58e0d6fea0', class: 'searchcraft-popover-list-item-content' }, this.title && (hAsync("p", { key: '4489047af56e5aa295cb5f036e970dcad053d3b7', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (hAsync("p", { key: '4d177c227a1dbf1233022d738403c8eb93ba328d', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); + return (hAsync("div", { key: '119fc0a527160924a22d185ce764202b1d342e9b', class: 'searchcraft-popover-list-item' }, hAsync("a", { key: '95a5db24035c3be7decb2f062710214fa5726f27', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (hAsync("div", { key: '6a5ddee0b5f03bc7cf5c5dacc5b4a5ee2fcbe511', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '3cdae906aee5b6ef7d1f618419476e75af4c4ebe', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: 'd0b55113188fb8fafff8ee15d3dc919617852b62', class: 'searchcraft-popover-list-item-content' }, this.title && (hAsync("p", { key: '1482260827b057f03db9eb6e8d7df7f5977fe3dc', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (hAsync("p", { key: 'c4210cef3c4372ee4f9ce4a41dbea10d0e915175', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle)))))); } static get cmpMeta() { return { "$flags$": 768, @@ -7847,10 +8054,10 @@ class SearchcraftSlider { 100; const startLabel = this.getLabel(this.startValue); const endLabel = this.getLabel(this.endValue); - return (hAsync("div", { key: 'd5035ed8bcbf95c0ef5b2a7a9ef471e318a9dc30', class: 'searchcraft-slider' }, hAsync("div", { key: 'f5f7bc48703250b4f6c75a1f07c921233bd957d5', class: 'searchcraft-slider-range' }, hAsync("div", { key: 'fc2ec9f9786986a7306ffe43b54c47c35a1f086a', class: 'searchcraft-slider-active-range', style: { + return (hAsync("div", { key: '59b07f5c8a14f6cbad8bae6faebf12e9a511bcbb', class: 'searchcraft-slider' }, hAsync("div", { key: '603c0bc39c6fe018016caf17b3b73f5b3c410fba', class: 'searchcraft-slider-range' }, hAsync("div", { key: '31d4097f29aa13d0ab14ec861ecea803e8190ed0', class: 'searchcraft-slider-active-range', style: { left: `${startPercent}%`, width: `${endPercent - startPercent}%`, - } }), hAsync("input", { key: '716316b5ce507c40db5b7bd408f47b3bece88494', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'e2ad0d586136185faccb50d6d7fb113a64ddac42', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: '7e9ab9fa9563cac6a1dfdd11910e04084ae5348d', class: 'searchcraft-slider-label' }, hAsync("span", { key: '0909279f460c4be84c1088c5981a5f5299e8e2a0', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: '4b610a68f97fcbc0aa1eda428dfa1e53b00efe43', class: 'searchcraft-slider-end-label' }, endLabel)))); + } }), hAsync("input", { key: '40299fe0d7b973b448151a045b7a7f6c3b8846fd', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'd46ad0cee946b168cd6004f8a2f819f6e46c50e4', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: 'e65452bc456b0fa69d0dc0dd1276e19b9cf521e6', class: 'searchcraft-slider-label' }, hAsync("span", { key: '2b5aec3e96d9bc9420b047a1d00cce40f361c729', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: 'fce2109bd481b3df9ac4beee3731a24c012e4512', class: 'searchcraft-slider-end-label' }, endLabel)))); } static get cmpMeta() { return { "$flags$": 768, @@ -10127,7 +10334,7 @@ class SearchcraftSummaryBox { return hAsync("div", { class: 'searchcraft-summary-box-content' }, this.summary); } render() { - return hAsync("div", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent()); + return hAsync("div", { key: '82fe97172c3299643ba0ac303031166502c4101a', class: 'searchcraft-summary-box' }, this.renderContent()); } static get cmpMeta() { return { "$flags$": 768, @@ -10144,7 +10351,7 @@ class SearchcraftSummaryBox { }; } } -var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */ +var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form searchcraft-summary-box{margin-bottom:16px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-modal-popover-list-view searchcraft-summary-box,.searchcraft-popover-form-fullscreen-popover-list-view searchcraft-summary-box{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-inline-wrapper searchcraft-summary-box{padding:16px 12px;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{align-items:center;color:var(--sc-content-neutral-primary);display:flex;max-width:160px;padding-top:6px;width:100%}.searchcraft-popover-footer-results{align-items:center;display:flex;gap:8px}.searchcraft-popover-footer-view-all{align-items:center;border-radius:999px;border:1px solid var(--sc-border-neutral-strong);color:var(--sc-content-neutral-primary);display:inline-flex;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-bold);gap:6px;line-height:1;padding:6px 10px;text-decoration:none}.searchcraft-popover-footer-view-all-shortcut{display:inline-flex;gap:2px}.searchcraft-popover-footer-view-all-shortcut kbd{background-color:var(--sc-surface-neutral-primary);border-radius:4px;border:1px solid var(--sc-border-neutral-subtle);line-height:1;padding:1px 4px}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.searchcraft-loading-dots{display:flex;gap:8px;align-items:center;height:40px}.searchcraft-loading-dots>div{width:10px;height:10px;border-radius:50%;background-color:var(--sc-surface-brand-primary);animation:searchcraft-jump .6s ease-in-out infinite}.searchcraft-loading-dots .searchcraft-loading-dot-2{animation-delay:.15s}.searchcraft-loading-dots .searchcraft-loading-dot-3{animation-delay:.3s}.searchcraft-loading-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);letter-spacing:2px;color:#828282;margin:0}@keyframes searchcraft-jump{0%{transform:translateY(0);animation-timing-function:cubic-bezier(0.33, 1, 0.68, 1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0.32, 0, 0.67, 0)}100%{transform:translateY(0)}}/*# sourceMappingURL=hologram.css.map */ `; /** @@ -10180,7 +10387,7 @@ class SearchcraftTheme { registerInstance(this, hostRef); } render() { - return hAsync("style", { key: '13c28bb6075d6fcbec33938fd2227d9fb6129bf2' }, styles); + return hAsync("style", { key: 'e4b7c8e8d20a108df303156af5f9fcb4a19bbbe6' }, styles); } static get cmpMeta() { return { "$flags$": 256, @@ -10244,9 +10451,9 @@ class SearchcraftToggleButton { this.cleanupCore?.(); } render() { - return (hAsync("div", { key: '7dad6f4e4422a62f6403724ff16fe25e042ae2ac', class: classNames('searchcraft-toggle-button', { + return (hAsync("div", { key: '27d05b370fcb2a4ca440abc3ef777c264f6139a6', class: classNames('searchcraft-toggle-button', { 'searchcraft-toggle-button-active': this.isActive, - }) }, hAsync("div", { key: '2faa2ee1eb5cb78dc39f523415f2be96bc23fed1' }, hAsync("p", { key: '29ea63c281b8f1ae041ba75a149ce1b60e936662', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: 'e51efaae5ca79eede71852e6dec8eff4575139fe', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: 'd590da981692db162df9b8086ba2444d6a56ef9d', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: '5be6ee1dd7dc58bd67fff18923569caee37b4936', class: 'searchcraft-toggle-button-handle' })))); + }) }, hAsync("div", { key: 'e3079a80acf706576a36efb04c52c84bda90be8a' }, hAsync("p", { key: 'cbd732b19bd408e9b3dc3602b16a47060603e4f6', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: '7b68d0c50b9498e9f64968987b0d433b6bdf6327', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: '05366d9f252746d4860909de37b01e908f85f2fb', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: '26d3ab13df50e18e6f7ec76da55089feed6d53b9', class: 'searchcraft-toggle-button-handle' })))); } static get cmpMeta() { return { "$flags$": 768, diff --git a/public/sdk/themes/hologram.css b/public/sdk/themes/hologram.css index 92f961c..9a79c9c 100644 --- a/public/sdk/themes/hologram.css +++ b/public/sdk/themes/hologram.css @@ -1 +1 @@ -[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */ +[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-facet-list-wrapper{display:flex;flex-direction:column;width:100%;min-height:0}.searchcraft-facet-list-content{display:flex;flex-direction:column;gap:8px;min-height:0;flex-shrink:0}.searchcraft-facet-list-view-more{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:none;color:var(--sc-content-brand);cursor:pointer;padding:8px 0;text-align:left;text-decoration:underline}.searchcraft-facet-list-view-more:hover{color:var(--sc-surface-brand-primary-hover)}.searchcraft-facet-list-view-more:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}[data-toggle-facet-section]{cursor:pointer;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}[data-toggle-facet-section]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-facet-section][data-facet-section-collapsed]::after{transform:rotate(90deg)}[data-toggle-facet-section][data-facet-section-expanded]::after{transform:rotate(-90deg)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:"›";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form searchcraft-summary-box{margin-bottom:16px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-modal-popover-list-view searchcraft-summary-box,.searchcraft-popover-form-fullscreen-popover-list-view searchcraft-summary-box{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-inline-wrapper searchcraft-summary-box{padding:16px 12px;margin-bottom:0;border-bottom:1px solid var(--sc-border-neutral-subtle)}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{align-items:center;color:var(--sc-content-neutral-primary);display:flex;max-width:160px;padding-top:6px;width:100%}.searchcraft-popover-footer-results{align-items:center;display:flex;gap:8px}.searchcraft-popover-footer-view-all{align-items:center;border-radius:999px;border:1px solid var(--sc-border-neutral-strong);color:var(--sc-content-neutral-primary);display:inline-flex;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-bold);gap:6px;line-height:1;padding:6px 10px;text-decoration:none}.searchcraft-popover-footer-view-all-shortcut{display:inline-flex;gap:2px}.searchcraft-popover-footer-view-all-shortcut kbd{background-color:var(--sc-surface-neutral-primary);border-radius:4px;border:1px solid var(--sc-border-neutral-subtle);line-height:1;padding:1px 4px}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.searchcraft-loading-dots{display:flex;gap:8px;align-items:center;height:40px}.searchcraft-loading-dots>div{width:10px;height:10px;border-radius:50%;background-color:var(--sc-surface-brand-primary);animation:searchcraft-jump .6s ease-in-out infinite}.searchcraft-loading-dots .searchcraft-loading-dot-2{animation-delay:.15s}.searchcraft-loading-dots .searchcraft-loading-dot-3{animation-delay:.3s}.searchcraft-loading-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);letter-spacing:2px;color:#828282;margin:0}@keyframes searchcraft-jump{0%{transform:translateY(0);animation-timing-function:cubic-bezier(0.33, 1, 0.68, 1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0.32, 0, 0.67, 0)}100%{transform:translateY(0)}}/*# sourceMappingURL=hologram.css.map */ diff --git a/public/sdk/themes/hologram.css.map b/public/sdk/themes/hologram.css.map index 210ae2e..49f59d7 100644 --- a/public/sdk/themes/hologram.css.map +++ b/public/sdk/themes/hologram.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../../hologram/src/reset.scss","../../../hologram/src/typography.scss","../../../hologram/src/appearance.scss","../../../hologram/src/breakpoints.scss","../../../hologram/src/colors.scss","../../../hologram/src/components/searchcraft-ad.module.scss","../../../hologram/src/components/searchcraft-search-result.module.scss","../../../hologram/src/components/searchcraft-search-results.module.scss","../../../hologram/src/components/searchcraft-button.module.scss","../../../hologram/src/components/searchcraft-error-message.module.scss","../../../hologram/src/components/searchcraft-facet-list.module.scss","../../../hologram/src/components/searchcraft-filter-panel.module.scss","../../../hologram/src/components/searchcraft-input-form.module.scss","../../../hologram/src/components/searchcraft-input-label.module.scss","../../../hologram/src/components/searchcraft-popover-button.module.scss","../../../hologram/src/components/searchcraft-popover-form.module.scss","../../../hologram/src/components/searchcraft-popover-footer.module.scss","../../../hologram/src/components/searchcraft-popover-list-item.module.scss","../../../hologram/src/components/searchcraft-popover-list-view.module.scss","../../../hologram/src/components/searchcraft-results-info.module.scss","../../../hologram/src/components/searchcraft-slider.module.scss","../../../hologram/src/components/searchcraft-toggle-button.module.scss","../../../hologram/src/components/searchcraft-pagination.module.scss","../../../hologram/src/components/searchcraft-select.module.scss","../../../hologram/src/components/searchcraft-search-results-per-page.module.scss","../../../hologram/src/components/searchcraft-summary-box.module.scss","../../../hologram/src/components/searchcraft-loading.module.scss"],"names":[],"mappings":"CAGA,0KAQE,sBACA,UACA,SCbF,MACE,yBACA,2BACA,6BACA,oBACA,sBAGA,sQAQA,yOAQA,4MAOA,+KAOA,kJAMA,mLASA,oDAGA,uJCxDF,MAEE,wBACA,yDACA,yDACA,yDACA,0DACA,sCCCA,0BACA,0BACA,0BCVF,MAEE,kEAEA,4GAGA,2HAKA,4GAGA,8HAMA,4GAKA,gIAGA,6HAKA,gIAGA,0IAMA,oCAGA,kEAEA,gHAGA,+HAMA,gEAIA,2DAEA,kGAGA,+GAKA,mGAGA,kHAMA,gGAKA,sHAGA,2HAKA,sHAGA,8HAMA,kFAIA,uCAGA,mDAIA,+DAEA,sFAGA,qIAKA,uFAGA,wIAMA,kFAGA,yHAKA,kGAGA,2IAKA,mGAGA,8IAMA,uGAIA,yCAGA,uDAIA,+DAEA,sFAGA,qIAKA,uFAGA,wIAMA,kFAGA,yHAKA,kGAGA,2IAKA,mGAGA,8IAMA,yGAIA,yCAGA,uDAIA,6DAEA,oFAGA,kIAKA,qFAGA,qIAMA,8EACA,sHAKA,gGAGA,wIAKA,iGAGA,2IAMA,uGAIA,wCAGA,qDAGA,8EACA,yDACA,qFAGA,8DACA,0EAOF,oGAEE,MAIE,+GAGA,+GAKA,mHAMA,qGAIA,sGAMA,uFAIA,wFAKA,mFAIA,mGAIA,oGAKA,wGAOA,uFAIA,wFAKA,mFAIA,mGAIA,oGAKA,0GAOA,qFAIA,sFAKA,iFAIA,iGAIA,kGAKA,yGC5YJ,gBJgEE,kCACA,iBACA,mCI9DF,4BACE,aACA,sBACA,kBAEA,8BACE,SAIJ,oBACE,aACA,sBACA,uBACA,SClBF,2BLgEE,kCACA,iBACA,mCK9DF,uCACE,aACA,sBACA,kBAEA,yCACE,SCZJ,4BACE,aACA,sBACA,uBACA,SAGF,wCACE,kBAGF,0CACE,kBCVF,oBPgEE,kCACA,iBACA,mCAyCA,mCACA,kCO1GA,gBACA,+BACA,sCACA,eACA,aACA,QACA,aACA,kBAEA,gDACE,mBAIJ,4BACE,iDACA,yCACA,gCAEA,kCACE,uDAGF,kCACE,sCAGF,mCACE,wDAGF,mPAIE,4CACA,2BACA,iCAIJ,6BACE,mDACA,8BACA,kCAEA,mCACE,yDAGF,mCACE,iDACA,sCAGF,oCACE,0DAGF,uPAIE,iDACA,2BACA,iCAIJ,yBACE,UCvEF,2BR+DE,kCACA,iBACA,mCA+CA,yCACA,kCQ/GA,+BACA,SCJF,wBACE,aACA,sBACA,QACA,WAGF,uCACE,mBACA,wCACA,aTsDA,kCACA,iBACA,mCAyCA,mCACA,kCShGA,QACA,kBACA,mCAGF,+CACE,kBAGF,uCACE,mBACA,gBACA,qDACA,4CACA,sCACA,eACA,aACA,YACA,uBACA,WACA,SAEA,6CACE,kDACA,mBAGF,+CACE,iDACA,kBAGF,iGACE,aAGF,gGACE,aAIJ,8BACE,aACA,sBACA,QAGF,6CACE,iBAEA,yDACE,eAIJ,kDACE,aACA,YACA,SACA,kBACA,eACA,QACA,gCACA,WAGF,iDACE,aACA,WACA,SACA,kBACA,QACA,gCACA,WAGF,gCTxBE,kCACA,iBACA,mCA+CA,yCACA,kCSxBA,iCACA,kBAGF,gCACE,aACA,sBACA,WACA,aAGF,gCACE,aACA,sBACA,QACA,aACA,cAGF,kCT7CE,kCACA,iBACA,mCAyCA,mCACA,kCSGA,gBACA,YACA,8BACA,eACA,cACA,gBACA,0BAEA,wCACE,4CAGF,wCACE,kDACA,mBC5HJ,0BACE,aACA,sBACA,SAGF,kCACE,aACA,sBACA,QAGF,gCVmDE,kCACA,iBACA,mCA+CA,yCACA,kCUnGA,gCAIF,4BACE,eACA,aACA,mBACA,8BACA,WACA,kBAEA,mCACE,YACA,qBACA,gBACA,cACA,iBACA,cACA,8BACA,wBAGF,iEACE,wBAGF,gEACE,yBAOF,yBAFF,2BAGI,eACA,wBACA,mBACA,8BACA,WAEA,kCACE,YACA,qBACA,gBACA,cACA,iBACA,cACA,8BACA,wBAGF,+DACE,wBAGF,8DACE,0BAKJ,yBA9BF,2BA+BI,eAEA,kCACE,cClFN,MAIE,uDAIA,uCAIA,sCAGF,6BACE,aACA,YAGF,yCACE,mCACA,+BAEA,wEACE,qBACA,kBAGF,uEACE,qBACA,kBAGF,+EACE,qBACA,kBAGF,+EACE,qBACA,kBAIJ,0CACE,mCACA,+BAEA,yEACE,qBACA,kBAGF,wEACE,qBACA,kBAGF,gFACE,qBACA,kBAGF,gFACE,qBACA,kBAIJ,yCACE,mCACA,2BAEA,wEACE,aAGF,uEACE,qBACA,kBAGF,+EACE,qBACA,kBAGF,+EACE,qBACA,kBAIJ,sCACE,aACA,kBAGF,8BXnCE,kCACA,iBACA,mCAyCA,mCACA,kCWPA,qDACA,iDACA,YACA,wCACA,OACA,aACA,kBAEA,2CACE,iCAGF,oCACE,yCACA,oBAKF,uFACE,UAIJ,8BACE,+BACA,0CAEA,oCACE,0CAIJ,mCACE,mBACA,SACA,aACA,uBACA,OACA,kBACA,oBACA,MACA,WAGF,0CACE,0CACA,UACA,6CACA,oBACA,4CAGF,qCACE,UACA,mBACA,SACA,YACA,eACA,aACA,uBACA,aACA,kBACA,QACA,MACA,WAGF,mCACE,8BACA,UACA,4CACA,2CC7KF,yBZgEE,kCACA,iBACA,mCA+CA,yCACA,kCYhHA,wCACA,gCACA,eACA,kBCHF,MACE,2DAEA,yBAHF,MAII,+DAIJ,4BbsDE,kCACA,iBACA,mCAyCA,mCACA,kCahGA,eAMF,yCACE,gBACA,gBACA,YACA,wCACA,cACA,WAEA,6EACE,0CACA,qDACA,WACE,+IAEF,aACA,SACA,YACA,8BACA,cACA,yBACA,6CAEA,yBAdF,6EAeI,WACE,sNAIF,YACA,2BAIJ,2EACE,mBACA,aACA,QAEA,yBALF,2EAMI,SAIJ,6EACE,0CACA,aACA,QACA,eACA,gBAEA,yBAPF,6EAQI,SAIJ,oFZ1DA,iEACA,sEY8DE,mDACA,WACE,uMAGF,wBACA,kBAEA,yBAbF,oFZ1DA,iEACA,sEY2EI,WACE,8YAMF,yBAGF,uLAEE,WACA,cAGF,4FZ5FF,iEACA,sEYgGI,wIAKA,UACA,kBAEA,yBAbF,4FZ5FF,kEACA,uEY6GM,WAIJ,2FACE,iBACA,YAGF,yFACE,aACA,cACA,SACA,cACA,kBACA,QACA,gCAIJ,uFACE,WACA,WAEA,yBAJF,uFAKI,YCpJN,MAIE,qCAIA,oCAMF,0BdgDE,kCACA,iBACA,mCAyCA,mCACA,kCc1FA,aACA,OACA,sBAEA,sGAEE,WAIA,0FACE,mBAIJ,wDACE,cACA,YACA,aACA,cACA,eAIJ,gCACE,aACA,mBACA,SAEA,8DACE,mDACA,0CACA,yCACA,WACE,gNAGF,QAIJ,wCACE,gBACA,YACA,eACA,eAOF,iFAEE,aAGF,yGAEE,YACA,cACA,aACA,cACA,eAMF,iCACE,mDACA,+BACA,yCACA,aACA,kBAEA,iEACE,0CACA,mBACA,4BACA,6BACA,mBAGF,+DACE,eAGF,8Lb3FA,iDACA,sDaiGF,yCACE,mDACA,0CACA,gBACA,qDACA,sDACA,aACA,sBACA,UACA,8CACA,gBACA,kBACA,WACA,SAMF,gCACE,mBACA,aACA,QACA,eACA,aAEA,2Lb5HA,kDACA,uDakIF,yCACE,uEACA,aACA,QACA,eAEA,yBANF,yCAOI,eAIJ,wCACE,mDACA,WACE,6XAMF,aACA,sBACA,QACA,4CACA,gBACA,kBACA,WACA,aAEA,yBAlBF,wCAmBI,0CACA,QACA,iBACA,8CACA,4CACA,mBAIJ,8Cb1KE,kDACA,uDa2KA,YAEA,yBAJF,8CAKI,kBAOJ,qCACE,mDACA,aACA,sBACA,8BACA,QACA,eACA,aAEA,uIAEE,yCAIJ,mDACE,yCACA,YAEA,yBAJF,mDAKI,kBCvNJ,4Bf8DE,kCACA,iBACA,mCe9DA,qDACA,WACE,gNAGF,aACA,QACA,8BACA,cACA,kBAEA,yBAbF,4BAcI,mBAIJ,yCACE,SAGF,iCACE,wCACA,aACA,gBACA,WC5BF,MAIE,0CAGF,+BhByDE,kCACA,iBACA,mCgBzDA,iDACA,eAGF,wEACE,mBAGF,oCACE,uBACA,wCACA,aACA,SACA,aACA,qBAEA,qFAEE,0DAGF,0CACE,yDAIJ,6CACE,mBACA,kBACA,aACA,cACA,uBACA,YAGF,qCACE,YACA,iDACA,WAGF,uCACE,aACA,sBACA,YACA,QACA,uBAGF,6FAEE,oBACA,aACA,SACA,gBACA,qBACA,4BAGF,6ChBJE,kCACA,iBACA,mCA6BA,wCACA,gCgBxBF,gDhBRE,kCACA,iBACA,mCAyCA,mCACA,kCiB9GF,+BACE,aACA,gDjBgEA,kCACA,iBACA,mCAyCA,mCACA,kCkB1GA,gCACA,SCHF,oBACE,mBACA,aACA,sBACA,SACA,WACA,eAGF,0BACE,mBACA,4CACA,oBACA,aACA,kBACA,WACA,WAEA,yDACE,oBAGF,2DACE,iDACA,kBACA,WACA,kBACA,QACA,2BACA,UAEA,0FACE,oBAGF,6EACE,oBAIJ,oDACE,gBACA,yBACA,kBACA,WACA,SACA,aACA,oBACA,kBACA,WACA,wBAEA,0EACE,iDACA,kBACA,0CACA,eACA,YACA,mBACA,WACA,wBAGF,sEACE,iDACA,kBACA,0CACA,eACA,YACA,mBACA,WAGF,gFACE,kDAGF,4EACE,kDAKN,0BACE,gCACA,anBrBA,kCACA,iBACA,mCA+CA,yCACA,kCmB3BA,8BACA,eACA,WAGF,8DAEE,eACA,kBC/FF,2BACE,uBACA,aACA,SACA,8BAGF,iCpByDE,kCACA,iBACA,mCAyCA,mCACA,kCoBnGA,wCACA,SAGF,qCpBmDE,kCACA,iBACA,mCA+CA,yCACA,kCoBnGA,0CACA,SAGF,sCACE,sCACA,2CACA,YACA,eACA,cACA,YACA,kBACA,gCACA,WAGF,kCACE,2CACA,kBACA,YACA,SACA,kBACA,oBACA,8BACA,WAIA,wEACE,2CACA,2CAGF,oEACE,2BCjDJ,wBACE,oBACA,SACA,sCACA,uBAGF,6BACE,0CACA,sCACA,aACA,qBACA,SACA,gBACA,UACA,WAGF,gCACE,gDACA,YACA,gBACA,WAGF,2CACE,kBAGF,6BrBmCE,kCACA,iBACA,mCAyCA,mCACA,kCqB7EA,mBACA,mDACA,YACA,aACA,YACA,uBACA,WAGF,oCACE,mDACA,gCAGF,gCACE,0CACA,sCAGF,8BrBcE,kCACA,iBACA,mCAyCA,mCACA,kCqBxDA,mBACA,aCrDF,oBACE,aACA,sBACA,QAGF,0BtB0DE,kCACA,iBACA,mCA+CA,yCACA,kCsB1GA,gCAGF,kCACE,kBAGF,0BtBiDE,kCACA,iBACA,mCAyCA,mCACA,kCsB3FA,gBACA,qDACA,+BACA,sCACA,eACA,YACA,sBACA,WAEA,gCACE,2DAGF,iCACE,4DAGF,gCACE,oCACA,aAIJ,+BACE,UACA,oBACA,kBACA,WACA,QACA,2BAGF,4BtBeE,kCACA,iBACA,mCA+CA,yCACA,kCuBlHF,qCACE,aAGF,4CACE,mBACA,aACA,SAGF,kDvBsDE,kCACA,iBACA,mCAyCA,mCACA,kCuB9FF,kDACE,gBCfF,yBACE,aACA,sCACA,qDACA,kBACA,iBAEA,wCxByDA,kCACA,iBACA,mCAyCA,mCACA,kCwBjGA,4IACE,iBACA,oBAGF,2BACE,oBAGF,6BACE,gBAGF,wDACE,iBACA,oBAGF,2BACE,8BC9BJ,2BACE,kBACA,QACA,SACA,4CACA,gBACA,mBACA,czByDA,kCACA,iBACA,mCA+CA,yCACA,kCyBtGF,0BACE,cACA,WACA,YACA,kBACA,kBACA,QACA,SACA,4CACA,aACA,QAEA,8BACE,YACA,UACA,iDACA,yCACA,WAGF,qDACE,iDACA,WAGF,qDACE,iDACA,sBACA,WAEF,qDACE,iDACA,sBACA,WAEF,qDACE,iDACA,sBACA,WAEF,qDACE,iDACA,sBACA,WAEF,qDACE,iDACA,sBACA,WAIJ,iBACE,YACE,uBACC,IACD","file":"hologram.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../../hologram/src/reset.scss","../../../hologram/src/typography.scss","../../../hologram/src/appearance.scss","../../../hologram/src/breakpoints.scss","../../../hologram/src/colors.scss","../../../hologram/src/components/searchcraft-ad.module.scss","../../../hologram/src/components/searchcraft-search-result.module.scss","../../../hologram/src/components/searchcraft-search-results.module.scss","../../../hologram/src/components/searchcraft-button.module.scss","../../../hologram/src/components/searchcraft-error-message.module.scss","../../../hologram/src/components/searchcraft-facet-list.module.scss","../../../hologram/src/components/searchcraft-filter-panel.module.scss","../../../hologram/src/components/searchcraft-input-form.module.scss","../../../hologram/src/components/searchcraft-input-label.module.scss","../../../hologram/src/components/searchcraft-popover-button.module.scss","../../../hologram/src/components/searchcraft-popover-form.module.scss","../../../hologram/src/components/searchcraft-popover-footer.module.scss","../../../hologram/src/components/searchcraft-popover-list-item.module.scss","../../../hologram/src/components/searchcraft-popover-list-view.module.scss","../../../hologram/src/components/searchcraft-results-info.module.scss","../../../hologram/src/components/searchcraft-slider.module.scss","../../../hologram/src/components/searchcraft-toggle-button.module.scss","../../../hologram/src/components/searchcraft-pagination.module.scss","../../../hologram/src/components/searchcraft-select.module.scss","../../../hologram/src/components/searchcraft-search-results-per-page.module.scss","../../../hologram/src/components/searchcraft-summary-box.module.scss","../../../hologram/src/components/searchcraft-loading.module.scss"],"names":[],"mappings":"CAGA,0KAQE,sBACA,UACA,SCbF,MACE,yBACA,2BACA,6BACA,oBACA,sBAGA,sQAQA,yOAQA,4MAOA,+KAOA,kJAMA,mLASA,oDAGA,uJCxDF,MAEE,wBACA,yDACA,yDACA,yDACA,0DACA,sCCCA,0BACA,0BACA,0BCVF,MAEE,kEAEA,4GAGA,2HAKA,4GAGA,8HAMA,4GAKA,gIAGA,6HAKA,gIAGA,0IAMA,oCAGA,kEAEA,gHAGA,+HAMA,gEAIA,2DAEA,kGAGA,+GAKA,mGAGA,kHAMA,gGAKA,sHAGA,2HAKA,sHAGA,8HAMA,kFAIA,uCAGA,mDAIA,+DAEA,sFAGA,qIAKA,uFAGA,wIAMA,kFAGA,yHAKA,kGAGA,2IAKA,mGAGA,8IAMA,uGAIA,yCAGA,uDAIA,+DAEA,sFAGA,qIAKA,uFAGA,wIAMA,kFAGA,yHAKA,kGAGA,2IAKA,mGAGA,8IAMA,yGAIA,yCAGA,uDAIA,6DAEA,oFAGA,kIAKA,qFAGA,qIAMA,8EACA,sHAKA,gGAGA,wIAKA,iGAGA,2IAMA,uGAIA,wCAGA,qDAGA,8EACA,yDACA,qFAGA,8DACA,0EAOF,oGAEE,MAIE,+GAGA,+GAKA,mHAMA,qGAIA,sGAMA,uFAIA,wFAKA,mFAIA,mGAIA,oGAKA,wGAOA,uFAIA,wFAKA,mFAIA,mGAIA,oGAKA,0GAOA,qFAIA,sFAKA,iFAIA,iGAIA,kGAKA,yGC5YJ,gBJgEE,kCACA,iBACA,mCI9DF,4BACE,aACA,sBACA,kBAEA,8BACE,SAIJ,oBACE,aACA,sBACA,uBACA,SClBF,2BLgEE,kCACA,iBACA,mCK9DF,uCACE,aACA,sBACA,kBAEA,yCACE,SCZJ,4BACE,aACA,sBACA,uBACA,SAGF,wCACE,kBAGF,0CACE,kBCVF,oBPgEE,kCACA,iBACA,mCAyCA,mCACA,kCO1GA,gBACA,+BACA,sCACA,eACA,aACA,QACA,aACA,kBAEA,gDACE,mBAIJ,4BACE,iDACA,yCACA,gCAEA,kCACE,uDAGF,kCACE,sCAGF,mCACE,wDAGF,mPAIE,4CACA,2BACA,iCAIJ,6BACE,mDACA,8BACA,kCAEA,mCACE,yDAGF,mCACE,iDACA,sCAGF,oCACE,0DAGF,uPAIE,iDACA,2BACA,iCAIJ,yBACE,UCvEF,2BR+DE,kCACA,iBACA,mCA+CA,yCACA,kCQ/GA,+BACA,SCJF,wBACE,aACA,sBACA,QACA,WAGF,uCACE,mBACA,wCACA,aTsDA,kCACA,iBACA,mCAyCA,mCACA,kCShGA,QACA,kBACA,mCAGF,+CACE,kBAGF,uCACE,mBACA,gBACA,qDACA,4CACA,sCACA,eACA,aACA,YACA,uBACA,WACA,SAEA,6CACE,kDACA,mBAGF,+CACE,iDACA,kBAGF,iGACE,aAGF,gGACE,aAIJ,8BACE,aACA,sBACA,QAGF,6CACE,iBAEA,yDACE,eAIJ,kDACE,aACA,YACA,SACA,kBACA,eACA,QACA,gCACA,WAGF,iDACE,aACA,WACA,SACA,kBACA,QACA,gCACA,WAGF,gCTxBE,kCACA,iBACA,mCA+CA,yCACA,kCSxBA,iCACA,kBAGF,gCACE,aACA,sBACA,WACA,aAGF,gCACE,aACA,sBACA,QACA,aACA,cAGF,kCT7CE,kCACA,iBACA,mCAyCA,mCACA,kCSGA,gBACA,YACA,8BACA,eACA,cACA,gBACA,0BAEA,wCACE,4CAGF,wCACE,kDACA,mBC5HJ,0BACE,aACA,sBACA,SAGF,kCACE,aACA,sBACA,QAGF,gCVmDE,kCACA,iBACA,mCA+CA,yCACA,kCUnGA,gCAIF,4BACE,eACA,aACA,mBACA,8BACA,WACA,kBAEA,mCACE,YACA,qBACA,gBACA,cACA,iBACA,cACA,8BACA,wBAGF,iEACE,wBAGF,gEACE,yBAOF,yBAFF,2BAGI,eACA,wBACA,mBACA,8BACA,WAEA,kCACE,YACA,qBACA,gBACA,cACA,iBACA,cACA,8BACA,wBAGF,+DACE,wBAGF,8DACE,0BAKJ,yBA9BF,2BA+BI,eAEA,kCACE,cClFN,MAIE,uDAIA,uCAIA,sCAGF,6BACE,aACA,YAGF,yCACE,mCACA,+BAEA,wEACE,qBACA,kBAGF,uEACE,qBACA,kBAGF,+EACE,qBACA,kBAGF,+EACE,qBACA,kBAIJ,0CACE,mCACA,+BAEA,yEACE,qBACA,kBAGF,wEACE,qBACA,kBAGF,gFACE,qBACA,kBAGF,gFACE,qBACA,kBAIJ,yCACE,mCACA,2BAEA,wEACE,aAGF,uEACE,qBACA,kBAGF,+EACE,qBACA,kBAGF,+EACE,qBACA,kBAIJ,sCACE,aACA,kBAGF,8BXnCE,kCACA,iBACA,mCAyCA,mCACA,kCWPA,qDACA,iDACA,YACA,wCACA,OACA,aACA,kBAEA,2CACE,iCAGF,oCACE,yCACA,oBAKF,uFACE,UAIJ,8BACE,+BACA,0CAEA,oCACE,0CAIJ,mCACE,mBACA,SACA,aACA,uBACA,OACA,kBACA,oBACA,MACA,WAGF,0CACE,0CACA,UACA,6CACA,oBACA,4CAGF,qCACE,UACA,mBACA,SACA,YACA,eACA,aACA,uBACA,aACA,kBACA,QACA,MACA,WAGF,mCACE,8BACA,UACA,4CACA,2CC7KF,yBZgEE,kCACA,iBACA,mCA+CA,yCACA,kCYhHA,wCACA,gCACA,eACA,kBCHF,MACE,2DAEA,yBAHF,MAII,+DAIJ,4BbsDE,kCACA,iBACA,mCAyCA,mCACA,kCahGA,eAMF,yCACE,gBACA,gBACA,YACA,wCACA,cACA,WAEA,6EACE,0CACA,qDACA,WACE,+IAEF,aACA,SACA,YACA,8BACA,cACA,yBACA,6CAEA,yBAdF,6EAeI,WACE,sNAIF,YACA,2BAIJ,2EACE,mBACA,aACA,QAEA,yBALF,2EAMI,SAIJ,6EACE,0CACA,aACA,QACA,eACA,gBAEA,yBAPF,6EAQI,SAIJ,oFZ1DA,iEACA,sEY8DE,mDACA,WACE,uMAGF,wBACA,kBAEA,yBAbF,oFZ1DA,iEACA,sEY2EI,WACE,8YAMF,yBAGF,uLAEE,WACA,cAGF,4FZ5FF,iEACA,sEYgGI,wIAKA,UACA,kBAEA,yBAbF,4FZ5FF,kEACA,uEY6GM,WAIJ,2FACE,iBACA,YAGF,yFACE,aACA,cACA,SACA,cACA,kBACA,QACA,gCAIJ,uFACE,WACA,WAEA,yBAJF,uFAKI,YCpJN,MAIE,qCAIA,oCAMF,0BdgDE,kCACA,iBACA,mCAyCA,mCACA,kCc1FA,aACA,OACA,sBAEA,sGAEE,WAIA,0FACE,mBAIJ,wDACE,cACA,YACA,aACA,cACA,eAGF,kDACE,mBAIJ,gCACE,aACA,mBACA,SAEA,8DACE,mDACA,0CACA,yCACA,WACE,gNAGF,QAIJ,wCACE,gBACA,YACA,eACA,eAOF,iFAEE,aAGF,yGAEE,YACA,cACA,aACA,cACA,eAEA,yJACE,eACA,gBACA,wDAOJ,iCACE,mDACA,+BACA,yCACA,aACA,kBAEA,iEACE,0CACA,mBACA,4BACA,6BACA,mBAGF,+DACE,eAGF,8LbrGA,iDACA,sDa2GF,yCACE,mDACA,0CACA,gBACA,qDACA,sDACA,aACA,sBACA,UACA,8CACA,gBACA,kBACA,WACA,SAEA,iEACE,kBACA,gBACA,wDAOJ,gCACE,mBACA,aACA,QACA,eACA,aAEA,2Lb5IA,kDACA,uDakJF,yCACE,uEACA,aACA,QACA,eAEA,yBANF,yCAOI,eAIJ,wCACE,mDACA,WACE,6XAMF,aACA,sBACA,QACA,4CACA,gBACA,kBACA,WACA,aAEA,yBAlBF,wCAmBI,0CACA,QACA,iBACA,8CACA,4CACA,mBAIJ,8Cb1LE,kDACA,uDa2LA,YAEA,yBAJF,8CAKI,kBAOJ,qCACE,mDACA,aACA,sBACA,8BACA,QACA,eACA,aAEA,uIAEE,yCAIJ,mDACE,yCACA,YAEA,yBAJF,mDAKI,kBCvOJ,4Bf8DE,kCACA,iBACA,mCe9DA,qDACA,WACE,gNAGF,aACA,QACA,8BACA,cACA,kBAEA,yBAbF,4BAcI,mBAIJ,yCACE,SAGF,iCACE,mBACA,wCACA,aACA,gBACA,gBACA,WAGF,oCACE,mBACA,aACA,QAGF,qCACE,mBACA,oBACA,iDACA,wCACA,oBACA,mCACA,gCACA,QACA,cACA,iBACA,qBAGF,8CACE,oBACA,QAEA,kDACE,mDACA,kBACA,iDACA,cACA,gBC9DJ,MAIE,0CAGF,+BhByDE,kCACA,iBACA,mCgBzDA,iDACA,eAGF,wEACE,mBAGF,oCACE,uBACA,wCACA,aACA,SACA,aACA,qBAEA,qFAEE,0DAGF,0CACE,yDAIJ,6CACE,mBACA,kBACA,aACA,cACA,uBACA,YAGF,qCACE,YACA,iDACA,WAGF,uCACE,aACA,sBACA,YACA,QACA,uBAGF,6FAEE,oBACA,aACA,SACA,gBACA,qBACA,4BAGF,6ChBJE,kCACA,iBACA,mCA6BA,wCACA,gCgBxBF,gDhBRE,kCACA,iBACA,mCAyCA,mCACA,kCiB9GF,+BACE,aACA,gDjBgEA,kCACA,iBACA,mCAyCA,mCACA,kCkB1GA,gCACA,SCHF,oBACE,mBACA,aACA,sBACA,SACA,WACA,eAGF,0BACE,mBACA,4CACA,oBACA,aACA,kBACA,WACA,WAEA,yDACE,oBAGF,2DACE,iDACA,kBACA,WACA,kBACA,QACA,2BACA,UAEA,0FACE,oBAGF,6EACE,oBAIJ,oDACE,gBACA,yBACA,kBACA,WACA,SACA,aACA,oBACA,kBACA,WACA,wBAEA,0EACE,iDACA,kBACA,0CACA,eACA,YACA,mBACA,WACA,wBAGF,sEACE,iDACA,kBACA,0CACA,eACA,YACA,mBACA,WAGF,gFACE,kDAGF,4EACE,kDAKN,0BACE,gCACA,anBrBA,kCACA,iBACA,mCA+CA,yCACA,kCmB3BA,8BACA,eACA,WAGF,8DAEE,eACA,kBC/FF,2BACE,uBACA,aACA,SACA,8BAGF,iCpByDE,kCACA,iBACA,mCAyCA,mCACA,kCoBnGA,wCACA,SAGF,qCpBmDE,kCACA,iBACA,mCA+CA,yCACA,kCoBnGA,0CACA,SAGF,sCACE,sCACA,2CACA,YACA,eACA,cACA,YACA,kBACA,gCACA,WAGF,kCACE,2CACA,kBACA,YACA,SACA,kBACA,oBACA,8BACA,WAIA,wEACE,2CACA,2CAGF,oEACE,2BCjDJ,wBACE,oBACA,SACA,sCACA,uBAGF,6BACE,0CACA,sCACA,aACA,qBACA,SACA,gBACA,UACA,WAGF,gCACE,gDACA,YACA,gBACA,WAGF,2CACE,kBAGF,6BrBmCE,kCACA,iBACA,mCAyCA,mCACA,kCqB7EA,mBACA,mDACA,YACA,aACA,YACA,uBACA,WAGF,oCACE,mDACA,gCAGF,gCACE,0CACA,sCAGF,8BrBcE,kCACA,iBACA,mCAyCA,mCACA,kCqBxDA,mBACA,aCrDF,oBACE,aACA,sBACA,QAGF,0BtB0DE,kCACA,iBACA,mCA+CA,yCACA,kCsB1GA,gCAGF,kCACE,kBAGF,0BtBiDE,kCACA,iBACA,mCAyCA,mCACA,kCsB3FA,gBACA,qDACA,+BACA,sCACA,eACA,YACA,sBACA,WAEA,gCACE,2DAGF,iCACE,4DAGF,gCACE,oCACA,aAIJ,+BACE,UACA,oBACA,kBACA,WACA,QACA,2BAGF,4BtBeE,kCACA,iBACA,mCA+CA,yCACA,kCuBlHF,qCACE,aAGF,4CACE,mBACA,aACA,SAGF,kDvBsDE,kCACA,iBACA,mCAyCA,mCACA,kCuB9FF,kDACE,gBCfF,yBACE,aACA,sCACA,qDACA,kBACA,iBAEA,wCxByDA,kCACA,iBACA,mCAyCA,mCACA,kCwBjGA,4IACE,iBACA,oBAGF,2BACE,oBAGF,6BACE,gBAGF,wDACE,iBACA,oBAGF,2BACE,8BC9BJ,qBACE,aACA,sBACA,mBACA,SACA,kBACA,QACA,SACA,4CAGF,0BACE,aACA,QACA,mBACA,YAEA,8BACE,WACA,YACA,kBACA,iDACA,oDAGF,qDACE,qBAGF,qDACE,oBAIJ,2BzB8BE,kCACA,iBACA,mCA+CA,yCACA,kCyB9EA,mBACA,cACA,SAGF,4BACE,GACE,wBACA,yDAEF,IACE,4BACA,yDAEF,KACE","file":"hologram.css"} \ No newline at end of file diff --git a/public/sdk/types/components.d.ts b/public/sdk/types/components.d.ts index f41ee31..93cd7c4 100644 --- a/public/sdk/types/components.d.ts +++ b/public/sdk/types/components.d.ts @@ -288,6 +288,11 @@ export namespace Components { * ``` */ interface SearchcraftPagination { + /** + * The URL query string parameter name used to track the current page. When a user navigates to a URL that contains this parameter, the pagination component will automatically navigate to that page. + * @default "p" + */ + "pageQueryParam": string; /** * Whether to scroll to the top of the search results when pagination buttons are clicked. * @default true @@ -297,6 +302,11 @@ export namespace Components { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to use a query string parameter to track and restore the current page. Set to `false` to disable query string synchronisation entirely. + * @default true + */ + "usePageQueryParam": boolean; } /** * Renders a button which, when clicked, turns on popover visibility. @@ -356,10 +366,23 @@ export namespace Components { * Renders the footer for the searchcraft-popover-form. */ interface SearchcraftPopoverFooter { + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * @default 'js' + */ + "sdkVariant"?: 'js' | 'react' | 'vue'; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Optional href for the "View all" button. + */ + "viewAllResultsHref"?: string; + /** + * Optional label for the "View all" button. + */ + "viewAllResultsLabel"?: string; } /** * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed. @@ -409,15 +432,33 @@ export namespace Components { * Formats the content rendered for each result. */ "popoverResultMappings"?: PopoverResultMappings; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * @default 'js' + */ + "sdkVariant"?: 'js' | 'react' | 'vue'; /** * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to display the AI generative summary box before the search results. NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + * @default false + */ + "showSummaryBox"?: boolean; /** * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component. * @default 'inline' */ "type"?: 'inline' | 'fullscreen' | 'modal'; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + "viewAllResultsBaseUrl"?: string; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + "viewAllResultsLabel"?: string; } /** * A single list item rendered in a searchcraft-popover-list-view. @@ -1641,6 +1682,11 @@ declare namespace LocalJSX { * ``` */ interface SearchcraftPagination { + /** + * The URL query string parameter name used to track the current page. When a user navigates to a URL that contains this parameter, the pagination component will automatically navigate to that page. + * @default "p" + */ + "pageQueryParam"?: string; /** * Whether to scroll to the top of the search results when pagination buttons are clicked. * @default true @@ -1650,6 +1696,11 @@ declare namespace LocalJSX { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to use a query string parameter to track and restore the current page. Set to `false` to disable query string synchronisation entirely. + * @default true + */ + "usePageQueryParam"?: boolean; } /** * Renders a button which, when clicked, turns on popover visibility. @@ -1713,6 +1764,14 @@ declare namespace LocalJSX { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Optional href for the "View all" button. + */ + "viewAllResultsHref"?: string; + /** + * Optional label for the "View all" button. + */ + "viewAllResultsLabel"?: string; } /** * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed. @@ -1766,11 +1825,24 @@ declare namespace LocalJSX { * The id of the Searchcraft instance that this component should use. */ "searchcraftId"?: string; + /** + * Whether to display the AI generative summary box before the search results. NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + * @default false + */ + "showSummaryBox"?: boolean; /** * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component. * @default 'inline' */ "type"?: 'inline' | 'fullscreen' | 'modal'; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + "viewAllResultsBaseUrl"?: string; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + "viewAllResultsLabel"?: string; } /** * A single list item rendered in a searchcraft-popover-list-view. diff --git a/public/sdk/types/components/searchcraft-pagination/searchcraft-pagination.d.ts b/public/sdk/types/components/searchcraft-pagination/searchcraft-pagination.d.ts index 2cb9830..211cf35 100644 --- a/public/sdk/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +++ b/public/sdk/types/components/searchcraft-pagination/searchcraft-pagination.d.ts @@ -37,6 +37,19 @@ export declare class SearchcraftPagination { * @default true */ scrollToTop?: boolean; + /** + * The URL query string parameter name used to track the current page. When a user navigates + * to a URL that contains this parameter, the pagination component will automatically navigate + * to that page. + * @default "p" + */ + pageQueryParam: string; + /** + * Whether to use a query string parameter to track and restore the current page. + * Set to `false` to disable query string synchronisation entirely. + * @default true + */ + usePageQueryParam: boolean; searchTerm: any; searchResultsPerPage: any; searchResultsPage: any; @@ -48,13 +61,28 @@ export declare class SearchcraftPagination { setSearchResultsPage: (page: number) => void; private unsubscribe; private cleanupCore?; + private _initialPageApplied; onCoreAvailable(core: SearchcraftCore): void; connectedCallback(): void; disconnectedCallback(): void; /** * Smooth scroll to the top of the search results component */ + private scrollAnimationId?; private smoothScrollToSearchResults; + /** + * Returns the page number from the URL query string, or null if not present / disabled. + * Reads from the top-level window when inside a same-origin iframe so that the + * address-bar URL is the source of truth (consistent with updateUrlPage). + */ + private getPageFromUrl; + /** + * Updates (or removes) the page query string parameter in the browser URL without + * triggering a navigation/reload. + * When running inside a same-origin iframe (e.g. Storybook), the top-level window's + * URL is updated so the change is visible in the address bar. + */ + private updateUrlPage; handleGoToPage(page: number): void; renderOddPaginationItem(page: number): any; renderEvenPaginationItem(page: number): any; diff --git a/public/sdk/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts b/public/sdk/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts index 2b97725..4ae624a 100644 --- a/public/sdk/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts +++ b/public/sdk/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts @@ -9,12 +9,27 @@ export declare class SearchcraftPopoverFooter { * The id of the Searchcraft instance that this component should use. */ searchcraftId?: string; + /** + * The SDK variant used to render this component. Used for UTM attribution. This isn't exposed for developer consumption, it's set automatically. + * + * @internal + */ + sdkVariant?: 'js' | 'react' | 'vue'; + /** + * Optional href for the "View all" button. + */ + viewAllResultsHref?: string; + /** + * Optional label for the "View all" button. + */ + viewAllResultsLabel?: string; searchResultsCount: any; private unsubscribe; private cleanupCore?; onCoreAvailable(core: SearchcraftCore): void; connectedCallback(): void; disconnectedCallback(): void; + private get safeViewAllHref(); render(): any; } //# sourceMappingURL=searchcraft-popover-footer.d.ts.map \ No newline at end of file diff --git a/public/sdk/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts b/public/sdk/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts index 05ed3ac..21c4aac 100644 --- a/public/sdk/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +++ b/public/sdk/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts @@ -71,6 +71,27 @@ export declare class SearchcraftPopoverForm { * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it. */ placeholderBehavior?: 'hide-on-focus' | 'hide-on-text-entered'; + /** + * Base URL for the "View all" footer link. The current search term will be appended (URL encoded). + * + * For example, in a CMS-backed site you might set this to `/?s=` so the final URL becomes `/?s=`. + */ + viewAllResultsBaseUrl?: string; + /** + * Optional label for the "View All" footer button. Defaults to "View All". + */ + viewAllResultsLabel?: string; + /** + * Whether to display the AI generative summary box before the search results. + * NOTE: This requires the usage of a read key that has "SUMMARY" permissions and either a subscription to Searchcraft Cloud with AI features enabled or a self-hosted model connected. + */ + showSummaryBox?: boolean; + /** + * The SDK variant used to render this component. Used for UTM attribution on the footer link. + * + * @internal + */ + sdkVariant?: 'js' | 'react' | 'vue'; isPopoverVisibleInState: boolean; searchClientResponseItems: SearchClientResponseItem[]; adClientResponseItems: AdClientResponseItem[]; @@ -119,6 +140,9 @@ export declare class SearchcraftPopoverForm { */ focusOnNextListItem(direction: 'ArrowDown' | 'ArrowUp'): void; get hasResultsToShow(): boolean | "" | undefined; + get viewAllResultsHref(): string | undefined; + get resolvedViewAllResultsLabel(): string; + navigateToViewAllResults(): void; renderInlinePopover(): any; renderModalPopover(): any; renderFullscreenPopover(): any; diff --git a/public/templates/common-template-values.php b/public/templates/common-template-values.php index d572595..4009830 100644 --- a/public/templates/common-template-values.php +++ b/public/templates/common-template-values.php @@ -35,11 +35,17 @@ $searchcraft_toggle_button_disabled_color = get_option( 'searchcraft_toggle_button_disabled_color', '#E0E0E0' ); $searchcraft_filter_label_color = get_option( 'searchcraft_filter_label_color', '#000000' ); $search_experience = get_option( 'searchcraft_search_experience', 'full' ); +// Legacy: treat old 'popover' value as 'modal'. +if ( 'popover' === $search_experience ) { + $search_experience = 'modal'; +} $search_behavior = get_option( 'searchcraft_search_behavior', 'on_page' ); $search_placeholder = get_option( 'searchcraft_search_placeholder', 'Search...' ); $searchcraft_include_filter_panel = get_option( 'searchcraft_include_filter_panel', false ); $searchcraft_input_width = get_option( 'searchcraft_input_width', '100' ); $searchcraft_result_orientation = get_option( 'searchcraft_result_orientation', 'column' ); +$searchcraft_enable_view_all_results = get_option( 'searchcraft_enable_view_all_results', false ); +$searchcraft_view_all_results_label = get_option( 'searchcraft_view_all_results_label', '' ); $value_attr = ''; if ( is_search() ) { $search_query = get_search_query( true ); diff --git a/public/templates/search-header.php b/public/templates/search-header.php index 7b8bd41..0163a73 100644 --- a/public/templates/search-header.php +++ b/public/templates/search-header.php @@ -461,10 +461,12 @@

    - +
    - - + + + + view-all-results-base-url="" view-all-results-label="">
    diff --git a/public/templates/search-results.php b/public/templates/search-results.php index 428fb08..16c39d5 100644 --- a/public/templates/search-results.php +++ b/public/templates/search-results.php @@ -19,7 +19,7 @@ require_once 'common-template-values.php'; ?> - +