@searchcraft/javascript-sdk 0.13.1 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/components/{p-D0j0UFpV.js → CoreInstanceRegistry.js} +2 -2
  2. package/dist/components/CoreInstanceRegistry.js.map +1 -0
  3. package/dist/components/defineCustomElements.js +23 -23
  4. package/dist/components/{p-_aHgRsRD.js → html.js} +3 -3
  5. package/dist/components/html.js.map +1 -0
  6. package/dist/components/index.js +28 -28
  7. package/dist/components/{p-DO5g2x-l.js → index2.js} +11 -5
  8. package/dist/components/index2.js.map +1 -0
  9. package/dist/components/{p-BfTCfPZ1.js → index3.js} +2 -2
  10. package/dist/components/index3.js.map +1 -0
  11. package/dist/components/{p-BlYgaV0q.js → purify.es.js} +10 -4
  12. package/dist/components/purify.es.js.map +1 -0
  13. package/dist/components/searchcraft-ad.js +1 -1
  14. package/dist/components/{p-C1S92_N8.js → searchcraft-ad2.js} +8 -8
  15. package/dist/components/searchcraft-ad2.js.map +1 -0
  16. package/dist/components/searchcraft-button.js +1 -1
  17. package/dist/components/{p-C681KruS.js → searchcraft-button2.js} +6 -6
  18. package/dist/components/searchcraft-button2.js.map +1 -0
  19. package/dist/components/searchcraft-error-message.js +1 -1
  20. package/dist/components/{p-DjPZkCLP.js → searchcraft-error-message2.js} +5 -5
  21. package/dist/components/searchcraft-error-message2.js.map +1 -0
  22. package/dist/components/searchcraft-facet-list.js +1 -1
  23. package/dist/components/{p-BV4HUriZ.js → searchcraft-facet-list2.js} +7 -7
  24. package/dist/components/searchcraft-facet-list2.js.map +1 -0
  25. package/dist/components/searchcraft-filter-panel.js +10 -10
  26. package/dist/components/searchcraft-input-form.js +1 -1
  27. package/dist/components/{p-C-wcIch1.js → searchcraft-input-form2.js} +13 -13
  28. package/dist/components/searchcraft-input-form2.js.map +1 -0
  29. package/dist/components/searchcraft-input-label.js +1 -1
  30. package/dist/components/{p-L4PwHqQC.js → searchcraft-input-label2.js} +6 -6
  31. package/dist/components/searchcraft-input-label2.js.map +1 -0
  32. package/dist/components/searchcraft-loading.js +1 -1
  33. package/dist/components/{p-B_415D4A.js → searchcraft-loading2.js} +5 -5
  34. package/dist/components/searchcraft-loading2.js.map +1 -0
  35. package/dist/components/searchcraft-pagination.js +7 -7
  36. package/dist/components/searchcraft-popover-button.js +5 -5
  37. package/dist/components/searchcraft-popover-footer.js +1 -1
  38. package/dist/components/{p-C7ZK8CYu.js → searchcraft-popover-footer2.js} +8 -8
  39. package/dist/components/searchcraft-popover-footer2.js.map +1 -0
  40. package/dist/components/searchcraft-popover-form.js +22 -22
  41. package/dist/components/searchcraft-popover-list-item.js +1 -1
  42. package/dist/components/{p-Cju73I1E.js → searchcraft-popover-list-item2.js} +8 -8
  43. package/dist/components/searchcraft-popover-list-item2.js.map +1 -0
  44. package/dist/components/searchcraft-popover-list-view.js +1 -1
  45. package/dist/components/{p-Dr9rPC9v.js → searchcraft-popover-list-view2.js} +10 -10
  46. package/dist/components/searchcraft-popover-list-view2.js.map +1 -0
  47. package/dist/components/searchcraft-results-info.js +6 -6
  48. package/dist/components/searchcraft-search-result.js +1 -1
  49. package/dist/components/{p-DotXR-Gz.js → searchcraft-search-result2.js} +7 -7
  50. package/dist/components/searchcraft-search-result2.js.map +1 -0
  51. package/dist/components/searchcraft-search-results-per-page.js +6 -6
  52. package/dist/components/searchcraft-search-results.js +10 -10
  53. package/dist/components/searchcraft-select.js +1 -1
  54. package/dist/components/{p-Dc7S4y3b.js → searchcraft-select2.js} +5 -5
  55. package/dist/components/searchcraft-select2.js.map +1 -0
  56. package/dist/components/searchcraft-slider.js +1 -1
  57. package/dist/components/{p-BbSxfaD7.js → searchcraft-slider2.js} +8 -8
  58. package/dist/components/searchcraft-slider2.js.map +1 -0
  59. package/dist/components/searchcraft-summary-box.js +7 -7
  60. package/dist/components/searchcraft-theme.js +3 -3
  61. package/dist/components/searchcraft-toggle-button.js +1 -1
  62. package/dist/components/{p-D5p2scT9.js → searchcraft-toggle-button2.js} +7 -7
  63. package/dist/components/searchcraft-toggle-button2.js.map +1 -0
  64. package/dist/components/{p-i8oXh7db.js → units.js} +2 -2
  65. package/dist/components/units.js.map +1 -0
  66. package/dist/hydrate/index.d.ts +12 -0
  67. package/dist/hydrate/index.js +1186 -1136
  68. package/dist/hydrate/index.mjs +1185 -1137
  69. package/dist/types/stencil-public-runtime.d.ts +43 -0
  70. package/package.json +3 -3
  71. package/dist/components/p-BV4HUriZ.js.map +0 -1
  72. package/dist/components/p-B_415D4A.js.map +0 -1
  73. package/dist/components/p-BbSxfaD7.js.map +0 -1
  74. package/dist/components/p-BfTCfPZ1.js.map +0 -1
  75. package/dist/components/p-BlYgaV0q.js.map +0 -1
  76. package/dist/components/p-C-wcIch1.js.map +0 -1
  77. package/dist/components/p-C1S92_N8.js.map +0 -1
  78. package/dist/components/p-C681KruS.js.map +0 -1
  79. package/dist/components/p-C7ZK8CYu.js.map +0 -1
  80. package/dist/components/p-Cju73I1E.js.map +0 -1
  81. package/dist/components/p-D0j0UFpV.js.map +0 -1
  82. package/dist/components/p-D5p2scT9.js.map +0 -1
  83. package/dist/components/p-DO5g2x-l.js.map +0 -1
  84. package/dist/components/p-Dc7S4y3b.js.map +0 -1
  85. package/dist/components/p-DjPZkCLP.js.map +0 -1
  86. package/dist/components/p-DotXR-Gz.js.map +0 -1
  87. package/dist/components/p-Dr9rPC9v.js.map +0 -1
  88. package/dist/components/p-L4PwHqQC.js.map +0 -1
  89. package/dist/components/p-_aHgRsRD.js.map +0 -1
  90. package/dist/components/p-i8oXh7db.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { d as defineCustomElement$2 } from './p-C1S92_N8.js';
4
- import { d as defineCustomElement$1 } from './p-Cju73I1E.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { d as defineCustomElement$2 } from './searchcraft-ad2.js?v=0.13.2';
4
+ import { d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.2';
5
5
 
6
6
  const SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {
7
7
  constructor(registerHost) {
@@ -129,17 +129,17 @@ function defineCustomElement() {
129
129
  const components = ["searchcraft-popover-list-view", "searchcraft-ad", "searchcraft-popover-list-item"];
130
130
  components.forEach(tagName => { switch (tagName) {
131
131
  case "searchcraft-popover-list-view":
132
- if (!customElements.get(tagName)) {
133
- customElements.define(tagName, SearchcraftPopoverListView);
132
+ if (!customElements.get(transformTag(tagName))) {
133
+ customElements.define(transformTag(tagName), SearchcraftPopoverListView);
134
134
  }
135
135
  break;
136
136
  case "searchcraft-ad":
137
- if (!customElements.get(tagName)) {
137
+ if (!customElements.get(transformTag(tagName))) {
138
138
  defineCustomElement$2();
139
139
  }
140
140
  break;
141
141
  case "searchcraft-popover-list-item":
142
- if (!customElements.get(tagName)) {
142
+ if (!customElements.get(transformTag(tagName))) {
143
143
  defineCustomElement$1();
144
144
  }
145
145
  break;
@@ -147,6 +147,6 @@ function defineCustomElement() {
147
147
  }
148
148
 
149
149
  export { SearchcraftPopoverListView as S, defineCustomElement as d };
150
- //# sourceMappingURL=p-Dr9rPC9v.js.map
150
+ //# sourceMappingURL=searchcraft-popover-list-view2.js.map
151
151
 
152
- //# sourceMappingURL=p-Dr9rPC9v.js.map
152
+ //# sourceMappingURL=searchcraft-popover-list-view2.js.map
@@ -0,0 +1 @@
1
+ {"file":"searchcraft-popover-list-view2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-popover-list-view/searchcraft-popover-list-view.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, type JSX, Prop, h } from '@stencil/core';\nimport type {\n AdClientResponseItem,\n PopoverResultMappings,\n SearchClientResponseItem,\n SearchcraftConfig,\n} from '@types';\n\n/**\n * This web component is designed to display a list of results within a popover interface.\n * It is consumed within the `searchcraft-popover-form` component.\n *\n * @js-example\n * ```html\n * <searchcraft-popover-list-view />\n * ```\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-popover-list-view',\n shadow: false,\n})\nexport class SearchcraftPopoverListView {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n @Prop() popoverResultMappings: PopoverResultMappings | undefined;\n /**\n * The items to render in the list view.\n */\n @Prop() searchClientResponseItems: SearchClientResponseItem[] | undefined;\n @Prop() adClientResponseItems: AdClientResponseItem[] | undefined;\n @Prop() searchResultsPage!: number;\n @Prop() searchResultsPerPage!: number;\n\n private config?: SearchcraftConfig;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.config = core.config;\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n\n renderWithADMAds() {\n return (\n <div class='searchcraft-popover-list-view'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adClientResponseItem={item}\n adSource='adMarketplace'\n key={item.id}\n renderPosition='top'\n />\n ))}\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />\n ))}\n </div>\n );\n }\n\n renderWithCustomAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialInterval =\n this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (\n interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n\n itemsToRender.push(\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-popover-list-view'>{itemsToRender}</div>;\n }\n\n renderWithNativoAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialStartIndex =\n this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval =\n this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (\n interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n\n itemsToRender.push(\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-popover-list-view'>{itemsToRender}</div>;\n }\n\n renderWithNoAds() {\n return (\n <div class='searchcraft-popover-list-view'>\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />\n ))}\n </div>\n );\n }\n\n render() {\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithADMAds();\n }\n return this.renderWithNoAds();\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { f as formatNumberWithCommas } from './p-i8oXh7db.js';
4
- import { h as html } from './p-_aHgRsRD.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { f as formatNumberWithCommas } from './units.js?v=0.13.2';
4
+ import { h as html } from './html.js?v=0.13.2';
5
5
 
6
6
  const SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {
7
7
  constructor(registerHost) {
@@ -95,8 +95,8 @@ function defineCustomElement$1() {
95
95
  const components = ["searchcraft-results-info"];
96
96
  components.forEach(tagName => { switch (tagName) {
97
97
  case "searchcraft-results-info":
98
- if (!customElements.get(tagName)) {
99
- customElements.define(tagName, SearchcraftResultsInfo$1);
98
+ if (!customElements.get(transformTag(tagName))) {
99
+ customElements.define(transformTag(tagName), SearchcraftResultsInfo$1);
100
100
  }
101
101
  break;
102
102
  } });
@@ -1,4 +1,4 @@
1
- import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './p-DotXR-Gz.js';
1
+ import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './searchcraft-search-result2.js?v=0.13.2';
2
2
 
3
3
  const SearchcraftSearchResult = SearchcraftSearchResult$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { h as html } from './p-_aHgRsRD.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { h as html } from './html.js?v=0.13.2';
4
4
 
5
5
  const SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResult extends H {
6
6
  constructor(registerHost) {
@@ -96,14 +96,14 @@ function defineCustomElement() {
96
96
  const components = ["searchcraft-search-result"];
97
97
  components.forEach(tagName => { switch (tagName) {
98
98
  case "searchcraft-search-result":
99
- if (!customElements.get(tagName)) {
100
- customElements.define(tagName, SearchcraftSearchResult);
99
+ if (!customElements.get(transformTag(tagName))) {
100
+ customElements.define(transformTag(tagName), SearchcraftSearchResult);
101
101
  }
102
102
  break;
103
103
  } });
104
104
  }
105
105
 
106
106
  export { SearchcraftSearchResult as S, defineCustomElement as d };
107
- //# sourceMappingURL=p-DotXR-Gz.js.map
107
+ //# sourceMappingURL=searchcraft-search-result2.js.map
108
108
 
109
- //# sourceMappingURL=p-DotXR-Gz.js.map
109
+ //# sourceMappingURL=searchcraft-search-result2.js.map
@@ -0,0 +1 @@
1
+ {"file":"searchcraft-search-result2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-search-result/searchcraft-search-result.tsx"],"sourcesContent":["import { Component, Element, Prop, State, h } from '@stencil/core';\nimport type {\n SearchClientResponseItem,\n SearchResultTemplate,\n SearchResultTemplateData,\n} from '@types';\n\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { html } from '@utils';\n\n/**\n * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-search-result',\n shadow: false,\n})\nexport class SearchcraftSearchResult {\n @Prop() item?: SearchClientResponseItem;\n /**\n * The index.\n */\n @Prop() index!: number;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n @Prop() documentPosition = 0;\n /**\n * A callback function responsible for rendering a result.\n */\n @Prop() template?: SearchResultTemplate<SearchResultTemplateData>;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n @State() templateHtml: string | undefined;\n @Element() hostElement?: HTMLElement;\n core?: SearchcraftCore;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n\n if (this.item) {\n try {\n this.templateHtml = this.template?.(this.item.document, this.index, {\n html,\n source_index: this.item.source_index,\n });\n } catch (error) {\n console.error('Invalid search result template:', error);\n }\n }\n }\n\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n\n handleResultContainerClick = (event: MouseEvent) => {\n if (!event.target) {\n return;\n }\n\n const target = event.target as HTMLElement;\n const link = target.closest('a');\n\n if (\n !link ||\n !this.hostElement?.contains(link) ||\n !this.core ||\n !this.core.measureClient\n ) {\n return;\n }\n\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents =\n this.core.store.getState().searchClientResponseItems.length || 0;\n\n this.core.measureClient.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n };\n\n handleKeyDown = () => {};\n\n render() {\n if (!this.item) {\n return;\n }\n\n if (typeof this.template === 'undefined') {\n return (\n <div\n class='searchcraft-search-result searchcraft-search-result-no-template'\n onClick={this.handleResultContainerClick}\n onKeyDown={this.handleKeyDown}\n >\n {Object.entries(this.item.document).map(([key, value]) => (\n <p key={key}>\n <strong>{key}</strong>: {value}\n </p>\n ))}\n </div>\n );\n }\n\n return (\n <div\n class='searchcraft-search-result'\n innerHTML={this.templateHtml}\n onClick={this.handleResultContainerClick}\n onKeyDown={this.handleKeyDown}\n />\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { d as defineCustomElement$2 } from './p-Dc7S4y3b.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { d as defineCustomElement$2 } from './searchcraft-select2.js?v=0.13.2';
4
4
 
5
5
  const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {
6
6
  constructor(registerHost) {
@@ -97,12 +97,12 @@ function defineCustomElement$1() {
97
97
  const components = ["searchcraft-search-results-per-page", "searchcraft-select"];
98
98
  components.forEach(tagName => { switch (tagName) {
99
99
  case "searchcraft-search-results-per-page":
100
- if (!customElements.get(tagName)) {
101
- customElements.define(tagName, SearchcraftSearchResultsPerPage$1);
100
+ if (!customElements.get(transformTag(tagName))) {
101
+ customElements.define(transformTag(tagName), SearchcraftSearchResultsPerPage$1);
102
102
  }
103
103
  break;
104
104
  case "searchcraft-select":
105
- if (!customElements.get(tagName)) {
105
+ if (!customElements.get(transformTag(tagName))) {
106
106
  defineCustomElement$2();
107
107
  }
108
108
  break;
@@ -1,8 +1,8 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { d as defineCustomElement$4 } from './p-C1S92_N8.js';
4
- import { d as defineCustomElement$3 } from './p-DjPZkCLP.js';
5
- import { d as defineCustomElement$2 } from './p-DotXR-Gz.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { d as defineCustomElement$4 } from './searchcraft-ad2.js?v=0.13.2';
4
+ import { d as defineCustomElement$3 } from './searchcraft-error-message2.js?v=0.13.2';
5
+ import { d as defineCustomElement$2 } from './searchcraft-search-result2.js?v=0.13.2';
6
6
 
7
7
  const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {
8
8
  constructor(registerHost) {
@@ -169,22 +169,22 @@ function defineCustomElement$1() {
169
169
  const components = ["searchcraft-search-results", "searchcraft-ad", "searchcraft-error-message", "searchcraft-search-result"];
170
170
  components.forEach(tagName => { switch (tagName) {
171
171
  case "searchcraft-search-results":
172
- if (!customElements.get(tagName)) {
173
- customElements.define(tagName, SearchcraftSearchResults$1);
172
+ if (!customElements.get(transformTag(tagName))) {
173
+ customElements.define(transformTag(tagName), SearchcraftSearchResults$1);
174
174
  }
175
175
  break;
176
176
  case "searchcraft-ad":
177
- if (!customElements.get(tagName)) {
177
+ if (!customElements.get(transformTag(tagName))) {
178
178
  defineCustomElement$4();
179
179
  }
180
180
  break;
181
181
  case "searchcraft-error-message":
182
- if (!customElements.get(tagName)) {
182
+ if (!customElements.get(transformTag(tagName))) {
183
183
  defineCustomElement$3();
184
184
  }
185
185
  break;
186
186
  case "searchcraft-search-result":
187
- if (!customElements.get(tagName)) {
187
+ if (!customElements.get(transformTag(tagName))) {
188
188
  defineCustomElement$2();
189
189
  }
190
190
  break;
@@ -1,4 +1,4 @@
1
- import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './p-Dc7S4y3b.js';
1
+ import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './searchcraft-select2.js?v=0.13.2';
2
2
 
3
3
  const SearchcraftSelect = SearchcraftSelect$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';
2
2
 
3
3
  const SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {
4
4
  constructor(registerHost) {
@@ -75,14 +75,14 @@ function defineCustomElement() {
75
75
  const components = ["searchcraft-select"];
76
76
  components.forEach(tagName => { switch (tagName) {
77
77
  case "searchcraft-select":
78
- if (!customElements.get(tagName)) {
79
- customElements.define(tagName, SearchcraftSelect);
78
+ if (!customElements.get(transformTag(tagName))) {
79
+ customElements.define(transformTag(tagName), SearchcraftSelect);
80
80
  }
81
81
  break;
82
82
  } });
83
83
  }
84
84
 
85
85
  export { SearchcraftSelect as S, defineCustomElement as d };
86
- //# sourceMappingURL=p-Dc7S4y3b.js.map
86
+ //# sourceMappingURL=searchcraft-select2.js.map
87
87
 
88
- //# sourceMappingURL=p-Dc7S4y3b.js.map
88
+ //# sourceMappingURL=searchcraft-select2.js.map
@@ -0,0 +1 @@
1
+ {"file":"searchcraft-select2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-select/searchcraft-select.tsx"],"sourcesContent":["import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n State,\n h,\n} from '@stencil/core';\n\nexport type SearchcraftSelectOption = {\n label: string;\n value: string | number;\n selected?: boolean;\n};\n\n/**\n * This web component is designed to allow users to select between a group of options.\n *\n * @js-example\n * ```html\n * <!-- index.html -->\n * <searchcraft-select\n * inputId=\"searchcraft-select\"\n * name=\"searchcraft-select\"\n * options=\"[{ label: 'label', value: 'value' }]\"\n * />\n * ```\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-select',\n shadow: false,\n})\nexport class SearchcraftSelect {\n /**\n * The caption displayed below the select input.\n */\n @Prop() caption?: string;\n /**\n * Whether the select input is disabled.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The ID for the select input.\n */\n @Prop() inputId!: string;\n /**\n * The label of the select input.\n */\n @Prop() label?: string;\n /**\n * The ID for the label of the select input.\n */\n @Prop() labelId?: string;\n /**\n * The name of the select input.\n */\n @Prop() name!: string;\n /**\n * The options for the select input.\n */\n @Prop() options: SearchcraftSelectOption[] | string = [];\n /**\n * The event fired when the select is changed.\n */\n @Event() selectChange!: EventEmitter<string>;\n\n @State() searchResultsPerPage;\n\n @State() setSearchResultsPage: (page: number) => void = () => {};\n @State() setSearchResultsPerPage: (perPage: number) => void = () => {};\n\n private handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n\n handleGoToPage(page: number) {\n this.setSearchResultsPage(page);\n }\n\n render() {\n return (\n <div class='searchcraft-select'>\n {this.label && (\n <label\n class='searchcraft-select-label'\n id={this.labelId || `${this.inputId}-label`}\n htmlFor={this.inputId}\n >\n {this.label}\n </label>\n )}\n <div class='searchcraft-select-input-wrapper'>\n <select\n aria-labelledby={\n this.label ? this.labelId || `${this.inputId}-label` : undefined\n }\n class='searchcraft-select-input'\n disabled={this.disabled}\n id={this.inputId}\n name={this.name}\n onChange={this.handleSelectChange}\n >\n {(typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options\n ).map(({ label, value, selected }) => {\n return (\n <option key={value} value={value} selected={selected}>\n {label}\n </option>\n );\n })}\n </select>\n <svg\n class='searchcraft-select-input-icon'\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <title>Select dropdown icon</title>\n <path\n d='M5 7.5L10 12.5L15 7.5'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n </div>\n {this.caption && (\n <p class='searchcraft-select-caption'>{this.caption}</p>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './p-BbSxfaD7.js';
1
+ import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './searchcraft-slider2.js?v=0.13.2';
2
2
 
3
3
  const SearchcraftSlider = SearchcraftSlider$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';
2
- import { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './p-i8oXh7db.js';
3
- import './p-BlYgaV0q.js';
4
- import { c as classNames } from './p-BfTCfPZ1.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './units.js?v=0.13.2';
3
+ import './purify.es.js';
4
+ import { c as classNames } from './index3.js?v=0.13.2';
5
5
 
6
6
  /**
7
7
  * Creates a throttled version of the given function that only invokes
@@ -183,14 +183,14 @@ function defineCustomElement() {
183
183
  const components = ["searchcraft-slider"];
184
184
  components.forEach(tagName => { switch (tagName) {
185
185
  case "searchcraft-slider":
186
- if (!customElements.get(tagName)) {
187
- customElements.define(tagName, SearchcraftSlider);
186
+ if (!customElements.get(transformTag(tagName))) {
187
+ customElements.define(transformTag(tagName), SearchcraftSlider);
188
188
  }
189
189
  break;
190
190
  } });
191
191
  }
192
192
 
193
193
  export { SearchcraftSlider as S, defineCustomElement as d };
194
- //# sourceMappingURL=p-BbSxfaD7.js.map
194
+ //# sourceMappingURL=searchcraft-slider2.js.map
195
195
 
196
- //# sourceMappingURL=p-BbSxfaD7.js.map
196
+ //# sourceMappingURL=searchcraft-slider2.js.map
@@ -0,0 +1 @@
1
+ {"file":"searchcraft-slider2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/throttle.ts","src/components/searchcraft-slider/searchcraft-slider.tsx"],"sourcesContent":["/**\n * Creates a throttled version of the given function that only invokes\n * the original function at most once every specified number of milliseconds.\n *\n * The logic is written in a way that the last invocation is always called, after the\n * throttle cooldown period has ended.\n *\n * @template Arguments - The argument types for the function to throttle\n * @param callback - The function to throttle\n * @param delayInMilliseconds - The number of milliseconds to wait before allowing the next invocation\n * @returns A throttled version of the original function\n */\nexport function throttle<\n // biome-ignore lint/suspicious/noExplicitAny: To be an effective util, this needs to be flexibile enough allow any type of arguments.\n Arguments extends any[],\n>(\n callback: (...args: Arguments) => void,\n delayInMilliseconds: number,\n): (...args: Arguments) => void {\n let isThrottleOnCooldown = false;\n let trailingCallArgs: Arguments | null = null;\n\n const invokeAction = (args: Arguments) => {\n callback(...args);\n isThrottleOnCooldown = true;\n setTimeout(() => {\n isThrottleOnCooldown = false;\n if (trailingCallArgs) {\n const nextArgs = trailingCallArgs;\n trailingCallArgs = null;\n invokeAction(nextArgs);\n }\n }, delayInMilliseconds);\n };\n\n return (...args: Arguments) => {\n if (!isThrottleOnCooldown) {\n invokeAction(args);\n } else {\n trailingCallArgs = args;\n }\n };\n}\n","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n State,\n h,\n} from '@stencil/core';\nimport {\n getDifferenceInUnits,\n getFormattedDateString,\n getStartOf,\n} from '@utils';\nimport { throttle } from '@utils/throttle';\nimport classNames from 'classnames';\n\n/**\n * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-slider',\n shadow: false,\n})\nexport class SearchcraftSlider {\n /**\n * The maximum value allowed.\n */\n @Prop() max = 100;\n /**\n * The minimum value allowed.\n */\n @Prop() min = 0;\n /**\n * The step amount for the slider inputs.\n */\n @Prop() step = 1;\n /** The type of data the sliders are using. */\n @Prop() dataType: 'number' | 'date' = 'number';\n /** The date granularity to use. Used to format date labels. */\n @Prop() dateGranularity?: 'year' | 'month' | 'day' | 'hour';\n\n @State() lowerBound = 0;\n @State() upperBound = 1;\n @State() endValue = 0;\n @State() startValue = 0;\n @State() lastFocusedHandle: 'min' | 'max' = 'max';\n\n throttledEmitUpdate: () => void = () => {};\n\n /**\n * When the range has changed.\n * */\n @Event() rangeChanged:\n | EventEmitter<{ startValue: number; endValue: number }>\n | undefined;\n\n connectedCallback() {\n switch (this.dataType) {\n case 'number':\n this.startValue = this.min;\n this.endValue = this.max;\n this.lowerBound = this.min;\n this.upperBound = this.max;\n break;\n case 'date': {\n this.startValue = 0;\n this.endValue = getDifferenceInUnits(\n this.dateGranularity || 'year',\n this.min,\n this.max,\n );\n this.lowerBound = 0;\n this.upperBound = this.endValue;\n\n break;\n }\n }\n\n this.throttledEmitUpdate = throttle(this.emitUpdate, 120);\n }\n\n private emitUpdate = async () => {\n switch (this.dataType) {\n case 'number':\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n break;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const startTimestamp = getStartOf(\n this.min,\n granularity,\n this.lowerBound + this.startValue,\n );\n const endTimestamp = getStartOf(\n this.min,\n granularity,\n this.lowerBound + this.endValue + 1,\n );\n this.rangeChanged?.emit({\n startValue: startTimestamp,\n endValue: endTimestamp,\n });\n break;\n }\n }\n };\n\n private handleStartValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n\n if (value <= this.endValue) {\n this.startValue = value;\n this.throttledEmitUpdate();\n } else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n\n private handleEndValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n\n if (value >= this.startValue) {\n this.endValue = value;\n this.throttledEmitUpdate();\n } else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n\n private getLabel = (value): string => {\n switch (this.dataType) {\n case 'number':\n return `${this.startValue}`;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const dateOffset = this.lowerBound + value;\n const timestamp = getStartOf(this.min, granularity, dateOffset);\n\n return getFormattedDateString(\n this.dateGranularity || 'year',\n new Date(timestamp),\n );\n }\n }\n };\n\n render() {\n const startPercent =\n ((this.startValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n const endPercent =\n ((this.endValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n\n const startLabel = this.getLabel(this.startValue);\n const endLabel = this.getLabel(this.endValue);\n\n return (\n <div class='searchcraft-slider'>\n <div class='searchcraft-slider-range'>\n <div\n class='searchcraft-slider-active-range'\n style={{\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n }}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-min-handle',\n )}\n max={this.upperBound}\n min={this.lowerBound}\n onInput={this.handleStartValueChange.bind(this)}\n step={this.step}\n style={{ zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }}\n type='range'\n value={this.startValue}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-max-handle',\n )}\n max={this.upperBound}\n min={this.lowerBound}\n onInput={this.handleEndValueChange.bind(this)}\n step={this.step}\n style={{ zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }}\n type='range'\n value={this.endValue}\n />\n </div>\n <div class='searchcraft-slider-label'>\n <span class='searchcraft-slider-start-label'>{startLabel}</span>\n <span class='searchcraft-slider-end-label'>{endLabel}</span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { p as purify } from './p-BlYgaV0q.js';
4
- import { d as defineCustomElement$2 } from './p-B_415D4A.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { p as purify } from './purify.es.js?v=0.13.2';
4
+ import { d as defineCustomElement$2 } from './searchcraft-loading2.js?v=0.13.2';
5
5
 
6
6
  /**
7
7
  * marked v15.0.12 - a markdown parser
@@ -2243,12 +2243,12 @@ function defineCustomElement$1() {
2243
2243
  const components = ["searchcraft-summary-box", "searchcraft-loading"];
2244
2244
  components.forEach(tagName => { switch (tagName) {
2245
2245
  case "searchcraft-summary-box":
2246
- if (!customElements.get(tagName)) {
2247
- customElements.define(tagName, SearchcraftSummaryBox$1);
2246
+ if (!customElements.get(transformTag(tagName))) {
2247
+ customElements.define(transformTag(tagName), SearchcraftSummaryBox$1);
2248
2248
  }
2249
2249
  break;
2250
2250
  case "searchcraft-loading":
2251
- if (!customElements.get(tagName)) {
2251
+ if (!customElements.get(transformTag(tagName))) {
2252
2252
  defineCustomElement$2();
2253
2253
  }
2254
2254
  break;
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
2
2
 
3
3
  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-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)}@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 */
4
4
  `;
@@ -21,8 +21,8 @@ function defineCustomElement$1() {
21
21
  const components = ["searchcraft-theme"];
22
22
  components.forEach(tagName => { switch (tagName) {
23
23
  case "searchcraft-theme":
24
- if (!customElements.get(tagName)) {
25
- customElements.define(tagName, SearchcraftTheme$1);
24
+ if (!customElements.get(transformTag(tagName))) {
25
+ customElements.define(transformTag(tagName), SearchcraftTheme$1);
26
26
  }
27
27
  break;
28
28
  } });
@@ -1,4 +1,4 @@
1
- import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './p-D5p2scT9.js';
1
+ import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './searchcraft-toggle-button2.js?v=0.13.2';
2
2
 
3
3
  const SearchcraftToggleButton = SearchcraftToggleButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';
2
- import { r as registry } from './p-D0j0UFpV.js';
3
- import { c as classNames } from './p-BfTCfPZ1.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';
2
+ import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
3
+ import { c as classNames } from './index3.js?v=0.13.2';
4
4
 
5
5
  const SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H {
6
6
  constructor(registerHost) {
@@ -70,14 +70,14 @@ function defineCustomElement() {
70
70
  const components = ["searchcraft-toggle-button"];
71
71
  components.forEach(tagName => { switch (tagName) {
72
72
  case "searchcraft-toggle-button":
73
- if (!customElements.get(tagName)) {
74
- customElements.define(tagName, SearchcraftToggleButton);
73
+ if (!customElements.get(transformTag(tagName))) {
74
+ customElements.define(transformTag(tagName), SearchcraftToggleButton);
75
75
  }
76
76
  break;
77
77
  } });
78
78
  }
79
79
 
80
80
  export { SearchcraftToggleButton as S, defineCustomElement as d };
81
- //# sourceMappingURL=p-D5p2scT9.js.map
81
+ //# sourceMappingURL=searchcraft-toggle-button2.js.map
82
82
 
83
- //# sourceMappingURL=p-D5p2scT9.js.map
83
+ //# sourceMappingURL=searchcraft-toggle-button2.js.map
@@ -0,0 +1 @@
1
+ {"file":"searchcraft-toggle-button2.js","mappings":";;;;MAqBa,uBAAuB,iBAAAA,kBAAA,CAAA,MAAA,uBAAA,SAAAC,CAAA,CAAA;;;;;;;;AAClC;;AAEG;IACK,KAAK,GAAG,QAAQ;AACxB;;AAEG;AACK,IAAA,QAAQ;AAChB;;AAEG;AACK,IAAA,aAAa;AAErB;;AAEG;AACM,IAAA,aAAa;IAEb,QAAQ,GAAG,KAAK;AAChB,IAAA,cAAc;AACf,IAAA,WAAW;AACX,IAAA,WAAW;IAEX,YAAY,GAAG,YAAW;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;QAC9B,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzC,KAAC;AAED,IAAA,eAAe,CAAC,IAAqB,EAAA;;AAEnC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChD,YAAA,IACE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc;gBACxC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACpC;AACA,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAEvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU;AACxC,SAAC,CAAC;;IAGJ,iBAAiB,GAAA;QACf,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe,CACzC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAChC;;IAGH,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,IAAI;AACpB,QAAA,IAAI,CAAC,WAAW,IAAI;;IAGtB,MAAM,GAAA;AACJ,QAAA,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,UAAU,CAAC,2BAA2B,EAAE;gBAC7C,kCAAkC,EAAE,IAAI,CAAC,QAAQ;aAClD,CAAC,EAAA,EAEF,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,iCAAiC,IAAE,IAAI,CAAC,KAAK,CAAK,EAC1D,IAAI,CAAC,QAAQ,KACZ,0DAAG,KAAK,EAAC,qCAAqC,EAAA,EAAE,IAAI,CAAC,QAAQ,CAAK,CACnE,CACG,EACN,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,sCAAsC,EAC5C,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kCAAkC,GAAG,CACzC,CACL;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-toggle-button/searchcraft-toggle-button.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport {\n Component,\n Event,\n type EventEmitter,\n Prop,\n State,\n h,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component simulates a light switch functionality, providing a simple and intuitive toggle between two states—on and off.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-toggle-button',\n shadow: false,\n})\nexport class SearchcraftToggleButton {\n /**\n * The label.\n */\n @Prop() label = 'Toggle';\n /**\n * The secondary label displayed below the main label.\n */\n @Prop() subLabel: string | undefined;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n /**\n * When the toggle element is changed.\n */\n @Event() toggleUpdated?: EventEmitter<boolean>;\n\n @State() isActive = false;\n @State() lastSearchTerm: string | undefined;\n private unsubscribe: (() => void) | undefined;\n private cleanupCore?: () => void;\n\n private handleToggle = async () => {\n this.isActive = !this.isActive;\n this.toggleUpdated?.emit(this.isActive);\n };\n\n onCoreAvailable(core: SearchcraftCore) {\n /** When the query changes, sets toggle button state back to inactive. */\n this.unsubscribe = core.store.subscribe((state) => {\n if (\n state.searchTerm !== this.lastSearchTerm &&\n state.searchTerm.trim().length === 0\n ) {\n this.isActive = false;\n }\n this.lastSearchTerm = state.searchTerm;\n });\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 render() {\n return (\n <div\n class={classNames('searchcraft-toggle-button', {\n 'searchcraft-toggle-button-active': this.isActive,\n })}\n >\n <div>\n <p class='searchcraft-toggle-button-label'>{this.label}</p>\n {this.subLabel && (\n <p class='searchcraft-toggle-button-sub-label'>{this.subLabel}</p>\n )}\n </div>\n <button\n class='searchcraft-toggle-button-background'\n onClick={this.handleToggle}\n type='button'\n >\n <div class='searchcraft-toggle-button-handle' />\n </button>\n </div>\n );\n }\n}\n"],"version":3}
@@ -178,6 +178,6 @@ function getFormattedDateString(granularity, date) {
178
178
  }
179
179
 
180
180
  export { getDifferenceInUnits as a, getStartOf as b, getFormattedDateString as c, formatNumberWithCommas as f, getDocumentValueFromSearchResultMapping as g };
181
- //# sourceMappingURL=p-i8oXh7db.js.map
181
+ //# sourceMappingURL=units.js.map
182
182
 
183
- //# sourceMappingURL=p-i8oXh7db.js.map
183
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"file":"units.js","mappings":"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","names":[],"sources":["src/utils/units.ts"],"sourcesContent":["import type { SearchResultMapping } from '@types';\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nexport function getDocumentValueFromSearchResultMapping(\n document: Record<string, unknown> | undefined,\n mapping: SearchResultMapping | undefined,\n): string | undefined {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n valueFound = formatRelativeDate(\n valueFound as string | Date,\n fieldNameDetails.dateFormatLocale,\n fieldNameDetails.dateFormatOptions,\n );\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(\n fieldNameDetails.numberFormatLocale,\n fieldNameDetails.numberFormatOptions,\n ).format(\n (valueFound as number) * (fieldNameDetails.numberScale || 1),\n );\n break;\n }\n default:\n break;\n }\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n\n/**\n * Convert different units of time to milliseconds.\n *\n * @param unit - The unit of time\n * @returns {number}\n */\nexport function getMillis(unit: 'year' | 'month' | 'day' | 'hour'): number {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\n\n/**\n * Format a number with commas as thousands separators.\n *\n * @param number - The number to be formatted.\n * @returns {string} - The formatted number as a string.\n */\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * Format a date or date string. The string is formatted relative to today's date\n * (e.g. 2 days ago) until the date range is greater than a month.\n *\n * @param dateInput - The date to be formatted.\n * @param locale - The language used for formatting the date.\n * @param options - The non-default options used for formatting the date.\n * @returns {string} - The formatted date as a string.\n */\nexport function formatRelativeDate(\n dateInput: string | Date,\n locale = 'en-US',\n options: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n): string {\n const date = new Date(dateInput);\n const now = new Date();\n const diffMillis = now.getTime() - date.getTime();\n const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // Approx. 1 month in ms\n\n if (diffMillis < oneMonthInMillis) {\n const diffSeconds = Math.trunc(diffMillis / 1000);\n const diffMinutes = Math.trunc(diffSeconds / 60);\n const diffHours = Math.trunc(diffMinutes / 60);\n const diffDays = Math.trunc(diffHours / 24);\n const relativeTimeFormat = new Intl.RelativeTimeFormat(locale, options);\n\n if (diffDays >= 1) {\n return relativeTimeFormat.format(-diffDays, 'day');\n }\n\n if (diffHours >= 1) {\n return relativeTimeFormat.format(-diffHours, 'hour');\n }\n\n if (diffMinutes >= 1) {\n return relativeTimeFormat.format(-diffMinutes, 'minute');\n }\n\n return relativeTimeFormat.format(0, 'second');\n }\n\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n\n/**\n * Given a date, returns the timestamp (in ms) for the start of the specified unit.\n *\n * @param unit - The unit to calculate the start of ('year' | 'month' | 'day' | 'hour').\n * @param timestamp - The date to evaluate.\n * @param offset - The number of units to offset by.\n * @returns The timestamp (in ms) for the start of the specified unit.\n */\nexport function getStartOf(\n timestamp: number,\n unit: 'year' | 'month' | 'day' | 'hour',\n offset = 0,\n): number {\n const d = new Date(timestamp);\n\n switch (unit) {\n case 'year':\n return new Date(d.getFullYear() + offset, 0, 1, 0, 0, 0, 0).getTime();\n case 'month':\n return new Date(\n d.getFullYear(),\n d.getMonth() + offset,\n 1,\n 0,\n 0,\n 0,\n 0,\n ).getTime();\n case 'day':\n return new Date(\n d.getFullYear(),\n d.getMonth(),\n d.getDate() + offset,\n 0,\n 0,\n 0,\n 0,\n ).getTime();\n case 'hour':\n return new Date(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours() + offset,\n 0,\n 0,\n 0,\n ).getTime();\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n\n/**\n * Given a start and end date, returns the difference in the number of the specified units.\n *\n * @param units - The unit to measure ('year' | 'month' | 'day' | 'hour').\n * @param startDate - The start date.\n * @param endDate - The end date.\n * @returns The difference in the given unit.\n */\nexport function getDifferenceInUnits(\n unit: 'year' | 'month' | 'day' | 'hour',\n startTime: number,\n endTime: number,\n): number {\n const start = new Date(startTime);\n const end = new Date(endTime);\n\n switch (unit) {\n case 'year':\n return Math.abs(end.getFullYear() - start.getFullYear());\n\n case 'month':\n return Math.abs(\n end.getFullYear() * 12 +\n end.getMonth() -\n (start.getFullYear() * 12 + start.getMonth()),\n );\n\n case 'day':\n return Math.floor(\n Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24),\n );\n\n case 'hour':\n return Math.floor(\n Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60),\n );\n\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n\n/**\n * Returns the ordinal representation of a day of the month.\n */\nconst getOrdinal = (n: number): string => {\n if (n >= 11 && n <= 13) return `${n}th`;\n switch (n % 10) {\n case 1:\n return `${n}st`;\n case 2:\n return `${n}nd`;\n case 3:\n return `${n}rd`;\n default:\n return `${n}th`;\n }\n};\n\n/**\n * Given a granularity level, returns a formatted, human-readable, date string.\n *\n * @param granularity - The granularity level to display. The granularity level dictates how the date is formatted.\n * @param date - The date to format.\n *\n * @returns A formatted string representing the date at the specified granularity.\n *\n * @example\n * getFormattedDateString('year', new Date('2023-01-01')) // \"2023\"\n * getFormattedDateString('month', new Date('2023-01-01')) // \"Jan 2023\"\n * getFormattedDateString('day', new Date('2023-01-31')) // \"Jan 31st, 2023\"\n * getFormattedDateString('hour', new Date('2023-01-31T12:00:00')) // \"Jan 31st, 12:00 PM\"\n */\nexport function getFormattedDateString(\n granularity: 'year' | 'month' | 'day' | 'hour',\n date: Date,\n): string {\n const monthFormatter = new Intl.DateTimeFormat('en-US', { month: 'short' });\n\n switch (granularity) {\n case 'year':\n return date.getFullYear().toString();\n\n case 'month':\n return `${monthFormatter.format(date)} ${date.getFullYear()}`;\n\n case 'day':\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${date.getFullYear()}`;\n\n case 'hour': {\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${timeFormatter.format(date)}`;\n }\n default:\n throw new Error(`Unsupported granularity: ${granularity}`);\n }\n}\n"],"version":3}