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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +3 -7
  7. package/components/combobox/demo/customize.min.js +1703 -1461
  8. package/components/combobox/demo/getting-started.min.js +1703 -1461
  9. package/components/combobox/demo/index.min.js +1703 -1461
  10. package/components/combobox/dist/auro-combobox.d.ts +0 -5
  11. package/components/combobox/dist/index.js +162 -495
  12. package/components/combobox/dist/registered.js +162 -495
  13. package/components/counter/demo/customize.min.js +19 -18
  14. package/components/counter/demo/index.min.js +19 -18
  15. package/components/counter/dist/index.js +160 -5811
  16. package/components/counter/dist/registered.js +187 -5442
  17. package/components/datepicker/demo/customize.md +477 -384
  18. package/components/datepicker/demo/customize.min.js +99 -171
  19. package/components/datepicker/demo/index.md +0 -1
  20. package/components/datepicker/demo/index.min.js +99 -171
  21. package/components/datepicker/dist/index.js +99 -171
  22. package/components/datepicker/dist/registered.js +99 -171
  23. package/components/datepicker/dist/src/auro-datepicker.d.ts +2 -2
  24. package/components/dropdown/demo/customize.min.js +17 -16
  25. package/components/dropdown/demo/getting-started.min.js +17 -16
  26. package/components/dropdown/demo/index.min.js +17 -16
  27. package/components/dropdown/dist/auro-dropdown.d.ts +2 -1
  28. package/components/dropdown/dist/index.js +17 -16
  29. package/components/dropdown/dist/registered.js +17 -16
  30. package/components/form/demo/customize.min.js +8494 -8428
  31. package/components/form/demo/getting-started.min.js +8494 -8428
  32. package/components/form/demo/index.min.js +8494 -8428
  33. package/components/form/demo/registerDemoDeps.min.js +8518 -8452
  34. package/components/input/demo/customize.md +539 -472
  35. package/components/input/demo/customize.min.js +61 -136
  36. package/components/input/demo/getting-started.min.js +61 -136
  37. package/components/input/demo/index.min.js +61 -136
  38. package/components/input/dist/base-input.d.ts +0 -16
  39. package/components/input/dist/index.js +61 -136
  40. package/components/input/dist/registered.js +61 -136
  41. package/components/menu/demo/api.md +45 -41
  42. package/components/menu/demo/customize.md +28 -0
  43. package/components/menu/demo/index.min.js +1358 -783
  44. package/components/menu/dist/auro-menu.context.d.ts +238 -0
  45. package/components/menu/dist/auro-menu.d.ts +110 -95
  46. package/components/menu/dist/auro-menuoption.d.ts +138 -32
  47. package/components/menu/dist/index.js +1312 -757
  48. package/components/menu/dist/registered.js +1312 -769
  49. package/components/radio/demo/customize.min.js +2 -2
  50. package/components/radio/demo/getting-started.min.js +2 -2
  51. package/components/radio/demo/index.min.js +2 -2
  52. package/components/radio/dist/index.js +2 -2
  53. package/components/radio/dist/registered.js +2 -2
  54. package/components/select/demo/customize.md +3 -7
  55. package/components/select/demo/customize.min.js +1634 -1089
  56. package/components/select/demo/getting-started.min.js +1634 -1089
  57. package/components/select/demo/index.min.js +1634 -1089
  58. package/components/select/dist/index.js +31 -61
  59. package/components/select/dist/registered.js +31 -61
  60. package/custom-elements.json +1024 -378
  61. package/package.json +1 -1
  62. package/components/select/dist/selectUtils.d.ts +0 -12
@@ -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) { 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(); } } }, }"
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(); } } }, }"
2458
2458
  }
2459
2459
  ],
2460
2460
  "exports": [
@@ -6951,7 +6951,7 @@
6951
6951
  "name": "date",
6952
6952
  "description": "Date format should be in a format Date constructor accepts, like '2023-04-21' or '2023/04/21'.",
6953
6953
  "type": {
6954
- "text": "string"
6954
+ "text": "Date"
6955
6955
  }
6956
6956
  }
6957
6957
  ],
@@ -6968,10 +6968,10 @@
6968
6968
  "name": "renderDisplayTextDate",
6969
6969
  "parameters": [
6970
6970
  {
6971
- "name": "dateValue",
6971
+ "name": "date",
6972
6972
  "description": "The date value to format and render.",
6973
6973
  "type": {
6974
- "text": "string"
6974
+ "text": "Date"
6975
6975
  }
6976
6976
  }
6977
6977
  ],
@@ -11696,30 +11696,6 @@
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
- },
11723
11699
  {
11724
11700
  "kind": "method",
11725
11701
  "name": "setDateObjectProperty",
@@ -13807,26 +13783,6 @@
13807
13783
  },
13808
13784
  "readonly": true
13809
13785
  },
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
- },
13830
13786
  {
13831
13787
  "kind": "method",
13832
13788
  "name": "setDateObjectProperty",
@@ -16013,386 +15969,882 @@
16013
15969
  },
16014
15970
  {
16015
15971
  "kind": "javascript-module",
16016
- "path": "components/menu/src/auro-menu.js",
15972
+ "path": "components/menu/src/auro-menu.context.js",
16017
15973
  "declarations": [
16018
15974
  {
16019
15975
  "kind": "class",
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
- ],
15976
+ "description": "",
15977
+ "name": "MenuService",
16036
15978
  "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
- },
16054
15979
  {
16055
15980
  "kind": "field",
16056
- "name": "options",
16057
- "readonly": true,
15981
+ "name": "menuOptions",
15982
+ "description": "Gets the list of registered menu options.",
16058
15983
  "return": {
16059
15984
  "type": {
16060
- "text": "Array<HTMLElement>"
15985
+ "text": "AuroMenuOption[]"
16061
15986
  }
16062
- }
15987
+ },
15988
+ "readonly": true
16063
15989
  },
16064
15990
  {
16065
15991
  "kind": "field",
16066
- "name": "index",
15992
+ "name": "highlightedOption",
15993
+ "description": "Gets the currently highlighted option.",
16067
15994
  "return": {
16068
15995
  "type": {
16069
- "text": "number"
15996
+ "text": "AuroMenuOption|null"
16070
15997
  }
16071
15998
  },
16072
- "parameters": [
16073
- {
16074
- "description": "Sets the index of the currently active option.",
16075
- "name": "value",
16076
- "type": {
16077
- "text": "number"
16078
- }
16079
- }
16080
- ]
15999
+ "readonly": true
16081
16000
  },
16082
16001
  {
16083
16002
  "kind": "field",
16084
- "name": "selectedOptions",
16085
- "description": "Gets the currently selected options as an array.",
16003
+ "name": "currentValue",
16004
+ "description": "Gets the current value(s) of the selected option(s).",
16086
16005
  "return": {
16087
16006
  "type": {
16088
- "text": "Array<HTMLElement>"
16007
+ "text": "string|string[]|undefined"
16089
16008
  }
16090
16009
  },
16091
16010
  "readonly": true
16092
16011
  },
16093
16012
  {
16094
16013
  "kind": "field",
16095
- "name": "selectedOption",
16096
- "description": "Gets the first selected option, or null if none.",
16014
+ "name": "currentLabel",
16015
+ "description": "Gets the label(s) of the currently selected option(s).",
16097
16016
  "return": {
16098
16017
  "type": {
16099
- "text": "HTMLElement|null"
16018
+ "text": "string"
16100
16019
  }
16101
16020
  },
16102
16021
  "readonly": true
16103
16022
  },
16104
16023
  {
16105
16024
  "kind": "field",
16106
- "name": "currentLabel",
16107
- "readonly": true,
16025
+ "name": "stringValue",
16026
+ "description": "Gets the string representation of the current value(s).\nFor multi-select, this is a JSON stringified array.",
16108
16027
  "return": {
16109
16028
  "type": {
16110
- "text": "string"
16029
+ "text": "string|undefined"
16111
16030
  }
16112
- }
16031
+ },
16032
+ "readonly": true
16113
16033
  },
16114
16034
  {
16115
16035
  "kind": "field",
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",
16036
+ "name": "currentKeys",
16037
+ "description": "Gets the key(s) of the currently selected option(s).",
16119
16038
  "return": {
16120
16039
  "type": {
16121
- "text": "String|Array<String>"
16040
+ "text": "string|string[]|undefined"
16122
16041
  }
16123
16042
  },
16124
16043
  "readonly": true
16125
16044
  },
16126
16045
  {
16127
16046
  "kind": "method",
16128
- "name": "selectByValue",
16129
- "parameters": [
16130
- {
16131
- "name": "value",
16132
- "description": "The value(s) to select.",
16133
- "type": {
16134
- "text": "string|string[]|undefined|null"
16135
- }
16136
- }
16137
- ],
16138
- "description": "Selects options by value.",
16139
- "privacy": "public"
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/"
16140
16049
  },
16141
16050
  {
16142
16051
  "kind": "method",
16143
- "name": "setTagAttribute",
16052
+ "name": "hostDisconnected",
16053
+ "description": "Handles host disconnection and memory cleanup."
16054
+ },
16055
+ {
16056
+ "kind": "method",
16057
+ "name": "setProperty",
16144
16058
  "parameters": [
16145
16059
  {
16146
- "name": "tagName",
16147
- "description": "The tag name to set as an attribute.",
16060
+ "name": "property",
16148
16061
  "type": {
16149
16062
  "text": "string"
16150
16063
  }
16064
+ },
16065
+ {
16066
+ "name": "value",
16067
+ "type": {
16068
+ "text": "any"
16069
+ }
16151
16070
  }
16152
16071
  ],
16153
- "description": "Sets an attribute that matches the default tag name if the tag name is not the default.",
16154
- "privacy": "private"
16072
+ "description": "Sets a property value if it exists on the instance and the value has changed."
16155
16073
  },
16156
16074
  {
16157
16075
  "kind": "method",
16158
- "name": "updateItemsState",
16076
+ "name": "setProperties",
16159
16077
  "parameters": [
16160
16078
  {
16161
- "name": "changedProperties",
16162
- "description": "LitElement's changed properties map.",
16079
+ "name": "properties",
16080
+ "description": "Key-value pairs of properties to set.",
16163
16081
  "type": {
16164
- "text": "Map<string, boolean>"
16082
+ "text": "Object"
16165
16083
  }
16166
16084
  }
16167
16085
  ],
16168
- "description": "Updates the UI state and appearance of menu items based on changed properties.",
16169
- "privacy": "private"
16086
+ "description": "Sets multiple properties on the instance."
16170
16087
  },
16171
16088
  {
16172
16089
  "kind": "method",
16173
- "name": "initializeMenu",
16174
- "description": "Initializes the menu's state and structure.",
16175
- "privacy": "private"
16090
+ "name": "highlightNext",
16091
+ "description": "Highlights the next active option in the menu."
16176
16092
  },
16177
16093
  {
16178
16094
  "kind": "method",
16179
- "name": "initItems",
16180
- "description": "Initializes menu items and their attributes.",
16181
- "privacy": "private"
16095
+ "name": "highlightPrevious",
16096
+ "description": "Highlights the previous active option in the menu."
16182
16097
  },
16183
16098
  {
16184
16099
  "kind": "method",
16185
- "name": "handleSelectState",
16100
+ "name": "moveHighlightedOption",
16186
16101
  "parameters": [
16187
16102
  {
16188
- "name": "option",
16189
- "description": "The option element to select.",
16103
+ "name": "direction",
16104
+ "description": "The direction to move the highlight (\"next\" or \"previous\").",
16190
16105
  "type": {
16191
- "text": "HTMLElement"
16106
+ "text": "string"
16192
16107
  }
16193
16108
  }
16194
16109
  ],
16195
- "description": "Updates menu state when an option is selected.",
16196
- "privacy": "private"
16110
+ "description": "Moves the highlighted option in the specified direction."
16197
16111
  },
16198
16112
  {
16199
16113
  "kind": "method",
16200
- "name": "handleDeselectState",
16114
+ "name": "setHighlightedOption",
16201
16115
  "parameters": [
16202
16116
  {
16203
16117
  "name": "option",
16204
- "description": "The menuoption to be deselected.",
16118
+ "description": "The option to highlight.",
16205
16119
  "type": {
16206
- "text": "HTMLElement"
16120
+ "text": "AuroMenuOption"
16207
16121
  }
16208
16122
  }
16209
16123
  ],
16210
- "description": "Deselects a menu option and updates related state.",
16211
- "privacy": "private"
16124
+ "description": "Sets the highlighted index to the specified option."
16212
16125
  },
16213
16126
  {
16214
16127
  "kind": "method",
16215
- "name": "clearSelection",
16216
- "description": "Resets all options to their default state.",
16217
- "privacy": "private"
16128
+ "name": "setHighlightedIndex",
16129
+ "parameters": [
16130
+ {
16131
+ "name": "index",
16132
+ "type": {
16133
+ "text": "number"
16134
+ }
16135
+ }
16136
+ ],
16137
+ "description": "Sets the highlighted option to the option at the specified index if it exists."
16218
16138
  },
16219
16139
  {
16220
16140
  "kind": "method",
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"
16141
+ "name": "selectHighlightedOption",
16142
+ "description": "Selects the currently highlighted option."
16224
16143
  },
16225
16144
  {
16226
16145
  "kind": "method",
16227
- "name": "handleNestedMenus",
16146
+ "name": "selectOptions",
16228
16147
  "parameters": [
16229
16148
  {
16230
- "name": "menu",
16231
- "description": "Root menu element.",
16149
+ "name": "options",
16150
+ "description": "Single option or array of options to select",
16232
16151
  "type": {
16233
- "text": "HTMLElement"
16152
+ "text": "AuroMenuOption|AuroMenuOption[]"
16234
16153
  }
16235
16154
  }
16236
16155
  ],
16237
- "description": "Handles nested menu structure.",
16238
- "privacy": "private"
16156
+ "description": "Selects one or more options in a batch operation"
16239
16157
  },
16240
16158
  {
16241
16159
  "kind": "method",
16242
- "name": "makeSelection",
16243
- "description": "Makes a selection based on the current index.",
16244
- "privacy": "private"
16160
+ "name": "deselectOptions",
16161
+ "parameters": [
16162
+ {
16163
+ "name": "options",
16164
+ "description": "Single option or array of options to deselect",
16165
+ "type": {
16166
+ "text": "AuroMenuOption|AuroMenuOption[]"
16167
+ }
16168
+ }
16169
+ ],
16170
+ "description": "Deselects one or more options in a batch operation"
16245
16171
  },
16246
16172
  {
16247
16173
  "kind": "method",
16248
- "name": "toggleOption",
16174
+ "name": "selectOption",
16249
16175
  "parameters": [
16250
16176
  {
16251
16177
  "name": "option",
16252
- "description": "The menuoption to toggle.",
16253
16178
  "type": {
16254
- "text": "HTMLElement"
16179
+ "text": "AuroMenuOption"
16255
16180
  }
16256
16181
  }
16257
16182
  ],
16258
- "description": "Toggle the selection state of the menuoption.",
16259
- "privacy": "private"
16183
+ "description": "Selects a single option."
16260
16184
  },
16261
16185
  {
16262
16186
  "kind": "method",
16263
- "name": "handleKeyDown",
16187
+ "name": "deselectOption",
16264
16188
  "parameters": [
16265
16189
  {
16266
- "name": "event",
16267
- "description": "The keydown event.",
16190
+ "name": "option",
16268
16191
  "type": {
16269
- "text": "KeyboardEvent"
16192
+ "text": "AuroMenuOption"
16270
16193
  }
16271
16194
  }
16272
16195
  ],
16273
- "description": "Handles keyboard navigation and selection.",
16274
- "privacy": "private"
16196
+ "description": "Deselects a single option."
16275
16197
  },
16276
16198
  {
16277
16199
  "kind": "method",
16278
- "name": "handleMouseSelect",
16200
+ "name": "toggleOption",
16279
16201
  "parameters": [
16280
16202
  {
16281
- "name": "event",
16282
- "description": "The auroMenuOption-click event.",
16203
+ "name": "option",
16283
16204
  "type": {
16284
- "text": "CustomEvent"
16205
+ "text": "AuroMenuOption"
16285
16206
  }
16286
16207
  }
16287
16208
  ],
16288
- "description": "Handles option selection via click events from menuoptions.",
16289
- "privacy": "private"
16209
+ "description": "Toggles the selection state of a single option."
16290
16210
  },
16291
16211
  {
16292
16212
  "kind": "method",
16293
- "name": "handleOptionHover",
16213
+ "name": "selectByValue",
16294
16214
  "parameters": [
16295
16215
  {
16296
- "name": "event",
16297
- "description": "Event object from the browser.",
16216
+ "name": "value",
16217
+ "description": "The value(s) to select.",
16298
16218
  "type": {
16299
- "text": "CustomEvent"
16219
+ "text": "string|number|Array<string|number>"
16300
16220
  }
16301
16221
  }
16302
16222
  ],
16303
- "description": "Handles option hover events.",
16304
- "privacy": "private"
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."
16305
16224
  },
16306
16225
  {
16307
16226
  "kind": "method",
16308
- "name": "handleSlotChange",
16309
- "description": "Handles slot change events.",
16310
- "privacy": "private"
16227
+ "name": "queuePendingValue",
16228
+ "parameters": [
16229
+ {
16230
+ "name": "value",
16231
+ "description": "The value to retry.",
16232
+ "type": {
16233
+ "text": "string|number|Array<string|number>"
16234
+ }
16235
+ }
16236
+ ],
16237
+ "description": "Queues a pending value and schedules a bounded retry."
16311
16238
  },
16312
16239
  {
16313
16240
  "kind": "method",
16314
- "name": "navigateOptions",
16241
+ "name": "clearPendingValue",
16242
+ "description": "Clears pending retry state."
16243
+ },
16244
+ {
16245
+ "kind": "method",
16246
+ "name": "reset",
16247
+ "description": "Resets the selected options to an empty array."
16248
+ },
16249
+ {
16250
+ "kind": "method",
16251
+ "name": "subscribe",
16315
16252
  "parameters": [
16316
16253
  {
16317
- "name": "direction",
16318
- "description": "'up' or 'down'.",
16254
+ "name": "callback",
16255
+ "description": "The callback to invoke on events.",
16319
16256
  "type": {
16320
- "text": "string"
16257
+ "text": "Function"
16321
16258
  }
16322
16259
  }
16323
16260
  ],
16324
- "description": "Navigates through options using keyboard."
16261
+ "description": "Subscribes a callback to menu service events."
16325
16262
  },
16326
16263
  {
16327
16264
  "kind": "method",
16328
- "name": "updateActiveOption",
16265
+ "name": "unsubscribe",
16329
16266
  "parameters": [
16330
16267
  {
16331
- "name": "indexOrOption",
16332
- "description": "Index of the option or the option element to make active.",
16268
+ "name": "callback",
16333
16269
  "type": {
16334
- "text": "number|HTMLElement"
16270
+ "text": "Function"
16335
16271
  }
16336
16272
  }
16337
16273
  ],
16338
- "description": "Updates the active option state and dispatches events.\nAccepts either a numeric index or an HTMLElement option."
16274
+ "description": "Remove a previously subscribed callback from menu service events."
16339
16275
  },
16340
16276
  {
16341
16277
  "kind": "method",
16342
- "name": "handleCustomEvent",
16278
+ "name": "stageUpdate",
16343
16279
  "parameters": [
16344
16280
  {
16345
- "name": "option",
16346
- "description": "Option with custom event.",
16347
- "type": {
16348
- "text": "HTMLElement"
16349
- }
16281
+ "name": "meta",
16282
+ "default": "{}"
16350
16283
  }
16351
16284
  ],
16352
- "description": "Handles custom events defined on options.",
16353
- "privacy": "private"
16285
+ "description": "Stages an update to notify subscribers of state and value changes."
16354
16286
  },
16355
16287
  {
16356
16288
  "kind": "method",
16357
- "name": "notifySelectionChange",
16289
+ "name": "notify",
16358
16290
  "parameters": [
16359
16291
  {
16360
- "name": "source",
16361
- "default": "undefined",
16362
- "description": "The source that triggers this event.",
16292
+ "name": "event",
16293
+ "description": "The event to send to subscribers.",
16363
16294
  "type": {
16364
- "text": "any"
16295
+ "text": "string"
16365
16296
  }
16366
16297
  }
16367
16298
  ],
16368
- "description": "Notifies selection change to parent components.",
16369
- "privacy": "private"
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)."
16311
+ },
16312
+ {
16313
+ "kind": "method",
16314
+ "name": "notifyValueChange",
16315
+ "parameters": [
16316
+ {
16317
+ "name": "meta",
16318
+ "default": "{}"
16319
+ }
16320
+ ],
16321
+ "description": "Notifies subscribers of a value change (current value has changed)."
16370
16322
  },
16371
16323
  {
16372
16324
  "kind": "method",
16373
- "name": "selectionEquals",
16325
+ "name": "dispatchChangeEvent",
16374
16326
  "parameters": [
16375
16327
  {
16376
- "name": "current",
16377
- "description": "Current selection.",
16328
+ "name": "eventName",
16378
16329
  "type": {
16379
- "text": "any"
16330
+ "text": "string"
16380
16331
  }
16381
16332
  },
16382
16333
  {
16383
- "name": "next",
16384
- "description": "New selection to compare.",
16334
+ "name": "detail",
16385
16335
  "type": {
16386
16336
  "text": "any"
16387
16337
  }
16388
16338
  }
16389
16339
  ],
16390
- "privacy": "private",
16391
- "return": {
16392
- "type": {
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": {
16393
16411
  "text": "boolean"
16394
16412
  }
16395
- }
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"
16396
16848
  },
16397
16849
  {
16398
16850
  "kind": "method",
@@ -16417,13 +16869,18 @@
16417
16869
  {
16418
16870
  "kind": "field",
16419
16871
  "name": "hasLoadingPlaceholder",
16872
+ "privacy": "public",
16873
+ "type": {
16874
+ "text": "boolean"
16875
+ },
16420
16876
  "description": "Getter for loading placeholder state.",
16421
16877
  "return": {
16422
16878
  "type": {
16423
16879
  "text": "boolean"
16424
16880
  }
16425
16881
  },
16426
- "readonly": true
16882
+ "readonly": true,
16883
+ "attribute": "hasLoadingPlaceholder"
16427
16884
  },
16428
16885
  {
16429
16886
  "kind": "field",
@@ -16457,6 +16914,7 @@
16457
16914
  },
16458
16915
  "attribute": "shape",
16459
16916
  "reflects": true,
16917
+ "description": "Sets the shape of the menu.",
16460
16918
  "default": "\"box\"",
16461
16919
  "inheritedFrom": {
16462
16920
  "name": "AuroElement",
@@ -16472,24 +16930,13 @@
16472
16930
  },
16473
16931
  "attribute": "size",
16474
16932
  "reflects": true,
16933
+ "description": "Sets the size of the menu.",
16475
16934
  "default": "\"sm\"",
16476
16935
  "inheritedFrom": {
16477
16936
  "name": "AuroElement",
16478
16937
  "module": "components/layoutElement/src/auroElement.js"
16479
16938
  }
16480
16939
  },
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
- },
16493
16940
  {
16494
16941
  "kind": "field",
16495
16942
  "name": "optionSelected",
@@ -16559,6 +17006,30 @@
16559
17006
  "attribute": "multiselect",
16560
17007
  "reflects": true
16561
17008
  },
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
+ },
16562
17033
  {
16563
17034
  "kind": "field",
16564
17035
  "name": "disabled",
@@ -16570,6 +17041,22 @@
16570
17041
  "attribute": "disabled",
16571
17042
  "reflects": true
16572
17043
  },
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
+ },
16573
17060
  {
16574
17061
  "kind": "field",
16575
17062
  "name": "level",
@@ -16579,6 +17066,27 @@
16579
17066
  },
16580
17067
  "description": "Indent level for submenus."
16581
17068
  },
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
+ },
16582
17090
  {
16583
17091
  "kind": "field",
16584
17092
  "name": "componentHasFocus",
@@ -16619,22 +17127,6 @@
16619
17127
  "module": "components/layoutElement/src/auroElement.js"
16620
17128
  }
16621
17129
  },
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
- },
16638
17130
  {
16639
17131
  "kind": "field",
16640
17132
  "name": "onDark",
@@ -16685,6 +17177,13 @@
16685
17177
  "description": "Notifies that an attempt to select a menuoption by matching a value has failed.",
16686
17178
  "name": "auroMenu-selectValueFailure"
16687
17179
  },
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
+ },
16688
17187
  {
16689
17188
  "type": {
16690
17189
  "text": "CustomEvent<any>"
@@ -16701,6 +17200,15 @@
16701
17200
  }
16702
17201
  ],
16703
17202
  "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
+ },
16704
17212
  {
16705
17213
  "name": "disabled",
16706
17214
  "type": {
@@ -16709,6 +17217,33 @@
16709
17217
  "description": "When true, the entire menu and all options are disabled.",
16710
17218
  "fieldName": "disabled"
16711
17219
  },
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
+ },
16712
17247
  {
16713
17248
  "name": "loading",
16714
17249
  "type": {
@@ -16764,48 +17299,47 @@
16764
17299
  "fieldName": "optionSelected"
16765
17300
  },
16766
17301
  {
16767
- "name": "value",
16768
- "type": {
16769
- "text": "string"
16770
- },
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"
16774
- },
16775
- {
16776
- "name": "layout",
17302
+ "name": "size",
16777
17303
  "type": {
16778
17304
  "text": "string"
16779
17305
  },
16780
- "description": "Defines the language of an element.",
16781
- "default": "{'default'}",
16782
- "fieldName": "layout",
17306
+ "fieldName": "size",
17307
+ "description": "Sets the size of the menu.",
17308
+ "default": "\"sm\"",
16783
17309
  "inheritedFrom": {
16784
17310
  "name": "AuroElement",
16785
17311
  "module": "components/layoutElement/src/auroElement.js"
16786
17312
  }
16787
17313
  },
17314
+ {
17315
+ "name": "selectAllMatchingOptions",
17316
+ "type": {
17317
+ "text": "boolean"
17318
+ },
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"
17322
+ },
16788
17323
  {
16789
17324
  "name": "shape",
16790
17325
  "type": {
16791
17326
  "text": "string"
16792
17327
  },
16793
17328
  "fieldName": "shape",
17329
+ "description": "Sets the shape of the menu.",
17330
+ "default": "\"box\"",
16794
17331
  "inheritedFrom": {
16795
17332
  "name": "AuroElement",
16796
17333
  "module": "components/layoutElement/src/auroElement.js"
16797
17334
  }
16798
17335
  },
16799
17336
  {
16800
- "name": "size",
17337
+ "name": "value",
16801
17338
  "type": {
16802
17339
  "text": "string"
16803
17340
  },
16804
- "fieldName": "size",
16805
- "inheritedFrom": {
16806
- "name": "AuroElement",
16807
- "module": "components/layoutElement/src/auroElement.js"
16808
- }
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"
16809
17343
  },
16810
17344
  {
16811
17345
  "name": "ondark",
@@ -16861,7 +17395,7 @@
16861
17395
  {
16862
17396
  "name": "name",
16863
17397
  "default": "\"auro-menuoption\"",
16864
- "description": "The name of element that you want to register to.",
17398
+ "description": "The name of the element that you want to register.",
16865
17399
  "optional": true,
16866
17400
  "type": {
16867
17401
  "text": "string"
@@ -16873,7 +17407,7 @@
16873
17407
  {
16874
17408
  "kind": "field",
16875
17409
  "name": "isActive",
16876
- "description": "Returns whether the menu option is currently active and selectable.",
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.",
16877
17411
  "return": {
16878
17412
  "type": {
16879
17413
  "text": "boolean"
@@ -16883,34 +17417,115 @@
16883
17417
  },
16884
17418
  {
16885
17419
  "kind": "method",
16886
- "name": "handleMenuChange"
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."
16887
17464
  },
16888
17465
  {
16889
17466
  "kind": "method",
16890
17467
  "name": "setSelected",
16891
17468
  "parameters": [
16892
17469
  {
16893
- "name": "value"
17470
+ "name": "isSelected",
17471
+ "description": "Whether the option should be marked as selected.",
17472
+ "type": {
17473
+ "text": "boolean"
17474
+ }
16894
17475
  }
16895
- ]
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."
16896
17479
  },
16897
17480
  {
16898
17481
  "kind": "method",
16899
17482
  "name": "updateActive",
16900
17483
  "parameters": [
16901
17484
  {
16902
- "name": "active"
17485
+ "name": "isActive",
17486
+ "description": "Whether the option should be marked as active.",
17487
+ "type": {
17488
+ "text": "boolean"
17489
+ }
16903
17490
  }
16904
- ]
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"
16905
17500
  },
16906
17501
  {
16907
17502
  "kind": "method",
16908
- "name": "attachTo"
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"
16909
17506
  },
16910
17507
  {
16911
17508
  "kind": "method",
16912
17509
  "name": "handleClick",
16913
- "description": "Handles click events on the menu option.",
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.",
16914
17529
  "privacy": "private"
16915
17530
  },
16916
17531
  {
@@ -16985,6 +17600,7 @@
16985
17600
  "type": {
16986
17601
  "text": "boolean"
16987
17602
  },
17603
+ "description": "Specifies that an option is selected.",
16988
17604
  "default": "false",
16989
17605
  "attribute": "selected",
16990
17606
  "reflects": true
@@ -16992,7 +17608,7 @@
16992
17608
  {
16993
17609
  "kind": "field",
16994
17610
  "name": "noCheckmark",
16995
- "privacy": "public",
17611
+ "privacy": "private",
16996
17612
  "type": {
16997
17613
  "text": "boolean"
16998
17614
  },
@@ -17007,6 +17623,7 @@
17007
17623
  "type": {
17008
17624
  "text": "boolean"
17009
17625
  },
17626
+ "description": "When true, disables the menu option.",
17010
17627
  "default": "false",
17011
17628
  "attribute": "disabled",
17012
17629
  "reflects": true
@@ -17018,46 +17635,101 @@
17018
17635
  "type": {
17019
17636
  "text": "boolean"
17020
17637
  },
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.",
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.",
17022
17639
  "default": "false",
17023
17640
  "attribute": "nomatch",
17024
17641
  "reflects": true
17025
17642
  },
17026
17643
  {
17027
17644
  "kind": "field",
17028
- "name": "tabIndex",
17645
+ "name": "runtimeUtils",
17646
+ "privacy": "private",
17647
+ "default": "new AuroLibraryRuntimeUtils()"
17648
+ },
17649
+ {
17650
+ "kind": "field",
17651
+ "name": "menuService",
17029
17652
  "privacy": "private",
17030
17653
  "type": {
17031
- "text": "number"
17654
+ "text": "null"
17032
17655
  },
17033
- "default": "-1",
17034
- "attribute": "tabIndex",
17035
- "reflects": true
17656
+ "default": "null",
17657
+ "attribute": "menuService"
17036
17658
  },
17037
17659
  {
17038
17660
  "kind": "field",
17039
- "name": "runtimeUtils",
17661
+ "name": "unsubscribe",
17662
+ "type": {
17663
+ "text": "null"
17664
+ },
17665
+ "default": "null"
17666
+ },
17667
+ {
17668
+ "kind": "field",
17669
+ "name": "event",
17040
17670
  "privacy": "private",
17041
- "default": "new AuroLibraryRuntimeUtils()"
17671
+ "type": {
17672
+ "text": "string"
17673
+ },
17674
+ "attribute": "event",
17675
+ "reflects": true
17042
17676
  },
17043
17677
  {
17044
17678
  "kind": "field",
17045
- "name": "value",
17679
+ "name": "layout",
17046
17680
  "privacy": "public",
17047
17681
  "type": {
17048
17682
  "text": "string"
17049
17683
  },
17050
- "attribute": "value",
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
+ }
17692
+ },
17693
+ {
17694
+ "kind": "field",
17695
+ "name": "key",
17696
+ "privacy": "public",
17697
+ "type": {
17698
+ "text": "string"
17699
+ },
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",
17051
17702
  "reflects": true
17052
17703
  },
17053
17704
  {
17054
17705
  "kind": "field",
17055
- "name": "event",
17706
+ "name": "matchWord",
17056
17707
  "privacy": "private",
17057
17708
  "type": {
17058
17709
  "text": "string"
17059
17710
  },
17060
- "attribute": "event",
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",
17061
17733
  "reflects": true
17062
17734
  },
17063
17735
  {
@@ -17100,22 +17772,6 @@
17100
17772
  "module": "components/layoutElement/src/auroElement.js"
17101
17773
  }
17102
17774
  },
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
- },
17119
17775
  {
17120
17776
  "kind": "field",
17121
17777
  "name": "onDark",
@@ -17143,78 +17799,103 @@
17143
17799
  "name": "auroMenuOption-click",
17144
17800
  "type": {
17145
17801
  "text": "CustomEvent"
17146
- },
17147
- "description": "Notifies that this option has been clicked."
17802
+ }
17148
17803
  }
17149
17804
  ],
17150
17805
  "attributes": [
17151
17806
  {
17152
- "name": "noCheckmark",
17807
+ "name": "disabled",
17153
17808
  "type": {
17154
17809
  "text": "boolean"
17155
17810
  },
17811
+ "description": "When true, disables the menu option.",
17156
17812
  "default": "false",
17157
- "fieldName": "noCheckmark"
17813
+ "fieldName": "disabled"
17158
17814
  },
17159
17815
  {
17160
- "name": "selected",
17816
+ "name": "event",
17161
17817
  "type": {
17162
- "text": "boolean"
17818
+ "text": "string"
17163
17819
  },
17164
- "default": "false",
17165
- "fieldName": "selected"
17820
+ "fieldName": "event"
17166
17821
  },
17167
17822
  {
17168
- "name": "disabled",
17823
+ "name": "layout",
17169
17824
  "type": {
17170
- "text": "boolean"
17825
+ "text": "string"
17171
17826
  },
17172
- "default": "false",
17173
- "fieldName": "disabled"
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
+ }
17174
17834
  },
17175
17835
  {
17176
- "name": "value",
17836
+ "name": "key",
17177
17837
  "type": {
17178
17838
  "text": "string"
17179
17839
  },
17180
- "fieldName": "value"
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"
17181
17842
  },
17182
17843
  {
17183
- "name": "tabIndex",
17844
+ "name": "menuService",
17184
17845
  "type": {
17185
- "text": "number"
17846
+ "text": "null"
17186
17847
  },
17187
- "default": "-1",
17188
- "fieldName": "tabIndex"
17848
+ "default": "null",
17849
+ "fieldName": "menuService"
17189
17850
  },
17190
17851
  {
17191
- "name": "event",
17852
+ "name": "matchWord",
17192
17853
  "type": {
17193
17854
  "text": "string"
17194
17855
  },
17195
- "fieldName": "event"
17856
+ "fieldName": "matchWord"
17857
+ },
17858
+ {
17859
+ "name": "noCheckmark",
17860
+ "type": {
17861
+ "text": "boolean"
17862
+ },
17863
+ "default": "false",
17864
+ "fieldName": "noCheckmark"
17196
17865
  },
17197
17866
  {
17198
17867
  "name": "nomatch",
17199
17868
  "type": {
17200
17869
  "text": "boolean"
17201
17870
  },
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.",
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.",
17203
17872
  "default": "false",
17204
17873
  "fieldName": "noMatch"
17205
17874
  },
17206
17875
  {
17207
- "name": "layout",
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",
17208
17894
  "type": {
17209
17895
  "text": "string"
17210
17896
  },
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
- }
17897
+ "description": "Specifies the value to be sent to a server.",
17898
+ "fieldName": "value"
17218
17899
  },
17219
17900
  {
17220
17901
  "name": "shape",
@@ -19720,7 +20401,7 @@
19720
20401
  "type": {
19721
20402
  "text": "object"
19722
20403
  },
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(); } }, }"
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(); } }, }"
19724
20405
  }
19725
20406
  ],
19726
20407
  "exports": [
@@ -19733,41 +20414,6 @@
19733
20414
  }
19734
20415
  }
19735
20416
  ]
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
- ]
19771
20417
  }
19772
20418
  ]
19773
20419
  }