@aurodesignsystem-dev/auro-formkit 0.0.0-pr1503.2 → 0.0.0-pr1505.0

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 (62) hide show
  1. package/components/checkbox/demo/customize.min.js +2 -2
  2. package/components/checkbox/demo/getting-started.min.js +2 -2
  3. package/components/checkbox/demo/index.min.js +2 -2
  4. package/components/checkbox/dist/index.js +2 -2
  5. package/components/checkbox/dist/registered.js +2 -2
  6. package/components/combobox/demo/customize.md +7 -3
  7. package/components/combobox/demo/customize.min.js +1450 -1662
  8. package/components/combobox/demo/getting-started.min.js +1450 -1662
  9. package/components/combobox/demo/index.min.js +1450 -1662
  10. package/components/combobox/dist/auro-combobox.d.ts +5 -0
  11. package/components/combobox/dist/index.js +504 -141
  12. package/components/combobox/dist/registered.js +504 -141
  13. package/components/counter/demo/customize.min.js +3 -3
  14. package/components/counter/demo/index.min.js +3 -3
  15. package/components/counter/dist/index.js +3 -3
  16. package/components/counter/dist/registered.js +3 -3
  17. package/components/datepicker/demo/api.md +2 -0
  18. package/components/datepicker/demo/customize.md +195 -33
  19. package/components/datepicker/demo/customize.min.js +145 -60
  20. package/components/datepicker/demo/index.min.js +137 -59
  21. package/components/datepicker/dist/index.js +137 -59
  22. package/components/datepicker/dist/registered.js +137 -59
  23. package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -0
  24. package/components/dropdown/demo/customize.min.js +1 -1
  25. package/components/dropdown/demo/getting-started.min.js +1 -1
  26. package/components/dropdown/demo/index.min.js +1 -1
  27. package/components/dropdown/dist/index.js +1 -1
  28. package/components/dropdown/dist/registered.js +1 -1
  29. package/components/form/demo/customize.min.js +2209 -2237
  30. package/components/form/demo/getting-started.min.js +2209 -2237
  31. package/components/form/demo/index.min.js +2209 -2237
  32. package/components/form/demo/registerDemoDeps.min.js +2207 -2235
  33. package/components/input/demo/customize.md +56 -55
  34. package/components/input/demo/customize.min.js +131 -56
  35. package/components/input/demo/getting-started.min.js +131 -56
  36. package/components/input/demo/index.md +2 -2
  37. package/components/input/demo/index.min.js +131 -56
  38. package/components/input/dist/base-input.d.ts +16 -0
  39. package/components/input/dist/index.js +131 -56
  40. package/components/input/dist/registered.js +131 -56
  41. package/components/menu/demo/api.md +41 -45
  42. package/components/menu/demo/customize.md +0 -28
  43. package/components/menu/demo/index.min.js +779 -1354
  44. package/components/menu/dist/auro-menu.d.ts +95 -110
  45. package/components/menu/dist/auro-menuoption.d.ts +32 -138
  46. package/components/menu/dist/index.js +753 -1308
  47. package/components/menu/dist/registered.js +765 -1308
  48. package/components/radio/demo/customize.min.js +2 -2
  49. package/components/radio/demo/getting-started.min.js +2 -2
  50. package/components/radio/demo/index.min.js +2 -2
  51. package/components/radio/dist/index.js +2 -2
  52. package/components/radio/dist/registered.js +2 -2
  53. package/components/select/demo/customize.md +7 -3
  54. package/components/select/demo/customize.min.js +1072 -1616
  55. package/components/select/demo/getting-started.min.js +1072 -1616
  56. package/components/select/demo/index.min.js +1072 -1616
  57. package/components/select/dist/index.js +46 -15
  58. package/components/select/dist/registered.js +46 -15
  59. package/components/select/dist/selectUtils.d.ts +12 -0
  60. package/custom-elements.json +384 -1022
  61. package/package.json +1 -3
  62. package/components/menu/dist/auro-menu.context.d.ts +0 -238
@@ -2454,7 +2454,7 @@
2454
2454
  "type": {
2455
2455
  "text": "object"
2456
2456
  },
2457
- "default": "{ ArrowDown(component, evt, ctx) { // If the clear button has focus, let the browser handle ArrowDown normally. if (isClearBtnFocused(ctx)) { return; } // option display and navigation are prevented if there are no available options if (component.availableOptions.length > 0) { evt.preventDefault(); // navigate if bib is open otherwise open it if (component.dropdown.isPopoverVisible) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { component.activateLastEnabledAvailableOption(); } else { navigateArrow(component, 'down'); } } else { component.showBib(); } } }, ArrowUp(component, evt, ctx) { // If the clear button has focus, let the browser handle ArrowUp normally. if (isClearBtnFocused(ctx)) { return; } // option display and navigation are prevented if there are no available options if (component.availableOptions.length > 0) { evt.preventDefault(); // navigate if bib is open otherwise open it if (component.dropdown.isPopoverVisible) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { component.activateFirstEnabledAvailableOption(); } else { navigateArrow(component, 'up'); } } else { component.showBib(); } } }, End(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateLastEnabledAvailableOption(); } }, Enter(component, evt, ctx) { if (isClearBtnFocused(ctx)) { // If the clear button has focus, let the browser activate it normally. // stopPropagation prevents parent containers (e.g., forms) from treating // Enter as a submit, but we must NOT call preventDefault — that would // block the browser's built-in \"Enter activates focused button\" behavior. evt.stopPropagation(); } else if (ctx.isExpanded && component.menu.optionActive) { component.menu.makeSelection(); if (ctx.isModal) { component.setTriggerInputFocus(); } evt.preventDefault(); evt.stopPropagation(); } else { // Prevent the keypress from bubbling to parent containers (e.g., forms) // which could interpret Enter as a submit or trigger other unintended behavior. // This is safe because showBib() opens the dialog programmatically, // not via event propagation. evt.preventDefault(); evt.stopPropagation(); component.showBib(); } }, Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); if (ctx.isModal) { component.setTriggerInputFocus(); } component.hideBib(); }, Home(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateFirstEnabledAvailableOption(); } }, Tab(component, evt, ctx) { if (ctx.isExpanded && !isClearBtnFocused(ctx)) { // When the clear button is focused, Tab events do not bubble out of // its shadow DOM, so this handler only fires when the clear button // is NOT focused. In that case, select the active option and close. component.menu.makeSelection(); component.hideBib(); // In fullscreen modal mode, closing the dialog does not // automatically restores focus to the input. In the tab case, // Explicitly move focus to the trigger's clear button so the // user can continues tabbing through the page normally. if (ctx.isModal && !evt.shiftKey) { component.setClearBtnFocus(); } } }, }"
2457
+ "default": "{ ArrowDown(component, evt, ctx) { // If the clear button has focus, let the browser handle ArrowDown normally. if (isClearBtnFocused(ctx)) { return; } // option display and navigation are prevented if there are no available options if (component.availableOptions.length > 0) { evt.preventDefault(); // navigate if bib is open otherwise open it if (component.dropdown.isPopoverVisible) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { component.activateLastEnabledAvailableOption(); } else { navigateArrow(component, 'down'); } } else { component.showBib(); } } }, ArrowUp(component, evt, ctx) { // If the clear button has focus, let the browser handle ArrowUp normally. if (isClearBtnFocused(ctx)) { return; } // option display and navigation are prevented if there are no available options if (component.availableOptions.length > 0) { evt.preventDefault(); // navigate if bib is open otherwise open it if (component.dropdown.isPopoverVisible) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { component.activateFirstEnabledAvailableOption(); } else { navigateArrow(component, 'up'); } } else { component.showBib(); } } }, End(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateLastEnabledAvailableOption(); } }, Enter(component, evt, ctx) { if (isClearBtnFocused(ctx)) { // If the clear button has focus, let the browser activate it normally. // stopPropagation prevents parent containers (e.g., forms) from treating // Enter as a submit, but we must NOT call preventDefault — that would // block the browser's built-in \"Enter activates focused button\" behavior. evt.stopPropagation(); } else if (ctx.isExpanded && component.menu.optionActive) { reconcileMenuIndex(component.menu); component.menu.makeSelection(); if (ctx.isModal) { component.setTriggerInputFocus(); } evt.preventDefault(); evt.stopPropagation(); } else { // Prevent the keypress from bubbling to parent containers (e.g., forms) // which could interpret Enter as a submit or trigger other unintended behavior. // This is safe because showBib() opens the dialog programmatically, // not via event propagation. evt.preventDefault(); evt.stopPropagation(); component.showBib(); } }, Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); if (ctx.isModal) { component.setTriggerInputFocus(); } component.hideBib(); }, Home(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateFirstEnabledAvailableOption(); } }, Tab(component, evt, ctx) { if (ctx.isExpanded && !isClearBtnFocused(ctx)) { // When the clear button is focused, Tab events do not bubble out of // its shadow DOM, so this handler only fires when the clear button // is NOT focused. In that case, select the active option and close. reconcileMenuIndex(component.menu); component.menu.makeSelection(); component.hideBib(); // In fullscreen modal mode, closing the dialog does not // automatically restores focus to the input. In the tab case, // Explicitly move focus to the trigger's clear button so the // user can continues tabbing through the page normally. if (ctx.isModal && !evt.shiftKey) { component.setClearBtnFocus(); } } }, }"
2458
2458
  }
2459
2459
  ],
2460
2460
  "exports": [
@@ -6305,6 +6305,14 @@
6305
6305
  "description": "Defines the label content for the first input.",
6306
6306
  "name": "fromLabel"
6307
6307
  },
6308
+ {
6309
+ "description": "Overrides the \"(optional)\" text rendered next to the first input's label when the datepicker is not `required`.",
6310
+ "name": "optionalFromLabel"
6311
+ },
6312
+ {
6313
+ "description": "Overrides the \"(optional)\" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.",
6314
+ "name": "optionalToLabel"
6315
+ },
6308
6316
  {
6309
6317
  "description": "Defines the content to display in the auro-calendar-cell for the specified date. The content text is colored using the success state token when the `highlight` attribute is applied to the slot.",
6310
6318
  "name": "date_YYYY_MM_DD"
@@ -11696,6 +11704,30 @@
11696
11704
  "module": "components/input/src/base-input.js"
11697
11705
  }
11698
11706
  },
11707
+ {
11708
+ "kind": "method",
11709
+ "name": "_computeDateObjectFallback",
11710
+ "parameters": [
11711
+ {
11712
+ "name": "dateStr",
11713
+ "description": "ISO date string from `value`/`min`/`max`.",
11714
+ "type": {
11715
+ "text": "string|undefined"
11716
+ }
11717
+ }
11718
+ ],
11719
+ "description": "Parses a date string into a Date object when the corresponding `_*Object`\nfield hasn't been synced yet by `updated()`. Returns undefined when the\ninput type/format isn't a full date or the string is not a valid date.\n\nWhy this exists: a parent (datepicker) can call `inputN.validate()` from\ninside its own `updated()` before this input's `updated()` has run\n`syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`\nand range checks would otherwise silently no-op (flipping the result to\n`valid` or `patternMismatch`).",
11720
+ "privacy": "private",
11721
+ "return": {
11722
+ "type": {
11723
+ "text": "Date|undefined"
11724
+ }
11725
+ },
11726
+ "inheritedFrom": {
11727
+ "name": "BaseInput",
11728
+ "module": "components/input/src/base-input.js"
11729
+ }
11730
+ },
11699
11731
  {
11700
11732
  "kind": "method",
11701
11733
  "name": "setDateObjectProperty",
@@ -13783,6 +13815,26 @@
13783
13815
  },
13784
13816
  "readonly": true
13785
13817
  },
13818
+ {
13819
+ "kind": "method",
13820
+ "name": "_computeDateObjectFallback",
13821
+ "parameters": [
13822
+ {
13823
+ "name": "dateStr",
13824
+ "description": "ISO date string from `value`/`min`/`max`.",
13825
+ "type": {
13826
+ "text": "string|undefined"
13827
+ }
13828
+ }
13829
+ ],
13830
+ "description": "Parses a date string into a Date object when the corresponding `_*Object`\nfield hasn't been synced yet by `updated()`. Returns undefined when the\ninput type/format isn't a full date or the string is not a valid date.\n\nWhy this exists: a parent (datepicker) can call `inputN.validate()` from\ninside its own `updated()` before this input's `updated()` has run\n`syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`\nand range checks would otherwise silently no-op (flipping the result to\n`valid` or `patternMismatch`).",
13831
+ "privacy": "private",
13832
+ "return": {
13833
+ "type": {
13834
+ "text": "Date|undefined"
13835
+ }
13836
+ }
13837
+ },
13786
13838
  {
13787
13839
  "kind": "method",
13788
13840
  "name": "setDateObjectProperty",
@@ -15969,882 +16021,386 @@
15969
16021
  },
15970
16022
  {
15971
16023
  "kind": "javascript-module",
15972
- "path": "components/menu/src/auro-menu.context.js",
16024
+ "path": "components/menu/src/auro-menu.js",
15973
16025
  "declarations": [
15974
16026
  {
15975
16027
  "kind": "class",
15976
- "description": "",
15977
- "name": "MenuService",
16028
+ "description": "The `auro-menu` element provides users a way to select from a list of options.",
16029
+ "name": "AuroMenu",
16030
+ "slots": [
16031
+ {
16032
+ "description": "Text to show while loading attribute is set",
16033
+ "name": "loadingText"
16034
+ },
16035
+ {
16036
+ "description": "Icon to show while loading attribute is set",
16037
+ "name": "loadingIcon"
16038
+ },
16039
+ {
16040
+ "description": "Slot for insertion of menu options.",
16041
+ "name": ""
16042
+ }
16043
+ ],
15978
16044
  "members": [
16045
+ {
16046
+ "kind": "method",
16047
+ "name": "register",
16048
+ "static": true,
16049
+ "parameters": [
16050
+ {
16051
+ "name": "name",
16052
+ "default": "\"auro-menu\"",
16053
+ "description": "The name of element that you want to register to.",
16054
+ "optional": true,
16055
+ "type": {
16056
+ "text": "string"
16057
+ }
16058
+ }
16059
+ ],
16060
+ "description": "This will register this element with the browser."
16061
+ },
15979
16062
  {
15980
16063
  "kind": "field",
15981
- "name": "menuOptions",
15982
- "description": "Gets the list of registered menu options.",
16064
+ "name": "options",
16065
+ "readonly": true,
15983
16066
  "return": {
15984
16067
  "type": {
15985
- "text": "AuroMenuOption[]"
16068
+ "text": "Array<HTMLElement>"
15986
16069
  }
15987
- },
15988
- "readonly": true
16070
+ }
15989
16071
  },
15990
16072
  {
15991
16073
  "kind": "field",
15992
- "name": "highlightedOption",
15993
- "description": "Gets the currently highlighted option.",
16074
+ "name": "index",
15994
16075
  "return": {
15995
16076
  "type": {
15996
- "text": "AuroMenuOption|null"
16077
+ "text": "number"
15997
16078
  }
15998
16079
  },
15999
- "readonly": true
16080
+ "parameters": [
16081
+ {
16082
+ "description": "Sets the index of the currently active option.",
16083
+ "name": "value",
16084
+ "type": {
16085
+ "text": "number"
16086
+ }
16087
+ }
16088
+ ]
16000
16089
  },
16001
16090
  {
16002
16091
  "kind": "field",
16003
- "name": "currentValue",
16004
- "description": "Gets the current value(s) of the selected option(s).",
16092
+ "name": "selectedOptions",
16093
+ "description": "Gets the currently selected options as an array.",
16005
16094
  "return": {
16006
16095
  "type": {
16007
- "text": "string|string[]|undefined"
16096
+ "text": "Array<HTMLElement>"
16008
16097
  }
16009
16098
  },
16010
16099
  "readonly": true
16011
16100
  },
16012
16101
  {
16013
16102
  "kind": "field",
16014
- "name": "currentLabel",
16015
- "description": "Gets the label(s) of the currently selected option(s).",
16103
+ "name": "selectedOption",
16104
+ "description": "Gets the first selected option, or null if none.",
16016
16105
  "return": {
16017
16106
  "type": {
16018
- "text": "string"
16107
+ "text": "HTMLElement|null"
16019
16108
  }
16020
16109
  },
16021
16110
  "readonly": true
16022
16111
  },
16023
16112
  {
16024
16113
  "kind": "field",
16025
- "name": "stringValue",
16026
- "description": "Gets the string representation of the current value(s).\nFor multi-select, this is a JSON stringified array.",
16114
+ "name": "currentLabel",
16115
+ "readonly": true,
16027
16116
  "return": {
16028
16117
  "type": {
16029
- "text": "string|undefined"
16118
+ "text": "string"
16030
16119
  }
16031
- },
16032
- "readonly": true
16120
+ }
16033
16121
  },
16034
16122
  {
16035
16123
  "kind": "field",
16036
- "name": "currentKeys",
16037
- "description": "Gets the key(s) of the currently selected option(s).",
16124
+ "name": "formattedValue",
16125
+ "description": "Formatted value based on `multiSelect` state.\nDefault type is `String`, changing to `Array<String>` when `multiSelect` is true.",
16126
+ "privacy": "private",
16038
16127
  "return": {
16039
16128
  "type": {
16040
- "text": "string|string[]|undefined"
16129
+ "text": "String|Array<String>"
16041
16130
  }
16042
16131
  },
16043
16132
  "readonly": true
16044
16133
  },
16045
16134
  {
16046
16135
  "kind": "method",
16047
- "name": "hostUpdated",
16048
- "description": "Handles host updates.\nThis is a lit reactive lifecycle method.\nThis comes from the Lit controller interface provided by adding this service as a controller to the host.\nSee constructor for `this.host.addController(this)`\nYou can read more about Lit reactive controllers here: https://lit.dev/docs/composition/controllers/"
16049
- },
16050
- {
16051
- "kind": "method",
16052
- "name": "hostDisconnected",
16053
- "description": "Handles host disconnection and memory cleanup."
16054
- },
16055
- {
16056
- "kind": "method",
16057
- "name": "setProperty",
16136
+ "name": "selectByValue",
16058
16137
  "parameters": [
16059
- {
16060
- "name": "property",
16061
- "type": {
16062
- "text": "string"
16063
- }
16064
- },
16065
16138
  {
16066
16139
  "name": "value",
16140
+ "description": "The value(s) to select.",
16067
16141
  "type": {
16068
- "text": "any"
16142
+ "text": "string|string[]|undefined|null"
16069
16143
  }
16070
16144
  }
16071
16145
  ],
16072
- "description": "Sets a property value if it exists on the instance and the value has changed."
16146
+ "description": "Selects options by value.",
16147
+ "privacy": "public"
16073
16148
  },
16074
16149
  {
16075
16150
  "kind": "method",
16076
- "name": "setProperties",
16151
+ "name": "setTagAttribute",
16077
16152
  "parameters": [
16078
16153
  {
16079
- "name": "properties",
16080
- "description": "Key-value pairs of properties to set.",
16154
+ "name": "tagName",
16155
+ "description": "The tag name to set as an attribute.",
16081
16156
  "type": {
16082
- "text": "Object"
16157
+ "text": "string"
16083
16158
  }
16084
16159
  }
16085
16160
  ],
16086
- "description": "Sets multiple properties on the instance."
16087
- },
16088
- {
16089
- "kind": "method",
16090
- "name": "highlightNext",
16091
- "description": "Highlights the next active option in the menu."
16092
- },
16093
- {
16094
- "kind": "method",
16095
- "name": "highlightPrevious",
16096
- "description": "Highlights the previous active option in the menu."
16161
+ "description": "Sets an attribute that matches the default tag name if the tag name is not the default.",
16162
+ "privacy": "private"
16097
16163
  },
16098
16164
  {
16099
16165
  "kind": "method",
16100
- "name": "moveHighlightedOption",
16166
+ "name": "updateItemsState",
16101
16167
  "parameters": [
16102
16168
  {
16103
- "name": "direction",
16104
- "description": "The direction to move the highlight (\"next\" or \"previous\").",
16169
+ "name": "changedProperties",
16170
+ "description": "LitElement's changed properties map.",
16105
16171
  "type": {
16106
- "text": "string"
16172
+ "text": "Map<string, boolean>"
16107
16173
  }
16108
16174
  }
16109
16175
  ],
16110
- "description": "Moves the highlighted option in the specified direction."
16176
+ "description": "Updates the UI state and appearance of menu items based on changed properties.",
16177
+ "privacy": "private"
16178
+ },
16179
+ {
16180
+ "kind": "method",
16181
+ "name": "initializeMenu",
16182
+ "description": "Initializes the menu's state and structure.",
16183
+ "privacy": "private"
16184
+ },
16185
+ {
16186
+ "kind": "method",
16187
+ "name": "initItems",
16188
+ "description": "Initializes menu items and their attributes.",
16189
+ "privacy": "private"
16111
16190
  },
16112
16191
  {
16113
16192
  "kind": "method",
16114
- "name": "setHighlightedOption",
16193
+ "name": "handleSelectState",
16115
16194
  "parameters": [
16116
16195
  {
16117
16196
  "name": "option",
16118
- "description": "The option to highlight.",
16197
+ "description": "The option element to select.",
16119
16198
  "type": {
16120
- "text": "AuroMenuOption"
16199
+ "text": "HTMLElement"
16121
16200
  }
16122
16201
  }
16123
16202
  ],
16124
- "description": "Sets the highlighted index to the specified option."
16203
+ "description": "Updates menu state when an option is selected.",
16204
+ "privacy": "private"
16125
16205
  },
16126
16206
  {
16127
16207
  "kind": "method",
16128
- "name": "setHighlightedIndex",
16208
+ "name": "handleDeselectState",
16129
16209
  "parameters": [
16130
16210
  {
16131
- "name": "index",
16211
+ "name": "option",
16212
+ "description": "The menuoption to be deselected.",
16132
16213
  "type": {
16133
- "text": "number"
16214
+ "text": "HTMLElement"
16134
16215
  }
16135
16216
  }
16136
16217
  ],
16137
- "description": "Sets the highlighted option to the option at the specified index if it exists."
16218
+ "description": "Deselects a menu option and updates related state.",
16219
+ "privacy": "private"
16138
16220
  },
16139
16221
  {
16140
16222
  "kind": "method",
16141
- "name": "selectHighlightedOption",
16142
- "description": "Selects the currently highlighted option."
16223
+ "name": "clearSelection",
16224
+ "description": "Resets all options to their default state.",
16225
+ "privacy": "private"
16143
16226
  },
16144
16227
  {
16145
16228
  "kind": "method",
16146
- "name": "selectOptions",
16147
- "parameters": [
16148
- {
16149
- "name": "options",
16150
- "description": "Single option or array of options to select",
16151
- "type": {
16152
- "text": "AuroMenuOption|AuroMenuOption[]"
16153
- }
16154
- }
16155
- ],
16156
- "description": "Selects one or more options in a batch operation"
16229
+ "name": "reset",
16230
+ "description": "Resets the menu to its initial state.\nThis is the only way to return value to undefined.",
16231
+ "privacy": "public"
16157
16232
  },
16158
16233
  {
16159
16234
  "kind": "method",
16160
- "name": "deselectOptions",
16235
+ "name": "handleNestedMenus",
16161
16236
  "parameters": [
16162
16237
  {
16163
- "name": "options",
16164
- "description": "Single option or array of options to deselect",
16238
+ "name": "menu",
16239
+ "description": "Root menu element.",
16165
16240
  "type": {
16166
- "text": "AuroMenuOption|AuroMenuOption[]"
16241
+ "text": "HTMLElement"
16167
16242
  }
16168
16243
  }
16169
16244
  ],
16170
- "description": "Deselects one or more options in a batch operation"
16245
+ "description": "Handles nested menu structure.",
16246
+ "privacy": "private"
16171
16247
  },
16172
16248
  {
16173
16249
  "kind": "method",
16174
- "name": "selectOption",
16175
- "parameters": [
16176
- {
16177
- "name": "option",
16178
- "type": {
16179
- "text": "AuroMenuOption"
16180
- }
16181
- }
16182
- ],
16183
- "description": "Selects a single option."
16250
+ "name": "makeSelection",
16251
+ "description": "Makes a selection based on the current index.",
16252
+ "privacy": "private"
16184
16253
  },
16185
16254
  {
16186
16255
  "kind": "method",
16187
- "name": "deselectOption",
16256
+ "name": "toggleOption",
16188
16257
  "parameters": [
16189
16258
  {
16190
16259
  "name": "option",
16260
+ "description": "The menuoption to toggle.",
16191
16261
  "type": {
16192
- "text": "AuroMenuOption"
16262
+ "text": "HTMLElement"
16193
16263
  }
16194
16264
  }
16195
16265
  ],
16196
- "description": "Deselects a single option."
16266
+ "description": "Toggle the selection state of the menuoption.",
16267
+ "privacy": "private"
16197
16268
  },
16198
16269
  {
16199
16270
  "kind": "method",
16200
- "name": "toggleOption",
16271
+ "name": "handleKeyDown",
16201
16272
  "parameters": [
16202
16273
  {
16203
- "name": "option",
16274
+ "name": "event",
16275
+ "description": "The keydown event.",
16204
16276
  "type": {
16205
- "text": "AuroMenuOption"
16277
+ "text": "KeyboardEvent"
16206
16278
  }
16207
16279
  }
16208
16280
  ],
16209
- "description": "Toggles the selection state of a single option."
16281
+ "description": "Handles keyboard navigation and selection.",
16282
+ "privacy": "private"
16210
16283
  },
16211
16284
  {
16212
16285
  "kind": "method",
16213
- "name": "selectByValue",
16286
+ "name": "handleMouseSelect",
16214
16287
  "parameters": [
16215
16288
  {
16216
- "name": "value",
16217
- "description": "The value(s) to select.",
16289
+ "name": "event",
16290
+ "description": "The auroMenuOption-click event.",
16218
16291
  "type": {
16219
- "text": "string|number|Array<string|number>"
16292
+ "text": "CustomEvent"
16220
16293
  }
16221
16294
  }
16222
16295
  ],
16223
- "description": "Selects options based on their value(s) when compared to a passed value or values.\nValue or values are normalized to an array of strings that can be matched to option keys."
16296
+ "description": "Handles option selection via click events from menuoptions.",
16297
+ "privacy": "private"
16224
16298
  },
16225
16299
  {
16226
16300
  "kind": "method",
16227
- "name": "queuePendingValue",
16301
+ "name": "handleOptionHover",
16228
16302
  "parameters": [
16229
16303
  {
16230
- "name": "value",
16231
- "description": "The value to retry.",
16304
+ "name": "event",
16305
+ "description": "Event object from the browser.",
16232
16306
  "type": {
16233
- "text": "string|number|Array<string|number>"
16307
+ "text": "CustomEvent"
16234
16308
  }
16235
16309
  }
16236
16310
  ],
16237
- "description": "Queues a pending value and schedules a bounded retry."
16238
- },
16239
- {
16240
- "kind": "method",
16241
- "name": "clearPendingValue",
16242
- "description": "Clears pending retry state."
16311
+ "description": "Handles option hover events.",
16312
+ "privacy": "private"
16243
16313
  },
16244
16314
  {
16245
16315
  "kind": "method",
16246
- "name": "reset",
16247
- "description": "Resets the selected options to an empty array."
16316
+ "name": "handleSlotChange",
16317
+ "description": "Handles slot change events.",
16318
+ "privacy": "private"
16248
16319
  },
16249
16320
  {
16250
16321
  "kind": "method",
16251
- "name": "subscribe",
16322
+ "name": "navigateOptions",
16252
16323
  "parameters": [
16253
16324
  {
16254
- "name": "callback",
16255
- "description": "The callback to invoke on events.",
16325
+ "name": "direction",
16326
+ "description": "'up' or 'down'.",
16256
16327
  "type": {
16257
- "text": "Function"
16328
+ "text": "string"
16258
16329
  }
16259
16330
  }
16260
16331
  ],
16261
- "description": "Subscribes a callback to menu service events."
16332
+ "description": "Navigates through options using keyboard."
16262
16333
  },
16263
16334
  {
16264
16335
  "kind": "method",
16265
- "name": "unsubscribe",
16336
+ "name": "updateActiveOption",
16266
16337
  "parameters": [
16267
16338
  {
16268
- "name": "callback",
16339
+ "name": "indexOrOption",
16340
+ "description": "Index of the option or the option element to make active.",
16269
16341
  "type": {
16270
- "text": "Function"
16342
+ "text": "number|HTMLElement"
16271
16343
  }
16272
16344
  }
16273
16345
  ],
16274
- "description": "Remove a previously subscribed callback from menu service events."
16275
- },
16276
- {
16277
- "kind": "method",
16278
- "name": "stageUpdate",
16279
- "parameters": [
16280
- {
16281
- "name": "meta",
16282
- "default": "{}"
16283
- }
16284
- ],
16285
- "description": "Stages an update to notify subscribers of state and value changes."
16346
+ "description": "Updates the active option state and dispatches events.\nAccepts either a numeric index or an HTMLElement option."
16286
16347
  },
16287
16348
  {
16288
16349
  "kind": "method",
16289
- "name": "notify",
16350
+ "name": "handleCustomEvent",
16290
16351
  "parameters": [
16291
16352
  {
16292
- "name": "event",
16293
- "description": "The event to send to subscribers.",
16353
+ "name": "option",
16354
+ "description": "Option with custom event.",
16294
16355
  "type": {
16295
- "text": "string"
16356
+ "text": "HTMLElement"
16296
16357
  }
16297
16358
  }
16298
16359
  ],
16299
- "description": "Notifies subscribers of a menu service event.\nAll notifications are sent to all subscribers."
16300
- },
16301
- {
16302
- "kind": "method",
16303
- "name": "notifyStateChange",
16304
- "parameters": [
16305
- {
16306
- "name": "meta",
16307
- "default": "{}"
16308
- }
16309
- ],
16310
- "description": "Notifies subscribers of a state change (selected options has changed)."
16360
+ "description": "Handles custom events defined on options.",
16361
+ "privacy": "private"
16311
16362
  },
16312
16363
  {
16313
16364
  "kind": "method",
16314
- "name": "notifyValueChange",
16365
+ "name": "notifySelectionChange",
16315
16366
  "parameters": [
16316
16367
  {
16317
- "name": "meta",
16318
- "default": "{}"
16368
+ "name": "source",
16369
+ "default": "undefined",
16370
+ "description": "The source that triggers this event.",
16371
+ "type": {
16372
+ "text": "any"
16373
+ }
16319
16374
  }
16320
16375
  ],
16321
- "description": "Notifies subscribers of a value change (current value has changed)."
16376
+ "description": "Notifies selection change to parent components.",
16377
+ "privacy": "private"
16322
16378
  },
16323
16379
  {
16324
16380
  "kind": "method",
16325
- "name": "dispatchChangeEvent",
16381
+ "name": "selectionEquals",
16326
16382
  "parameters": [
16327
16383
  {
16328
- "name": "eventName",
16384
+ "name": "current",
16385
+ "description": "Current selection.",
16329
16386
  "type": {
16330
- "text": "string"
16387
+ "text": "any"
16331
16388
  }
16332
16389
  },
16333
16390
  {
16334
- "name": "detail",
16391
+ "name": "next",
16392
+ "description": "New selection to compare.",
16335
16393
  "type": {
16336
16394
  "text": "any"
16337
16395
  }
16338
16396
  }
16339
16397
  ],
16340
- "description": "Dispatches a custom event from the host element."
16341
- },
16342
- {
16343
- "kind": "method",
16344
- "name": "addMenuOption",
16345
- "parameters": [
16346
- {
16347
- "name": "option",
16348
- "description": "the option to track",
16349
- "type": {
16350
- "text": "AuroMenuOption"
16351
- }
16352
- }
16353
- ],
16354
- "description": "Adds a menu option to the service's list."
16355
- },
16356
- {
16357
- "kind": "method",
16358
- "name": "removeMenuOption",
16359
- "parameters": [
16360
- {
16361
- "name": "option",
16362
- "description": "the option to remove",
16363
- "type": {
16364
- "text": "AuroMenuOption"
16365
- }
16366
- }
16367
- ],
16368
- "description": "Removes a menu option from the service's list."
16369
- },
16370
- {
16371
- "kind": "method",
16372
- "name": "_getNormalizedValues",
16373
- "parameters": [
16374
- {
16375
- "name": "value",
16376
- "description": "The value(s) to normalize.",
16377
- "type": {
16378
- "text": "string|number|Array<string|number>"
16379
- }
16380
- }
16381
- ],
16382
- "description": "Normalizes a value or array of values into an array of strings for option selection.\nThis function ensures that input values are consistently formatted for matching menu options.",
16383
- "return": {
16384
- "type": {
16385
- "text": "Array<string>"
16386
- }
16387
- }
16388
- },
16389
- {
16390
- "kind": "method",
16391
- "name": "optionsArraysMatch",
16392
- "parameters": [
16393
- {
16394
- "name": "arr1",
16395
- "description": "First array of options.",
16396
- "type": {
16397
- "text": "AuroMenuOption[]"
16398
- }
16399
- },
16400
- {
16401
- "name": "arr2",
16402
- "description": "Second array of options.",
16403
- "type": {
16404
- "text": "AuroMenuOption[]"
16405
- }
16406
- }
16407
- ],
16408
- "description": "Returns whether two arrays of options contain the same elements.",
16409
- "return": {
16410
- "type": {
16411
- "text": "boolean"
16412
- }
16413
- }
16414
- },
16415
- {
16416
- "kind": "field",
16417
- "name": "host",
16418
- "default": "host"
16419
- },
16420
- {
16421
- "kind": "field",
16422
- "name": "size",
16423
- "default": "undefined"
16424
- },
16425
- {
16426
- "kind": "field",
16427
- "name": "shape",
16428
- "default": "undefined"
16429
- },
16430
- {
16431
- "kind": "field",
16432
- "name": "noCheckmark",
16433
- "default": "undefined"
16434
- },
16435
- {
16436
- "kind": "field",
16437
- "name": "disabled",
16438
- "default": "undefined"
16439
- },
16440
- {
16441
- "kind": "field",
16442
- "name": "matchWord",
16443
- "default": "undefined"
16444
- },
16445
- {
16446
- "kind": "field",
16447
- "name": "multiSelect",
16448
- "default": "undefined"
16449
- },
16450
- {
16451
- "kind": "field",
16452
- "name": "allowDeselect",
16453
- "default": "undefined"
16454
- },
16455
- {
16456
- "kind": "field",
16457
- "name": "selectAllMatchingOptions",
16458
- "default": "undefined"
16459
- },
16460
- {
16461
- "kind": "field",
16462
- "name": "highlightedIndex",
16463
- "type": {
16464
- "text": "number"
16465
- },
16466
- "default": "-1"
16467
- },
16468
- {
16469
- "kind": "field",
16470
- "name": "_menuOptions",
16471
- "type": {
16472
- "text": "array"
16473
- },
16474
- "default": "[]"
16475
- },
16476
- {
16477
- "kind": "field",
16478
- "name": "_subscribers",
16479
- "type": {
16480
- "text": "array"
16481
- },
16482
- "default": "[]"
16483
- },
16484
- {
16485
- "kind": "field",
16486
- "name": "internalUpdateInProgress",
16487
- "type": {
16488
- "text": "boolean"
16489
- },
16490
- "default": "false"
16491
- },
16492
- {
16493
- "kind": "field",
16494
- "name": "selectedOptions",
16495
- "type": {
16496
- "text": "array"
16497
- },
16498
- "default": "[]"
16499
- },
16500
- {
16501
- "kind": "field",
16502
- "name": "_pendingValue",
16503
- "type": {
16504
- "text": "null"
16505
- },
16506
- "default": "null"
16507
- },
16508
- {
16509
- "kind": "field",
16510
- "name": "_pendingRetryScheduled",
16511
- "type": {
16512
- "text": "boolean"
16513
- },
16514
- "default": "false"
16515
- },
16516
- {
16517
- "kind": "field",
16518
- "name": "_pendingRetryCount",
16519
- "type": {
16520
- "text": "number"
16521
- },
16522
- "default": "0"
16523
- }
16524
- ]
16525
- },
16526
- {
16527
- "kind": "variable",
16528
- "name": "MenuContext"
16529
- }
16530
- ],
16531
- "exports": [
16532
- {
16533
- "kind": "js",
16534
- "name": "MenuService",
16535
- "declaration": {
16536
- "name": "MenuService",
16537
- "module": "components/menu/src/auro-menu.context.js"
16538
- }
16539
- },
16540
- {
16541
- "kind": "js",
16542
- "name": "MenuContext",
16543
- "declaration": {
16544
- "name": "MenuContext",
16545
- "module": "components/menu/src/auro-menu.context.js"
16546
- }
16547
- }
16548
- ]
16549
- },
16550
- {
16551
- "kind": "javascript-module",
16552
- "path": "components/menu/src/auro-menu.js",
16553
- "declarations": [
16554
- {
16555
- "kind": "class",
16556
- "description": "The `auro-menu` element provides users a way to select from a list of options.",
16557
- "name": "AuroMenu",
16558
- "slots": [
16559
- {
16560
- "description": "Text to show while loading attribute is set",
16561
- "name": "loadingText"
16562
- },
16563
- {
16564
- "description": "Icon to show while loading attribute is set",
16565
- "name": "loadingIcon"
16566
- },
16567
- {
16568
- "description": "Slot for insertion of menu options.",
16569
- "name": ""
16570
- }
16571
- ],
16572
- "members": [
16573
- {
16574
- "kind": "field",
16575
- "name": "currentLabel",
16576
- "readonly": true,
16577
- "return": {
16578
- "type": {
16579
- "text": "string"
16580
- }
16581
- }
16582
- },
16583
- {
16584
- "kind": "field",
16585
- "name": "items",
16586
- "readonly": true,
16587
- "return": {
16588
- "type": {
16589
- "text": "Array<HTMLElement>"
16590
- }
16591
- },
16592
- "deprecated": "Use `options` property instead."
16593
- },
16594
- {
16595
- "kind": "field",
16596
- "name": "index",
16597
- "return": {
16598
- "type": {
16599
- "text": "number"
16600
- }
16601
- },
16602
- "parameters": [
16603
- {
16604
- "description": "Sets the index of the currently active option.",
16605
- "name": "value",
16606
- "type": {
16607
- "text": "number"
16608
- }
16609
- }
16610
- ]
16611
- },
16612
- {
16613
- "kind": "method",
16614
- "name": "register",
16615
- "static": true,
16616
- "parameters": [
16617
- {
16618
- "name": "name",
16619
- "default": "\"auro-menu\"",
16620
- "description": "The name of the element that you want to register.",
16621
- "optional": true,
16622
- "type": {
16623
- "text": "string"
16624
- }
16625
- }
16626
- ],
16627
- "description": "This will register this element with the browser."
16628
- },
16629
- {
16630
- "kind": "field",
16631
- "name": "formattedValue",
16632
- "description": "Formatted value based on `multiSelect` state.\nDefault type is `String`, changing to `Array<String>` when `multiSelect` is true.",
16633
- "privacy": "private",
16634
- "return": {
16635
- "type": {
16636
- "text": "String|Array<String>"
16637
- }
16638
- },
16639
- "readonly": true
16640
- },
16641
- {
16642
- "kind": "field",
16643
- "name": "propertyValues",
16644
- "description": "Gets the current property values for the menu service.",
16645
- "privacy": "private",
16646
- "return": {
16647
- "type": {
16648
- "text": "Object"
16649
- }
16650
- },
16651
- "readonly": true
16652
- },
16653
- {
16654
- "kind": "method",
16655
- "name": "provideContext",
16656
- "description": "Provides the menu context to child components.\nInitializes the MenuService and subscribes to menu changes.",
16657
- "privacy": "protected"
16658
- },
16659
- {
16660
- "kind": "method",
16661
- "name": "updateActiveOption",
16662
- "parameters": [
16663
- {
16664
- "name": "option",
16665
- "description": "The option to set as active.",
16666
- "type": {
16667
- "text": "HTMLElement"
16668
- }
16669
- }
16670
- ],
16671
- "description": "Updates the currently active option in the menu."
16672
- },
16673
- {
16674
- "kind": "method",
16675
- "name": "setInternalValue",
16676
- "parameters": [
16677
- {
16678
- "name": "value",
16679
- "description": "The value to set.",
16680
- "type": {
16681
- "text": "String|Array<String>"
16682
- }
16683
- }
16684
- ],
16685
- "description": "Sets the internal value and manages update state.",
16686
- "privacy": "protected"
16687
- },
16688
- {
16689
- "kind": "method",
16690
- "name": "handleMenuChange",
16691
- "parameters": [
16692
- {
16693
- "name": "event",
16694
- "description": "The event object from the menu service.",
16695
- "type": {
16696
- "text": "Object"
16697
- }
16698
- }
16699
- ],
16700
- "description": "Handles changes from the menu service and updates component state.",
16701
- "privacy": "protected"
16702
- },
16703
- {
16704
- "kind": "field",
16705
- "name": "selectedOptions",
16706
- "description": "Gets the currently selected options.",
16707
- "return": {
16708
- "type": {
16709
- "text": "Array<HTMLElement>"
16710
- }
16711
- },
16712
- "readonly": true
16713
- },
16714
- {
16715
- "kind": "field",
16716
- "name": "selectedOption",
16717
- "description": "Gets the first selected option, or null if none.",
16718
- "return": {
16719
- "type": {
16720
- "text": "HTMLElement|null"
16721
- }
16722
- },
16723
- "readonly": true
16724
- },
16725
- {
16726
- "kind": "method",
16727
- "name": "setTagAttribute",
16728
- "parameters": [
16729
- {
16730
- "name": "tagName",
16731
- "description": "The tag name to set as an attribute.",
16732
- "type": {
16733
- "text": "string"
16734
- }
16735
- }
16736
- ],
16737
- "description": "Sets an attribute that matches the default tag name if the tag name is not the default.",
16738
- "privacy": "private"
16739
- },
16740
- {
16741
- "kind": "method",
16742
- "name": "setLoadingState",
16743
- "parameters": [
16744
- {
16745
- "name": "isLoading",
16746
- "description": "Whether the menu is loading.",
16747
- "type": {
16748
- "text": "boolean"
16749
- }
16750
- }
16751
- ],
16752
- "description": "Sets the loading state and dispatches a loading change event.",
16753
- "privacy": "protected"
16754
- },
16755
- {
16756
- "kind": "method",
16757
- "name": "initializeMenu",
16758
- "description": "Initializes the menu's state and structure.",
16759
- "privacy": "private"
16760
- },
16761
- {
16762
- "kind": "method",
16763
- "name": "makeSelection",
16764
- "description": "Selects the currently highlighted option.",
16765
- "privacy": "protected"
16766
- },
16767
- {
16768
- "kind": "method",
16769
- "name": "clearSelection",
16770
- "description": "Resets all options to their default state.",
16771
- "privacy": "private"
16772
- },
16773
- {
16774
- "kind": "method",
16775
- "name": "reset",
16776
- "description": "Resets the menu to its initial state.\nThis is the only way to return value to undefined.",
16777
- "privacy": "public"
16778
- },
16779
- {
16780
- "kind": "method",
16781
- "name": "handleNestedMenus",
16782
- "parameters": [
16783
- {
16784
- "name": "menu",
16785
- "description": "Root menu element.",
16786
- "type": {
16787
- "text": "HTMLElement"
16788
- }
16789
- }
16790
- ],
16791
- "description": "Handles nested menu structure.",
16792
- "privacy": "private"
16793
- },
16794
- {
16795
- "kind": "method",
16796
- "name": "navigateOptions",
16797
- "parameters": [
16798
- {
16799
- "name": "direction",
16800
- "description": "The direction to navigate.",
16801
- "type": {
16802
- "text": "'up'|'down'"
16803
- }
16804
- }
16805
- ],
16806
- "description": "Navigates the menu options in the specified direction.",
16807
- "privacy": "protected"
16808
- },
16809
- {
16810
- "kind": "method",
16811
- "name": "handleSlotChange",
16812
- "description": "Handles slot change events.",
16813
- "privacy": "private"
16814
- },
16815
- {
16816
- "kind": "method",
16817
- "name": "handleCustomEvent",
16818
- "parameters": [
16819
- {
16820
- "name": "option",
16821
- "description": "Option with custom event.",
16822
- "type": {
16823
- "text": "HTMLElement"
16824
- }
16825
- }
16826
- ],
16827
- "description": "Handles custom events defined on options.",
16828
- "privacy": "private"
16829
- },
16830
- {
16831
- "kind": "method",
16832
- "name": "notifySelectionChange",
16833
- "parameters": [
16834
- {
16835
- "name": "{value, stringValue, keys, options, reason}",
16836
- "default": "{}"
16837
- },
16838
- {
16839
- "description": "The source that triggers this event.",
16840
- "name": "source",
16841
- "type": {
16842
- "text": "any"
16843
- }
16398
+ "privacy": "private",
16399
+ "return": {
16400
+ "type": {
16401
+ "text": "boolean"
16844
16402
  }
16845
- ],
16846
- "description": "Notifies selection change to parent components.",
16847
- "privacy": "private"
16403
+ }
16848
16404
  },
16849
16405
  {
16850
16406
  "kind": "method",
@@ -16869,18 +16425,13 @@
16869
16425
  {
16870
16426
  "kind": "field",
16871
16427
  "name": "hasLoadingPlaceholder",
16872
- "privacy": "public",
16873
- "type": {
16874
- "text": "boolean"
16875
- },
16876
16428
  "description": "Getter for loading placeholder state.",
16877
16429
  "return": {
16878
16430
  "type": {
16879
16431
  "text": "boolean"
16880
16432
  }
16881
16433
  },
16882
- "readonly": true,
16883
- "attribute": "hasLoadingPlaceholder"
16434
+ "readonly": true
16884
16435
  },
16885
16436
  {
16886
16437
  "kind": "field",
@@ -16914,7 +16465,6 @@
16914
16465
  },
16915
16466
  "attribute": "shape",
16916
16467
  "reflects": true,
16917
- "description": "Sets the shape of the menu.",
16918
16468
  "default": "\"box\"",
16919
16469
  "inheritedFrom": {
16920
16470
  "name": "AuroElement",
@@ -16930,13 +16480,24 @@
16930
16480
  },
16931
16481
  "attribute": "size",
16932
16482
  "reflects": true,
16933
- "description": "Sets the size of the menu.",
16934
16483
  "default": "\"sm\"",
16935
16484
  "inheritedFrom": {
16936
16485
  "name": "AuroElement",
16937
16486
  "module": "components/layoutElement/src/auroElement.js"
16938
16487
  }
16939
16488
  },
16489
+ {
16490
+ "kind": "field",
16491
+ "name": "value",
16492
+ "privacy": "public",
16493
+ "type": {
16494
+ "text": "string"
16495
+ },
16496
+ "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
16497
+ "default": "undefined",
16498
+ "attribute": "value",
16499
+ "reflects": true
16500
+ },
16940
16501
  {
16941
16502
  "kind": "field",
16942
16503
  "name": "optionSelected",
@@ -17006,30 +16567,6 @@
17006
16567
  "attribute": "multiselect",
17007
16568
  "reflects": true
17008
16569
  },
17009
- {
17010
- "kind": "field",
17011
- "name": "allowDeselect",
17012
- "privacy": "public",
17013
- "type": {
17014
- "text": "boolean"
17015
- },
17016
- "description": "Allows deselecting an already selected option when clicked again in single-select mode.",
17017
- "default": "false",
17018
- "attribute": "allowDeselect",
17019
- "reflects": true
17020
- },
17021
- {
17022
- "kind": "field",
17023
- "name": "selectAllMatchingOptions",
17024
- "privacy": "public",
17025
- "type": {
17026
- "text": "boolean"
17027
- },
17028
- "description": "When true, selects all options that match the provided value/key when setting value and multiselect is enabled.",
17029
- "default": "false",
17030
- "attribute": "selectAllMatchingOptions",
17031
- "reflects": true
17032
- },
17033
16570
  {
17034
16571
  "kind": "field",
17035
16572
  "name": "disabled",
@@ -17041,22 +16578,6 @@
17041
16578
  "attribute": "disabled",
17042
16579
  "reflects": true
17043
16580
  },
17044
- {
17045
- "kind": "field",
17046
- "name": "layout",
17047
- "privacy": "public",
17048
- "type": {
17049
- "text": "string"
17050
- },
17051
- "description": "Defines the language of an element.",
17052
- "default": "{'default'}",
17053
- "attribute": "layout",
17054
- "reflects": true,
17055
- "inheritedFrom": {
17056
- "name": "AuroElement",
17057
- "module": "components/layoutElement/src/auroElement.js"
17058
- }
17059
- },
17060
16581
  {
17061
16582
  "kind": "field",
17062
16583
  "name": "level",
@@ -17066,27 +16587,6 @@
17066
16587
  },
17067
16588
  "description": "Indent level for submenus."
17068
16589
  },
17069
- {
17070
- "kind": "field",
17071
- "name": "options",
17072
- "privacy": "public",
17073
- "type": {
17074
- "text": "array"
17075
- },
17076
- "description": "Available menu options.",
17077
- "readonly": true
17078
- },
17079
- {
17080
- "kind": "field",
17081
- "name": "value",
17082
- "privacy": "public",
17083
- "type": {
17084
- "text": "string"
17085
- },
17086
- "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
17087
- "attribute": "value",
17088
- "reflects": true
17089
- },
17090
16590
  {
17091
16591
  "kind": "field",
17092
16592
  "name": "componentHasFocus",
@@ -17127,6 +16627,22 @@
17127
16627
  "module": "components/layoutElement/src/auroElement.js"
17128
16628
  }
17129
16629
  },
16630
+ {
16631
+ "kind": "field",
16632
+ "name": "layout",
16633
+ "privacy": "public",
16634
+ "type": {
16635
+ "text": "string"
16636
+ },
16637
+ "description": "Defines the language of an element.",
16638
+ "default": "{'default'}",
16639
+ "attribute": "layout",
16640
+ "reflects": true,
16641
+ "inheritedFrom": {
16642
+ "name": "AuroElement",
16643
+ "module": "components/layoutElement/src/auroElement.js"
16644
+ }
16645
+ },
17130
16646
  {
17131
16647
  "kind": "field",
17132
16648
  "name": "onDark",
@@ -17177,13 +16693,6 @@
17177
16693
  "description": "Notifies that an attempt to select a menuoption by matching a value has failed.",
17178
16694
  "name": "auroMenu-selectValueFailure"
17179
16695
  },
17180
- {
17181
- "type": {
17182
- "text": "CustomEvent<{ values: HTMLElement[] }>"
17183
- },
17184
- "description": "Notifies that deselection was prevented and includes the affected options in `detail.values`.",
17185
- "name": "auroMenu-deselectPrevented"
17186
- },
17187
16696
  {
17188
16697
  "type": {
17189
16698
  "text": "CustomEvent<any>"
@@ -17200,15 +16709,6 @@
17200
16709
  }
17201
16710
  ],
17202
16711
  "attributes": [
17203
- {
17204
- "name": "allowDeselect",
17205
- "type": {
17206
- "text": "boolean"
17207
- },
17208
- "description": "Allows deselecting an already selected option when clicked again in single-select mode.",
17209
- "default": "false",
17210
- "fieldName": "allowDeselect"
17211
- },
17212
16712
  {
17213
16713
  "name": "disabled",
17214
16714
  "type": {
@@ -17217,33 +16717,6 @@
17217
16717
  "description": "When true, the entire menu and all options are disabled.",
17218
16718
  "fieldName": "disabled"
17219
16719
  },
17220
- {
17221
- "name": "hasLoadingPlaceholder",
17222
- "type": {
17223
- "text": "boolean"
17224
- },
17225
- "description": "Getter for loading placeholder state.",
17226
- "return": {
17227
- "type": {
17228
- "text": "boolean"
17229
- }
17230
- },
17231
- "readonly": true,
17232
- "fieldName": "hasLoadingPlaceholder"
17233
- },
17234
- {
17235
- "name": "layout",
17236
- "type": {
17237
- "text": "string"
17238
- },
17239
- "description": "Defines the language of an element.",
17240
- "default": "{'default'}",
17241
- "fieldName": "layout",
17242
- "inheritedFrom": {
17243
- "name": "AuroElement",
17244
- "module": "components/layoutElement/src/auroElement.js"
17245
- }
17246
- },
17247
16720
  {
17248
16721
  "name": "loading",
17249
16722
  "type": {
@@ -17299,26 +16772,26 @@
17299
16772
  "fieldName": "optionSelected"
17300
16773
  },
17301
16774
  {
17302
- "name": "size",
16775
+ "name": "value",
17303
16776
  "type": {
17304
16777
  "text": "string"
17305
16778
  },
17306
- "fieldName": "size",
17307
- "description": "Sets the size of the menu.",
17308
- "default": "\"sm\"",
17309
- "inheritedFrom": {
17310
- "name": "AuroElement",
17311
- "module": "components/layoutElement/src/auroElement.js"
17312
- }
16779
+ "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
16780
+ "default": "undefined",
16781
+ "fieldName": "value"
17313
16782
  },
17314
16783
  {
17315
- "name": "selectAllMatchingOptions",
16784
+ "name": "layout",
17316
16785
  "type": {
17317
- "text": "boolean"
16786
+ "text": "string"
17318
16787
  },
17319
- "description": "When true, selects all options that match the provided value/key when setting value and multiselect is enabled.",
17320
- "default": "false",
17321
- "fieldName": "selectAllMatchingOptions"
16788
+ "description": "Defines the language of an element.",
16789
+ "default": "{'default'}",
16790
+ "fieldName": "layout",
16791
+ "inheritedFrom": {
16792
+ "name": "AuroElement",
16793
+ "module": "components/layoutElement/src/auroElement.js"
16794
+ }
17322
16795
  },
17323
16796
  {
17324
16797
  "name": "shape",
@@ -17326,20 +16799,21 @@
17326
16799
  "text": "string"
17327
16800
  },
17328
16801
  "fieldName": "shape",
17329
- "description": "Sets the shape of the menu.",
17330
- "default": "\"box\"",
17331
16802
  "inheritedFrom": {
17332
16803
  "name": "AuroElement",
17333
16804
  "module": "components/layoutElement/src/auroElement.js"
17334
16805
  }
17335
16806
  },
17336
16807
  {
17337
- "name": "value",
16808
+ "name": "size",
17338
16809
  "type": {
17339
16810
  "text": "string"
17340
16811
  },
17341
- "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
17342
- "fieldName": "value"
16812
+ "fieldName": "size",
16813
+ "inheritedFrom": {
16814
+ "name": "AuroElement",
16815
+ "module": "components/layoutElement/src/auroElement.js"
16816
+ }
17343
16817
  },
17344
16818
  {
17345
16819
  "name": "ondark",
@@ -17395,7 +16869,7 @@
17395
16869
  {
17396
16870
  "name": "name",
17397
16871
  "default": "\"auro-menuoption\"",
17398
- "description": "The name of the element that you want to register.",
16872
+ "description": "The name of element that you want to register to.",
17399
16873
  "optional": true,
17400
16874
  "type": {
17401
16875
  "text": "string"
@@ -17407,7 +16881,7 @@
17407
16881
  {
17408
16882
  "kind": "field",
17409
16883
  "name": "isActive",
17410
- "description": "Returns whether the menu option is currently active and selectable.\nAn option is considered active if it is not hidden, not disabled, and not static.",
16884
+ "description": "Returns whether the menu option is currently active and selectable.",
17411
16885
  "return": {
17412
16886
  "type": {
17413
16887
  "text": "boolean"
@@ -17417,115 +16891,34 @@
17417
16891
  },
17418
16892
  {
17419
16893
  "kind": "method",
17420
- "name": "bindEvents",
17421
- "description": "Sets up event listeners for user interaction with the menu option.\nThis function enables click and mouse enter events to trigger selection and highlighting logic."
17422
- },
17423
- {
17424
- "kind": "method",
17425
- "name": "attachTo",
17426
- "parameters": [
17427
- {
17428
- "name": "service",
17429
- "description": "The menu service instance to attach to.",
17430
- "type": {
17431
- "text": "Object"
17432
- }
17433
- }
17434
- ],
17435
- "description": "Attaches this menu option to a menu service and subscribes to its events.\nThis method enables the option to participate in menu selection and highlighting logic."
17436
- },
17437
- {
17438
- "kind": "method",
17439
- "name": "handleMenuChange",
17440
- "parameters": [
17441
- {
17442
- "name": "event",
17443
- "description": "The event object from the menu service.",
17444
- "type": {
17445
- "text": "Object"
17446
- }
17447
- }
17448
- ],
17449
- "description": "Handles changes from the menu service and updates the option's state.\nThis function synchronizes the option's properties and selection/highlight state with menu events."
17450
- },
17451
- {
17452
- "kind": "method",
17453
- "name": "setInternalSelected",
17454
- "parameters": [
17455
- {
17456
- "name": "isSelected",
17457
- "description": "Whether the option should be marked as selected.",
17458
- "type": {
17459
- "text": "boolean"
17460
- }
17461
- }
17462
- ],
17463
- "description": "Updates the internal selected state of the menu option bypassing 'updated' and triggers custom events if selected.\nThis function ensures the option's selection state is synchronized with menu logic and notifies listeners."
16894
+ "name": "handleMenuChange"
17464
16895
  },
17465
16896
  {
17466
16897
  "kind": "method",
17467
16898
  "name": "setSelected",
17468
16899
  "parameters": [
17469
16900
  {
17470
- "name": "isSelected",
17471
- "description": "Whether the option should be marked as selected.",
17472
- "type": {
17473
- "text": "boolean"
17474
- }
16901
+ "name": "value"
17475
16902
  }
17476
- ],
17477
- "description": "Sets the selected state of the menu option.\nThis function updates whether the option is currently selected.",
17478
- "deprecated": "Simply modify the `selected` property directly instead."
16903
+ ]
17479
16904
  },
17480
16905
  {
17481
16906
  "kind": "method",
17482
16907
  "name": "updateActive",
17483
16908
  "parameters": [
17484
16909
  {
17485
- "name": "isActive",
17486
- "description": "Whether the option should be marked as active.",
17487
- "type": {
17488
- "text": "boolean"
17489
- }
16910
+ "name": "active"
17490
16911
  }
17491
- ],
17492
- "description": "Updates the active state and visual highlighting of the menu option.\nThis function toggles the option's active status and applies or removes the active CSS class.",
17493
- "deprecated": "Simply modify the `active` property directly instead."
17494
- },
17495
- {
17496
- "kind": "method",
17497
- "name": "updateActiveClasses",
17498
- "description": "Updates the CSS class for the menu option based on its active state.\nThis function adds or removes the 'active' class to visually indicate the option's active status.",
17499
- "privacy": "private"
16912
+ ]
17500
16913
  },
17501
16914
  {
17502
16915
  "kind": "method",
17503
- "name": "updateTextHighlight",
17504
- "description": "Updates the visual highlighting of text within the menu option based on the current match word.\nThis function highlights matching text segments and manages nested spacers for display formatting.",
17505
- "privacy": "private"
16916
+ "name": "attachTo"
17506
16917
  },
17507
16918
  {
17508
16919
  "kind": "method",
17509
16920
  "name": "handleClick",
17510
- "description": "Handles click events on the menu option, toggling its selected state.\nThis function dispatches a click event and updates selection if the option is not disabled.",
17511
- "privacy": "private"
17512
- },
17513
- {
17514
- "kind": "method",
17515
- "name": "handleMouseEnter",
17516
- "description": "Handles mouse enter events to highlight the menu option.\nThis function updates the menu service to set this option as the currently highlighted item if not disabled.",
17517
- "privacy": "private"
17518
- },
17519
- {
17520
- "kind": "method",
17521
- "name": "handleCustomEvent",
17522
- "description": "Dispatches custom events defined for this menu option.\nThis function notifies listeners when a custom event is triggered by the option.",
17523
- "privacy": "private"
17524
- },
17525
- {
17526
- "kind": "method",
17527
- "name": "dispatchClickEvent",
17528
- "description": "Dispatches a click event for this menu option.\nThis function notifies listeners that the option has been clicked.",
16921
+ "description": "Handles click events on the menu option.",
17529
16922
  "privacy": "private"
17530
16923
  },
17531
16924
  {
@@ -17600,7 +16993,6 @@
17600
16993
  "type": {
17601
16994
  "text": "boolean"
17602
16995
  },
17603
- "description": "Specifies that an option is selected.",
17604
16996
  "default": "false",
17605
16997
  "attribute": "selected",
17606
16998
  "reflects": true
@@ -17608,7 +17000,7 @@
17608
17000
  {
17609
17001
  "kind": "field",
17610
17002
  "name": "noCheckmark",
17611
- "privacy": "private",
17003
+ "privacy": "public",
17612
17004
  "type": {
17613
17005
  "text": "boolean"
17614
17006
  },
@@ -17623,7 +17015,6 @@
17623
17015
  "type": {
17624
17016
  "text": "boolean"
17625
17017
  },
17626
- "description": "When true, disables the menu option.",
17627
17018
  "default": "false",
17628
17019
  "attribute": "disabled",
17629
17020
  "reflects": true
@@ -17635,101 +17026,46 @@
17635
17026
  "type": {
17636
17027
  "text": "boolean"
17637
17028
  },
17638
- "description": "When true, marks this option as the \"no matching results\" placeholder shown by combobox when the user's input does not match any available options. Enables distinct styling and prevents the option from being treated as a selectable match.",
17029
+ "description": "When true, marks this option as the \"no matching results\" placeholder shown by combobox\nwhen the user's input does not match any available options.",
17639
17030
  "default": "false",
17640
17031
  "attribute": "nomatch",
17641
17032
  "reflects": true
17642
17033
  },
17643
17034
  {
17644
17035
  "kind": "field",
17645
- "name": "runtimeUtils",
17646
- "privacy": "private",
17647
- "default": "new AuroLibraryRuntimeUtils()"
17648
- },
17649
- {
17650
- "kind": "field",
17651
- "name": "menuService",
17652
- "privacy": "private",
17653
- "type": {
17654
- "text": "null"
17655
- },
17656
- "default": "null",
17657
- "attribute": "menuService"
17658
- },
17659
- {
17660
- "kind": "field",
17661
- "name": "unsubscribe",
17662
- "type": {
17663
- "text": "null"
17664
- },
17665
- "default": "null"
17666
- },
17667
- {
17668
- "kind": "field",
17669
- "name": "event",
17036
+ "name": "tabIndex",
17670
17037
  "privacy": "private",
17671
17038
  "type": {
17672
- "text": "string"
17039
+ "text": "number"
17673
17040
  },
17674
- "attribute": "event",
17041
+ "default": "-1",
17042
+ "attribute": "tabIndex",
17675
17043
  "reflects": true
17676
17044
  },
17677
17045
  {
17678
17046
  "kind": "field",
17679
- "name": "layout",
17680
- "privacy": "public",
17681
- "type": {
17682
- "text": "string"
17683
- },
17684
- "description": "Defines the language of an element.",
17685
- "default": "{'default'}",
17686
- "attribute": "layout",
17687
- "reflects": true,
17688
- "inheritedFrom": {
17689
- "name": "AuroElement",
17690
- "module": "components/layoutElement/src/auroElement.js"
17691
- }
17047
+ "name": "runtimeUtils",
17048
+ "privacy": "private",
17049
+ "default": "new AuroLibraryRuntimeUtils()"
17692
17050
  },
17693
17051
  {
17694
17052
  "kind": "field",
17695
- "name": "key",
17053
+ "name": "value",
17696
17054
  "privacy": "public",
17697
17055
  "type": {
17698
17056
  "text": "string"
17699
17057
  },
17700
- "description": "Allows users to set a unique key for the menu option for specified option selection. If no key is provided, the value property will be used.",
17701
- "attribute": "key",
17058
+ "attribute": "value",
17702
17059
  "reflects": true
17703
17060
  },
17704
17061
  {
17705
17062
  "kind": "field",
17706
- "name": "matchWord",
17063
+ "name": "event",
17707
17064
  "privacy": "private",
17708
17065
  "type": {
17709
17066
  "text": "string"
17710
17067
  },
17711
- "attribute": "matchWord"
17712
- },
17713
- {
17714
- "kind": "field",
17715
- "name": "tabIndex",
17716
- "privacy": "public",
17717
- "type": {
17718
- "text": "number"
17719
- },
17720
- "description": "Specifies the tab index of the menu option.",
17721
- "attribute": "tabIndex",
17722
- "reflects": true
17723
- },
17724
- {
17725
- "kind": "field",
17726
- "name": "value",
17727
- "privacy": "public",
17728
- "type": {
17729
- "text": "string"
17730
- },
17731
- "description": "Specifies the value to be sent to a server.",
17732
- "attribute": "value",
17068
+ "attribute": "event",
17733
17069
  "reflects": true
17734
17070
  },
17735
17071
  {
@@ -17772,6 +17108,22 @@
17772
17108
  "module": "components/layoutElement/src/auroElement.js"
17773
17109
  }
17774
17110
  },
17111
+ {
17112
+ "kind": "field",
17113
+ "name": "layout",
17114
+ "privacy": "public",
17115
+ "type": {
17116
+ "text": "string"
17117
+ },
17118
+ "description": "Defines the language of an element.",
17119
+ "default": "{'default'}",
17120
+ "attribute": "layout",
17121
+ "reflects": true,
17122
+ "inheritedFrom": {
17123
+ "name": "AuroElement",
17124
+ "module": "components/layoutElement/src/auroElement.js"
17125
+ }
17126
+ },
17775
17127
  {
17776
17128
  "kind": "field",
17777
17129
  "name": "onDark",
@@ -17799,103 +17151,78 @@
17799
17151
  "name": "auroMenuOption-click",
17800
17152
  "type": {
17801
17153
  "text": "CustomEvent"
17802
- }
17154
+ },
17155
+ "description": "Notifies that this option has been clicked."
17803
17156
  }
17804
17157
  ],
17805
17158
  "attributes": [
17806
17159
  {
17807
- "name": "disabled",
17160
+ "name": "noCheckmark",
17808
17161
  "type": {
17809
17162
  "text": "boolean"
17810
17163
  },
17811
- "description": "When true, disables the menu option.",
17812
17164
  "default": "false",
17813
- "fieldName": "disabled"
17165
+ "fieldName": "noCheckmark"
17814
17166
  },
17815
17167
  {
17816
- "name": "event",
17168
+ "name": "selected",
17817
17169
  "type": {
17818
- "text": "string"
17170
+ "text": "boolean"
17819
17171
  },
17820
- "fieldName": "event"
17172
+ "default": "false",
17173
+ "fieldName": "selected"
17821
17174
  },
17822
17175
  {
17823
- "name": "layout",
17176
+ "name": "disabled",
17824
17177
  "type": {
17825
- "text": "string"
17178
+ "text": "boolean"
17826
17179
  },
17827
- "description": "Defines the language of an element.",
17828
- "default": "{'default'}",
17829
- "fieldName": "layout",
17830
- "inheritedFrom": {
17831
- "name": "AuroElement",
17832
- "module": "components/layoutElement/src/auroElement.js"
17833
- }
17180
+ "default": "false",
17181
+ "fieldName": "disabled"
17834
17182
  },
17835
17183
  {
17836
- "name": "key",
17184
+ "name": "value",
17837
17185
  "type": {
17838
17186
  "text": "string"
17839
17187
  },
17840
- "description": "Allows users to set a unique key for the menu option for specified option selection. If no key is provided, the value property will be used.",
17841
- "fieldName": "key"
17188
+ "fieldName": "value"
17842
17189
  },
17843
17190
  {
17844
- "name": "menuService",
17191
+ "name": "tabIndex",
17845
17192
  "type": {
17846
- "text": "null"
17193
+ "text": "number"
17847
17194
  },
17848
- "default": "null",
17849
- "fieldName": "menuService"
17195
+ "default": "-1",
17196
+ "fieldName": "tabIndex"
17850
17197
  },
17851
17198
  {
17852
- "name": "matchWord",
17199
+ "name": "event",
17853
17200
  "type": {
17854
17201
  "text": "string"
17855
17202
  },
17856
- "fieldName": "matchWord"
17857
- },
17858
- {
17859
- "name": "noCheckmark",
17860
- "type": {
17861
- "text": "boolean"
17862
- },
17863
- "default": "false",
17864
- "fieldName": "noCheckmark"
17203
+ "fieldName": "event"
17865
17204
  },
17866
17205
  {
17867
17206
  "name": "nomatch",
17868
17207
  "type": {
17869
17208
  "text": "boolean"
17870
17209
  },
17871
- "description": "When true, marks this option as the \"no matching results\" placeholder shown by combobox when the user's input does not match any available options. Enables distinct styling and prevents the option from being treated as a selectable match.",
17210
+ "description": "When true, marks this option as the \"no matching results\" placeholder shown by combobox\nwhen the user's input does not match any available options.",
17872
17211
  "default": "false",
17873
17212
  "fieldName": "noMatch"
17874
17213
  },
17875
17214
  {
17876
- "name": "selected",
17877
- "type": {
17878
- "text": "boolean"
17879
- },
17880
- "description": "Specifies that an option is selected.",
17881
- "default": "false",
17882
- "fieldName": "selected"
17883
- },
17884
- {
17885
- "name": "tabIndex",
17886
- "type": {
17887
- "text": "number"
17888
- },
17889
- "description": "Specifies the tab index of the menu option.",
17890
- "fieldName": "tabIndex"
17891
- },
17892
- {
17893
- "name": "value",
17215
+ "name": "layout",
17894
17216
  "type": {
17895
17217
  "text": "string"
17896
17218
  },
17897
- "description": "Specifies the value to be sent to a server.",
17898
- "fieldName": "value"
17219
+ "description": "Defines the language of an element.",
17220
+ "default": "{'default'}",
17221
+ "fieldName": "layout",
17222
+ "inheritedFrom": {
17223
+ "name": "AuroElement",
17224
+ "module": "components/layoutElement/src/auroElement.js"
17225
+ }
17899
17226
  },
17900
17227
  {
17901
17228
  "name": "shape",
@@ -20401,7 +19728,7 @@
20401
19728
  "type": {
20402
19729
  "text": "object"
20403
19730
  },
20404
- "default": "{ ArrowDown(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to last enabled option selectKeyboardStrategy.End(component, evt, ctx); } else { navigateArrow(component, 'down', { ctx }); } } else { component.dropdown.show(); } }, ArrowUp(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to first enabled option selectKeyboardStrategy.Home(component, evt, ctx); } else { navigateArrow(component, 'up', { ctx }); } } else { component.dropdown.show(); } }, Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); component.dropdown.hide(); }, End(component, evt, ctx) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); const lastOption = [...component.menu.menuService.menuOptions].reverse().find((option) => !option.disabled); if (lastOption) { component.menu.updateActiveOption(lastOption); } }, Enter(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); const firstOption = component.menu.menuService.menuOptions.find((option) => !option.disabled); if (firstOption) { component.menu.updateActiveOption(firstOption); } }, Tab(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Tab selects the focused option and closes the popup per the // WAI-ARIA APG select-only combobox / listbox pattern. if (component.optionActive) { component.menu.makeSelection(); } component.dropdown.hide(); }, default(component, evt, ctx) { component.updateActiveOptionBasedOnKey(evt.key); if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (ctx.isExpanded) { component.dropdown.hide(); return; } component.dropdown.show(); } }, }"
19731
+ "default": "{ ArrowDown(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to last enabled option selectKeyboardStrategy.End(component, evt, ctx); } else { navigateArrow(component, 'down', { ctx }); } } else { component.dropdown.show(); } }, ArrowUp(component, evt, ctx) { evt.preventDefault(); if (ctx.isExpanded) { if (evt.altKey || evt.ctrlKey || evt.metaKey) { // navigate to first enabled option selectKeyboardStrategy.Home(component, evt, ctx); } else { navigateArrow(component, 'up', { ctx }); } } else { component.dropdown.show(); } }, Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); component.dropdown.hide(); }, End(component, evt, ctx) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); // `pop()` is safe here: getEnabledOptions returns a fresh filtered array. const lastOption = getEnabledOptions(component.menu).pop(); if (lastOption) { component.menu.updateActiveOption(lastOption); } }, Enter(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { if (!ctx.isExpanded) { return; } evt.preventDefault(); evt.stopPropagation(); const [firstOption] = getEnabledOptions(component.menu); if (firstOption) { component.menu.updateActiveOption(firstOption); } }, Tab(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Tab selects the focused option and closes the popup per the // WAI-ARIA APG select-only combobox / listbox pattern. if (component.optionActive) { component.menu.makeSelection(); } component.dropdown.hide(); }, default(component, evt, ctx) { component.updateActiveOptionBasedOnKey(evt.key); if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (ctx.isExpanded) { component.dropdown.hide(); return; } component.dropdown.show(); } }, }"
20405
19732
  }
20406
19733
  ],
20407
19734
  "exports": [
@@ -20414,6 +19741,41 @@
20414
19741
  }
20415
19742
  }
20416
19743
  ]
19744
+ },
19745
+ {
19746
+ "kind": "javascript-module",
19747
+ "path": "components/select/src/selectUtils.js",
19748
+ "declarations": [
19749
+ {
19750
+ "kind": "function",
19751
+ "name": "getEnabledOptions",
19752
+ "parameters": [
19753
+ {
19754
+ "name": "menu",
19755
+ "description": "The auro-menu element.",
19756
+ "type": {
19757
+ "text": "HTMLElement | null | undefined"
19758
+ }
19759
+ }
19760
+ ],
19761
+ "description": "Returns the enabled (non-disabled) options for a menu, safely.\n\nAuro-menu's `options` getter returns `undefined` when the menu has no items\n(initItems sets `items` to undefined for empty menus). Callers that reach for\n`.find()` / `[...spread]` would otherwise crash; this helper normalizes the\nempty case to `[]` so array methods are always safe.",
19762
+ "return": {
19763
+ "type": {
19764
+ "text": "Array<HTMLElement>"
19765
+ }
19766
+ }
19767
+ }
19768
+ ],
19769
+ "exports": [
19770
+ {
19771
+ "kind": "js",
19772
+ "name": "getEnabledOptions",
19773
+ "declaration": {
19774
+ "name": "getEnabledOptions",
19775
+ "module": "components/select/src/selectUtils.js"
19776
+ }
19777
+ }
19778
+ ]
20417
19779
  }
20418
19780
  ]
20419
19781
  }