@aurodesignsystem-dev/auro-formkit 0.0.0-pr1145.2 → 0.0.0-pr1145.4

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 (33) hide show
  1. package/components/checkbox/demo/api.min.js +1 -2
  2. package/components/checkbox/demo/index.min.js +1 -2
  3. package/components/checkbox/dist/index.js +1 -2
  4. package/components/checkbox/dist/registered.js +1 -2
  5. package/components/combobox/demo/api.md +7 -7
  6. package/components/combobox/demo/api.min.js +3 -5
  7. package/components/combobox/demo/index.md +2 -2
  8. package/components/combobox/demo/index.min.js +3 -5
  9. package/components/combobox/dist/index.js +3 -5
  10. package/components/combobox/dist/registered.js +3 -5
  11. package/components/counter/demo/api.min.js +1 -2
  12. package/components/counter/demo/index.min.js +1 -2
  13. package/components/counter/dist/index.js +1 -2
  14. package/components/counter/dist/registered.js +1 -2
  15. package/components/datepicker/demo/api.min.js +7 -35
  16. package/components/datepicker/demo/index.min.js +7 -35
  17. package/components/datepicker/dist/auro-calendar.d.ts +0 -8
  18. package/components/datepicker/dist/auro-datepicker.d.ts +0 -1
  19. package/components/datepicker/dist/index.js +7 -35
  20. package/components/datepicker/dist/registered.js +7 -35
  21. package/components/input/demo/api.min.js +1 -2
  22. package/components/input/demo/index.min.js +1 -2
  23. package/components/input/dist/index.js +1 -2
  24. package/components/input/dist/registered.js +1 -2
  25. package/components/radio/demo/api.min.js +1 -2
  26. package/components/radio/demo/index.min.js +1 -2
  27. package/components/radio/dist/index.js +1 -2
  28. package/components/radio/dist/registered.js +1 -2
  29. package/components/select/demo/api.min.js +1 -2
  30. package/components/select/demo/index.min.js +1 -2
  31. package/components/select/dist/index.js +1 -2
  32. package/components/select/dist/registered.js +1 -2
  33. package/package.json +1 -1
@@ -1134,8 +1134,7 @@ class AuroFormValidation {
1134
1134
  // State-based checks
1135
1135
  (
1136
1136
  // Element is not currently focused
1137
- !elem.contains(document.activeElement) && // native input is not focused directly
1138
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1137
+ !elem.componentHasFocus &&
1139
1138
 
1140
1139
  // And element has been touched or is untouched but has a value
1141
1140
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1126,8 +1126,7 @@ class AuroFormValidation {
1126
1126
  // State-based checks
1127
1127
  (
1128
1128
  // Element is not currently focused
1129
- !elem.contains(document.activeElement) && // native input is not focused directly
1130
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1129
+ !elem.componentHasFocus &&
1131
1130
 
1132
1131
  // And element has been touched or is untouched but has a value
1133
1132
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1079,8 +1079,7 @@ class AuroFormValidation {
1079
1079
  // State-based checks
1080
1080
  (
1081
1081
  // Element is not currently focused
1082
- !elem.contains(document.activeElement) && // native input is not focused directly
1083
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1082
+ !elem.componentHasFocus &&
1084
1083
 
1085
1084
  // And element has been touched or is untouched but has a value
1086
1085
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1079,8 +1079,7 @@ class AuroFormValidation {
1079
1079
  // State-based checks
1080
1080
  (
1081
1081
  // Element is not currently focused
1082
- !elem.contains(document.activeElement) && // native input is not focused directly
1083
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1082
+ !elem.componentHasFocus &&
1084
1083
 
1085
1084
  // And element has been touched or is untouched but has a value
1086
1085
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -162,12 +162,12 @@
162
162
 
163
163
  ### Behavior
164
164
 
165
- There are two behaviors available for the combo box: suggestion and filter.
165
+ There are two behaviors available for the combobox: suggestion and filter.
166
166
  The default behavior is "suggestion".
167
167
 
168
168
  #### Suggestion
169
169
 
170
- With the suggestion behavior, the menu options are displayed to the user as suggestions, but the user may enter whatever value they like into the input
170
+ With the suggestion behavior, the menu options are displayed to the user as suggestions, but the user may enter whatever value they like into the input.
171
171
 
172
172
  <div class="exampleWrapper">
173
173
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/suggestion.html) -->
@@ -509,7 +509,7 @@ export async function dynamicMenuExample() {
509
509
 
510
510
  ### Persistent Input
511
511
 
512
- The `persistInput` attribute allows you to set the combo box to persist the value of the input regardless of the current value set for the combo box.
512
+ The `persistInput` attribute allows you to set the combobox to persist the value of the input regardless of the current value set for the combobox.
513
513
 
514
514
  A persistent input is typically used in conjunction with display values to show the actual value of the selected option to the user when the input is not focused.
515
515
 
@@ -525,8 +525,8 @@ _*Note:*_ When using `persistInput` with the `required` attribute, you must also
525
525
  persistInput
526
526
  setCustomValidityValueMissing="Please select an option from the list."
527
527
  >
528
- <span slot="bib.fullscreen.headline">Persistant Input</span>
529
- <span slot="label">Persistant Input</span>
528
+ <span slot="bib.fullscreen.headline">Persistent Input</span>
529
+ <span slot="label">Persistent Input</span>
530
530
  <auro-menu>
531
531
  <auro-menuoption value="Apples" id="option-0">
532
532
  Apples
@@ -563,8 +563,8 @@ _*Note:*_ When using `persistInput` with the `required` attribute, you must also
563
563
  persistInput
564
564
  setCustomValidityValueMissing="Please select an option from the list."
565
565
  >
566
- <span slot="bib.fullscreen.headline">Persistant Input</span>
567
- <span slot="label">Persistant Input</span>
566
+ <span slot="bib.fullscreen.headline">Persistent Input</span>
567
+ <span slot="label">Persistent Input</span>
568
568
  <auro-menu>
569
569
  <auro-menuoption value="Apples" id="option-0">
570
570
  Apples
@@ -1000,8 +1000,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
1000
1000
  // State-based checks
1001
1001
  (
1002
1002
  // Element is not currently focused
1003
- !elem.contains(document.activeElement) && // native input is not focused directly
1004
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1003
+ !elem.componentHasFocus &&
1005
1004
 
1006
1005
  // And element has been touched or is untouched but has a value
1007
1006
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -10441,8 +10440,7 @@ class AuroFormValidation {
10441
10440
  // State-based checks
10442
10441
  (
10443
10442
  // Element is not currently focused
10444
- !elem.contains(document.activeElement) && // native input is not focused directly
10445
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
10443
+ !elem.componentHasFocus &&
10446
10444
 
10447
10445
  // And element has been touched or is untouched but has a value
10448
10446
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -17295,7 +17293,7 @@ class AuroCombobox extends AuroElement$1 {
17295
17293
  configureInput() {
17296
17294
 
17297
17295
  /**
17298
- * Validate every time we remove focus from the combo box.
17296
+ * Validate every time we remove focus from the combobox.
17299
17297
  */
17300
17298
  this.addEventListener('focusout', () => {
17301
17299
  if (!this.componentHasFocus) {
@@ -206,12 +206,12 @@ The `<auro-combobox>` element should be used in situations where users may:
206
206
 
207
207
  ### Behavior
208
208
 
209
- There are two behaviors available for the combo box: suggestion and filter.
209
+ There are two behaviors available for the combobox: suggestion and filter.
210
210
  The default behavior is "suggestion".
211
211
 
212
212
  #### Suggestion
213
213
 
214
- With the suggestion behavior, the menu options are displayed to the user as suggestions, but the user may enter whatever value they like into the input
214
+ With the suggestion behavior, the menu options are displayed to the user as suggestions, but the user may enter whatever value they like into the input.
215
215
 
216
216
  <div class="exampleWrapper">
217
217
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/suggestion.html) -->
@@ -872,8 +872,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
872
872
  // State-based checks
873
873
  (
874
874
  // Element is not currently focused
875
- !elem.contains(document.activeElement) && // native input is not focused directly
876
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
875
+ !elem.componentHasFocus &&
877
876
 
878
877
  // And element has been touched or is untouched but has a value
879
878
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -10313,8 +10312,7 @@ class AuroFormValidation {
10313
10312
  // State-based checks
10314
10313
  (
10315
10314
  // Element is not currently focused
10316
- !elem.contains(document.activeElement) && // native input is not focused directly
10317
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
10315
+ !elem.componentHasFocus &&
10318
10316
 
10319
10317
  // And element has been touched or is untouched but has a value
10320
10318
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -17167,7 +17165,7 @@ class AuroCombobox extends AuroElement$1 {
17167
17165
  configureInput() {
17168
17166
 
17169
17167
  /**
17170
- * Validate every time we remove focus from the combo box.
17168
+ * Validate every time we remove focus from the combobox.
17171
17169
  */
17172
17170
  this.addEventListener('focusout', () => {
17173
17171
  if (!this.componentHasFocus) {
@@ -810,8 +810,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
810
810
  // State-based checks
811
811
  (
812
812
  // Element is not currently focused
813
- !elem.contains(document.activeElement) && // native input is not focused directly
814
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
813
+ !elem.componentHasFocus &&
815
814
 
816
815
  // And element has been touched or is untouched but has a value
817
816
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -10220,8 +10219,7 @@ class AuroFormValidation {
10220
10219
  // State-based checks
10221
10220
  (
10222
10221
  // Element is not currently focused
10223
- !elem.contains(document.activeElement) && // native input is not focused directly
10224
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
10222
+ !elem.componentHasFocus &&
10225
10223
 
10226
10224
  // And element has been touched or is untouched but has a value
10227
10225
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -17074,7 +17072,7 @@ class AuroCombobox extends AuroElement {
17074
17072
  configureInput() {
17075
17073
 
17076
17074
  /**
17077
- * Validate every time we remove focus from the combo box.
17075
+ * Validate every time we remove focus from the combobox.
17078
17076
  */
17079
17077
  this.addEventListener('focusout', () => {
17080
17078
  if (!this.componentHasFocus) {
@@ -810,8 +810,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
810
810
  // State-based checks
811
811
  (
812
812
  // Element is not currently focused
813
- !elem.contains(document.activeElement) && // native input is not focused directly
814
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
813
+ !elem.componentHasFocus &&
815
814
 
816
815
  // And element has been touched or is untouched but has a value
817
816
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -10220,8 +10219,7 @@ class AuroFormValidation {
10220
10219
  // State-based checks
10221
10220
  (
10222
10221
  // Element is not currently focused
10223
- !elem.contains(document.activeElement) && // native input is not focused directly
10224
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
10222
+ !elem.componentHasFocus &&
10225
10223
 
10226
10224
  // And element has been touched or is untouched but has a value
10227
10225
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -17074,7 +17072,7 @@ class AuroCombobox extends AuroElement {
17074
17072
  configureInput() {
17075
17073
 
17076
17074
  /**
17077
- * Validate every time we remove focus from the combo box.
17075
+ * Validate every time we remove focus from the combobox.
17078
17076
  */
17079
17077
  this.addEventListener('focusout', () => {
17080
17078
  if (!this.componentHasFocus) {
@@ -2364,8 +2364,7 @@ class AuroFormValidation {
2364
2364
  // State-based checks
2365
2365
  (
2366
2366
  // Element is not currently focused
2367
- !elem.contains(document.activeElement) && // native input is not focused directly
2368
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
2367
+ !elem.componentHasFocus &&
2369
2368
 
2370
2369
  // And element has been touched or is untouched but has a value
2371
2370
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -2364,8 +2364,7 @@ class AuroFormValidation {
2364
2364
  // State-based checks
2365
2365
  (
2366
2366
  // Element is not currently focused
2367
- !elem.contains(document.activeElement) && // native input is not focused directly
2368
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
2367
+ !elem.componentHasFocus &&
2369
2368
 
2370
2369
  // And element has been touched or is untouched but has a value
2371
2370
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -2318,8 +2318,7 @@ class AuroFormValidation {
2318
2318
  // State-based checks
2319
2319
  (
2320
2320
  // Element is not currently focused
2321
- !elem.contains(document.activeElement) && // native input is not focused directly
2322
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
2321
+ !elem.componentHasFocus &&
2323
2322
 
2324
2323
  // And element has been touched or is untouched but has a value
2325
2324
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -2318,8 +2318,7 @@ class AuroFormValidation {
2318
2318
  // State-based checks
2319
2319
  (
2320
2320
  // Element is not currently focused
2321
- !elem.contains(document.activeElement) && // native input is not focused directly
2322
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
2321
+ !elem.componentHasFocus &&
2323
2322
 
2324
2323
  // And element has been touched or is untouched but has a value
2325
2324
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1049,8 +1049,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
1049
1049
  // State-based checks
1050
1050
  (
1051
1051
  // Element is not currently focused
1052
- !elem.contains(document.activeElement) && // native input is not focused directly
1053
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1052
+ !elem.componentHasFocus &&
1054
1053
 
1055
1054
  // And element has been touched or is untouched but has a value
1056
1055
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -14348,15 +14347,6 @@ class AuroCalendar extends RangeDatepicker {
14348
14347
  type: Object
14349
14348
  },
14350
14349
 
14351
- /**
14352
- * Mobile breakpoint for responsive design.
14353
- * @private
14354
- */
14355
- mobileBreakpoint: {
14356
- type: Number,
14357
- reflect: false
14358
- },
14359
-
14360
14350
  /**
14361
14351
  * @private
14362
14352
  */
@@ -23840,8 +23830,7 @@ class AuroFormValidation {
23840
23830
  // State-based checks
23841
23831
  (
23842
23832
  // Element is not currently focused
23843
- !elem.contains(document.activeElement) && // native input is not focused directly
23844
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
23833
+ !elem.componentHasFocus &&
23845
23834
 
23846
23835
  // And element has been touched or is untouched but has a value
23847
23836
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -29194,21 +29183,11 @@ class AuroDatePicker extends AuroElement$1 {
29194
29183
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
29195
29184
  this.notifyDatepickerToggled();
29196
29185
 
29197
- // This forces the calendar to render when the dropdown is opened.
29198
- // It is not rendered by default
29199
29186
  this.calendar.visible = this.dropdown.isPopoverVisible;
29200
29187
 
29201
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
29202
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
29203
-
29204
- // Since the calendar is not rendered until the dropdown is opened,
29205
- // and the auroDropdown-toggled event fires before the popover is actually open,
29206
- // we need to wait until the next frame to ensure the calendar is fully rendered
29207
- // and the area we're trying to scroll to is present in the DOM.
29208
- setTimeout(() => {
29209
- this.calendar.scrollMonthIntoView(this.formattedFocusDate);
29210
- this.forceScrollOnNextMobileCalendarRender = false;
29211
- }, 0);
29188
+ if (this.dropdown.getAttribute('data-show') && this.forceScrollOnNextMobileCalendarRender) {
29189
+ this.calendar.scrollMonthIntoView(this.formattedFocusDate);
29190
+ this.forceScrollOnNextMobileCalendarRender = false;
29212
29191
  }
29213
29192
  });
29214
29193
  }
@@ -29367,13 +29346,10 @@ class AuroDatePicker extends AuroElement$1 {
29367
29346
  handleReadOnly() {
29368
29347
  // --ds-grid-breakpoint-sm
29369
29348
  const docStyle = getComputedStyle(document.documentElement);
29370
-
29371
- // We need to store this so that we can pass it to calendar
29372
- this.mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29373
- const isMobile = window.innerWidth < this.mobileBreakpoint;
29349
+ const mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29374
29350
 
29375
29351
  this.inputList.forEach((input) => {
29376
- if (isMobile) {
29352
+ if (window.innerWidth < mobileBreakpoint) {
29377
29353
  input.setAttribute('readonly', true);
29378
29354
  } else {
29379
29355
  input.removeAttribute('readonly');
@@ -29560,9 +29536,6 @@ class AuroDatePicker extends AuroElement$1 {
29560
29536
  if (!this.calendarFocusDate && this.util.validDateStr(this.value, this.format)) {
29561
29537
  if (!this.dropdown.isPopoverVisible) {
29562
29538
  this.calendarFocusDate = this.value;
29563
-
29564
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
29565
- this.forceScrollOnNextMobileCalendarRender = true;
29566
29539
  }
29567
29540
  }
29568
29541
 
@@ -30185,7 +30158,6 @@ class AuroDatePicker extends AuroElement$1 {
30185
30158
  .maxDate="${this.maxDate}"
30186
30159
  .minDate="${this.minDate}"
30187
30160
  .monthNames="${this.monthNames}"
30188
- .mobileBreakpoint="${this.mobileBreakpoint}"
30189
30161
  part="calendar"
30190
30162
  >
30191
30163
  <slot name="ariaLabel.bib.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
@@ -790,8 +790,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
790
790
  // State-based checks
791
791
  (
792
792
  // Element is not currently focused
793
- !elem.contains(document.activeElement) && // native input is not focused directly
794
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
793
+ !elem.componentHasFocus &&
795
794
 
796
795
  // And element has been touched or is untouched but has a value
797
796
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -14089,15 +14088,6 @@ class AuroCalendar extends RangeDatepicker {
14089
14088
  type: Object
14090
14089
  },
14091
14090
 
14092
- /**
14093
- * Mobile breakpoint for responsive design.
14094
- * @private
14095
- */
14096
- mobileBreakpoint: {
14097
- type: Number,
14098
- reflect: false
14099
- },
14100
-
14101
14091
  /**
14102
14092
  * @private
14103
14093
  */
@@ -23581,8 +23571,7 @@ class AuroFormValidation {
23581
23571
  // State-based checks
23582
23572
  (
23583
23573
  // Element is not currently focused
23584
- !elem.contains(document.activeElement) && // native input is not focused directly
23585
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
23574
+ !elem.componentHasFocus &&
23586
23575
 
23587
23576
  // And element has been touched or is untouched but has a value
23588
23577
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -28935,21 +28924,11 @@ class AuroDatePicker extends AuroElement$1 {
28935
28924
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
28936
28925
  this.notifyDatepickerToggled();
28937
28926
 
28938
- // This forces the calendar to render when the dropdown is opened.
28939
- // It is not rendered by default
28940
28927
  this.calendar.visible = this.dropdown.isPopoverVisible;
28941
28928
 
28942
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
28943
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
28944
-
28945
- // Since the calendar is not rendered until the dropdown is opened,
28946
- // and the auroDropdown-toggled event fires before the popover is actually open,
28947
- // we need to wait until the next frame to ensure the calendar is fully rendered
28948
- // and the area we're trying to scroll to is present in the DOM.
28949
- setTimeout(() => {
28950
- this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28951
- this.forceScrollOnNextMobileCalendarRender = false;
28952
- }, 0);
28929
+ if (this.dropdown.getAttribute('data-show') && this.forceScrollOnNextMobileCalendarRender) {
28930
+ this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28931
+ this.forceScrollOnNextMobileCalendarRender = false;
28953
28932
  }
28954
28933
  });
28955
28934
  }
@@ -29108,13 +29087,10 @@ class AuroDatePicker extends AuroElement$1 {
29108
29087
  handleReadOnly() {
29109
29088
  // --ds-grid-breakpoint-sm
29110
29089
  const docStyle = getComputedStyle(document.documentElement);
29111
-
29112
- // We need to store this so that we can pass it to calendar
29113
- this.mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29114
- const isMobile = window.innerWidth < this.mobileBreakpoint;
29090
+ const mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29115
29091
 
29116
29092
  this.inputList.forEach((input) => {
29117
- if (isMobile) {
29093
+ if (window.innerWidth < mobileBreakpoint) {
29118
29094
  input.setAttribute('readonly', true);
29119
29095
  } else {
29120
29096
  input.removeAttribute('readonly');
@@ -29301,9 +29277,6 @@ class AuroDatePicker extends AuroElement$1 {
29301
29277
  if (!this.calendarFocusDate && this.util.validDateStr(this.value, this.format)) {
29302
29278
  if (!this.dropdown.isPopoverVisible) {
29303
29279
  this.calendarFocusDate = this.value;
29304
-
29305
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
29306
- this.forceScrollOnNextMobileCalendarRender = true;
29307
29280
  }
29308
29281
  }
29309
29282
 
@@ -29926,7 +29899,6 @@ class AuroDatePicker extends AuroElement$1 {
29926
29899
  .maxDate="${this.maxDate}"
29927
29900
  .minDate="${this.minDate}"
29928
29901
  .monthNames="${this.monthNames}"
29929
- .mobileBreakpoint="${this.mobileBreakpoint}"
29930
29902
  part="calendar"
29931
29903
  >
29932
29904
  <slot name="ariaLabel.bib.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
@@ -62,14 +62,6 @@ export class AuroCalendar extends RangeDatepicker {
62
62
  dropdown: {
63
63
  type: ObjectConstructor;
64
64
  };
65
- /**
66
- * Mobile breakpoint for responsive design.
67
- * @private
68
- */
69
- mobileBreakpoint: {
70
- type: NumberConstructor;
71
- reflect: boolean;
72
- };
73
65
  /**
74
66
  * @private
75
67
  */
@@ -541,7 +541,6 @@ export class AuroDatePicker extends AuroElement {
541
541
  * @returns {void}
542
542
  */
543
543
  private handleReadOnly;
544
- mobileBreakpoint: number;
545
544
  /**
546
545
  * Keep the datepicker in sync with the calendar's central date.
547
546
  * @private
@@ -771,8 +771,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
771
771
  // State-based checks
772
772
  (
773
773
  // Element is not currently focused
774
- !elem.contains(document.activeElement) && // native input is not focused directly
775
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
774
+ !elem.componentHasFocus &&
776
775
 
777
776
  // And element has been touched or is untouched but has a value
778
777
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -14039,15 +14038,6 @@ class AuroCalendar extends RangeDatepicker {
14039
14038
  type: Object
14040
14039
  },
14041
14040
 
14042
- /**
14043
- * Mobile breakpoint for responsive design.
14044
- * @private
14045
- */
14046
- mobileBreakpoint: {
14047
- type: Number,
14048
- reflect: false
14049
- },
14050
-
14051
14041
  /**
14052
14042
  * @private
14053
14043
  */
@@ -23506,8 +23496,7 @@ class AuroFormValidation {
23506
23496
  // State-based checks
23507
23497
  (
23508
23498
  // Element is not currently focused
23509
- !elem.contains(document.activeElement) && // native input is not focused directly
23510
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
23499
+ !elem.componentHasFocus &&
23511
23500
 
23512
23501
  // And element has been touched or is untouched but has a value
23513
23502
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -28860,21 +28849,11 @@ class AuroDatePicker extends AuroElement$1 {
28860
28849
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
28861
28850
  this.notifyDatepickerToggled();
28862
28851
 
28863
- // This forces the calendar to render when the dropdown is opened.
28864
- // It is not rendered by default
28865
28852
  this.calendar.visible = this.dropdown.isPopoverVisible;
28866
28853
 
28867
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
28868
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
28869
-
28870
- // Since the calendar is not rendered until the dropdown is opened,
28871
- // and the auroDropdown-toggled event fires before the popover is actually open,
28872
- // we need to wait until the next frame to ensure the calendar is fully rendered
28873
- // and the area we're trying to scroll to is present in the DOM.
28874
- setTimeout(() => {
28875
- this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28876
- this.forceScrollOnNextMobileCalendarRender = false;
28877
- }, 0);
28854
+ if (this.dropdown.getAttribute('data-show') && this.forceScrollOnNextMobileCalendarRender) {
28855
+ this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28856
+ this.forceScrollOnNextMobileCalendarRender = false;
28878
28857
  }
28879
28858
  });
28880
28859
  }
@@ -29033,13 +29012,10 @@ class AuroDatePicker extends AuroElement$1 {
29033
29012
  handleReadOnly() {
29034
29013
  // --ds-grid-breakpoint-sm
29035
29014
  const docStyle = getComputedStyle(document.documentElement);
29036
-
29037
- // We need to store this so that we can pass it to calendar
29038
- this.mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29039
- const isMobile = window.innerWidth < this.mobileBreakpoint;
29015
+ const mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29040
29016
 
29041
29017
  this.inputList.forEach((input) => {
29042
- if (isMobile) {
29018
+ if (window.innerWidth < mobileBreakpoint) {
29043
29019
  input.setAttribute('readonly', true);
29044
29020
  } else {
29045
29021
  input.removeAttribute('readonly');
@@ -29226,9 +29202,6 @@ class AuroDatePicker extends AuroElement$1 {
29226
29202
  if (!this.calendarFocusDate && this.util.validDateStr(this.value, this.format)) {
29227
29203
  if (!this.dropdown.isPopoverVisible) {
29228
29204
  this.calendarFocusDate = this.value;
29229
-
29230
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
29231
- this.forceScrollOnNextMobileCalendarRender = true;
29232
29205
  }
29233
29206
  }
29234
29207
 
@@ -29851,7 +29824,6 @@ class AuroDatePicker extends AuroElement$1 {
29851
29824
  .maxDate="${this.maxDate}"
29852
29825
  .minDate="${this.minDate}"
29853
29826
  .monthNames="${this.monthNames}"
29854
- .mobileBreakpoint="${this.mobileBreakpoint}"
29855
29827
  part="calendar"
29856
29828
  >
29857
29829
  <slot name="ariaLabel.bib.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
@@ -771,8 +771,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
771
771
  // State-based checks
772
772
  (
773
773
  // Element is not currently focused
774
- !elem.contains(document.activeElement) && // native input is not focused directly
775
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
774
+ !elem.componentHasFocus &&
776
775
 
777
776
  // And element has been touched or is untouched but has a value
778
777
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -14039,15 +14038,6 @@ class AuroCalendar extends RangeDatepicker {
14039
14038
  type: Object
14040
14039
  },
14041
14040
 
14042
- /**
14043
- * Mobile breakpoint for responsive design.
14044
- * @private
14045
- */
14046
- mobileBreakpoint: {
14047
- type: Number,
14048
- reflect: false
14049
- },
14050
-
14051
14041
  /**
14052
14042
  * @private
14053
14043
  */
@@ -23506,8 +23496,7 @@ class AuroFormValidation {
23506
23496
  // State-based checks
23507
23497
  (
23508
23498
  // Element is not currently focused
23509
- !elem.contains(document.activeElement) && // native input is not focused directly
23510
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
23499
+ !elem.componentHasFocus &&
23511
23500
 
23512
23501
  // And element has been touched or is untouched but has a value
23513
23502
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -28860,21 +28849,11 @@ class AuroDatePicker extends AuroElement$1 {
28860
28849
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
28861
28850
  this.notifyDatepickerToggled();
28862
28851
 
28863
- // This forces the calendar to render when the dropdown is opened.
28864
- // It is not rendered by default
28865
28852
  this.calendar.visible = this.dropdown.isPopoverVisible;
28866
28853
 
28867
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
28868
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
28869
-
28870
- // Since the calendar is not rendered until the dropdown is opened,
28871
- // and the auroDropdown-toggled event fires before the popover is actually open,
28872
- // we need to wait until the next frame to ensure the calendar is fully rendered
28873
- // and the area we're trying to scroll to is present in the DOM.
28874
- setTimeout(() => {
28875
- this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28876
- this.forceScrollOnNextMobileCalendarRender = false;
28877
- }, 0);
28854
+ if (this.dropdown.getAttribute('data-show') && this.forceScrollOnNextMobileCalendarRender) {
28855
+ this.calendar.scrollMonthIntoView(this.formattedFocusDate);
28856
+ this.forceScrollOnNextMobileCalendarRender = false;
28878
28857
  }
28879
28858
  });
28880
28859
  }
@@ -29033,13 +29012,10 @@ class AuroDatePicker extends AuroElement$1 {
29033
29012
  handleReadOnly() {
29034
29013
  // --ds-grid-breakpoint-sm
29035
29014
  const docStyle = getComputedStyle(document.documentElement);
29036
-
29037
- // We need to store this so that we can pass it to calendar
29038
- this.mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29039
- const isMobile = window.innerWidth < this.mobileBreakpoint;
29015
+ const mobileBreakpoint = Number(docStyle.getPropertyValue('--ds-grid-breakpoint-sm').replace("px", ""));
29040
29016
 
29041
29017
  this.inputList.forEach((input) => {
29042
- if (isMobile) {
29018
+ if (window.innerWidth < mobileBreakpoint) {
29043
29019
  input.setAttribute('readonly', true);
29044
29020
  } else {
29045
29021
  input.removeAttribute('readonly');
@@ -29226,9 +29202,6 @@ class AuroDatePicker extends AuroElement$1 {
29226
29202
  if (!this.calendarFocusDate && this.util.validDateStr(this.value, this.format)) {
29227
29203
  if (!this.dropdown.isPopoverVisible) {
29228
29204
  this.calendarFocusDate = this.value;
29229
-
29230
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
29231
- this.forceScrollOnNextMobileCalendarRender = true;
29232
29205
  }
29233
29206
  }
29234
29207
 
@@ -29851,7 +29824,6 @@ class AuroDatePicker extends AuroElement$1 {
29851
29824
  .maxDate="${this.maxDate}"
29852
29825
  .minDate="${this.minDate}"
29853
29826
  .monthNames="${this.monthNames}"
29854
- .mobileBreakpoint="${this.mobileBreakpoint}"
29855
29827
  part="calendar"
29856
29828
  >
29857
29829
  <slot name="ariaLabel.bib.close" slot="ariaLabel.close" @slotchange="${this.handleSlotToSlot}">Close</slot>
@@ -4907,8 +4907,7 @@ class AuroFormValidation {
4907
4907
  // State-based checks
4908
4908
  (
4909
4909
  // Element is not currently focused
4910
- !elem.contains(document.activeElement) && // native input is not focused directly
4911
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
4910
+ !elem.componentHasFocus &&
4912
4911
 
4913
4912
  // And element has been touched or is untouched but has a value
4914
4913
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -4832,8 +4832,7 @@ class AuroFormValidation {
4832
4832
  // State-based checks
4833
4833
  (
4834
4834
  // Element is not currently focused
4835
- !elem.contains(document.activeElement) && // native input is not focused directly
4836
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
4835
+ !elem.componentHasFocus &&
4837
4836
 
4838
4837
  // And element has been touched or is untouched but has a value
4839
4838
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -4756,8 +4756,7 @@ class AuroFormValidation {
4756
4756
  // State-based checks
4757
4757
  (
4758
4758
  // Element is not currently focused
4759
- !elem.contains(document.activeElement) && // native input is not focused directly
4760
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
4759
+ !elem.componentHasFocus &&
4761
4760
 
4762
4761
  // And element has been touched or is untouched but has a value
4763
4762
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -4756,8 +4756,7 @@ class AuroFormValidation {
4756
4756
  // State-based checks
4757
4757
  (
4758
4758
  // Element is not currently focused
4759
- !elem.contains(document.activeElement) && // native input is not focused directly
4760
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
4759
+ !elem.componentHasFocus &&
4761
4760
 
4762
4761
  // And element has been touched or is untouched but has a value
4763
4762
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1140,8 +1140,7 @@ class AuroFormValidation {
1140
1140
  // State-based checks
1141
1141
  (
1142
1142
  // Element is not currently focused
1143
- !elem.contains(document.activeElement) && // native input is not focused directly
1144
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1143
+ !elem.componentHasFocus &&
1145
1144
 
1146
1145
  // And element has been touched or is untouched but has a value
1147
1146
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1115,8 +1115,7 @@ class AuroFormValidation {
1115
1115
  // State-based checks
1116
1116
  (
1117
1117
  // Element is not currently focused
1118
- !elem.contains(document.activeElement) && // native input is not focused directly
1119
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1118
+ !elem.componentHasFocus &&
1120
1119
 
1121
1120
  // And element has been touched or is untouched but has a value
1122
1121
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1068,8 +1068,7 @@ class AuroFormValidation {
1068
1068
  // State-based checks
1069
1069
  (
1070
1070
  // Element is not currently focused
1071
- !elem.contains(document.activeElement) && // native input is not focused directly
1072
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1071
+ !elem.componentHasFocus &&
1073
1072
 
1074
1073
  // And element has been touched or is untouched but has a value
1075
1074
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1068,8 +1068,7 @@ class AuroFormValidation {
1068
1068
  // State-based checks
1069
1069
  (
1070
1070
  // Element is not currently focused
1071
- !elem.contains(document.activeElement) && // native input is not focused directly
1072
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1071
+ !elem.componentHasFocus &&
1073
1072
 
1074
1073
  // And element has been touched or is untouched but has a value
1075
1074
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -1009,8 +1009,7 @@ class AuroFormValidation {
1009
1009
  // State-based checks
1010
1010
  (
1011
1011
  // Element is not currently focused
1012
- !elem.contains(document.activeElement) && // native input is not focused directly
1013
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
1012
+ !elem.componentHasFocus &&
1014
1013
 
1015
1014
  // And element has been touched or is untouched but has a value
1016
1015
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -917,8 +917,7 @@ class AuroFormValidation {
917
917
  // State-based checks
918
918
  (
919
919
  // Element is not currently focused
920
- !elem.contains(document.activeElement) && // native input is not focused directly
921
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
920
+ !elem.componentHasFocus &&
922
921
 
923
922
  // And element has been touched or is untouched but has a value
924
923
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -878,8 +878,7 @@ class AuroFormValidation {
878
878
  // State-based checks
879
879
  (
880
880
  // Element is not currently focused
881
- !elem.contains(document.activeElement) && // native input is not focused directly
882
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
881
+ !elem.componentHasFocus &&
883
882
 
884
883
  // And element has been touched or is untouched but has a value
885
884
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
@@ -878,8 +878,7 @@ class AuroFormValidation {
878
878
  // State-based checks
879
879
  (
880
880
  // Element is not currently focused
881
- !elem.contains(document.activeElement) && // native input is not focused directly
882
- !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
881
+ !elem.componentHasFocus &&
883
882
 
884
883
  // And element has been touched or is untouched but has a value
885
884
  ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurodesignsystem-dev/auro-formkit",
3
- "version": "0.0.0-pr1145.2",
3
+ "version": "0.0.0-pr1145.4",
4
4
  "description": "A collection of web components used to build forms.",
5
5
  "homepage": "https://github.com/AlaskaAirlines/auro-formkit#readme",
6
6
  "bugs": {