@coveo/atomic-react 3.11.45 → 3.11.47

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.
@@ -4081,7 +4081,11 @@ function getFieldCaptionNamespace(field) {
4081
4081
  return `caption-${field}`;
4082
4082
  }
4083
4083
  function getFieldCaptions(field, i18n) {
4084
- return i18n.getResourceBundle(i18n.language, getFieldCaptionNamespace(field)) || {};
4084
+ const namespace = getFieldCaptionNamespace(field);
4085
+ return (i18n.languages ?? []).reduceRight((captions, language)=>({
4086
+ ...captions,
4087
+ ...i18n.getResourceBundle(language, namespace)
4088
+ }), {});
4085
4089
  }
4086
4090
  function getFieldValueCaption(field, facetValue, i18n) {
4087
4091
  return i18n.t(facetValue, {
@@ -4910,6 +4914,46 @@ const booleanConverter = {
4910
4914
  }
4911
4915
  };
4912
4916
 
4917
+ const renderFacetValueLabelHighlight = ({ props })=>{
4918
+ const classNames = tw({
4919
+ 'value-label peer-hover:text-error truncate': true,
4920
+ 'font-bold': props.isSelected || !!props.isExcluded
4921
+ });
4922
+ return lit.html`<span
4923
+ title=${props.displayValue}
4924
+ part="value-label"
4925
+ class=${multiClassMap(classNames)}
4926
+ .innerHTML=${highlightSearchResult(props.displayValue, props.searchQuery)}
4927
+ ></span>`;
4928
+ };
4929
+
4930
+ const renderCategoryFacetActiveValue = ({ props: { displayValue, numberOfResults, i18n, searchQuery, isLeafValue, setRef } })=>(children)=>{
4931
+ const count = numberOfResults.toLocaleString(i18n.language);
4932
+ return lit.html`${keyed_js.keyed(displayValue, lit.html`<li class="contents">
4933
+ <span
4934
+ part="active-parent ${isLeafValue ? 'leaf-value' : 'node-value'}"
4935
+ class="text-primary flex w-full items-center truncate px-2 py-2.5 text-left"
4936
+ aria-current="true"
4937
+ tabindex="-1"
4938
+ ${ref_js.ref(setRef)}
4939
+ >
4940
+ ${renderFacetValueLabelHighlight({
4941
+ props: {
4942
+ displayValue,
4943
+ searchQuery,
4944
+ isSelected: true
4945
+ }
4946
+ })}
4947
+ <span part="value-count" class="value-count">
4948
+ ${i18n.t('between-parentheses', {
4949
+ text: count
4950
+ })}
4951
+ </span>
4952
+ </span>
4953
+ ${children}
4954
+ </li>`)}`;
4955
+ };
4956
+
4913
4957
  var arrow_left_rounded = "<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m11.5 4.8-4.3 4.5c-.3.4-.3.9 0 1.3l4.3 4.6c.3.4.9.4 1.2 0s.3-.9 0-1.3l-3.7-4 3.7-3.9c.3-.4.3-.9 0-1.3-.3-.3-.9-.3-1.2.1z\"/></svg>";
4914
4958
 
4915
4959
  const getAllCategoriesLocalizedLabel = ({ facetId, field, i18n })=>{
@@ -4970,91 +5014,6 @@ const renderCategoryFacetParentButton = ({ props })=>{
4970
5014
  `);
4971
5015
  };
4972
5016
 
4973
- const renderFacetValueLabelHighlight = ({ props })=>{
4974
- const classNames = tw({
4975
- 'value-label peer-hover:text-error truncate': true,
4976
- 'font-bold': props.isSelected || !!props.isExcluded
4977
- });
4978
- return lit.html`<span
4979
- title=${props.displayValue}
4980
- part="value-label"
4981
- class=${multiClassMap(classNames)}
4982
- .innerHTML=${highlightSearchResult(props.displayValue, props.searchQuery)}
4983
- ></span>`;
4984
- };
4985
-
4986
- const renderFacetValueLink = ({ props })=>(children)=>{
4987
- const count = props.numberOfResults.toLocaleString(props.i18n.language);
4988
- const ariaLabel = props.i18n.t('facet-value', {
4989
- value: props.displayValue,
4990
- count: props.numberOfResults,
4991
- formattedCount: count,
4992
- interpolation: {
4993
- escapeValue: false
4994
- }
4995
- });
4996
- let part = props.part ?? `value-link${props.isSelected ? ' value-link-selected' : ''}`;
4997
- if (props.additionalPart) part += ` ${props.additionalPart}`;
4998
- return lit.html`
4999
- ${keyed_js.keyed(props.displayValue, lit.html`<li class=${ifDefined_js.ifDefined(props.class)}>
5000
- ${renderButton({
5001
- props: {
5002
- style: 'text-neutral',
5003
- part,
5004
- onClick: ()=>props.onClick(),
5005
- class: 'group flex w-full items-center truncate px-2 py-2.5 text-left focus-visible:outline-none',
5006
- ariaPressed: props.isSelected ? 'true' : 'false',
5007
- ariaLabel,
5008
- ref: props.buttonRef
5009
- }
5010
- })(lit.html`${children}<span part="value-count" class="value-count">
5011
- ${props.i18n.t('between-parentheses', {
5012
- text: count
5013
- })}
5014
- </span>`)}
5015
- ${props.subList}
5016
- </li>`)}
5017
- `;
5018
- };
5019
-
5020
- const renderCategoryFacetValueLink = ({ props: { displayValue, numberOfResults, i18n, onClick, isParent, isSelected, searchQuery, isLeafValue, setRef } })=>(children)=>{
5021
- const partNames = [];
5022
- if (isParent) partNames.push('active-parent');
5023
- else partNames.push(`value-link${isSelected ? ' value-link-selected' : ''}`);
5024
- if (isLeafValue) partNames.push('leaf-value');
5025
- else partNames.push('node-value');
5026
- return lit.html`${renderFacetValueLink({
5027
- props: {
5028
- displayValue,
5029
- numberOfResults,
5030
- i18n,
5031
- onClick,
5032
- isSelected,
5033
- searchQuery,
5034
- part: partNames.join(' '),
5035
- class: 'contents',
5036
- buttonRef: (element)=>{
5037
- setRef?.(element);
5038
- },
5039
- subList: children
5040
- }
5041
- })(renderFacetValueLabelHighlight({
5042
- props: {
5043
- displayValue,
5044
- searchQuery,
5045
- isSelected
5046
- }
5047
- }))}`;
5048
- };
5049
-
5050
- const renderCategoryFacetParentValueLink = ({ props })=>renderCategoryFacetValueLink({
5051
- props: {
5052
- ...props,
5053
- isParent: true,
5054
- isSelected: true
5055
- }
5056
- });
5057
-
5058
5017
  const renderCategoryFacetSearchResultsContainer = ()=>(children)=>lit.html`<ul part="search-results" class="mt-3">
5059
5018
  ${children}
5060
5019
  </ul>`;
@@ -5149,8 +5108,97 @@ const renderCategoryFacetSearchValue = ({ props })=>{
5149
5108
  </li>`;
5150
5109
  };
5151
5110
 
5111
+ const renderCategoryFacetSelectedValue = ({ props: { displayValue, label, i18n, onClearFilters } })=>lit.html`<div part="selected-value" class="mt-3 flex items-center justify-between gap-2">
5112
+ <span
5113
+ part="selected-value-pill"
5114
+ title=${displayValue}
5115
+ class="bg-neutral-light truncate rounded-md px-2 py-1 text-sm"
5116
+ >${displayValue}</span
5117
+ >
5118
+ ${renderButton({
5119
+ props: {
5120
+ part: 'selected-value-clear-button',
5121
+ style: 'text-primary',
5122
+ class: 'flex shrink-0 items-center p-1 text-sm',
5123
+ ariaLabel: i18n.t('clear-filters-for-facet', {
5124
+ count: 1,
5125
+ label: i18n.t(label)
5126
+ }),
5127
+ onClick: onClearFilters
5128
+ }
5129
+ })(lit.html`<atomic-icon
5130
+ part="selected-value-clear-button-icon"
5131
+ class="mr-1 h-2 w-2"
5132
+ .icon=${images_close}
5133
+ ></atomic-icon>
5134
+ <span>${i18n.t('clear')}</span>`)}
5135
+ </div>`;
5136
+
5152
5137
  const renderCategoryFacetTreeValueContainer = ()=>(children)=>lit.html`<li class="contents">${children}</li>`;
5153
5138
 
5139
+ const renderFacetValueLink = ({ props })=>(children)=>{
5140
+ const count = props.numberOfResults.toLocaleString(props.i18n.language);
5141
+ const ariaLabel = props.i18n.t('facet-value', {
5142
+ value: props.displayValue,
5143
+ count: props.numberOfResults,
5144
+ formattedCount: count,
5145
+ interpolation: {
5146
+ escapeValue: false
5147
+ }
5148
+ });
5149
+ let part = props.part ?? `value-link${props.isSelected ? ' value-link-selected' : ''}`;
5150
+ if (props.additionalPart) part += ` ${props.additionalPart}`;
5151
+ return lit.html`
5152
+ ${keyed_js.keyed(props.displayValue, lit.html`<li class=${ifDefined_js.ifDefined(props.class)}>
5153
+ ${renderButton({
5154
+ props: {
5155
+ style: 'text-neutral',
5156
+ part,
5157
+ onClick: ()=>props.onClick(),
5158
+ class: 'group flex w-full items-center truncate px-2 py-2.5 text-left focus-visible:outline-none',
5159
+ ariaPressed: props.isSelected ? 'true' : 'false',
5160
+ ariaLabel,
5161
+ ref: props.buttonRef
5162
+ }
5163
+ })(lit.html`${children}<span part="value-count" class="value-count">
5164
+ ${props.i18n.t('between-parentheses', {
5165
+ text: count
5166
+ })}
5167
+ </span>`)}
5168
+ ${props.subList}
5169
+ </li>`)}
5170
+ `;
5171
+ };
5172
+
5173
+ const renderCategoryFacetValueLink = ({ props: { displayValue, numberOfResults, i18n, onClick, isSelected, searchQuery, isLeafValue, setRef } })=>(children)=>{
5174
+ const partNames = [
5175
+ `value-link${isSelected ? ' value-link-selected' : ''}`,
5176
+ isLeafValue ? 'leaf-value' : 'node-value'
5177
+ ];
5178
+ return lit.html`${renderFacetValueLink({
5179
+ props: {
5180
+ displayValue,
5181
+ numberOfResults,
5182
+ i18n,
5183
+ onClick,
5184
+ isSelected,
5185
+ searchQuery,
5186
+ part: partNames.join(' '),
5187
+ class: 'contents',
5188
+ buttonRef: (element)=>{
5189
+ setRef?.(element);
5190
+ },
5191
+ subList: children
5192
+ }
5193
+ })(renderFacetValueLabelHighlight({
5194
+ props: {
5195
+ displayValue,
5196
+ searchQuery,
5197
+ isSelected
5198
+ }
5199
+ }))}`;
5200
+ };
5201
+
5154
5202
  const styles$r = lit.css`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.value-count{margin-left:calc(var(--spacing,.25rem)*1.5);color:var(--atomic-neutral-dark)}[part=value-exclude-button]+.value-count{margin-right:calc(var(--spacing,.25rem)*2)}:host(:state(hidden)){display:none}:host(.popover-nested){min-width:var(--container-2xs,18rem)}:host(.popover-nested)::part(label-button){display:none}:host(.popover-nested)::part(facet){--tw-shadow:0px 2px 8px var(--tw-shadow-color,#e5e8e8bf);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:host(.popover-nested)::part(values){max-height:calc(var(--spacing,.25rem)*96);margin-top:0;overflow-y:auto}:host(.popover-nested)::part(search-wrapper){margin-bottom:calc(var(--spacing,.25rem)*2)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
5155
5203
  const facet_common_tw_css = styles$r;
5156
5204
 
@@ -8361,7 +8409,7 @@ function getWindow$1() {
8361
8409
  }
8362
8410
  function getAtomicEnvironment(headlessVersion) {
8363
8411
  return {
8364
- version: "3.61.5",
8412
+ version: "3.63.0",
8365
8413
  headlessVersion
8366
8414
  };
8367
8415
  }
@@ -8414,20 +8462,20 @@ function getNextAnalyticsConfig(searchEngineConfig, enabled) {
8414
8462
  const locales = {
8415
8463
  af: ()=>Promise.resolve().then(function () { return af$1; }),
8416
8464
  am: ()=>Promise.resolve().then(function () { return am$1; }),
8417
- 'ar-IQ': ()=>Promise.resolve().then(function () { return arIq$1; }),
8418
- 'ar-DZ': ()=>Promise.resolve().then(function () { return arDz$1; }),
8419
- 'ar-KW': ()=>Promise.resolve().then(function () { return arKw$1; }),
8420
- 'ar-LY': ()=>Promise.resolve().then(function () { return arLy$1; }),
8421
- 'ar-MA': ()=>Promise.resolve().then(function () { return arMa$1; }),
8422
- 'ar-SA': ()=>Promise.resolve().then(function () { return arSa$1; }),
8423
- 'ar-TN': ()=>Promise.resolve().then(function () { return arTn$1; }),
8465
+ 'ar-iq': ()=>Promise.resolve().then(function () { return arIq$1; }),
8466
+ 'ar-dz': ()=>Promise.resolve().then(function () { return arDz$1; }),
8467
+ 'ar-kw': ()=>Promise.resolve().then(function () { return arKw$1; }),
8468
+ 'ar-ly': ()=>Promise.resolve().then(function () { return arLy$1; }),
8469
+ 'ar-ma': ()=>Promise.resolve().then(function () { return arMa$1; }),
8470
+ 'ar-sa': ()=>Promise.resolve().then(function () { return arSa$1; }),
8471
+ 'ar-tn': ()=>Promise.resolve().then(function () { return arTn$1; }),
8424
8472
  ar: ()=>Promise.resolve().then(function () { return ar$1; }),
8425
8473
  az: ()=>Promise.resolve().then(function () { return az$1; }),
8426
8474
  be: ()=>Promise.resolve().then(function () { return be$1; }),
8427
8475
  bg: ()=>Promise.resolve().then(function () { return bg$1; }),
8428
8476
  bi: ()=>Promise.resolve().then(function () { return bi$1; }),
8429
8477
  bm: ()=>Promise.resolve().then(function () { return bm$1; }),
8430
- 'bn-BD': ()=>Promise.resolve().then(function () { return bnBd$1; }),
8478
+ 'bn-bd': ()=>Promise.resolve().then(function () { return bnBd$1; }),
8431
8479
  bn: ()=>Promise.resolve().then(function () { return bn$1; }),
8432
8480
  bo: ()=>Promise.resolve().then(function () { return bo$1; }),
8433
8481
  br: ()=>Promise.resolve().then(function () { return br$1; }),
@@ -8437,49 +8485,49 @@ const locales = {
8437
8485
  cv: ()=>Promise.resolve().then(function () { return cv$1; }),
8438
8486
  cy: ()=>Promise.resolve().then(function () { return cy$1; }),
8439
8487
  da: ()=>Promise.resolve().then(function () { return da$1; }),
8440
- 'de-AT': ()=>Promise.resolve().then(function () { return deAt$1; }),
8441
- 'de-CH': ()=>Promise.resolve().then(function () { return deCh$1; }),
8488
+ 'de-at': ()=>Promise.resolve().then(function () { return deAt$1; }),
8489
+ 'de-ch': ()=>Promise.resolve().then(function () { return deCh$1; }),
8442
8490
  de: ()=>Promise.resolve().then(function () { return de$1; }),
8443
8491
  dv: ()=>Promise.resolve().then(function () { return dv$1; }),
8444
- 'en-AU': ()=>Promise.resolve().then(function () { return enAu$1; }),
8492
+ 'en-au': ()=>Promise.resolve().then(function () { return enAu$1; }),
8445
8493
  el: ()=>Promise.resolve().then(function () { return el$1; }),
8446
- 'en-GB': ()=>Promise.resolve().then(function () { return enGb$1; }),
8447
- 'en-IE': ()=>Promise.resolve().then(function () { return enIe$1; }),
8448
- 'en-IL': ()=>Promise.resolve().then(function () { return enIl$1; }),
8449
- 'en-IN': ()=>Promise.resolve().then(function () { return enIn$1; }),
8450
- 'en-NZ': ()=>Promise.resolve().then(function () { return enNz$1; }),
8451
- 'en-SG': ()=>Promise.resolve().then(function () { return enSg$1; }),
8452
- 'en-TT': ()=>Promise.resolve().then(function () { return enTt$1; }),
8453
- 'en-CA': ()=>Promise.resolve().then(function () { return enCa$1; }),
8494
+ 'en-gb': ()=>Promise.resolve().then(function () { return enGb$1; }),
8495
+ 'en-ie': ()=>Promise.resolve().then(function () { return enIe$1; }),
8496
+ 'en-il': ()=>Promise.resolve().then(function () { return enIl$1; }),
8497
+ 'en-in': ()=>Promise.resolve().then(function () { return enIn$1; }),
8498
+ 'en-nz': ()=>Promise.resolve().then(function () { return enNz$1; }),
8499
+ 'en-sg': ()=>Promise.resolve().then(function () { return enSg$1; }),
8500
+ 'en-tt': ()=>Promise.resolve().then(function () { return enTt$1; }),
8501
+ 'en-ca': ()=>Promise.resolve().then(function () { return enCa$1; }),
8454
8502
  en: ()=>Promise.resolve().then(function () { return en$1; }),
8455
8503
  eo: ()=>Promise.resolve().then(function () { return eo$1; }),
8456
- 'es-MX': ()=>Promise.resolve().then(function () { return esMx$1; }),
8457
- 'es-PR': ()=>Promise.resolve().then(function () { return esPr$1; }),
8458
- 'es-US': ()=>Promise.resolve().then(function () { return esUs$1; }),
8459
- 'es-DO': ()=>Promise.resolve().then(function () { return esDo$1; }),
8504
+ 'es-mx': ()=>Promise.resolve().then(function () { return esMx$1; }),
8505
+ 'es-pr': ()=>Promise.resolve().then(function () { return esPr$1; }),
8506
+ 'es-us': ()=>Promise.resolve().then(function () { return esUs$1; }),
8507
+ 'es-do': ()=>Promise.resolve().then(function () { return esDo$1; }),
8460
8508
  et: ()=>Promise.resolve().then(function () { return et$1; }),
8461
8509
  eu: ()=>Promise.resolve().then(function () { return eu$1; }),
8462
8510
  fa: ()=>Promise.resolve().then(function () { return fa$1; }),
8463
8511
  fi: ()=>Promise.resolve().then(function () { return fi$1; }),
8464
- 'fr-CA': ()=>Promise.resolve().then(function () { return frCa$1; }),
8465
- 'fr-CH': ()=>Promise.resolve().then(function () { return frCh$1; }),
8512
+ 'fr-ca': ()=>Promise.resolve().then(function () { return frCa$1; }),
8513
+ 'fr-ch': ()=>Promise.resolve().then(function () { return frCh$1; }),
8466
8514
  fr: ()=>Promise.resolve().then(function () { return fr$1; }),
8467
8515
  fo: ()=>Promise.resolve().then(function () { return fo$1; }),
8468
8516
  fy: ()=>Promise.resolve().then(function () { return fy$1; }),
8469
8517
  ga: ()=>Promise.resolve().then(function () { return ga$1; }),
8470
8518
  gd: ()=>Promise.resolve().then(function () { return gd$1; }),
8471
8519
  gl: ()=>Promise.resolve().then(function () { return gl$1; }),
8472
- 'gom-LATN': ()=>Promise.resolve().then(function () { return gomLatn$1; }),
8520
+ 'gom-latn': ()=>Promise.resolve().then(function () { return gomLatn$1; }),
8473
8521
  gu: ()=>Promise.resolve().then(function () { return gu$1; }),
8474
8522
  he: ()=>Promise.resolve().then(function () { return he$1; }),
8475
8523
  hi: ()=>Promise.resolve().then(function () { return hi$1; }),
8476
8524
  hr: ()=>Promise.resolve().then(function () { return hr$1; }),
8477
8525
  ht: ()=>Promise.resolve().then(function () { return ht$1; }),
8478
8526
  hu: ()=>Promise.resolve().then(function () { return hu$1; }),
8479
- 'hy-AM': ()=>Promise.resolve().then(function () { return hyAm$1; }),
8527
+ 'hy-am': ()=>Promise.resolve().then(function () { return hyAm$1; }),
8480
8528
  id: ()=>Promise.resolve().then(function () { return id$1; }),
8481
8529
  is: ()=>Promise.resolve().then(function () { return is$1; }),
8482
- 'it-CH': ()=>Promise.resolve().then(function () { return itCh$1; }),
8530
+ 'it-ch': ()=>Promise.resolve().then(function () { return itCh$1; }),
8483
8531
  it: ()=>Promise.resolve().then(function () { return it$1; }),
8484
8532
  jv: ()=>Promise.resolve().then(function () { return jv$1; }),
8485
8533
  ka: ()=>Promise.resolve().then(function () { return ka$1; }),
@@ -8499,7 +8547,7 @@ const locales = {
8499
8547
  ml: ()=>Promise.resolve().then(function () { return ml$1; }),
8500
8548
  mn: ()=>Promise.resolve().then(function () { return mn$1; }),
8501
8549
  mr: ()=>Promise.resolve().then(function () { return mr$1; }),
8502
- 'ms-MY': ()=>Promise.resolve().then(function () { return msMy$1; }),
8550
+ 'ms-my': ()=>Promise.resolve().then(function () { return msMy$1; }),
8503
8551
  ms: ()=>Promise.resolve().then(function () { return ms$1; }),
8504
8552
  mt: ()=>Promise.resolve().then(function () { return mt$1; }),
8505
8553
  lo: ()=>Promise.resolve().then(function () { return lo$1; }),
@@ -8507,11 +8555,11 @@ const locales = {
8507
8555
  nb: ()=>Promise.resolve().then(function () { return nb$1; }),
8508
8556
  ne: ()=>Promise.resolve().then(function () { return ne$1; }),
8509
8557
  nl: ()=>Promise.resolve().then(function () { return nl$1; }),
8510
- 'nl-BE': ()=>Promise.resolve().then(function () { return nlBe$1; }),
8558
+ 'nl-be': ()=>Promise.resolve().then(function () { return nlBe$1; }),
8511
8559
  nn: ()=>Promise.resolve().then(function () { return nn$1; }),
8512
- 'pa-IN': ()=>Promise.resolve().then(function () { return paIn$1; }),
8560
+ 'pa-in': ()=>Promise.resolve().then(function () { return paIn$1; }),
8513
8561
  pl: ()=>Promise.resolve().then(function () { return pl$1; }),
8514
- 'pt-BR': ()=>Promise.resolve().then(function () { return ptBr$1; }),
8562
+ 'pt-br': ()=>Promise.resolve().then(function () { return ptBr$1; }),
8515
8563
  pt: ()=>Promise.resolve().then(function () { return pt$1; }),
8516
8564
  rn: ()=>Promise.resolve().then(function () { return rn$1; }),
8517
8565
  ro: ()=>Promise.resolve().then(function () { return ro$1; }),
@@ -8523,12 +8571,12 @@ const locales = {
8523
8571
  si: ()=>Promise.resolve().then(function () { return si$1; }),
8524
8572
  sk: ()=>Promise.resolve().then(function () { return sk$1; }),
8525
8573
  sl: ()=>Promise.resolve().then(function () { return sl$1; }),
8526
- 'oc-LNC': ()=>Promise.resolve().then(function () { return ocLnc$1; }),
8574
+ 'oc-lnc': ()=>Promise.resolve().then(function () { return ocLnc$1; }),
8527
8575
  sq: ()=>Promise.resolve().then(function () { return sq$1; }),
8528
- 'sr-CYRL': ()=>Promise.resolve().then(function () { return srCyrl$1; }),
8576
+ 'sr-cyrl': ()=>Promise.resolve().then(function () { return srCyrl$1; }),
8529
8577
  sr: ()=>Promise.resolve().then(function () { return sr$1; }),
8530
8578
  ss: ()=>Promise.resolve().then(function () { return ss$1; }),
8531
- 'sv-FI': ()=>Promise.resolve().then(function () { return svFi$1; }),
8579
+ 'sv-fi': ()=>Promise.resolve().then(function () { return svFi$1; }),
8532
8580
  sv: ()=>Promise.resolve().then(function () { return sv$1; }),
8533
8581
  sw: ()=>Promise.resolve().then(function () { return sw$1; }),
8534
8582
  ta: ()=>Promise.resolve().then(function () { return ta$1; }),
@@ -8536,42 +8584,56 @@ const locales = {
8536
8584
  tet: ()=>Promise.resolve().then(function () { return tet$1; }),
8537
8585
  tg: ()=>Promise.resolve().then(function () { return tg$1; }),
8538
8586
  th: ()=>Promise.resolve().then(function () { return th$1; }),
8539
- 'tl-PH': ()=>Promise.resolve().then(function () { return tlPh$1; }),
8587
+ 'tl-ph': ()=>Promise.resolve().then(function () { return tlPh$1; }),
8540
8588
  tlh: ()=>Promise.resolve().then(function () { return tlh$1; }),
8541
8589
  tr: ()=>Promise.resolve().then(function () { return tr$1; }),
8542
8590
  tzl: ()=>Promise.resolve().then(function () { return tzl$1; }),
8543
8591
  tzm: ()=>Promise.resolve().then(function () { return tzm$1; }),
8544
- 'ug-CN': ()=>Promise.resolve().then(function () { return ugCn$1; }),
8592
+ 'ug-cn': ()=>Promise.resolve().then(function () { return ugCn$1; }),
8545
8593
  uk: ()=>Promise.resolve().then(function () { return uk$1; }),
8546
8594
  tk: ()=>Promise.resolve().then(function () { return tk$1; }),
8547
8595
  ur: ()=>Promise.resolve().then(function () { return ur$1; }),
8548
- 'uz-LATN': ()=>Promise.resolve().then(function () { return uzLatn$1; }),
8596
+ 'uz-latn': ()=>Promise.resolve().then(function () { return uzLatn$1; }),
8549
8597
  uz: ()=>Promise.resolve().then(function () { return uz$1; }),
8550
8598
  vi: ()=>Promise.resolve().then(function () { return vi$1; }),
8551
- 'x-PSEUDO': ()=>Promise.resolve().then(function () { return xPseudo$1; }),
8552
- 'tzm-LATN': ()=>Promise.resolve().then(function () { return tzmLatn$1; }),
8599
+ 'x-pseudo': ()=>Promise.resolve().then(function () { return xPseudo$1; }),
8600
+ 'tzm-latn': ()=>Promise.resolve().then(function () { return tzmLatn$1; }),
8553
8601
  yo: ()=>Promise.resolve().then(function () { return yo$1; }),
8554
- 'zh-CN': ()=>Promise.resolve().then(function () { return zhCn$1; }),
8555
- 'zh-HK': ()=>Promise.resolve().then(function () { return zhHk$1; }),
8556
- 'zh-TW': ()=>Promise.resolve().then(function () { return zhTw$1; }),
8602
+ 'zh-cn': ()=>Promise.resolve().then(function () { return zhCn$1; }),
8603
+ 'zh-hk': ()=>Promise.resolve().then(function () { return zhHk$1; }),
8604
+ 'zh-tw': ()=>Promise.resolve().then(function () { return zhTw$1; }),
8557
8605
  zh: ()=>Promise.resolve().then(function () { return zh$1; })
8558
8606
  };
8559
8607
 
8560
8608
  const warn = (language)=>console.warn(`Cannot load dayjs locale file for "${language}"`);
8561
- const resolveLanguage = (languageInput)=>{
8562
- if (locales[languageInput]) return languageInput;
8563
- if (languageInput.includes('-')) {
8564
- const regionlessLanguage = languageInput.split('-')[0];
8565
- if (locales[regionlessLanguage]) return regionlessLanguage;
8609
+ const getCandidateLocales = (languageInput)=>{
8610
+ try {
8611
+ const { language, script, region } = new Intl.Locale(languageInput);
8612
+ return [
8613
+ languageInput,
8614
+ ...region ? [
8615
+ `${language}-${region}`
8616
+ ] : [],
8617
+ ...script ? [
8618
+ `${language}-${script}`
8619
+ ] : [],
8620
+ language
8621
+ ];
8622
+ } catch {
8623
+ return [
8624
+ languageInput,
8625
+ languageInput.split('-')[0]
8626
+ ];
8566
8627
  }
8567
- return languageInput;
8568
8628
  };
8569
- function loadDayjsLocale(languageInput) {
8629
+ const resolveLanguage = (languageInput)=>getCandidateLocales(languageInput).map((locale)=>locale.toLowerCase()).find((locale)=>Object.hasOwn(locales, locale)) ?? languageInput;
8630
+ async function loadDayjsLocale(languageInput) {
8570
8631
  const language = resolveLanguage(languageInput);
8571
8632
  if (!locales[language]) return void warn(language);
8572
8633
  try {
8573
- locales[language]().then(()=>dayjs.locale(language));
8574
- } catch (_) {
8634
+ await locales[language]();
8635
+ dayjs.locale(language);
8636
+ } catch {
8575
8637
  warn(language);
8576
8638
  }
8577
8639
  }
@@ -8958,9 +9020,13 @@ function i18nBackendOptions(atomicInterface) {
8958
9020
  }
8959
9021
  };
8960
9022
  }
8961
- function loadTranslations(atomicInterface, language) {
9023
+ async function loadTranslations(atomicInterface, language) {
9024
+ const { languageUtils } = atomicInterface.i18n.services;
9025
+ const languages = languageUtils.toResolveHierarchy(languageUtils.formatLanguageCode(language), false);
9026
+ await Promise.all(languages.filter(isI18nLocaleAvailable).map((lng)=>loadTranslationBundle(atomicInterface, lng)));
9027
+ }
9028
+ function loadTranslationBundle(atomicInterface, lng) {
8962
9029
  const { i18n } = atomicInterface;
8963
- const lng = language.split('-')[0];
8964
9030
  return new Promise((resolve)=>{
8965
9031
  new Backend(i18n.services, i18nBackendOptions(atomicInterface)).read(lng, i18nTranslationNamespace, (_error, data)=>{
8966
9032
  if (data) i18n.addResourceBundle(lng, i18nTranslationNamespace, data, true, false);
@@ -9175,8 +9241,10 @@ class InterfaceController {
9175
9241
  this.host.updateIconAssetsPath();
9176
9242
  initEngine();
9177
9243
  if (this.host.registerFieldsToInclude) this.host.registerFieldsToInclude();
9178
- loadDayjsLocale(this.host.language || 'en');
9179
- await this.i18nPromise;
9244
+ await Promise.all([
9245
+ this.i18nPromise,
9246
+ loadDayjsLocale(this.host.language || 'en')
9247
+ ]);
9180
9248
  this.initComponents();
9181
9249
  }
9182
9250
  onAnalyticsChange() {
@@ -9189,8 +9257,10 @@ class InterfaceController {
9189
9257
  const language = newLanguage ?? this.host.language;
9190
9258
  const languageWithFallback = language ?? 'en';
9191
9259
  const { i18n } = this.host;
9192
- loadDayjsLocale(languageWithFallback);
9193
- loadTranslations(this.host, languageWithFallback).then(()=>{
9260
+ Promise.all([
9261
+ loadDayjsLocale(languageWithFallback),
9262
+ loadTranslations(this.host, languageWithFallback)
9263
+ ]).then(()=>{
9194
9264
  i18n.changeLanguage(language);
9195
9265
  });
9196
9266
  }
@@ -9542,6 +9612,40 @@ const renderPagerNavigation = ({ props })=>(children)=>lit.html`<nav aria-label=
9542
9612
  <div part="buttons" class="flex flex-wrap gap-2">${children}</div>
9543
9613
  </nav>`;
9544
9614
 
9615
+ class PagerFitController {
9616
+ hostConnected() {
9617
+ this.resizeObserver = new ResizeObserver(()=>requestAnimationFrame(()=>this.reset()));
9618
+ this.resizeObserver.observe(document.documentElement);
9619
+ if (this.host.parentElement) this.resizeObserver.observe(this.host.parentElement);
9620
+ }
9621
+ hostDisconnected() {
9622
+ this.resizeObserver?.disconnect();
9623
+ }
9624
+ hostUpdated() {
9625
+ const root = this.host.shadowRoot;
9626
+ const previousButton = root?.querySelector('[part="previous-button"]');
9627
+ const nextButton = root?.querySelector('[part="next-button"]');
9628
+ const pageButtonCount = root?.querySelectorAll('[part~="page-button"]').length ?? 0;
9629
+ const isWrapping = !!previousButton && !!nextButton && nextButton.offsetTop > previousButton.offsetTop;
9630
+ if (isWrapping && pageButtonCount > 1) {
9631
+ this.maxPages = pageButtonCount - 1;
9632
+ queueMicrotask(()=>this.host.requestUpdate());
9633
+ }
9634
+ }
9635
+ getNumberOfPagesToDisplay(numberOfPages) {
9636
+ return Math.min(numberOfPages, this.maxPages);
9637
+ }
9638
+ reset() {
9639
+ this.maxPages = 1 / 0;
9640
+ this.host.requestUpdate();
9641
+ }
9642
+ constructor(host){
9643
+ this.host = host;
9644
+ this.maxPages = 1 / 0;
9645
+ host.addController(this);
9646
+ }
9647
+ }
9648
+
9545
9649
  const minimumPage = 0;
9546
9650
  function getCurrentPagesRange(page, desiredNumberOfPages, maxPage) {
9547
9651
  let range = buildRange(page, desiredNumberOfPages);
@@ -25861,6 +25965,21 @@ let AtomicCategoryFacet$1 = class AtomicCategoryFacet extends lit.LitElement {
25861
25965
  }
25862
25966
  });
25863
25967
  }
25968
+ renderSelectedValue() {
25969
+ const activeValue = this.facetState.selectedValueAncestry.at(-1);
25970
+ if (!activeValue) return lit.nothing;
25971
+ return renderCategoryFacetSelectedValue({
25972
+ props: {
25973
+ displayValue: getFieldValueCaption(this.field, activeValue.value, this.bindings.i18n),
25974
+ label: this.label,
25975
+ i18n: this.bindings.i18n,
25976
+ onClearFilters: ()=>{
25977
+ this.focusTargets.activeValueFocus.focusAfterSearch();
25978
+ this.facet.deselectAll();
25979
+ }
25980
+ }
25981
+ });
25982
+ }
25864
25983
  renderValuesTree(valuesAsTrees, isRoot) {
25865
25984
  if (!this.hasParents) return this.renderChildren();
25866
25985
  if (isRoot) return renderCategoryFacetTreeValueContainer()(lit.html`
@@ -25905,16 +26024,12 @@ let AtomicCategoryFacet$1 = class AtomicCategoryFacet extends lit.LitElement {
25905
26024
  const activeParent = valuesAsTrees[0];
25906
26025
  const activeParentDisplayValue = getFieldValueCaption(this.field, activeParent.value, this.bindings.i18n);
25907
26026
  return lit.html`
25908
- ${renderCategoryFacetParentValueLink({
26027
+ ${renderCategoryFacetActiveValue({
25909
26028
  props: {
25910
26029
  displayValue: activeParentDisplayValue,
25911
26030
  numberOfResults: activeParent.numberOfResults,
25912
26031
  i18n: this.bindings.i18n,
25913
26032
  isLeafValue: activeParent.isLeafValue,
25914
- onClick: ()=>{
25915
- this.focusTargets.activeValueFocus.focusAfterSearch();
25916
- this.facet.deselectAll();
25917
- },
25918
26033
  searchQuery: this.facetState.facetSearch.query,
25919
26034
  setRef: (el)=>{
25920
26035
  this.focusTargets.activeValueFocus.setTarget(el);
@@ -25937,7 +26052,6 @@ let AtomicCategoryFacet$1 = class AtomicCategoryFacet extends lit.LitElement {
25937
26052
  this.focusTargets.activeValueFocus.focusAfterSearch();
25938
26053
  this.facet.toggleSelect(facetValue);
25939
26054
  },
25940
- isParent: false,
25941
26055
  isSelected,
25942
26056
  searchQuery: this.facetState.facetSearch.query,
25943
26057
  isLeafValue: facetValue.isLeafValue,
@@ -26019,7 +26133,7 @@ let AtomicCategoryFacet$1 = class AtomicCategoryFacet extends lit.LitElement {
26019
26133
  return renderFacetContainer()(lit.html`
26020
26134
  ${this.renderHeader()}
26021
26135
  ${when_js.when(!this.isCollapsed, ()=>lit.html`
26022
- ${this.renderSearchInput()}
26136
+ ${this.renderSearchInput()} ${this.renderSelectedValue()}
26023
26137
  ${when_js.when(shouldDisplaySearchResults(facetSearch), ()=>lit.html`
26024
26138
  ${when_js.when(facetSearch.values.length > 0, ()=>renderFacetValuesGroup({
26025
26139
  props: {
@@ -29989,7 +30103,7 @@ let AtomicPager$1 = class AtomicPager extends InitializeBindingsMixin(lit.LitEle
29989
30103
  });
29990
30104
  }
29991
30105
  render() {
29992
- const pagesRange = getCurrentPagesRange(this.pagerState.currentPage - 1, this.numberOfPages, this.pagerState.maxPage - 1);
30106
+ const pagesRange = getCurrentPagesRange(this.pagerState.currentPage - 1, this.pagerFit.getNumberOfPagesToDisplay(this.numberOfPages), this.pagerState.maxPage - 1);
29993
30107
  return lit.html`${when_js.when(this.pagerState.maxPage > 1 && this.isAppLoaded, ()=>lit.html` ${renderPagerNavigation({
29994
30108
  props: {
29995
30109
  i18n: this.bindings.i18n
@@ -30053,7 +30167,7 @@ let AtomicPager$1 = class AtomicPager extends InitializeBindingsMixin(lit.LitEle
30053
30167
  });
30054
30168
  }
30055
30169
  constructor(){
30056
- super(), this.isAppLoaded = false, this.numberOfPages = 5, this.previousButtonIcon = arrow_left_rounded, this.nextButtonIcon = arrow_right_rounded, this.ariaMessage = new AriaLiveRegionController(this, 'atomic-pager');
30170
+ super(), this.isAppLoaded = false, this.numberOfPages = 5, this.previousButtonIcon = arrow_left_rounded, this.nextButtonIcon = arrow_right_rounded, this.ariaMessage = new AriaLiveRegionController(this, 'atomic-pager'), this.pagerFit = new PagerFitController(this);
30057
30171
  new ValidatePropsController(this, ()=>({
30058
30172
  numberOfPages: this.numberOfPages
30059
30173
  }), AtomicPager.propsSchema);
@@ -32240,23 +32354,23 @@ function requireCalendar () {
32240
32354
  var calendarExports = requireCalendar();
32241
32355
  var calendar = /*@__PURE__*/getDefaultExportFromCjs(calendarExports);
32242
32356
 
32243
- var updateLocale$2 = {exports: {}};
32357
+ var localizedFormat$2 = {exports: {}};
32244
32358
 
32245
- var updateLocale$1 = updateLocale$2.exports;
32359
+ var localizedFormat$1 = localizedFormat$2.exports;
32246
32360
 
32247
- var hasRequiredUpdateLocale;
32361
+ var hasRequiredLocalizedFormat;
32248
32362
 
32249
- function requireUpdateLocale () {
32250
- if (hasRequiredUpdateLocale) return updateLocale$2.exports;
32251
- hasRequiredUpdateLocale = 1;
32363
+ function requireLocalizedFormat () {
32364
+ if (hasRequiredLocalizedFormat) return localizedFormat$2.exports;
32365
+ hasRequiredLocalizedFormat = 1;
32252
32366
  (function (module, exports) {
32253
- !function(e,t){module.exports=t();}(updateLocale$1,(function(){function e(){return e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);}return e},e.apply(this,arguments)}return function(t,n,o){o.updateLocale=function(t,n){var r=o.Ls[t];if(r)return (n?Object.keys(n):[]).forEach((function(t){r[t]&&n[t]&&"object"==typeof r[t]&&"object"==typeof n[t]&&!Array.isArray(r[t])?r[t]=e({},r[t],n[t]):r[t]=n[t];})),r};}}));
32254
- } (updateLocale$2));
32255
- return updateLocale$2.exports;
32367
+ !function(e,t){module.exports=t();}(localizedFormat$1,(function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){ void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)};}}));
32368
+ } (localizedFormat$2));
32369
+ return localizedFormat$2.exports;
32256
32370
  }
32257
32371
 
32258
- var updateLocaleExports = requireUpdateLocale();
32259
- var updateLocale = /*@__PURE__*/getDefaultExportFromCjs(updateLocaleExports);
32372
+ var localizedFormatExports = requireLocalizedFormat();
32373
+ var localizedFormat = /*@__PURE__*/getDefaultExportFromCjs(localizedFormatExports);
32260
32374
 
32261
32375
  function _ts_decorate$w(decorators, target, key, desc) {
32262
32376
  var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -32268,7 +32382,7 @@ function _ts_metadata$t(metadataKey, metadataValue) {
32268
32382
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(metadataKey, metadataValue);
32269
32383
  }
32270
32384
  dayjs.extend(calendar);
32271
- dayjs.extend(updateLocale);
32385
+ dayjs.extend(localizedFormat);
32272
32386
  let AtomicResultDate$1 = class AtomicResultDate extends LightDomMixin(lit.LitElement) {
32273
32387
  initialize() {
32274
32388
  if (!this.result && this.resultController.item) {
@@ -32296,19 +32410,14 @@ let AtomicResultDate$1 = class AtomicResultDate extends LightDomMixin(lit.LitEle
32296
32410
  this.error = new Error(`Field "${this.field}" does not contain a valid date.`);
32297
32411
  return null;
32298
32412
  }
32299
- if (this.relativeTime) {
32300
- dayjs.updateLocale(this.bindings.interfaceElement.language, {
32301
- calendar: {
32302
- sameDay: this.bindings.i18n.t('calendar-same-day'),
32303
- nextDay: this.bindings.i18n.t('calendar-next-day'),
32304
- nextWeek: this.bindings.i18n.t('calendar-next-week'),
32305
- lastDay: this.bindings.i18n.t('calendar-last-day'),
32306
- lastWeek: this.bindings.i18n.t('calendar-last-week'),
32307
- sameElse: this.format
32308
- }
32309
- });
32310
- return parsedValue.calendar();
32311
- }
32413
+ if (this.relativeTime) return parsedValue.calendar(null, {
32414
+ sameDay: this.bindings.i18n.t('calendar-same-day'),
32415
+ nextDay: this.bindings.i18n.t('calendar-next-day'),
32416
+ nextWeek: this.bindings.i18n.t('calendar-next-week'),
32417
+ lastDay: this.bindings.i18n.t('calendar-last-day'),
32418
+ lastWeek: this.bindings.i18n.t('calendar-last-week'),
32419
+ sameElse: this.format
32420
+ });
32312
32421
  return parsedValue.format(this.format);
32313
32422
  }
32314
32423
  constructor(){
@@ -34927,7 +35036,7 @@ let AtomicResultsPerPage$1 = class AtomicResultsPerPage extends InitializeBindin
34927
35036
  if (!this.searchStatusState) return lit.html``;
34928
35037
  return lit.html`
34929
35038
  ${when_js.when(!this.searchStatusState.hasError && this.isAppLoaded && this.searchStatusState.hasResults, ()=>lit.html`
34930
- <div class="flex items-center">
35039
+ <div class="flex flex-wrap items-center">
34931
35040
  ${renderLabel()(lit.html`${this.label}`)}
34932
35041
  ${renderFieldsetGroup({
34933
35042
  props: {