@aurodesignsystem/auro-formkit 5.1.3 → 5.1.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 (44) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/components/combobox/README.md +2 -0
  3. package/components/combobox/demo/api.md +190 -62
  4. package/components/combobox/demo/api.min.js +401 -146
  5. package/components/combobox/demo/index.md +2 -0
  6. package/components/combobox/demo/index.min.js +331 -132
  7. package/components/combobox/demo/readme.md +2 -0
  8. package/components/combobox/dist/auro-combobox.d.ts +81 -33
  9. package/components/combobox/dist/index.js +297 -122
  10. package/components/combobox/dist/registered.js +297 -122
  11. package/components/counter/demo/api.min.js +9 -4
  12. package/components/counter/demo/index.min.js +9 -4
  13. package/components/counter/dist/index.js +9 -4
  14. package/components/counter/dist/registered.js +9 -4
  15. package/components/datepicker/demo/api.min.js +61 -16
  16. package/components/datepicker/demo/index.min.js +61 -16
  17. package/components/datepicker/dist/index.js +61 -16
  18. package/components/datepicker/dist/registered.js +61 -16
  19. package/components/dropdown/demo/api.min.js +8 -3
  20. package/components/dropdown/demo/index.min.js +8 -3
  21. package/components/dropdown/dist/index.js +8 -3
  22. package/components/dropdown/dist/registered.js +8 -3
  23. package/components/input/demo/api.md +48 -46
  24. package/components/input/demo/api.min.js +52 -12
  25. package/components/input/demo/index.md +7 -3
  26. package/components/input/demo/index.min.js +52 -12
  27. package/components/input/dist/auro-input.d.ts +4 -0
  28. package/components/input/dist/base-input.d.ts +9 -1
  29. package/components/input/dist/index.js +52 -12
  30. package/components/input/dist/registered.js +52 -12
  31. package/components/layoutElement/dist/index.js +1 -1
  32. package/components/layoutElement/dist/registered.js +1 -1
  33. package/components/menu/demo/api.md +4 -3
  34. package/components/menu/demo/api.min.js +35 -11
  35. package/components/menu/demo/index.min.js +35 -11
  36. package/components/menu/dist/auro-menu.d.ts +3 -2
  37. package/components/menu/dist/auro-menuoption.d.ts +1 -0
  38. package/components/menu/dist/index.js +35 -11
  39. package/components/menu/dist/registered.js +35 -11
  40. package/components/select/demo/api.min.js +44 -15
  41. package/components/select/demo/index.min.js +44 -15
  42. package/components/select/dist/index.js +10 -5
  43. package/components/select/dist/registered.js +10 -5
  44. package/package.json +1 -1
@@ -4965,7 +4965,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
4965
4965
  * @returns {boolean} - Returns true if the element has focus.
4966
4966
  */
4967
4967
  get componentHasFocus() {
4968
- return this.matches(':focus');
4968
+ return this.matches(':focus') || this.matches(':focus-within');
4969
4969
  }
4970
4970
 
4971
4971
  resetShapeClasses() {
@@ -5039,7 +5039,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
5039
5039
  * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
5040
5040
  * @attr id
5041
5041
  *
5042
- * @slot ariaLabel.clear - Sets aria-label on clear button for screenreader to read
5042
+ * @slot ariaLabel.clear - Sets aria-label on clear button for screen reader to read
5043
5043
  * @slot ariaLabel.password.show - Sets aria-label on password button to toggle on showing password
5044
5044
  * @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
5045
5045
  * @slot helpText - Sets the help text displayed below the input.
@@ -5067,6 +5067,7 @@ class BaseInput extends AuroElement$2 {
5067
5067
  this.activeLabel = false;
5068
5068
  this.icon = false;
5069
5069
  this.disabled = false;
5070
+ this.dvInputOnly = false;
5070
5071
  this.max = undefined;
5071
5072
  this.maxLength = undefined;
5072
5073
  this.min = undefined;
@@ -5160,6 +5161,14 @@ class BaseInput extends AuroElement$2 {
5160
5161
  return {
5161
5162
  ...super.properties,
5162
5163
 
5164
+ /**
5165
+ * If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.
5166
+ */
5167
+ dvInputOnly: {
5168
+ type: Boolean,
5169
+ reflect: true
5170
+ },
5171
+
5163
5172
  /**
5164
5173
  * The value for the role attribute.
5165
5174
  */
@@ -7925,7 +7934,13 @@ class AuroInput extends BaseInput {
7925
7934
  * @private
7926
7935
  */
7927
7936
  get inputHidden() {
7928
- return (this.hasDisplayValueContent && !this.hasFocus && this.hasValue) || ((!this.value || this.value.length === 0) && !this.hasFocus && (!this.placeholder || this.placeholder === ''));
7937
+ return (
7938
+ this.hasDisplayValueContent && !this.hasFocus && this.hasValue) ||
7939
+ (
7940
+ (!this.value || this.value.length === 0) &&
7941
+ !this.hasFocus &&
7942
+ (!this.placeholder || this.placeholder === '')
7943
+ );
7929
7944
  }
7930
7945
 
7931
7946
  /**
@@ -7945,7 +7960,7 @@ class AuroInput extends BaseInput {
7945
7960
  * @private
7946
7961
  */
7947
7962
  get labelHidden() {
7948
- return this.hasDisplayValueContent && !this.hasFocus && this.hasValue;
7963
+ return this.hasDisplayValueContent && !this.dvInputOnly && !this.hasFocus && this.hasValue;
7949
7964
  }
7950
7965
 
7951
7966
  /**
@@ -7954,18 +7969,26 @@ class AuroInput extends BaseInput {
7954
7969
  * @returns {string} - The font class for the label.
7955
7970
  */
7956
7971
  get labelFontClass() {
7957
- const isHidden = this.inputHidden;
7958
-
7959
7972
  if (this.layout.startsWith('emphasized')) {
7960
- return this.noFocusOrValue ? 'accent-xl' : 'body-sm';
7973
+ let typeSize = 'body-sm';
7974
+
7975
+ if (this.hasDisplayValueContent) {
7976
+ if (!this.hasValue) {
7977
+ typeSize = 'accent-xl';
7978
+ }
7979
+ } else if (this.noFocusOrValue) {
7980
+ typeSize = 'accent-xl';
7981
+ }
7982
+
7983
+ return typeSize;
7961
7984
  }
7962
7985
 
7963
7986
  if (this.layout === 'snowflake') {
7964
- return isHidden ? 'body-lg' : 'body-xs';
7987
+ return this.hasValue || this.hasFocus || this.placeholder ? 'body-xs' : 'body-lg';
7965
7988
  }
7966
7989
 
7967
7990
  // classic layout (default)
7968
- return isHidden ? 'body-default' : 'body-xs';
7991
+ return ((!this.value || this.value.length === 0) && !this.placeholder && !this.hasFocus) ? 'body-default' : 'body-xs';
7969
7992
  }
7970
7993
 
7971
7994
  /**
@@ -7975,7 +7998,17 @@ class AuroInput extends BaseInput {
7975
7998
  */
7976
7999
  get inputFontClass() {
7977
8000
  if (this.layout.startsWith('emphasized')) {
7978
- return this.noFocusOrValue ? 'body-sm' : 'accent-xl';
8001
+ let typeSize = 'accent-xl';
8002
+
8003
+ if (this.hasDisplayValueContent) {
8004
+ if (!this.hasValue) {
8005
+ typeSize = 'body-sm';
8006
+ }
8007
+ } else if (this.noFocusOrValue) {
8008
+ typeSize = 'body-sm';
8009
+ }
8010
+
8011
+ return typeSize;
7979
8012
  }
7980
8013
 
7981
8014
  if (this.layout === 'snowflake') {
@@ -8018,6 +8051,13 @@ class AuroInput extends BaseInput {
8018
8051
  };
8019
8052
  }
8020
8053
 
8054
+ get commonDisplayValueWrapperClasses() {
8055
+ return {
8056
+ 'displayValueWrapper': true,
8057
+ [this.inputFontClass]: true,
8058
+ };
8059
+ }
8060
+
8021
8061
  /**
8022
8062
  * Returns classmap configuration for html5 inputs in each layout.
8023
8063
  * @private
@@ -8090,7 +8130,7 @@ class AuroInput extends BaseInput {
8090
8130
  let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
8091
8131
 
8092
8132
  // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
8093
- if (nodes[0].tagName === 'SLOT') {
8133
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
8094
8134
  nodes = nodes[0].assignedNodes();
8095
8135
  }
8096
8136
 
@@ -8181,7 +8221,7 @@ class AuroInput extends BaseInput {
8181
8221
  type="${this.type === "password" && this.showPassword ? "text" : this.getInputType(this.type)}"
8182
8222
  />
8183
8223
  <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
8184
- <div class="displayValueWrapper">
8224
+ <div class="${e(this.commonDisplayValueWrapperClasses)}">
8185
8225
  <slot name="displayValue" @slotchange=${this.checkDisplayValueSlotChange}></slot>
8186
8226
  </div>
8187
8227
  </div>
@@ -71,6 +71,10 @@ export class AuroInput extends BaseInput {
71
71
  * @returns {Record<string, boolean>} - Returns classmap.
72
72
  */
73
73
  private get commonInputClasses();
74
+ get commonDisplayValueWrapperClasses(): {
75
+ [x: string]: boolean;
76
+ displayValueWrapper: boolean;
77
+ };
74
78
  /**
75
79
  * Returns classmap configuration for html5 inputs in each layout.
76
80
  * @private
@@ -4,7 +4,7 @@
4
4
  * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
5
5
  * @attr id
6
6
  *
7
- * @slot ariaLabel.clear - Sets aria-label on clear button for screenreader to read
7
+ * @slot ariaLabel.clear - Sets aria-label on clear button for screen reader to read
8
8
  * @slot ariaLabel.password.show - Sets aria-label on password button to toggle on showing password
9
9
  * @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
10
10
  * @slot helpText - Sets the help text displayed below the input.
@@ -25,6 +25,13 @@
25
25
  */
26
26
  export default class BaseInput extends AuroElement {
27
27
  static get properties(): {
28
+ /**
29
+ * If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.
30
+ */
31
+ dvInputOnly: {
32
+ type: BooleanConstructor;
33
+ reflect: boolean;
34
+ };
28
35
  /**
29
36
  * The value for the role attribute.
30
37
  */
@@ -334,6 +341,7 @@ export default class BaseInput extends AuroElement {
334
341
  activeLabel: boolean;
335
342
  icon: boolean;
336
343
  disabled: boolean;
344
+ dvInputOnly: boolean;
337
345
  max: any;
338
346
  maxLength: any;
339
347
  min: any;
@@ -4889,7 +4889,7 @@ let AuroElement$2 = class AuroElement extends LitElement {
4889
4889
  * @returns {boolean} - Returns true if the element has focus.
4890
4890
  */
4891
4891
  get componentHasFocus() {
4892
- return this.matches(':focus');
4892
+ return this.matches(':focus') || this.matches(':focus-within');
4893
4893
  }
4894
4894
 
4895
4895
  resetShapeClasses() {
@@ -4963,7 +4963,7 @@ let AuroElement$2 = class AuroElement extends LitElement {
4963
4963
  * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
4964
4964
  * @attr id
4965
4965
  *
4966
- * @slot ariaLabel.clear - Sets aria-label on clear button for screenreader to read
4966
+ * @slot ariaLabel.clear - Sets aria-label on clear button for screen reader to read
4967
4967
  * @slot ariaLabel.password.show - Sets aria-label on password button to toggle on showing password
4968
4968
  * @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
4969
4969
  * @slot helpText - Sets the help text displayed below the input.
@@ -4991,6 +4991,7 @@ class BaseInput extends AuroElement$2 {
4991
4991
  this.activeLabel = false;
4992
4992
  this.icon = false;
4993
4993
  this.disabled = false;
4994
+ this.dvInputOnly = false;
4994
4995
  this.max = undefined;
4995
4996
  this.maxLength = undefined;
4996
4997
  this.min = undefined;
@@ -5084,6 +5085,14 @@ class BaseInput extends AuroElement$2 {
5084
5085
  return {
5085
5086
  ...super.properties,
5086
5087
 
5088
+ /**
5089
+ * If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.
5090
+ */
5091
+ dvInputOnly: {
5092
+ type: Boolean,
5093
+ reflect: true
5094
+ },
5095
+
5087
5096
  /**
5088
5097
  * The value for the role attribute.
5089
5098
  */
@@ -7849,7 +7858,13 @@ class AuroInput extends BaseInput {
7849
7858
  * @private
7850
7859
  */
7851
7860
  get inputHidden() {
7852
- return (this.hasDisplayValueContent && !this.hasFocus && this.hasValue) || ((!this.value || this.value.length === 0) && !this.hasFocus && (!this.placeholder || this.placeholder === ''));
7861
+ return (
7862
+ this.hasDisplayValueContent && !this.hasFocus && this.hasValue) ||
7863
+ (
7864
+ (!this.value || this.value.length === 0) &&
7865
+ !this.hasFocus &&
7866
+ (!this.placeholder || this.placeholder === '')
7867
+ );
7853
7868
  }
7854
7869
 
7855
7870
  /**
@@ -7869,7 +7884,7 @@ class AuroInput extends BaseInput {
7869
7884
  * @private
7870
7885
  */
7871
7886
  get labelHidden() {
7872
- return this.hasDisplayValueContent && !this.hasFocus && this.hasValue;
7887
+ return this.hasDisplayValueContent && !this.dvInputOnly && !this.hasFocus && this.hasValue;
7873
7888
  }
7874
7889
 
7875
7890
  /**
@@ -7878,18 +7893,26 @@ class AuroInput extends BaseInput {
7878
7893
  * @returns {string} - The font class for the label.
7879
7894
  */
7880
7895
  get labelFontClass() {
7881
- const isHidden = this.inputHidden;
7882
-
7883
7896
  if (this.layout.startsWith('emphasized')) {
7884
- return this.noFocusOrValue ? 'accent-xl' : 'body-sm';
7897
+ let typeSize = 'body-sm';
7898
+
7899
+ if (this.hasDisplayValueContent) {
7900
+ if (!this.hasValue) {
7901
+ typeSize = 'accent-xl';
7902
+ }
7903
+ } else if (this.noFocusOrValue) {
7904
+ typeSize = 'accent-xl';
7905
+ }
7906
+
7907
+ return typeSize;
7885
7908
  }
7886
7909
 
7887
7910
  if (this.layout === 'snowflake') {
7888
- return isHidden ? 'body-lg' : 'body-xs';
7911
+ return this.hasValue || this.hasFocus || this.placeholder ? 'body-xs' : 'body-lg';
7889
7912
  }
7890
7913
 
7891
7914
  // classic layout (default)
7892
- return isHidden ? 'body-default' : 'body-xs';
7915
+ return ((!this.value || this.value.length === 0) && !this.placeholder && !this.hasFocus) ? 'body-default' : 'body-xs';
7893
7916
  }
7894
7917
 
7895
7918
  /**
@@ -7899,7 +7922,17 @@ class AuroInput extends BaseInput {
7899
7922
  */
7900
7923
  get inputFontClass() {
7901
7924
  if (this.layout.startsWith('emphasized')) {
7902
- return this.noFocusOrValue ? 'body-sm' : 'accent-xl';
7925
+ let typeSize = 'accent-xl';
7926
+
7927
+ if (this.hasDisplayValueContent) {
7928
+ if (!this.hasValue) {
7929
+ typeSize = 'body-sm';
7930
+ }
7931
+ } else if (this.noFocusOrValue) {
7932
+ typeSize = 'body-sm';
7933
+ }
7934
+
7935
+ return typeSize;
7903
7936
  }
7904
7937
 
7905
7938
  if (this.layout === 'snowflake') {
@@ -7942,6 +7975,13 @@ class AuroInput extends BaseInput {
7942
7975
  };
7943
7976
  }
7944
7977
 
7978
+ get commonDisplayValueWrapperClasses() {
7979
+ return {
7980
+ 'displayValueWrapper': true,
7981
+ [this.inputFontClass]: true,
7982
+ };
7983
+ }
7984
+
7945
7985
  /**
7946
7986
  * Returns classmap configuration for html5 inputs in each layout.
7947
7987
  * @private
@@ -8014,7 +8054,7 @@ class AuroInput extends BaseInput {
8014
8054
  let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
8015
8055
 
8016
8056
  // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
8017
- if (nodes[0].tagName === 'SLOT') {
8057
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
8018
8058
  nodes = nodes[0].assignedNodes();
8019
8059
  }
8020
8060
 
@@ -8105,7 +8145,7 @@ class AuroInput extends BaseInput {
8105
8145
  type="${this.type === "password" && this.showPassword ? "text" : this.getInputType(this.type)}"
8106
8146
  />
8107
8147
  <div class="${classMap(displayValueClasses)}" aria-hidden="true" part="displayValue">
8108
- <div class="displayValueWrapper">
8148
+ <div class="${classMap(this.commonDisplayValueWrapperClasses)}">
8109
8149
  <slot name="displayValue" @slotchange=${this.checkDisplayValueSlotChange}></slot>
8110
8150
  </div>
8111
8151
  </div>
@@ -4889,7 +4889,7 @@ let AuroElement$2 = class AuroElement extends LitElement {
4889
4889
  * @returns {boolean} - Returns true if the element has focus.
4890
4890
  */
4891
4891
  get componentHasFocus() {
4892
- return this.matches(':focus');
4892
+ return this.matches(':focus') || this.matches(':focus-within');
4893
4893
  }
4894
4894
 
4895
4895
  resetShapeClasses() {
@@ -4963,7 +4963,7 @@ let AuroElement$2 = class AuroElement extends LitElement {
4963
4963
  * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
4964
4964
  * @attr id
4965
4965
  *
4966
- * @slot ariaLabel.clear - Sets aria-label on clear button for screenreader to read
4966
+ * @slot ariaLabel.clear - Sets aria-label on clear button for screen reader to read
4967
4967
  * @slot ariaLabel.password.show - Sets aria-label on password button to toggle on showing password
4968
4968
  * @slot ariaLabel.password.hide - Sets aria-label on password button to toggle off showing password
4969
4969
  * @slot helpText - Sets the help text displayed below the input.
@@ -4991,6 +4991,7 @@ class BaseInput extends AuroElement$2 {
4991
4991
  this.activeLabel = false;
4992
4992
  this.icon = false;
4993
4993
  this.disabled = false;
4994
+ this.dvInputOnly = false;
4994
4995
  this.max = undefined;
4995
4996
  this.maxLength = undefined;
4996
4997
  this.min = undefined;
@@ -5084,6 +5085,14 @@ class BaseInput extends AuroElement$2 {
5084
5085
  return {
5085
5086
  ...super.properties,
5086
5087
 
5088
+ /**
5089
+ * If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.
5090
+ */
5091
+ dvInputOnly: {
5092
+ type: Boolean,
5093
+ reflect: true
5094
+ },
5095
+
5087
5096
  /**
5088
5097
  * The value for the role attribute.
5089
5098
  */
@@ -7849,7 +7858,13 @@ class AuroInput extends BaseInput {
7849
7858
  * @private
7850
7859
  */
7851
7860
  get inputHidden() {
7852
- return (this.hasDisplayValueContent && !this.hasFocus && this.hasValue) || ((!this.value || this.value.length === 0) && !this.hasFocus && (!this.placeholder || this.placeholder === ''));
7861
+ return (
7862
+ this.hasDisplayValueContent && !this.hasFocus && this.hasValue) ||
7863
+ (
7864
+ (!this.value || this.value.length === 0) &&
7865
+ !this.hasFocus &&
7866
+ (!this.placeholder || this.placeholder === '')
7867
+ );
7853
7868
  }
7854
7869
 
7855
7870
  /**
@@ -7869,7 +7884,7 @@ class AuroInput extends BaseInput {
7869
7884
  * @private
7870
7885
  */
7871
7886
  get labelHidden() {
7872
- return this.hasDisplayValueContent && !this.hasFocus && this.hasValue;
7887
+ return this.hasDisplayValueContent && !this.dvInputOnly && !this.hasFocus && this.hasValue;
7873
7888
  }
7874
7889
 
7875
7890
  /**
@@ -7878,18 +7893,26 @@ class AuroInput extends BaseInput {
7878
7893
  * @returns {string} - The font class for the label.
7879
7894
  */
7880
7895
  get labelFontClass() {
7881
- const isHidden = this.inputHidden;
7882
-
7883
7896
  if (this.layout.startsWith('emphasized')) {
7884
- return this.noFocusOrValue ? 'accent-xl' : 'body-sm';
7897
+ let typeSize = 'body-sm';
7898
+
7899
+ if (this.hasDisplayValueContent) {
7900
+ if (!this.hasValue) {
7901
+ typeSize = 'accent-xl';
7902
+ }
7903
+ } else if (this.noFocusOrValue) {
7904
+ typeSize = 'accent-xl';
7905
+ }
7906
+
7907
+ return typeSize;
7885
7908
  }
7886
7909
 
7887
7910
  if (this.layout === 'snowflake') {
7888
- return isHidden ? 'body-lg' : 'body-xs';
7911
+ return this.hasValue || this.hasFocus || this.placeholder ? 'body-xs' : 'body-lg';
7889
7912
  }
7890
7913
 
7891
7914
  // classic layout (default)
7892
- return isHidden ? 'body-default' : 'body-xs';
7915
+ return ((!this.value || this.value.length === 0) && !this.placeholder && !this.hasFocus) ? 'body-default' : 'body-xs';
7893
7916
  }
7894
7917
 
7895
7918
  /**
@@ -7899,7 +7922,17 @@ class AuroInput extends BaseInput {
7899
7922
  */
7900
7923
  get inputFontClass() {
7901
7924
  if (this.layout.startsWith('emphasized')) {
7902
- return this.noFocusOrValue ? 'body-sm' : 'accent-xl';
7925
+ let typeSize = 'accent-xl';
7926
+
7927
+ if (this.hasDisplayValueContent) {
7928
+ if (!this.hasValue) {
7929
+ typeSize = 'body-sm';
7930
+ }
7931
+ } else if (this.noFocusOrValue) {
7932
+ typeSize = 'body-sm';
7933
+ }
7934
+
7935
+ return typeSize;
7903
7936
  }
7904
7937
 
7905
7938
  if (this.layout === 'snowflake') {
@@ -7942,6 +7975,13 @@ class AuroInput extends BaseInput {
7942
7975
  };
7943
7976
  }
7944
7977
 
7978
+ get commonDisplayValueWrapperClasses() {
7979
+ return {
7980
+ 'displayValueWrapper': true,
7981
+ [this.inputFontClass]: true,
7982
+ };
7983
+ }
7984
+
7945
7985
  /**
7946
7986
  * Returns classmap configuration for html5 inputs in each layout.
7947
7987
  * @private
@@ -8014,7 +8054,7 @@ class AuroInput extends BaseInput {
8014
8054
  let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
8015
8055
 
8016
8056
  // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
8017
- if (nodes[0].tagName === 'SLOT') {
8057
+ if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
8018
8058
  nodes = nodes[0].assignedNodes();
8019
8059
  }
8020
8060
 
@@ -8105,7 +8145,7 @@ class AuroInput extends BaseInput {
8105
8145
  type="${this.type === "password" && this.showPassword ? "text" : this.getInputType(this.type)}"
8106
8146
  />
8107
8147
  <div class="${classMap(displayValueClasses)}" aria-hidden="true" part="displayValue">
8108
- <div class="displayValueWrapper">
8148
+ <div class="${classMap(this.commonDisplayValueWrapperClasses)}">
8109
8149
  <slot name="displayValue" @slotchange=${this.checkDisplayValueSlotChange}></slot>
8110
8150
  </div>
8111
8151
  </div>
@@ -40,7 +40,7 @@ class AuroElement extends LitElement {
40
40
  * @returns {boolean} - Returns true if the element has focus.
41
41
  */
42
42
  get componentHasFocus() {
43
- return this.matches(':focus');
43
+ return this.matches(':focus') || this.matches(':focus-within');
44
44
  }
45
45
 
46
46
  resetShapeClasses() {
@@ -40,7 +40,7 @@ class AuroElement extends LitElement {
40
40
  * @returns {boolean} - Returns true if the element has focus.
41
41
  */
42
42
  get componentHasFocus() {
43
- return this.matches(':focus');
43
+ return this.matches(':focus') || this.matches(':focus-within');
44
44
  }
45
45
 
46
46
  resetShapeClasses() {
@@ -22,9 +22,10 @@ The auro-menu element provides users a way to select from a list of options.
22
22
 
23
23
  ## Methods
24
24
 
25
- | Method | Type | Description |
26
- |---------|------------|--------------------------------------------------|
27
- | [reset](#reset) | `(): void` | Resets the menu to its initial state.<br />This is the only way to return value to undefined. |
25
+ | Method | Type | Description |
26
+ |----------------------|-------------------------|--------------------------------------------------|
27
+ | [reset](#reset) | `(): void` | Resets the menu to its initial state.<br />This is the only way to return value to undefined. |
28
+ | [updateActiveOption](#updateActiveOption) | `(index: number): void` | Updates the active option state and dispatches events.<br /><br />**index**: Index of the option to make active. |
28
29
 
29
30
  ## Events
30
31