@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.6 → 0.0.0-pr1498.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 (58) 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 +1438 -1668
  8. package/components/combobox/demo/getting-started.min.js +1440 -1670
  9. package/components/combobox/demo/index.min.js +1440 -1670
  10. package/components/combobox/dist/auro-combobox.d.ts +5 -0
  11. package/components/combobox/dist/index.js +485 -140
  12. package/components/combobox/dist/registered.js +485 -140
  13. package/components/counter/demo/customize.min.js +20 -3
  14. package/components/counter/demo/index.min.js +20 -3
  15. package/components/counter/dist/index.js +5447 -192
  16. package/components/counter/dist/registered.js +5447 -192
  17. package/components/datepicker/demo/customize.min.js +149 -58
  18. package/components/datepicker/demo/index.min.js +149 -58
  19. package/components/datepicker/dist/index.js +149 -58
  20. package/components/datepicker/dist/registered.js +149 -58
  21. package/components/dropdown/demo/customize.min.js +18 -1
  22. package/components/dropdown/demo/getting-started.min.js +18 -1
  23. package/components/dropdown/demo/index.min.js +18 -1
  24. package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
  25. package/components/dropdown/dist/index.js +18 -1
  26. package/components/dropdown/dist/registered.js +18 -1
  27. package/components/form/demo/customize.min.js +7910 -7909
  28. package/components/form/demo/getting-started.min.js +7910 -7909
  29. package/components/form/demo/index.min.js +7910 -7909
  30. package/components/form/demo/registerDemoDeps.min.js +7872 -7871
  31. package/components/input/demo/customize.min.js +131 -56
  32. package/components/input/demo/getting-started.min.js +131 -56
  33. package/components/input/demo/index.min.js +131 -56
  34. package/components/input/dist/base-input.d.ts +16 -0
  35. package/components/input/dist/index.js +131 -56
  36. package/components/input/dist/registered.js +131 -56
  37. package/components/menu/demo/api.md +41 -45
  38. package/components/menu/demo/customize.md +0 -28
  39. package/components/menu/demo/index.min.js +779 -1354
  40. package/components/menu/dist/auro-menu.d.ts +95 -110
  41. package/components/menu/dist/auro-menuoption.d.ts +32 -138
  42. package/components/menu/dist/index.js +753 -1308
  43. package/components/menu/dist/registered.js +765 -1308
  44. package/components/radio/demo/customize.min.js +2 -2
  45. package/components/radio/demo/getting-started.min.js +2 -2
  46. package/components/radio/demo/index.min.js +2 -2
  47. package/components/radio/dist/index.js +2 -2
  48. package/components/radio/dist/registered.js +2 -2
  49. package/components/select/demo/customize.md +7 -3
  50. package/components/select/demo/customize.min.js +1088 -1615
  51. package/components/select/demo/getting-started.min.js +1088 -1615
  52. package/components/select/demo/index.min.js +1088 -1615
  53. package/components/select/dist/index.js +63 -15
  54. package/components/select/dist/registered.js +63 -15
  55. package/components/select/dist/selectUtils.d.ts +12 -0
  56. package/custom-elements.json +379 -1025
  57. package/package.json +1 -1
  58. 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": [
@@ -11696,6 +11696,30 @@
11696
11696
  "module": "components/input/src/base-input.js"
11697
11697
  }
11698
11698
  },
11699
+ {
11700
+ "kind": "method",
11701
+ "name": "_computeDateObjectFallback",
11702
+ "parameters": [
11703
+ {
11704
+ "name": "dateStr",
11705
+ "description": "ISO date string from `value`/`min`/`max`.",
11706
+ "type": {
11707
+ "text": "string|undefined"
11708
+ }
11709
+ }
11710
+ ],
11711
+ "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`).",
11712
+ "privacy": "private",
11713
+ "return": {
11714
+ "type": {
11715
+ "text": "Date|undefined"
11716
+ }
11717
+ },
11718
+ "inheritedFrom": {
11719
+ "name": "BaseInput",
11720
+ "module": "components/input/src/base-input.js"
11721
+ }
11722
+ },
11699
11723
  {
11700
11724
  "kind": "method",
11701
11725
  "name": "setDateObjectProperty",
@@ -13783,6 +13807,26 @@
13783
13807
  },
13784
13808
  "readonly": true
13785
13809
  },
13810
+ {
13811
+ "kind": "method",
13812
+ "name": "_computeDateObjectFallback",
13813
+ "parameters": [
13814
+ {
13815
+ "name": "dateStr",
13816
+ "description": "ISO date string from `value`/`min`/`max`.",
13817
+ "type": {
13818
+ "text": "string|undefined"
13819
+ }
13820
+ }
13821
+ ],
13822
+ "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`).",
13823
+ "privacy": "private",
13824
+ "return": {
13825
+ "type": {
13826
+ "text": "Date|undefined"
13827
+ }
13828
+ }
13829
+ },
13786
13830
  {
13787
13831
  "kind": "method",
13788
13832
  "name": "setDateObjectProperty",
@@ -15969,890 +16013,394 @@
15969
16013
  },
15970
16014
  {
15971
16015
  "kind": "javascript-module",
15972
- "path": "components/menu/src/auro-menu.context.js",
16016
+ "path": "components/menu/src/auro-menu.js",
15973
16017
  "declarations": [
15974
16018
  {
15975
16019
  "kind": "class",
15976
- "description": "",
15977
- "name": "MenuService",
16020
+ "description": "The `auro-menu` element provides users a way to select from a list of options.",
16021
+ "name": "AuroMenu",
16022
+ "slots": [
16023
+ {
16024
+ "description": "Text to show while loading attribute is set",
16025
+ "name": "loadingText"
16026
+ },
16027
+ {
16028
+ "description": "Icon to show while loading attribute is set",
16029
+ "name": "loadingIcon"
16030
+ },
16031
+ {
16032
+ "description": "Slot for insertion of menu options.",
16033
+ "name": ""
16034
+ }
16035
+ ],
15978
16036
  "members": [
16037
+ {
16038
+ "kind": "method",
16039
+ "name": "register",
16040
+ "static": true,
16041
+ "parameters": [
16042
+ {
16043
+ "name": "name",
16044
+ "default": "\"auro-menu\"",
16045
+ "description": "The name of element that you want to register to.",
16046
+ "optional": true,
16047
+ "type": {
16048
+ "text": "string"
16049
+ }
16050
+ }
16051
+ ],
16052
+ "description": "This will register this element with the browser."
16053
+ },
15979
16054
  {
15980
16055
  "kind": "field",
15981
- "name": "menuOptions",
15982
- "description": "Gets the list of registered menu options.",
16056
+ "name": "options",
16057
+ "readonly": true,
15983
16058
  "return": {
15984
16059
  "type": {
15985
- "text": "AuroMenuOption[]"
16060
+ "text": "Array<HTMLElement>"
15986
16061
  }
15987
- },
15988
- "readonly": true
16062
+ }
15989
16063
  },
15990
16064
  {
15991
16065
  "kind": "field",
15992
- "name": "highlightedOption",
15993
- "description": "Gets the currently highlighted option.",
16066
+ "name": "index",
15994
16067
  "return": {
15995
16068
  "type": {
15996
- "text": "AuroMenuOption|null"
16069
+ "text": "number"
15997
16070
  }
15998
16071
  },
15999
- "readonly": true
16072
+ "parameters": [
16073
+ {
16074
+ "description": "Sets the index of the currently active option.",
16075
+ "name": "value",
16076
+ "type": {
16077
+ "text": "number"
16078
+ }
16079
+ }
16080
+ ]
16000
16081
  },
16001
16082
  {
16002
16083
  "kind": "field",
16003
- "name": "currentValue",
16004
- "description": "Gets the current value(s) of the selected option(s).",
16084
+ "name": "selectedOptions",
16085
+ "description": "Gets the currently selected options as an array.",
16005
16086
  "return": {
16006
16087
  "type": {
16007
- "text": "string|string[]|undefined"
16088
+ "text": "Array<HTMLElement>"
16008
16089
  }
16009
16090
  },
16010
16091
  "readonly": true
16011
16092
  },
16012
16093
  {
16013
16094
  "kind": "field",
16014
- "name": "currentLabel",
16015
- "description": "Gets the label(s) of the currently selected option(s).",
16095
+ "name": "selectedOption",
16096
+ "description": "Gets the first selected option, or null if none.",
16016
16097
  "return": {
16017
16098
  "type": {
16018
- "text": "string"
16099
+ "text": "HTMLElement|null"
16019
16100
  }
16020
16101
  },
16021
16102
  "readonly": true
16022
16103
  },
16023
16104
  {
16024
16105
  "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.",
16106
+ "name": "currentLabel",
16107
+ "readonly": true,
16027
16108
  "return": {
16028
16109
  "type": {
16029
- "text": "string|undefined"
16110
+ "text": "string"
16030
16111
  }
16031
- },
16032
- "readonly": true
16112
+ }
16033
16113
  },
16034
16114
  {
16035
16115
  "kind": "field",
16036
- "name": "currentKeys",
16037
- "description": "Gets the key(s) of the currently selected option(s).",
16116
+ "name": "formattedValue",
16117
+ "description": "Formatted value based on `multiSelect` state.\nDefault type is `String`, changing to `Array<String>` when `multiSelect` is true.",
16118
+ "privacy": "private",
16038
16119
  "return": {
16039
16120
  "type": {
16040
- "text": "string|string[]|undefined"
16121
+ "text": "String|Array<String>"
16041
16122
  }
16042
16123
  },
16043
16124
  "readonly": true
16044
16125
  },
16045
16126
  {
16046
16127
  "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",
16128
+ "name": "selectByValue",
16058
16129
  "parameters": [
16059
- {
16060
- "name": "property",
16061
- "type": {
16062
- "text": "string"
16063
- }
16064
- },
16065
16130
  {
16066
16131
  "name": "value",
16132
+ "description": "The value(s) to select.",
16067
16133
  "type": {
16068
- "text": "any"
16134
+ "text": "string|string[]|undefined|null"
16069
16135
  }
16070
16136
  }
16071
16137
  ],
16072
- "description": "Sets a property value if it exists on the instance and the value has changed."
16138
+ "description": "Selects options by value.",
16139
+ "privacy": "public"
16073
16140
  },
16074
16141
  {
16075
16142
  "kind": "method",
16076
- "name": "setProperties",
16143
+ "name": "setTagAttribute",
16077
16144
  "parameters": [
16078
16145
  {
16079
- "name": "properties",
16080
- "description": "Key-value pairs of properties to set.",
16146
+ "name": "tagName",
16147
+ "description": "The tag name to set as an attribute.",
16081
16148
  "type": {
16082
- "text": "Object"
16149
+ "text": "string"
16083
16150
  }
16084
16151
  }
16085
16152
  ],
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."
16153
+ "description": "Sets an attribute that matches the default tag name if the tag name is not the default.",
16154
+ "privacy": "private"
16097
16155
  },
16098
16156
  {
16099
16157
  "kind": "method",
16100
- "name": "moveHighlightedOption",
16158
+ "name": "updateItemsState",
16101
16159
  "parameters": [
16102
16160
  {
16103
- "name": "direction",
16104
- "description": "The direction to move the highlight (\"next\" or \"previous\").",
16161
+ "name": "changedProperties",
16162
+ "description": "LitElement's changed properties map.",
16105
16163
  "type": {
16106
- "text": "string"
16164
+ "text": "Map<string, boolean>"
16107
16165
  }
16108
16166
  }
16109
16167
  ],
16110
- "description": "Moves the highlighted option in the specified direction."
16168
+ "description": "Updates the UI state and appearance of menu items based on changed properties.",
16169
+ "privacy": "private"
16170
+ },
16171
+ {
16172
+ "kind": "method",
16173
+ "name": "initializeMenu",
16174
+ "description": "Initializes the menu's state and structure.",
16175
+ "privacy": "private"
16176
+ },
16177
+ {
16178
+ "kind": "method",
16179
+ "name": "initItems",
16180
+ "description": "Initializes menu items and their attributes.",
16181
+ "privacy": "private"
16111
16182
  },
16112
16183
  {
16113
16184
  "kind": "method",
16114
- "name": "setHighlightedOption",
16185
+ "name": "handleSelectState",
16115
16186
  "parameters": [
16116
16187
  {
16117
16188
  "name": "option",
16118
- "description": "The option to highlight.",
16189
+ "description": "The option element to select.",
16119
16190
  "type": {
16120
- "text": "AuroMenuOption"
16191
+ "text": "HTMLElement"
16121
16192
  }
16122
16193
  }
16123
16194
  ],
16124
- "description": "Sets the highlighted index to the specified option."
16195
+ "description": "Updates menu state when an option is selected.",
16196
+ "privacy": "private"
16125
16197
  },
16126
16198
  {
16127
16199
  "kind": "method",
16128
- "name": "setHighlightedIndex",
16200
+ "name": "handleDeselectState",
16129
16201
  "parameters": [
16130
16202
  {
16131
- "name": "index",
16203
+ "name": "option",
16204
+ "description": "The menuoption to be deselected.",
16132
16205
  "type": {
16133
- "text": "number"
16206
+ "text": "HTMLElement"
16134
16207
  }
16135
16208
  }
16136
16209
  ],
16137
- "description": "Sets the highlighted option to the option at the specified index if it exists."
16210
+ "description": "Deselects a menu option and updates related state.",
16211
+ "privacy": "private"
16138
16212
  },
16139
16213
  {
16140
16214
  "kind": "method",
16141
- "name": "selectHighlightedOption",
16142
- "description": "Selects the currently highlighted option."
16215
+ "name": "clearSelection",
16216
+ "description": "Resets all options to their default state.",
16217
+ "privacy": "private"
16143
16218
  },
16144
16219
  {
16145
16220
  "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"
16221
+ "name": "reset",
16222
+ "description": "Resets the menu to its initial state.\nThis is the only way to return value to undefined.",
16223
+ "privacy": "public"
16157
16224
  },
16158
16225
  {
16159
16226
  "kind": "method",
16160
- "name": "deselectOptions",
16227
+ "name": "handleNestedMenus",
16161
16228
  "parameters": [
16162
16229
  {
16163
- "name": "options",
16164
- "description": "Single option or array of options to deselect",
16230
+ "name": "menu",
16231
+ "description": "Root menu element.",
16165
16232
  "type": {
16166
- "text": "AuroMenuOption|AuroMenuOption[]"
16233
+ "text": "HTMLElement"
16167
16234
  }
16168
16235
  }
16169
16236
  ],
16170
- "description": "Deselects one or more options in a batch operation"
16237
+ "description": "Handles nested menu structure.",
16238
+ "privacy": "private"
16171
16239
  },
16172
16240
  {
16173
16241
  "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."
16242
+ "name": "makeSelection",
16243
+ "description": "Makes a selection based on the current index.",
16244
+ "privacy": "private"
16184
16245
  },
16185
16246
  {
16186
16247
  "kind": "method",
16187
- "name": "deselectOption",
16248
+ "name": "toggleOption",
16188
16249
  "parameters": [
16189
16250
  {
16190
16251
  "name": "option",
16252
+ "description": "The menuoption to toggle.",
16191
16253
  "type": {
16192
- "text": "AuroMenuOption"
16254
+ "text": "HTMLElement"
16193
16255
  }
16194
16256
  }
16195
16257
  ],
16196
- "description": "Deselects a single option."
16258
+ "description": "Toggle the selection state of the menuoption.",
16259
+ "privacy": "private"
16197
16260
  },
16198
16261
  {
16199
16262
  "kind": "method",
16200
- "name": "toggleOption",
16263
+ "name": "handleKeyDown",
16201
16264
  "parameters": [
16202
16265
  {
16203
- "name": "option",
16266
+ "name": "event",
16267
+ "description": "The keydown event.",
16204
16268
  "type": {
16205
- "text": "AuroMenuOption"
16269
+ "text": "KeyboardEvent"
16206
16270
  }
16207
16271
  }
16208
16272
  ],
16209
- "description": "Toggles the selection state of a single option."
16273
+ "description": "Handles keyboard navigation and selection.",
16274
+ "privacy": "private"
16210
16275
  },
16211
16276
  {
16212
16277
  "kind": "method",
16213
- "name": "selectByValue",
16278
+ "name": "handleMouseSelect",
16214
16279
  "parameters": [
16215
16280
  {
16216
- "name": "value",
16217
- "description": "The value(s) to select.",
16281
+ "name": "event",
16282
+ "description": "The auroMenuOption-click event.",
16218
16283
  "type": {
16219
- "text": "string|number|Array<string|number>"
16284
+ "text": "CustomEvent"
16220
16285
  }
16221
16286
  }
16222
16287
  ],
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."
16288
+ "description": "Handles option selection via click events from menuoptions.",
16289
+ "privacy": "private"
16224
16290
  },
16225
16291
  {
16226
16292
  "kind": "method",
16227
- "name": "queuePendingValue",
16293
+ "name": "handleOptionHover",
16228
16294
  "parameters": [
16229
16295
  {
16230
- "name": "value",
16231
- "description": "The value to retry.",
16296
+ "name": "event",
16297
+ "description": "Event object from the browser.",
16232
16298
  "type": {
16233
- "text": "string|number|Array<string|number>"
16299
+ "text": "CustomEvent"
16234
16300
  }
16235
16301
  }
16236
16302
  ],
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."
16303
+ "description": "Handles option hover events.",
16304
+ "privacy": "private"
16243
16305
  },
16244
16306
  {
16245
16307
  "kind": "method",
16246
- "name": "reset",
16247
- "description": "Resets the selected options to an empty array."
16308
+ "name": "handleSlotChange",
16309
+ "description": "Handles slot change events.",
16310
+ "privacy": "private"
16248
16311
  },
16249
16312
  {
16250
16313
  "kind": "method",
16251
- "name": "subscribe",
16314
+ "name": "navigateOptions",
16252
16315
  "parameters": [
16253
16316
  {
16254
- "name": "callback",
16255
- "description": "The callback to invoke on events.",
16317
+ "name": "direction",
16318
+ "description": "'up' or 'down'.",
16256
16319
  "type": {
16257
- "text": "Function"
16320
+ "text": "string"
16258
16321
  }
16259
16322
  }
16260
16323
  ],
16261
- "description": "Subscribes a callback to menu service events."
16324
+ "description": "Navigates through options using keyboard."
16262
16325
  },
16263
16326
  {
16264
16327
  "kind": "method",
16265
- "name": "unsubscribe",
16328
+ "name": "updateActiveOption",
16266
16329
  "parameters": [
16267
16330
  {
16268
- "name": "callback",
16331
+ "name": "indexOrOption",
16332
+ "description": "Index of the option or the option element to make active.",
16269
16333
  "type": {
16270
- "text": "Function"
16334
+ "text": "number|HTMLElement"
16271
16335
  }
16272
16336
  }
16273
16337
  ],
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."
16338
+ "description": "Updates the active option state and dispatches events.\nAccepts either a numeric index or an HTMLElement option."
16286
16339
  },
16287
16340
  {
16288
16341
  "kind": "method",
16289
- "name": "notify",
16342
+ "name": "handleCustomEvent",
16290
16343
  "parameters": [
16291
16344
  {
16292
- "name": "event",
16293
- "description": "The event to send to subscribers.",
16345
+ "name": "option",
16346
+ "description": "Option with custom event.",
16294
16347
  "type": {
16295
- "text": "string"
16348
+ "text": "HTMLElement"
16296
16349
  }
16297
16350
  }
16298
16351
  ],
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)."
16352
+ "description": "Handles custom events defined on options.",
16353
+ "privacy": "private"
16311
16354
  },
16312
16355
  {
16313
16356
  "kind": "method",
16314
- "name": "notifyValueChange",
16357
+ "name": "notifySelectionChange",
16315
16358
  "parameters": [
16316
16359
  {
16317
- "name": "meta",
16318
- "default": "{}"
16360
+ "name": "source",
16361
+ "default": "undefined",
16362
+ "description": "The source that triggers this event.",
16363
+ "type": {
16364
+ "text": "any"
16365
+ }
16319
16366
  }
16320
16367
  ],
16321
- "description": "Notifies subscribers of a value change (current value has changed)."
16368
+ "description": "Notifies selection change to parent components.",
16369
+ "privacy": "private"
16322
16370
  },
16323
16371
  {
16324
16372
  "kind": "method",
16325
- "name": "dispatchChangeEvent",
16373
+ "name": "selectionEquals",
16326
16374
  "parameters": [
16327
16375
  {
16328
- "name": "eventName",
16376
+ "name": "current",
16377
+ "description": "Current selection.",
16329
16378
  "type": {
16330
- "text": "string"
16379
+ "text": "any"
16331
16380
  }
16332
16381
  },
16333
16382
  {
16334
- "name": "detail",
16383
+ "name": "next",
16384
+ "description": "New selection to compare.",
16335
16385
  "type": {
16336
16386
  "text": "any"
16337
16387
  }
16338
16388
  }
16339
16389
  ],
16340
- "description": "Dispatches a custom event from the host element."
16390
+ "privacy": "private",
16391
+ "return": {
16392
+ "type": {
16393
+ "text": "boolean"
16394
+ }
16395
+ }
16341
16396
  },
16342
16397
  {
16343
16398
  "kind": "method",
16344
- "name": "addMenuOption",
16399
+ "name": "isOptionSelected",
16345
16400
  "parameters": [
16346
16401
  {
16347
16402
  "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
- }
16844
- }
16845
- ],
16846
- "description": "Notifies selection change to parent components.",
16847
- "privacy": "private"
16848
- },
16849
- {
16850
- "kind": "method",
16851
- "name": "isOptionSelected",
16852
- "parameters": [
16853
- {
16854
- "name": "option",
16855
- "description": "The option to check.",
16403
+ "description": "The option to check.",
16856
16404
  "type": {
16857
16405
  "text": "HTMLElement"
16858
16406
  }
@@ -16869,18 +16417,13 @@
16869
16417
  {
16870
16418
  "kind": "field",
16871
16419
  "name": "hasLoadingPlaceholder",
16872
- "privacy": "public",
16873
- "type": {
16874
- "text": "boolean"
16875
- },
16876
16420
  "description": "Getter for loading placeholder state.",
16877
16421
  "return": {
16878
16422
  "type": {
16879
16423
  "text": "boolean"
16880
16424
  }
16881
16425
  },
16882
- "readonly": true,
16883
- "attribute": "hasLoadingPlaceholder"
16426
+ "readonly": true
16884
16427
  },
16885
16428
  {
16886
16429
  "kind": "field",
@@ -16914,7 +16457,6 @@
16914
16457
  },
16915
16458
  "attribute": "shape",
16916
16459
  "reflects": true,
16917
- "description": "Sets the shape of the menu.",
16918
16460
  "default": "\"box\"",
16919
16461
  "inheritedFrom": {
16920
16462
  "name": "AuroElement",
@@ -16930,13 +16472,24 @@
16930
16472
  },
16931
16473
  "attribute": "size",
16932
16474
  "reflects": true,
16933
- "description": "Sets the size of the menu.",
16934
16475
  "default": "\"sm\"",
16935
16476
  "inheritedFrom": {
16936
16477
  "name": "AuroElement",
16937
16478
  "module": "components/layoutElement/src/auroElement.js"
16938
16479
  }
16939
16480
  },
16481
+ {
16482
+ "kind": "field",
16483
+ "name": "value",
16484
+ "privacy": "public",
16485
+ "type": {
16486
+ "text": "string"
16487
+ },
16488
+ "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
16489
+ "default": "undefined",
16490
+ "attribute": "value",
16491
+ "reflects": true
16492
+ },
16940
16493
  {
16941
16494
  "kind": "field",
16942
16495
  "name": "optionSelected",
@@ -17006,30 +16559,6 @@
17006
16559
  "attribute": "multiselect",
17007
16560
  "reflects": true
17008
16561
  },
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
16562
  {
17034
16563
  "kind": "field",
17035
16564
  "name": "disabled",
@@ -17041,22 +16570,6 @@
17041
16570
  "attribute": "disabled",
17042
16571
  "reflects": true
17043
16572
  },
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
16573
  {
17061
16574
  "kind": "field",
17062
16575
  "name": "level",
@@ -17066,27 +16579,6 @@
17066
16579
  },
17067
16580
  "description": "Indent level for submenus."
17068
16581
  },
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
16582
  {
17091
16583
  "kind": "field",
17092
16584
  "name": "componentHasFocus",
@@ -17127,6 +16619,22 @@
17127
16619
  "module": "components/layoutElement/src/auroElement.js"
17128
16620
  }
17129
16621
  },
16622
+ {
16623
+ "kind": "field",
16624
+ "name": "layout",
16625
+ "privacy": "public",
16626
+ "type": {
16627
+ "text": "string"
16628
+ },
16629
+ "description": "Defines the language of an element.",
16630
+ "default": "{'default'}",
16631
+ "attribute": "layout",
16632
+ "reflects": true,
16633
+ "inheritedFrom": {
16634
+ "name": "AuroElement",
16635
+ "module": "components/layoutElement/src/auroElement.js"
16636
+ }
16637
+ },
17130
16638
  {
17131
16639
  "kind": "field",
17132
16640
  "name": "onDark",
@@ -17177,13 +16685,6 @@
17177
16685
  "description": "Notifies that an attempt to select a menuoption by matching a value has failed.",
17178
16686
  "name": "auroMenu-selectValueFailure"
17179
16687
  },
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
16688
  {
17188
16689
  "type": {
17189
16690
  "text": "CustomEvent<any>"
@@ -17200,15 +16701,6 @@
17200
16701
  }
17201
16702
  ],
17202
16703
  "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
16704
  {
17213
16705
  "name": "disabled",
17214
16706
  "type": {
@@ -17217,33 +16709,6 @@
17217
16709
  "description": "When true, the entire menu and all options are disabled.",
17218
16710
  "fieldName": "disabled"
17219
16711
  },
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
16712
  {
17248
16713
  "name": "loading",
17249
16714
  "type": {
@@ -17299,26 +16764,26 @@
17299
16764
  "fieldName": "optionSelected"
17300
16765
  },
17301
16766
  {
17302
- "name": "size",
16767
+ "name": "value",
17303
16768
  "type": {
17304
16769
  "text": "string"
17305
16770
  },
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
- }
16771
+ "description": "The value of the selected option. In multi-select mode, this is a JSON stringified array of selected option values.",
16772
+ "default": "undefined",
16773
+ "fieldName": "value"
17313
16774
  },
17314
16775
  {
17315
- "name": "selectAllMatchingOptions",
16776
+ "name": "layout",
17316
16777
  "type": {
17317
- "text": "boolean"
16778
+ "text": "string"
17318
16779
  },
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"
16780
+ "description": "Defines the language of an element.",
16781
+ "default": "{'default'}",
16782
+ "fieldName": "layout",
16783
+ "inheritedFrom": {
16784
+ "name": "AuroElement",
16785
+ "module": "components/layoutElement/src/auroElement.js"
16786
+ }
17322
16787
  },
17323
16788
  {
17324
16789
  "name": "shape",
@@ -17326,20 +16791,21 @@
17326
16791
  "text": "string"
17327
16792
  },
17328
16793
  "fieldName": "shape",
17329
- "description": "Sets the shape of the menu.",
17330
- "default": "\"box\"",
17331
16794
  "inheritedFrom": {
17332
16795
  "name": "AuroElement",
17333
16796
  "module": "components/layoutElement/src/auroElement.js"
17334
16797
  }
17335
16798
  },
17336
16799
  {
17337
- "name": "value",
16800
+ "name": "size",
17338
16801
  "type": {
17339
16802
  "text": "string"
17340
16803
  },
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"
16804
+ "fieldName": "size",
16805
+ "inheritedFrom": {
16806
+ "name": "AuroElement",
16807
+ "module": "components/layoutElement/src/auroElement.js"
16808
+ }
17343
16809
  },
17344
16810
  {
17345
16811
  "name": "ondark",
@@ -17395,7 +16861,7 @@
17395
16861
  {
17396
16862
  "name": "name",
17397
16863
  "default": "\"auro-menuoption\"",
17398
- "description": "The name of the element that you want to register.",
16864
+ "description": "The name of element that you want to register to.",
17399
16865
  "optional": true,
17400
16866
  "type": {
17401
16867
  "text": "string"
@@ -17407,7 +16873,7 @@
17407
16873
  {
17408
16874
  "kind": "field",
17409
16875
  "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.",
16876
+ "description": "Returns whether the menu option is currently active and selectable.",
17411
16877
  "return": {
17412
16878
  "type": {
17413
16879
  "text": "boolean"
@@ -17417,115 +16883,34 @@
17417
16883
  },
17418
16884
  {
17419
16885
  "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."
16886
+ "name": "handleMenuChange"
17464
16887
  },
17465
16888
  {
17466
16889
  "kind": "method",
17467
16890
  "name": "setSelected",
17468
16891
  "parameters": [
17469
16892
  {
17470
- "name": "isSelected",
17471
- "description": "Whether the option should be marked as selected.",
17472
- "type": {
17473
- "text": "boolean"
17474
- }
16893
+ "name": "value"
17475
16894
  }
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."
16895
+ ]
17479
16896
  },
17480
16897
  {
17481
16898
  "kind": "method",
17482
16899
  "name": "updateActive",
17483
16900
  "parameters": [
17484
16901
  {
17485
- "name": "isActive",
17486
- "description": "Whether the option should be marked as active.",
17487
- "type": {
17488
- "text": "boolean"
17489
- }
16902
+ "name": "active"
17490
16903
  }
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"
16904
+ ]
17500
16905
  },
17501
16906
  {
17502
16907
  "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"
16908
+ "name": "attachTo"
17506
16909
  },
17507
16910
  {
17508
16911
  "kind": "method",
17509
16912
  "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.",
16913
+ "description": "Handles click events on the menu option.",
17529
16914
  "privacy": "private"
17530
16915
  },
17531
16916
  {
@@ -17600,7 +16985,6 @@
17600
16985
  "type": {
17601
16986
  "text": "boolean"
17602
16987
  },
17603
- "description": "Specifies that an option is selected.",
17604
16988
  "default": "false",
17605
16989
  "attribute": "selected",
17606
16990
  "reflects": true
@@ -17608,7 +16992,7 @@
17608
16992
  {
17609
16993
  "kind": "field",
17610
16994
  "name": "noCheckmark",
17611
- "privacy": "private",
16995
+ "privacy": "public",
17612
16996
  "type": {
17613
16997
  "text": "boolean"
17614
16998
  },
@@ -17623,7 +17007,6 @@
17623
17007
  "type": {
17624
17008
  "text": "boolean"
17625
17009
  },
17626
- "description": "When true, disables the menu option.",
17627
17010
  "default": "false",
17628
17011
  "attribute": "disabled",
17629
17012
  "reflects": true
@@ -17635,101 +17018,46 @@
17635
17018
  "type": {
17636
17019
  "text": "boolean"
17637
17020
  },
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.",
17021
+ "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
17022
  "default": "false",
17640
17023
  "attribute": "nomatch",
17641
17024
  "reflects": true
17642
17025
  },
17643
17026
  {
17644
17027
  "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",
17028
+ "name": "tabIndex",
17670
17029
  "privacy": "private",
17671
17030
  "type": {
17672
- "text": "string"
17031
+ "text": "number"
17673
17032
  },
17674
- "attribute": "event",
17033
+ "default": "-1",
17034
+ "attribute": "tabIndex",
17675
17035
  "reflects": true
17676
17036
  },
17677
17037
  {
17678
17038
  "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
- }
17039
+ "name": "runtimeUtils",
17040
+ "privacy": "private",
17041
+ "default": "new AuroLibraryRuntimeUtils()"
17692
17042
  },
17693
17043
  {
17694
17044
  "kind": "field",
17695
- "name": "key",
17045
+ "name": "value",
17696
17046
  "privacy": "public",
17697
17047
  "type": {
17698
17048
  "text": "string"
17699
17049
  },
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",
17050
+ "attribute": "value",
17702
17051
  "reflects": true
17703
17052
  },
17704
17053
  {
17705
17054
  "kind": "field",
17706
- "name": "matchWord",
17055
+ "name": "event",
17707
17056
  "privacy": "private",
17708
17057
  "type": {
17709
17058
  "text": "string"
17710
17059
  },
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",
17060
+ "attribute": "event",
17733
17061
  "reflects": true
17734
17062
  },
17735
17063
  {
@@ -17772,6 +17100,22 @@
17772
17100
  "module": "components/layoutElement/src/auroElement.js"
17773
17101
  }
17774
17102
  },
17103
+ {
17104
+ "kind": "field",
17105
+ "name": "layout",
17106
+ "privacy": "public",
17107
+ "type": {
17108
+ "text": "string"
17109
+ },
17110
+ "description": "Defines the language of an element.",
17111
+ "default": "{'default'}",
17112
+ "attribute": "layout",
17113
+ "reflects": true,
17114
+ "inheritedFrom": {
17115
+ "name": "AuroElement",
17116
+ "module": "components/layoutElement/src/auroElement.js"
17117
+ }
17118
+ },
17775
17119
  {
17776
17120
  "kind": "field",
17777
17121
  "name": "onDark",
@@ -17799,103 +17143,78 @@
17799
17143
  "name": "auroMenuOption-click",
17800
17144
  "type": {
17801
17145
  "text": "CustomEvent"
17802
- }
17146
+ },
17147
+ "description": "Notifies that this option has been clicked."
17803
17148
  }
17804
17149
  ],
17805
17150
  "attributes": [
17806
17151
  {
17807
- "name": "disabled",
17152
+ "name": "noCheckmark",
17808
17153
  "type": {
17809
17154
  "text": "boolean"
17810
17155
  },
17811
- "description": "When true, disables the menu option.",
17812
17156
  "default": "false",
17813
- "fieldName": "disabled"
17157
+ "fieldName": "noCheckmark"
17814
17158
  },
17815
17159
  {
17816
- "name": "event",
17160
+ "name": "selected",
17817
17161
  "type": {
17818
- "text": "string"
17162
+ "text": "boolean"
17819
17163
  },
17820
- "fieldName": "event"
17164
+ "default": "false",
17165
+ "fieldName": "selected"
17821
17166
  },
17822
17167
  {
17823
- "name": "layout",
17168
+ "name": "disabled",
17824
17169
  "type": {
17825
- "text": "string"
17170
+ "text": "boolean"
17826
17171
  },
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
- }
17172
+ "default": "false",
17173
+ "fieldName": "disabled"
17834
17174
  },
17835
17175
  {
17836
- "name": "key",
17176
+ "name": "value",
17837
17177
  "type": {
17838
17178
  "text": "string"
17839
17179
  },
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"
17180
+ "fieldName": "value"
17842
17181
  },
17843
17182
  {
17844
- "name": "menuService",
17183
+ "name": "tabIndex",
17845
17184
  "type": {
17846
- "text": "null"
17185
+ "text": "number"
17847
17186
  },
17848
- "default": "null",
17849
- "fieldName": "menuService"
17187
+ "default": "-1",
17188
+ "fieldName": "tabIndex"
17850
17189
  },
17851
17190
  {
17852
- "name": "matchWord",
17191
+ "name": "event",
17853
17192
  "type": {
17854
17193
  "text": "string"
17855
17194
  },
17856
- "fieldName": "matchWord"
17857
- },
17858
- {
17859
- "name": "noCheckmark",
17860
- "type": {
17861
- "text": "boolean"
17862
- },
17863
- "default": "false",
17864
- "fieldName": "noCheckmark"
17195
+ "fieldName": "event"
17865
17196
  },
17866
17197
  {
17867
17198
  "name": "nomatch",
17868
17199
  "type": {
17869
17200
  "text": "boolean"
17870
17201
  },
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.",
17202
+ "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
17203
  "default": "false",
17873
17204
  "fieldName": "noMatch"
17874
17205
  },
17875
17206
  {
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",
17207
+ "name": "layout",
17894
17208
  "type": {
17895
17209
  "text": "string"
17896
17210
  },
17897
- "description": "Specifies the value to be sent to a server.",
17898
- "fieldName": "value"
17211
+ "description": "Defines the language of an element.",
17212
+ "default": "{'default'}",
17213
+ "fieldName": "layout",
17214
+ "inheritedFrom": {
17215
+ "name": "AuroElement",
17216
+ "module": "components/layoutElement/src/auroElement.js"
17217
+ }
17899
17218
  },
17900
17219
  {
17901
17220
  "name": "shape",
@@ -20401,7 +19720,7 @@
20401
19720
  "type": {
20402
19721
  "text": "object"
20403
19722
  },
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(); } }, }"
19723
+ "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
19724
  }
20406
19725
  ],
20407
19726
  "exports": [
@@ -20414,6 +19733,41 @@
20414
19733
  }
20415
19734
  }
20416
19735
  ]
19736
+ },
19737
+ {
19738
+ "kind": "javascript-module",
19739
+ "path": "components/select/src/selectUtils.js",
19740
+ "declarations": [
19741
+ {
19742
+ "kind": "function",
19743
+ "name": "getEnabledOptions",
19744
+ "parameters": [
19745
+ {
19746
+ "name": "menu",
19747
+ "description": "The auro-menu element.",
19748
+ "type": {
19749
+ "text": "HTMLElement | null | undefined"
19750
+ }
19751
+ }
19752
+ ],
19753
+ "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.",
19754
+ "return": {
19755
+ "type": {
19756
+ "text": "Array<HTMLElement>"
19757
+ }
19758
+ }
19759
+ }
19760
+ ],
19761
+ "exports": [
19762
+ {
19763
+ "kind": "js",
19764
+ "name": "getEnabledOptions",
19765
+ "declaration": {
19766
+ "name": "getEnabledOptions",
19767
+ "module": "components/select/src/selectUtils.js"
19768
+ }
19769
+ }
19770
+ ]
20417
19771
  }
20418
19772
  ]
20419
19773
  }