@aurodesignsystem-dev/auro-formkit 0.0.0-pr788.0 → 0.0.0-pr788.1

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 (57) hide show
  1. package/components/checkbox/demo/api.min.js +2 -2
  2. package/components/checkbox/demo/index.min.js +2 -2
  3. package/components/checkbox/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/README.md +2 -2
  6. package/components/combobox/demo/api.md +6 -6
  7. package/components/combobox/demo/api.min.js +12 -68
  8. package/components/combobox/demo/index.md +12 -12
  9. package/components/combobox/demo/index.min.js +12 -68
  10. package/components/combobox/demo/readme.md +2 -2
  11. package/components/combobox/dist/auro-combobox.d.ts +2 -2
  12. package/components/combobox/dist/index.js +11 -67
  13. package/components/combobox/dist/registered.js +11 -67
  14. package/components/counter/demo/api.md +9 -9
  15. package/components/counter/demo/api.min.js +8 -63
  16. package/components/counter/demo/index.md +6 -6
  17. package/components/counter/demo/index.min.js +8 -63
  18. package/components/counter/dist/auro-counter-group.d.ts +1 -1
  19. package/components/counter/dist/index.js +7 -62
  20. package/components/counter/dist/registered.js +7 -62
  21. package/components/datepicker/README.md +1 -1
  22. package/components/datepicker/demo/api.md +11 -11
  23. package/components/datepicker/demo/api.min.js +78 -100
  24. package/components/datepicker/demo/index.md +12 -12
  25. package/components/datepicker/demo/index.min.js +78 -100
  26. package/components/datepicker/demo/readme.md +1 -1
  27. package/components/datepicker/dist/auro-datepicker.d.ts +15 -2
  28. package/components/datepicker/dist/index.js +77 -99
  29. package/components/datepicker/dist/registered.js +77 -99
  30. package/components/dropdown/demo/api.min.js +6 -61
  31. package/components/dropdown/demo/index.min.js +6 -61
  32. package/components/dropdown/dist/auro-dropdown.d.ts +0 -7
  33. package/components/dropdown/dist/index.js +5 -60
  34. package/components/dropdown/dist/registered.js +5 -60
  35. package/components/form/demo/api.min.js +1 -1
  36. package/components/form/demo/index.min.js +1 -1
  37. package/components/input/demo/api.min.js +2 -3
  38. package/components/input/demo/index.min.js +2 -3
  39. package/components/input/dist/base-input.d.ts +0 -1
  40. package/components/input/dist/index.js +1 -2
  41. package/components/input/dist/registered.js +1 -2
  42. package/components/menu/demo/api.min.js +1 -1
  43. package/components/menu/demo/index.min.js +1 -1
  44. package/components/radio/demo/api.min.js +2 -2
  45. package/components/radio/demo/index.min.js +2 -2
  46. package/components/radio/dist/index.js +1 -1
  47. package/components/radio/dist/registered.js +1 -1
  48. package/components/select/README.md +1 -1
  49. package/components/select/demo/api.md +3 -3
  50. package/components/select/demo/api.min.js +10 -65
  51. package/components/select/demo/index.md +8 -8
  52. package/components/select/demo/index.min.js +10 -65
  53. package/components/select/demo/readme.md +1 -1
  54. package/components/select/dist/auro-select.d.ts +1 -1
  55. package/components/select/dist/index.js +9 -64
  56. package/components/select/dist/registered.js +9 -64
  57. package/package.json +4 -4
@@ -1258,7 +1258,7 @@ class UtilitiesCalendarRender {
1258
1258
  }
1259
1259
  }
1260
1260
 
1261
- var styleCss$e = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.accents{flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}.accents.left{padding-right:var(--ds-size-100, 0.5rem)}.accents.right{width:var(--ds-size-400, 2rem)}.mainContent{height:100%;max-height:100%;flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.inputSection{display:flex;flex-direction:row;align-items:center;width:100%;margin:0 auto}.inputContainer{display:flex;flex-direction:row;align-items:center;width:100%}.inputContainer:first-of-type{justify-content:flex-end}.inputContainer:last-of-type{justify-content:flex-start}.dpTriggerContent{width:100%}@media screen and (max-width: 576px){::part(popover){position:fixed !important;top:0 !important;left:0 !important;width:100vw !important;height:100vh !important;margin-bottom:var(--ds-size-200, 1rem);transform:unset !important}.calendarWrapper{display:flex;height:100dvh;flex-direction:row;justify-content:center}}`;
1261
+ var styleCss$e = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.accents{flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}.accents.left{padding-right:var(--ds-size-100, 0.5rem)}.accents.right{width:var(--ds-size-400, 2rem)}.accents .notification:not(.util_displayHidden){display:flex;align-items:center;justify-content:center}.mainContent{height:100%;max-height:100%;flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.inputSection{display:flex;flex-direction:row;align-items:center;width:100%;margin:0 auto}.inputContainer{display:flex;flex-direction:row;align-items:center;width:100%}.inputContainer:first-of-type{justify-content:flex-end}.inputContainer:last-of-type{justify-content:flex-start}.dpTriggerContent{width:100%}@media screen and (max-width: 576px){::part(popover){position:fixed !important;top:0 !important;left:0 !important;width:100vw !important;height:100vh !important;margin-bottom:var(--ds-size-200, 1rem);transform:unset !important}.calendarWrapper{display:flex;height:100dvh;flex-direction:row;justify-content:center}}`;
1262
1262
 
1263
1263
  var colorCss$d = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host label{color:var(--ds-auro-datepicker-label-text-color)}:host .inputDivider{background-color:var(--ds-auro-datepicker-range-input-divider-color)}:host .error{color:var(--ds-auro-datepicker-error-icon-color)}[auro-input]::part(wrapper){--ds-auro-input-border-color: transparent;--ds-auro-input-container-color: transparent}.dpTriggerContent [auro-input]:nth-child(2):before{background-color:var(--ds-auro-datepicker-range-input-divider-color)}:host(:not([ondark])[disabled]){--ds-auro-datepicker-border-color: var(--ds-basic-color-border-subtle, #dddddd);--ds-auro-datepicker-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-datepicker-placeholder-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host([ondark][disabled]){--ds-auro-datepicker-border-color: var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-datepicker-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-datepicker-placeholder-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}`;
1264
1264
 
@@ -14194,7 +14194,7 @@ class AuroCalendar extends RangeDatepicker {
14194
14194
  ?large="${this.largeFullscreenHeadline}"
14195
14195
  ?isFullscreen="${this.isFullscreen}"
14196
14196
  @close-click="${this.utilCal.requestDismiss}">
14197
- <span slot="ariaLabel.close">${this.slots["ariaLabel.close"]}</span>
14197
+ <span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
14198
14198
 
14199
14199
  <span slot="header">${this.slots["bib.fullscreen.headline"]}</span>
14200
14200
 
@@ -16057,6 +16057,7 @@ class AuroFloatingUI {
16057
16057
  this.element.bib.style.left = "0px";
16058
16058
  this.element.bib.style.width = '';
16059
16059
  this.element.bib.style.height = '';
16060
+ this.element.style.contain = '';
16060
16061
 
16061
16062
  // reset the size that was mirroring `size` css-part
16062
16063
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
@@ -16081,6 +16082,7 @@ class AuroFloatingUI {
16081
16082
  this.element.bib.style.position = '';
16082
16083
  this.element.bib.removeAttribute('isfullscreen');
16083
16084
  this.element.isBibFullscreen = false;
16085
+ this.element.style.contain = 'layout';
16084
16086
  }
16085
16087
 
16086
16088
  const isChanged = this.strategy && this.strategy !== value;
@@ -17695,6 +17697,7 @@ let AuroElement$4 = class AuroElement extends LitElement {
17695
17697
  // See LICENSE in the project root for license information.
17696
17698
 
17697
17699
 
17700
+
17698
17701
  /*
17699
17702
  * @slot - Default slot for the popover content.
17700
17703
  * @slot helpText - Defines the content of the helpText.
@@ -18277,64 +18280,6 @@ class AuroDropdown extends AuroElement$4 {
18277
18280
  this.hasFocus = false;
18278
18281
  }
18279
18282
 
18280
- /**
18281
- * Determines if the element or any children are focusable.
18282
- * @private
18283
- * @param {HTMLElement} element - Element to check.
18284
- * @returns {Boolean} - True if the element or any children are focusable.
18285
- */
18286
- containsFocusableElement(element) {
18287
- this.showTriggerBorders = true;
18288
-
18289
- const nodes = [
18290
- element,
18291
- ...element.children
18292
- ];
18293
-
18294
- const focusableElements = [
18295
- 'a',
18296
- 'auro-hyperlink',
18297
- 'button',
18298
- 'auro-button',
18299
- 'input',
18300
- 'auro-input',
18301
- ];
18302
-
18303
- const focusableElementsThatNeedBorders = ['auro-input'];
18304
-
18305
- const result = nodes.some((node) => {
18306
- const tagName = node.tagName.toLowerCase();
18307
-
18308
- if (node.tabIndex > -1) {
18309
- return true;
18310
- }
18311
-
18312
- if (focusableElements.includes(tagName)) {
18313
- if ((tagName === 'a' || tagName === 'auro-hyperlink' || node.hasAttribute('auro-hyperlink')) && node.hasAttribute('href')) {
18314
- return true;
18315
- }
18316
- if (!node.hasAttribute('disabled')) {
18317
- return true;
18318
- }
18319
- }
18320
-
18321
- if (focusableElements.some((focusableElement) => focusableElement.startsWith('auro-') && (focusableElement === tagName || node.hasAttribute(focusableElement)))) {
18322
- return true;
18323
- }
18324
-
18325
- return false;
18326
- });
18327
-
18328
- if (result) {
18329
- this.showTriggerBorders = !nodes.some((node) => {
18330
- const tagName = node.tagName.toLowerCase();
18331
- return focusableElements.includes(tagName) && !focusableElementsThatNeedBorders.includes(tagName);
18332
- });
18333
- }
18334
-
18335
- return result;
18336
- }
18337
-
18338
18283
  /**
18339
18284
  * Creates and dispatches a duplicate focus event on the trigger element.
18340
18285
  * @private
@@ -18446,7 +18391,7 @@ class AuroDropdown extends AuroElement$4 {
18446
18391
  if (triggerContentNodes) {
18447
18392
 
18448
18393
  // See if any of them are focusable elements
18449
- this.triggerContentFocusable = triggerContentNodes.some((node) => this.containsFocusableElement(node));
18394
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
18450
18395
 
18451
18396
  // If any of them are focusable elements
18452
18397
  if (this.triggerContentFocusable) {
@@ -18518,7 +18463,7 @@ class AuroDropdown extends AuroElement$4 {
18518
18463
  <div
18519
18464
  id="trigger"
18520
18465
  class="${classMap(this.commonWrapperClasses)}" part="wrapper"
18521
- tabindex="${this.tabIndex}"
18466
+ tabindex="${ifDefined(this.triggerContentFocusable ? undefined : this.tabIndex)}"
18522
18467
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
18523
18468
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
18524
18469
  aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
@@ -24009,8 +23954,7 @@ class BaseInput extends AuroElement$2 {
24009
23954
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
24010
23955
  */
24011
23956
  value: {
24012
- type: String,
24013
- reflect: true
23957
+ type: String
24014
23958
  },
24015
23959
 
24016
23960
  /**
@@ -27731,7 +27675,7 @@ var iconVersion = '8.0.1';
27731
27675
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
27732
27676
  /**
27733
27677
  * @slot helpText - Defines the content of the helpText.
27734
- * @slot ariaLabel.close - Sets aria-label on close button in fullscreen bib
27678
+ * @slot ariaLabel.bib.close - Sets aria-label on close button in fullscreen bib
27735
27679
  * @slot bib.fullscreen.headline - Defines the headline to display above bib.fullscreen.dateLabels in the mobile layout.
27736
27680
  * @slot bib.fullscreen.dateLabel - Defines the content to display above selected dates in the mobile layout.
27737
27681
  * @slot toLabel - Defines the label content for the second input when the `range` attribute is used.
@@ -27863,6 +27807,9 @@ class AuroDatePicker extends AuroElement$1 {
27863
27807
  */
27864
27808
  this.helpTextTag = versioning.generateTag('auro-formkit-input-helptext', helpTextVersion, AuroHelpText);
27865
27809
 
27810
+ /** @private */
27811
+ this.handleClick = this.handleClick.bind(this);
27812
+
27866
27813
  // Layout Config
27867
27814
  this.layout = 'classic';
27868
27815
  this.shape = 'classic';
@@ -28262,10 +28209,10 @@ class AuroDatePicker extends AuroElement$1 {
28262
28209
  * @returns {void}
28263
28210
  */
28264
28211
  focus(focusInput = '') {
28212
+ this.hasFocus = true;
28265
28213
  this.range && focusInput === 'endDate' ? this.inputList[1].focus() : this.inputList[0].focus();
28266
28214
  }
28267
28215
 
28268
-
28269
28216
  /**
28270
28217
  * Converts valid time number to format used by wc-date-range API.
28271
28218
  * @private
@@ -28467,15 +28414,18 @@ class AuroDatePicker extends AuroElement$1 {
28467
28414
  this.hasFocus = true;
28468
28415
  });
28469
28416
 
28470
- this.addEventListener('focusout', (evt) => {
28417
+ this.addEventListener('focusout', () => {
28471
28418
  this.hasFocus = false;
28472
- if (!this.noValidate && !evt.detail.expanded && this.touched) {
28473
- if (!this.contains(document.activeElement)) {
28474
- this.validation.validate(this.inputList[0]);
28475
28419
 
28476
- if (this.inputList[1] && this.inputList[1].touched) {
28477
- this.validation.validate(this.inputList[1]);
28478
- }
28420
+ if (this.noValidate) {
28421
+ return;
28422
+ }
28423
+
28424
+ if (!this.contains(document.activeElement)) {
28425
+ this.validation.validate(this.inputList[0]);
28426
+
28427
+ if (this.inputList[1]) {
28428
+ this.validation.validate(this.inputList[1]);
28479
28429
  }
28480
28430
  }
28481
28431
  });
@@ -28727,8 +28677,8 @@ class AuroDatePicker extends AuroElement$1 {
28727
28677
  this.calendarRenderUtil.updateCentralDate(this, this.formattedValue);
28728
28678
  }
28729
28679
 
28730
- this.validate();
28731
28680
  this.setHasValue();
28681
+ this.validate();
28732
28682
  }
28733
28683
 
28734
28684
  if (changedProperties.has('valueEnd') && this.inputList[1]) {
@@ -28884,6 +28834,39 @@ class AuroDatePicker extends AuroElement$1 {
28884
28834
  this.calendar.injectSlot(event.target.name, slot.cloneNode(true));
28885
28835
  }
28886
28836
 
28837
+ /**
28838
+ * Handles click events on the datepicker.
28839
+ * @param {PointerEvent} event - The pointer event object.
28840
+ * @private
28841
+ * @returns {void}
28842
+ */
28843
+ handleClick(event) {
28844
+
28845
+ // Get the initial target of the click event
28846
+ const [initTarget] = event.composedPath();
28847
+
28848
+ // Determine if the current layout requires special handling
28849
+ const layoutRequiresHandling = ['snowflake'].includes(this.layout);
28850
+
28851
+ // Determine if the target is an input element
28852
+ const targetIsInput = initTarget.tagName === 'INPUT';
28853
+
28854
+ if (layoutRequiresHandling && !targetIsInput) {
28855
+
28856
+ // Focus the first input
28857
+ this.inputList[0].focus();
28858
+ }
28859
+ }
28860
+
28861
+ /**
28862
+ * Set up click handling for the datepicker.
28863
+ * @private
28864
+ * @returns {void}
28865
+ */
28866
+ configureClickHandler() {
28867
+ this.addEventListener('click', this.handleClick);
28868
+ }
28869
+
28887
28870
  firstUpdated() {
28888
28871
  // Add the tag name as an attribute if it is different than the component name
28889
28872
  this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
@@ -28892,6 +28875,7 @@ class AuroDatePicker extends AuroElement$1 {
28892
28875
  this.configureInput();
28893
28876
  this.configureCalendar();
28894
28877
  this.configureDatepicker();
28878
+ this.configureClickHandler();
28895
28879
 
28896
28880
  window.addEventListener('resize', () => {
28897
28881
  this.handleReadOnly();
@@ -28902,11 +28886,6 @@ class AuroDatePicker extends AuroElement$1 {
28902
28886
  super.connectedCallback();
28903
28887
 
28904
28888
  this.monthFirst = this.format.indexOf('mm') < this.format.indexOf('yyyy');
28905
-
28906
- // setup focus/blur event listeners
28907
- this.addEventListener('focus', () => {
28908
- this.focus();
28909
- }, true);
28910
28889
  }
28911
28890
 
28912
28891
  // layout render methods
@@ -28951,9 +28930,9 @@ class AuroDatePicker extends AuroElement$1 {
28951
28930
  </div>
28952
28931
  <div class="accents right ${classMap(accentsClassMap)}">
28953
28932
  ${this.hasError
28954
- ? this.renderHtmlIconError()
28955
- : this.renderHtmlActionClear()
28956
- }
28933
+ ? this.renderHtmlIconError()
28934
+ : this.renderHtmlActionClear()
28935
+ }
28957
28936
  </div>
28958
28937
  </div>
28959
28938
  `;
@@ -28998,9 +28977,9 @@ class AuroDatePicker extends AuroElement$1 {
28998
28977
  </div>
28999
28978
  <div class="accents right ${classMap(accentsClassMap)}">
29000
28979
  ${this.hasError
29001
- ? this.renderHtmlIconError()
29002
- : this.renderHtmlActionClear()
29003
- }
28980
+ ? this.renderHtmlIconError()
28981
+ : this.renderHtmlActionClear()
28982
+ }
29004
28983
  </div>
29005
28984
  </div>
29006
28985
  `;
@@ -29050,9 +29029,9 @@ class AuroDatePicker extends AuroElement$1 {
29050
29029
  <div>
29051
29030
  <div class="displayValueText">
29052
29031
  ${dateValue && this.util.validDateStr(dateValue, this.format)
29053
- ? this.formatShortDate(dateValue)
29054
- : undefined
29055
- }
29032
+ ? this.formatShortDate(dateValue)
29033
+ : undefined
29034
+ }
29056
29035
  </div>
29057
29036
  </div>
29058
29037
  `;
@@ -29094,13 +29073,13 @@ class AuroDatePicker extends AuroElement$1 {
29094
29073
  inputmode="${ifDefined(this.inputmode)}"
29095
29074
  >
29096
29075
  ${this.layout !== "classic"
29097
- ? html$1`
29076
+ ? html$1`
29098
29077
  <span slot="displayValue">
29099
29078
  ${this.renderDisplayTextDate(this.value)}
29100
29079
  </span>
29101
29080
  `
29102
- : undefined
29103
- }
29081
+ : undefined
29082
+ }
29104
29083
  <span slot="label"><slot name="fromLabel"></slot></span>
29105
29084
  </${this.inputTag}>
29106
29085
  </div>
@@ -29131,13 +29110,13 @@ class AuroDatePicker extends AuroElement$1 {
29131
29110
  ?disabled="${this.disabled}"
29132
29111
  part="input">
29133
29112
  ${this.layout !== "classic"
29134
- ? html$1`
29113
+ ? html$1`
29135
29114
  <span slot="displayValue">
29136
29115
  ${this.renderDisplayTextDate(this.valueEnd)}
29137
29116
  </span>
29138
29117
  `
29139
- : undefined
29140
- }
29118
+ : undefined
29119
+ }
29141
29120
  <span slot="label"><slot name="toLabel"></slot></span>
29142
29121
  </${this.inputTag}>
29143
29122
  </div>
@@ -29177,7 +29156,6 @@ class AuroDatePicker extends AuroElement$1 {
29177
29156
  ?customColor="${this.onDark}"
29178
29157
  category="interface"
29179
29158
  name="x-lg"
29180
- slot="icon"
29181
29159
  >
29182
29160
  </${this.iconTag}>
29183
29161
  </${this.buttonTag}>
@@ -29234,21 +29212,21 @@ class AuroDatePicker extends AuroElement$1 {
29234
29212
  renderHtmlHelpText() {
29235
29213
  return html$1`
29236
29214
  ${!this.validity || this.validity === undefined || this.validity === 'valid'
29237
- ? html$1`
29215
+ ? html$1`
29238
29216
  <${this.helpTextTag} ?onDark="${this.onDark}">
29239
29217
  <p id="${this.uniqueId}" part="helpText">
29240
29218
  <slot name="helpText"></slot>
29241
29219
  </p>
29242
29220
  </${this.helpTextTag}>
29243
29221
  `
29244
- : html$1`
29222
+ : html$1`
29245
29223
  <${this.helpTextTag} error ?onDark="${this.onDark}">
29246
29224
  <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
29247
29225
  ${this.errorMessage}
29248
29226
  </p>
29249
29227
  </${this.helpTextTag}>
29250
29228
  `
29251
- }
29229
+ }
29252
29230
  `;
29253
29231
  }
29254
29232
 
@@ -29271,7 +29249,7 @@ class AuroDatePicker extends AuroElement$1 {
29271
29249
  .monthNames="${this.monthNames}"
29272
29250
  part="calendar"
29273
29251
  >
29274
- <slot name="ariaLabel.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
29252
+ <slot name="ariaLabel.bib.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
29275
29253
  <slot slot="bib.fullscreen.headline" name="bib.fullscreen.headline" @slotchange="${this.handleSlotToSlot}"></slot>
29276
29254
  <slot slot="bib.fullscreen.dateLabel" name="bib.fullscreen.dateLabel" @slotchange="${this.handleSlotToSlot}"></slot>
29277
29255
  <span slot="bib.fullscreen.fromStr">${this.value || html$1`<span class="placeholderDate">${this.format.toUpperCase()}</span>`}</span>
@@ -61,7 +61,7 @@ const t=globalThis,e$1=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShad
61
61
  * @license
62
62
  * Copyright 2017 Google LLC
63
63
  * SPDX-License-Identifier: BSD-3-Clause
64
- */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.0");
64
+ */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.1");
65
65
 
66
66
  /**
67
67
  * @license
@@ -1891,6 +1891,7 @@ class AuroFloatingUI {
1891
1891
  this.element.bib.style.left = "0px";
1892
1892
  this.element.bib.style.width = '';
1893
1893
  this.element.bib.style.height = '';
1894
+ this.element.style.contain = '';
1894
1895
 
1895
1896
  // reset the size that was mirroring `size` css-part
1896
1897
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
@@ -1915,6 +1916,7 @@ class AuroFloatingUI {
1915
1916
  this.element.bib.style.position = '';
1916
1917
  this.element.bib.removeAttribute('isfullscreen');
1917
1918
  this.element.isBibFullscreen = false;
1919
+ this.element.style.contain = 'layout';
1918
1920
  }
1919
1921
 
1920
1922
  const isChanged = this.strategy && this.strategy !== value;
@@ -3535,6 +3537,7 @@ class AuroElement extends i {
3535
3537
  // See LICENSE in the project root for license information.
3536
3538
 
3537
3539
 
3540
+
3538
3541
  /*
3539
3542
  * @slot - Default slot for the popover content.
3540
3543
  * @slot helpText - Defines the content of the helpText.
@@ -4117,64 +4120,6 @@ class AuroDropdown extends AuroElement {
4117
4120
  this.hasFocus = false;
4118
4121
  }
4119
4122
 
4120
- /**
4121
- * Determines if the element or any children are focusable.
4122
- * @private
4123
- * @param {HTMLElement} element - Element to check.
4124
- * @returns {Boolean} - True if the element or any children are focusable.
4125
- */
4126
- containsFocusableElement(element) {
4127
- this.showTriggerBorders = true;
4128
-
4129
- const nodes = [
4130
- element,
4131
- ...element.children
4132
- ];
4133
-
4134
- const focusableElements = [
4135
- 'a',
4136
- 'auro-hyperlink',
4137
- 'button',
4138
- 'auro-button',
4139
- 'input',
4140
- 'auro-input',
4141
- ];
4142
-
4143
- const focusableElementsThatNeedBorders = ['auro-input'];
4144
-
4145
- const result = nodes.some((node) => {
4146
- const tagName = node.tagName.toLowerCase();
4147
-
4148
- if (node.tabIndex > -1) {
4149
- return true;
4150
- }
4151
-
4152
- if (focusableElements.includes(tagName)) {
4153
- if ((tagName === 'a' || tagName === 'auro-hyperlink' || node.hasAttribute('auro-hyperlink')) && node.hasAttribute('href')) {
4154
- return true;
4155
- }
4156
- if (!node.hasAttribute('disabled')) {
4157
- return true;
4158
- }
4159
- }
4160
-
4161
- if (focusableElements.some((focusableElement) => focusableElement.startsWith('auro-') && (focusableElement === tagName || node.hasAttribute(focusableElement)))) {
4162
- return true;
4163
- }
4164
-
4165
- return false;
4166
- });
4167
-
4168
- if (result) {
4169
- this.showTriggerBorders = !nodes.some((node) => {
4170
- const tagName = node.tagName.toLowerCase();
4171
- return focusableElements.includes(tagName) && !focusableElementsThatNeedBorders.includes(tagName);
4172
- });
4173
- }
4174
-
4175
- return result;
4176
- }
4177
-
4178
4123
  /**
4179
4124
  * Creates and dispatches a duplicate focus event on the trigger element.
4180
4125
  * @private
@@ -4286,7 +4231,7 @@ class AuroDropdown extends AuroElement {
4286
4231
  if (triggerContentNodes) {
4287
4232
 
4288
4233
  // See if any of them are focusable elements
4289
- this.triggerContentFocusable = triggerContentNodes.some((node) => this.containsFocusableElement(node));
4234
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
4290
4235
 
4291
4236
  // If any of them are focusable elements
4292
4237
  if (this.triggerContentFocusable) {
@@ -4358,7 +4303,7 @@ class AuroDropdown extends AuroElement {
4358
4303
  <div
4359
4304
  id="trigger"
4360
4305
  class="${e$2(this.commonWrapperClasses)}" part="wrapper"
4361
- tabindex="${this.tabIndex}"
4306
+ tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
4362
4307
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4363
4308
  aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4364
4309
  aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
@@ -36,7 +36,7 @@ const t=globalThis,e$1=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShad
36
36
  * @license
37
37
  * Copyright 2017 Google LLC
38
38
  * SPDX-License-Identifier: BSD-3-Clause
39
- */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.0");
39
+ */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.1");
40
40
 
41
41
  /**
42
42
  * @license
@@ -1866,6 +1866,7 @@ class AuroFloatingUI {
1866
1866
  this.element.bib.style.left = "0px";
1867
1867
  this.element.bib.style.width = '';
1868
1868
  this.element.bib.style.height = '';
1869
+ this.element.style.contain = '';
1869
1870
 
1870
1871
  // reset the size that was mirroring `size` css-part
1871
1872
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
@@ -1890,6 +1891,7 @@ class AuroFloatingUI {
1890
1891
  this.element.bib.style.position = '';
1891
1892
  this.element.bib.removeAttribute('isfullscreen');
1892
1893
  this.element.isBibFullscreen = false;
1894
+ this.element.style.contain = 'layout';
1893
1895
  }
1894
1896
 
1895
1897
  const isChanged = this.strategy && this.strategy !== value;
@@ -3510,6 +3512,7 @@ class AuroElement extends i {
3510
3512
  // See LICENSE in the project root for license information.
3511
3513
 
3512
3514
 
3515
+
3513
3516
  /*
3514
3517
  * @slot - Default slot for the popover content.
3515
3518
  * @slot helpText - Defines the content of the helpText.
@@ -4092,64 +4095,6 @@ class AuroDropdown extends AuroElement {
4092
4095
  this.hasFocus = false;
4093
4096
  }
4094
4097
 
4095
- /**
4096
- * Determines if the element or any children are focusable.
4097
- * @private
4098
- * @param {HTMLElement} element - Element to check.
4099
- * @returns {Boolean} - True if the element or any children are focusable.
4100
- */
4101
- containsFocusableElement(element) {
4102
- this.showTriggerBorders = true;
4103
-
4104
- const nodes = [
4105
- element,
4106
- ...element.children
4107
- ];
4108
-
4109
- const focusableElements = [
4110
- 'a',
4111
- 'auro-hyperlink',
4112
- 'button',
4113
- 'auro-button',
4114
- 'input',
4115
- 'auro-input',
4116
- ];
4117
-
4118
- const focusableElementsThatNeedBorders = ['auro-input'];
4119
-
4120
- const result = nodes.some((node) => {
4121
- const tagName = node.tagName.toLowerCase();
4122
-
4123
- if (node.tabIndex > -1) {
4124
- return true;
4125
- }
4126
-
4127
- if (focusableElements.includes(tagName)) {
4128
- if ((tagName === 'a' || tagName === 'auro-hyperlink' || node.hasAttribute('auro-hyperlink')) && node.hasAttribute('href')) {
4129
- return true;
4130
- }
4131
- if (!node.hasAttribute('disabled')) {
4132
- return true;
4133
- }
4134
- }
4135
-
4136
- if (focusableElements.some((focusableElement) => focusableElement.startsWith('auro-') && (focusableElement === tagName || node.hasAttribute(focusableElement)))) {
4137
- return true;
4138
- }
4139
-
4140
- return false;
4141
- });
4142
-
4143
- if (result) {
4144
- this.showTriggerBorders = !nodes.some((node) => {
4145
- const tagName = node.tagName.toLowerCase();
4146
- return focusableElements.includes(tagName) && !focusableElementsThatNeedBorders.includes(tagName);
4147
- });
4148
- }
4149
-
4150
- return result;
4151
- }
4152
-
4153
4098
  /**
4154
4099
  * Creates and dispatches a duplicate focus event on the trigger element.
4155
4100
  * @private
@@ -4261,7 +4206,7 @@ class AuroDropdown extends AuroElement {
4261
4206
  if (triggerContentNodes) {
4262
4207
 
4263
4208
  // See if any of them are focusable elements
4264
- this.triggerContentFocusable = triggerContentNodes.some((node) => this.containsFocusableElement(node));
4209
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
4265
4210
 
4266
4211
  // If any of them are focusable elements
4267
4212
  if (this.triggerContentFocusable) {
@@ -4333,7 +4278,7 @@ class AuroDropdown extends AuroElement {
4333
4278
  <div
4334
4279
  id="trigger"
4335
4280
  class="${e$2(this.commonWrapperClasses)}" part="wrapper"
4336
- tabindex="${this.tabIndex}"
4281
+ tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
4337
4282
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4338
4283
  aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4339
4284
  aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
@@ -348,13 +348,6 @@ export class AuroDropdown extends AuroElement {
348
348
  * @return {void}
349
349
  */
350
350
  private handleFocusout;
351
- /**
352
- * Determines if the element or any children are focusable.
353
- * @private
354
- * @param {HTMLElement} element - Element to check.
355
- * @returns {Boolean} - True if the element or any children are focusable.
356
- */
357
- private containsFocusableElement;
358
351
  /**
359
352
  * Sets up event listeners to deliver focus and blur events from nested Auro components within the trigger slot to trigger.
360
353
  * This ensures that focus/blur events originating from within these components are propagated to the trigger element itself.