@aurodesignsystem/auro-formkit 5.10.0 → 5.11.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 (77) hide show
  1. package/CHANGELOG.md +55 -15
  2. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +6 -0
  3. package/components/bibtemplate/dist/index.js +12 -0
  4. package/components/bibtemplate/dist/registered.js +12 -0
  5. package/components/checkbox/demo/api.min.js +3 -3
  6. package/components/checkbox/demo/index.min.js +3 -3
  7. package/components/checkbox/dist/index.js +3 -3
  8. package/components/checkbox/dist/registered.js +3 -3
  9. package/components/combobox/demo/api.min.js +1140 -305
  10. package/components/combobox/demo/index.min.js +1140 -305
  11. package/components/combobox/dist/auro-combobox.d.ts +24 -1
  12. package/components/combobox/dist/comboboxKeyboardStrategy.d.ts +6 -0
  13. package/components/combobox/dist/index.js +1082 -264
  14. package/components/combobox/dist/registered.js +1082 -264
  15. package/components/counter/demo/api.min.js +583 -172
  16. package/components/counter/demo/index.min.js +583 -172
  17. package/components/counter/dist/auro-counter.d.ts +8 -0
  18. package/components/counter/dist/buttonVersion.d.ts +1 -1
  19. package/components/counter/dist/iconVersion.d.ts +1 -1
  20. package/components/counter/dist/index.js +583 -172
  21. package/components/counter/dist/registered.js +583 -172
  22. package/components/datepicker/demo/api.md +108 -85
  23. package/components/datepicker/demo/api.min.js +872 -257
  24. package/components/datepicker/demo/index.md +18 -12
  25. package/components/datepicker/demo/index.min.js +872 -257
  26. package/components/datepicker/dist/auro-calendar.d.ts +6 -0
  27. package/components/datepicker/dist/auro-datepicker.d.ts +11 -1
  28. package/components/datepicker/dist/index.js +819 -208
  29. package/components/datepicker/dist/registered.js +819 -208
  30. package/components/dropdown/demo/api.md +15 -17
  31. package/components/dropdown/demo/api.min.js +537 -183
  32. package/components/dropdown/demo/index.min.js +537 -183
  33. package/components/dropdown/dist/auro-dropdown.d.ts +27 -1
  34. package/components/dropdown/dist/auro-dropdownBib.d.ts +87 -0
  35. package/components/dropdown/dist/index.js +514 -160
  36. package/components/dropdown/dist/keyboardUtils.d.ts +18 -0
  37. package/components/dropdown/dist/registered.js +514 -160
  38. package/components/form/README.md +47 -2
  39. package/components/form/demo/api.js +2 -0
  40. package/components/form/demo/api.md +303 -30
  41. package/components/form/demo/api.min.js +69256 -62
  42. package/components/form/demo/index.html +0 -1
  43. package/components/form/demo/index.js +1 -0
  44. package/components/form/demo/index.md +1 -275
  45. package/components/form/demo/index.min.js +69255 -62
  46. package/components/form/demo/readme.md +47 -2
  47. package/components/form/demo/working.html +123 -32
  48. package/components/form/dist/auro-form.d.ts +98 -61
  49. package/components/form/dist/index.js +135 -51
  50. package/components/form/dist/registered.js +135 -51
  51. package/components/input/demo/api.md +1 -0
  52. package/components/input/demo/api.min.js +78 -24
  53. package/components/input/demo/index.min.js +78 -24
  54. package/components/input/dist/base-input.d.ts +34 -0
  55. package/components/input/dist/index.js +78 -24
  56. package/components/input/dist/registered.js +78 -24
  57. package/components/menu/demo/api.md +4 -10
  58. package/components/menu/demo/api.min.js +18 -5
  59. package/components/menu/demo/index.min.js +18 -5
  60. package/components/menu/dist/auro-menuoption.d.ts +0 -8
  61. package/components/menu/dist/iconVersion.d.ts +1 -1
  62. package/components/menu/dist/index.js +18 -5
  63. package/components/menu/dist/registered.js +18 -5
  64. package/components/radio/demo/api.min.js +3 -3
  65. package/components/radio/demo/index.min.js +3 -3
  66. package/components/radio/dist/index.js +3 -3
  67. package/components/radio/dist/registered.js +3 -3
  68. package/components/select/demo/api.js +2 -0
  69. package/components/select/demo/api.md +333 -78
  70. package/components/select/demo/api.min.js +945 -282
  71. package/components/select/demo/index.min.js +933 -282
  72. package/components/select/dist/auro-select.d.ts +26 -0
  73. package/components/select/dist/index.js +881 -247
  74. package/components/select/dist/registered.js +881 -247
  75. package/components/select/dist/selectKeyboardStrategy.d.ts +8 -0
  76. package/custom-elements.json +596 -89
  77. package/package.json +7 -5
@@ -69,6 +69,16 @@
69
69
  }
70
70
  }
71
71
  },
72
+ {
73
+ "kind": "method",
74
+ "name": "focusCloseButton",
75
+ "description": "Focuses the close button inside the bibtemplate's shadow DOM.\nUsed by parent components to set initial focus when the fullscreen dialog opens.",
76
+ "return": {
77
+ "type": {
78
+ "text": "void"
79
+ }
80
+ }
81
+ },
72
82
  {
73
83
  "kind": "method",
74
84
  "name": "onCloseButtonClick"
@@ -1273,6 +1283,12 @@
1273
1283
  "name": "setInputFocus",
1274
1284
  "privacy": "private"
1275
1285
  },
1286
+ {
1287
+ "kind": "method",
1288
+ "name": "updateBibDialogRole",
1289
+ "description": "Suppresses or restores dialog semantics on the bib's dialog element.\nOn desktop (non-fullscreen), VoiceOver verbosely announces \"listbox inside\nof a dialog\" which disrupts combobox usage. Setting role=\"presentation\"\nsuppresses this. In fullscreen mode, dialog semantics are restored.",
1290
+ "privacy": "private"
1291
+ },
1276
1292
  {
1277
1293
  "kind": "method",
1278
1294
  "name": "updateMenuShapeSize",
@@ -1927,6 +1943,15 @@
1927
1943
  },
1928
1944
  "description": "Specifies the currently active option."
1929
1945
  },
1946
+ {
1947
+ "kind": "field",
1948
+ "name": "triggerExpandedState",
1949
+ "privacy": "private",
1950
+ "type": {
1951
+ "text": "boolean"
1952
+ },
1953
+ "description": "Deferred aria-expanded state for the trigger input.\nDelays the \"true\" transition so VoiceOver finishes its character echo\nbefore announcing \"expanded\"."
1954
+ },
1930
1955
  {
1931
1956
  "kind": "field",
1932
1957
  "name": "componentHasFocus",
@@ -2367,6 +2392,30 @@
2367
2392
  }
2368
2393
  ]
2369
2394
  },
2395
+ {
2396
+ "kind": "javascript-module",
2397
+ "path": "components/combobox/src/comboboxKeyboardStrategy.js",
2398
+ "declarations": [
2399
+ {
2400
+ "kind": "variable",
2401
+ "name": "comboboxKeyboardStrategy",
2402
+ "type": {
2403
+ "text": "object"
2404
+ },
2405
+ "default": "{ async Enter(component, evt) { // If the clear button has focus, let the browser activate it normally. const clearBtn = component.input.shadowRoot.querySelector('.clearBtn'); if (clearBtn && clearBtn.shadowRoot && clearBtn.shadowRoot.activeElement !== null) { return; } if (component.dropdown.isPopoverVisible && component.optionActive) { component.menu.makeSelection(); await component.updateComplete; evt.preventDefault(); evt.stopPropagation(); component.setClearBtnFocus(); } else { component.showBib(); } }, Tab(component) { if (!component.dropdown.isPopoverVisible) { return; } if (component.dropdown.isBibFullscreen) { const clearBtn = component.inputInBib.shadowRoot.querySelector('.clearBtn'); // Use shadowRoot.activeElement to detect focus inside auro-button, // since Safari does not propagate :focus-within through shadow DOM. const clearBtnHasFocus = clearBtn && clearBtn.shadowRoot && clearBtn.shadowRoot.activeElement !== null; // Tab from input: if clear button exists and doesn't have focus, focus it if (clearBtn && !clearBtnHasFocus && component.inputInBib.value) { // Force clear button container visible to work around Safari not // propagating :focus-within through shadow DOM boundaries, which // causes .wrapper:not(:focus-within) to hide .notification.clear. const clearContainer = clearBtn.closest('.clear'); if (clearContainer) { clearContainer.style.display = 'flex'; clearBtn.addEventListener('focusout', () => { // Delay cleanup so :focus-within settles when focus moves // to a sibling (e.g., Shift+Tab back to the input). requestAnimationFrame(() => { clearContainer.style.display = ''; }); }, { once: true }); } // Focus the native button inside auro-button so the browser // treats it as a real focusable element inside the dialog. const nativeBtn = clearBtn.shadowRoot && clearBtn.shadowRoot.querySelector('button'); if (nativeBtn) { nativeBtn.focus(); } else { clearBtn.focus(); } return; } // Tab from clear button (or no clear button / no value) → // select the highlighted option if any, then close if (component.optionActive) { component.menu.makeSelection(); } component.hideBib(); return; } // Non-fullscreen: select + close if (component.menu.optionActive && component.menu.optionActive.value) { component.menu.value = component.menu.optionActive.value; } component.hideBib(); }, ArrowUp(component, evt) { if (component.availableOptions.length > 0) { component.showBib(); } if (component.dropdown.isPopoverVisible) { evt.preventDefault(); navigateArrow(component, 'up'); } }, ArrowDown(component, evt) { if (component.availableOptions.length > 0) { component.showBib(); } if (component.dropdown.isPopoverVisible) { evt.preventDefault(); navigateArrow(component, 'down'); } }, }"
2406
+ }
2407
+ ],
2408
+ "exports": [
2409
+ {
2410
+ "kind": "js",
2411
+ "name": "comboboxKeyboardStrategy",
2412
+ "declaration": {
2413
+ "name": "comboboxKeyboardStrategy",
2414
+ "module": "components/combobox/src/comboboxKeyboardStrategy.js"
2415
+ }
2416
+ }
2417
+ ]
2418
+ },
2370
2419
  {
2371
2420
  "kind": "javascript-module",
2372
2421
  "path": "components/combobox/src/index.js",
@@ -3525,6 +3574,12 @@
3525
3574
  }
3526
3575
  ],
3527
3576
  "members": [
3577
+ {
3578
+ "kind": "field",
3579
+ "name": "shadowRootOptions",
3580
+ "static": true,
3581
+ "readonly": true
3582
+ },
3528
3583
  {
3529
3584
  "kind": "method",
3530
3585
  "name": "_initializeDefaults"
@@ -3934,7 +3989,7 @@
3934
3989
  "kind": "js",
3935
3990
  "name": "default",
3936
3991
  "declaration": {
3937
- "name": "12.3.0",
3992
+ "name": "12.3.2",
3938
3993
  "module": "components/counter/src/buttonVersion.js"
3939
3994
  }
3940
3995
  }
@@ -3949,7 +4004,7 @@
3949
4004
  "kind": "js",
3950
4005
  "name": "default",
3951
4006
  "declaration": {
3952
- "name": "9.1.0",
4007
+ "name": "9.1.2",
3953
4008
  "module": "components/counter/src/iconVersion.js"
3954
4009
  }
3955
4010
  }
@@ -4756,6 +4811,16 @@
4756
4811
  }
4757
4812
  }
4758
4813
  },
4814
+ {
4815
+ "kind": "method",
4816
+ "name": "focusCloseButton",
4817
+ "description": "Focuses the close button inside the calendar's bibtemplate.\nUsed by datepicker to set initial focus when the fullscreen dialog opens.",
4818
+ "return": {
4819
+ "type": {
4820
+ "text": "void"
4821
+ }
4822
+ }
4823
+ },
4759
4824
  {
4760
4825
  "kind": "method",
4761
4826
  "name": "scrollMonthIntoView",
@@ -5239,9 +5304,17 @@
5239
5304
  "name": "bib.fullscreen.headline"
5240
5305
  },
5241
5306
  {
5242
- "description": "Defines the content to display above selected dates in the mobile layout.",
5307
+ "description": "**DEPRECATED** - Use `bib.fullscreen.fromLabel` instead.",
5243
5308
  "name": "bib.fullscreen.dateLabel"
5244
5309
  },
5310
+ {
5311
+ "description": "Defines the content to display above the first input in the mobile layout.",
5312
+ "name": "bib.fullscreen.fromLabel"
5313
+ },
5314
+ {
5315
+ "description": "Defines the content to display above the second input in the mobile layout when `range` is true.",
5316
+ "name": "bib.fullscreen.toLabel"
5317
+ },
5245
5318
  {
5246
5319
  "description": "Defines the label content for the entire datepicker when `layout=\"snowflake\"`.",
5247
5320
  "name": "label"
@@ -5264,6 +5337,12 @@
5264
5337
  }
5265
5338
  ],
5266
5339
  "members": [
5340
+ {
5341
+ "kind": "field",
5342
+ "name": "shadowRootOptions",
5343
+ "static": true,
5344
+ "readonly": true
5345
+ },
5267
5346
  {
5268
5347
  "kind": "method",
5269
5348
  "name": "register",
@@ -6315,15 +6394,6 @@
6315
6394
  "module": "components/layoutElement/src/auroElement.js"
6316
6395
  }
6317
6396
  },
6318
- {
6319
- "kind": "field",
6320
- "name": "shadowRootOptions",
6321
- "type": {
6322
- "text": "object"
6323
- },
6324
- "privacy": "private",
6325
- "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
6326
- },
6327
6397
  {
6328
6398
  "kind": "field",
6329
6399
  "name": "centralDate",
@@ -7630,7 +7700,7 @@
7630
7700
  ],
7631
7701
  "slots": [
7632
7702
  {
7633
- "description": "Default slot for the popover content.",
7703
+ "description": "Default slot for the dropdown bib content.",
7634
7704
  "name": ""
7635
7705
  },
7636
7706
  {
@@ -7643,6 +7713,12 @@
7643
7713
  }
7644
7714
  ],
7645
7715
  "members": [
7716
+ {
7717
+ "kind": "field",
7718
+ "name": "shadowRootOptions",
7719
+ "static": true,
7720
+ "readonly": true
7721
+ },
7646
7722
  {
7647
7723
  "kind": "field",
7648
7724
  "name": "commonWrapperClasses",
@@ -7689,6 +7765,26 @@
7689
7765
  "name": "focus",
7690
7766
  "description": "When bib is open, focus on the first element inside of bib.\nIf not, trigger element will get focus."
7691
7767
  },
7768
+ {
7769
+ "kind": "method",
7770
+ "name": "setActiveDescendant",
7771
+ "parameters": [
7772
+ {
7773
+ "name": "element",
7774
+ "description": "The element to set as the active descendant, or null to clear.",
7775
+ "type": {
7776
+ "text": "HTMLElement|null"
7777
+ }
7778
+ }
7779
+ ],
7780
+ "description": "Sets the active descendant element for accessibility.\nUses ariaActiveDescendantElement to cross shadow DOM boundaries.\nThis function is used in components that contain `auro-dropdown` to set the active descendant.",
7781
+ "privacy": "private",
7782
+ "return": {
7783
+ "type": {
7784
+ "text": "void"
7785
+ }
7786
+ }
7787
+ },
7692
7788
  {
7693
7789
  "kind": "method",
7694
7790
  "name": "register",
@@ -8303,6 +8399,15 @@
8303
8399
  },
8304
8400
  "attribute": "tabIndex"
8305
8401
  },
8402
+ {
8403
+ "kind": "field",
8404
+ "name": "bibDialogLabel",
8405
+ "privacy": "private",
8406
+ "type": {
8407
+ "text": "string"
8408
+ },
8409
+ "description": "Accessible label for the dropdown bib dialog element."
8410
+ },
8306
8411
  {
8307
8412
  "kind": "field",
8308
8413
  "name": "componentHasFocus",
@@ -8673,6 +8778,61 @@
8673
8778
  "kind": "field",
8674
8779
  "name": "mobileFullscreenBreakpoint"
8675
8780
  },
8781
+ {
8782
+ "kind": "method",
8783
+ "name": "_setupCancelHandler",
8784
+ "parameters": [
8785
+ {
8786
+ "name": "dialog",
8787
+ "type": {
8788
+ "text": "HTMLDialogElement"
8789
+ }
8790
+ }
8791
+ ],
8792
+ "description": "Forwards the dialog's native `cancel` event (fired on ESC) as\nan `auro-bib-cancel` custom event so parent components can close.",
8793
+ "privacy": "private"
8794
+ },
8795
+ {
8796
+ "kind": "method",
8797
+ "name": "_setupKeyboardBridge",
8798
+ "parameters": [
8799
+ {
8800
+ "name": "dialog",
8801
+ "type": {
8802
+ "text": "HTMLDialogElement"
8803
+ }
8804
+ }
8805
+ ],
8806
+ "description": "showModal() creates a closed focus scope — keyboard events inside\nthe dialog's shadow DOM do NOT bubble out to the combobox/select\nkeydown handlers in the parent shadow DOM. This handler bridges\nthat gap by re-dispatching navigation keys so they cross the\nshadow boundary and reach the menu navigation logic in the parent\ncomponent.\n\nThe trade-off: intercepting these keys means native keyboard\nbehaviors that would normally \"just work\" must be manually\nre-implemented here:\n\n- Enter on buttons: Custom elements (auro-button) don't get the\n native Enter→click that <button> provides, so we call .click()\n directly when Enter is pressed on a button-like element.\n\n- Tab: Intercepted and re-dispatched so parent components\n (select/combobox) can select the active option and close the\n dialog. The <dialog> provides containment and isolation\n (inert background, VoiceOver focus trapping, top layer), while\n the content inside is a role=\"listbox\" navigated via\n aria-activedescendant (options are not focusable). Tab keyboard\n behavior follows listbox conventions (select + close) because\n the dialog's native Tab trap only cycles between the close\n button and browser chrome.\n\n- Escape: The native <dialog> fires a `cancel` event on ESC\n (handled by _setupCancelHandler), so the re-dispatched Escape\n is a secondary path for parent components that also listen for\n Escape keydown.",
8807
+ "privacy": "private"
8808
+ },
8809
+ {
8810
+ "kind": "method",
8811
+ "name": "_lockTouchScroll",
8812
+ "description": "Blocks touch-driven page scroll while a fullscreen modal dialog is open.\n\nThe showModal() function places the dialog in the browser's **top layer**,\nwhich is a separate rendering layer above the normal DOM. On mobile, the\ncompositor processes visual-viewport panning before top-layer touch\nhandling. This means the entire viewport — including the top-layer dialog\n— can be panned by a touch gesture, causing the page behind the dialog to\nscroll into view. To prevent this, we add a touchmove listener that cancels\nthe event if the touch started outside the dialog or any scrollable child within it.",
8813
+ "privacy": "private"
8814
+ },
8815
+ {
8816
+ "kind": "method",
8817
+ "name": "_unlockTouchScroll",
8818
+ "description": "Removes the touchmove listener added by _lockTouchScroll().",
8819
+ "privacy": "private"
8820
+ },
8821
+ {
8822
+ "kind": "method",
8823
+ "name": "open",
8824
+ "parameters": [
8825
+ {
8826
+ "name": "modal",
8827
+ "default": "true"
8828
+ }
8829
+ ]
8830
+ },
8831
+ {
8832
+ "kind": "method",
8833
+ "name": "close",
8834
+ "description": "Closes the dialog."
8835
+ },
8676
8836
  {
8677
8837
  "kind": "field",
8678
8838
  "name": "_mobileBreakpointValue",
@@ -8763,6 +8923,26 @@
8763
8923
  },
8764
8924
  "description": "A reference to the associated bib template element.",
8765
8925
  "attribute": "bibTemplate"
8926
+ },
8927
+ {
8928
+ "kind": "field",
8929
+ "name": "dialogLabel",
8930
+ "privacy": "private",
8931
+ "type": {
8932
+ "text": "string"
8933
+ },
8934
+ "description": "Accessible label for the dialog element, used when displayed as a modal.\nApplied via aria-labelledby on a visually hidden element rather than\naria-label because iOS VoiceOver does not reliably read aria-label\non <dialog> elements.",
8935
+ "attribute": "dialogLabel"
8936
+ },
8937
+ {
8938
+ "kind": "field",
8939
+ "name": "dialogRole",
8940
+ "privacy": "private",
8941
+ "type": {
8942
+ "text": "string"
8943
+ },
8944
+ "description": "Overrides the native role of the dialog element.\nFor example, set to `\"presentation\"` on desktop combobox to prevent\nVoiceOver from announcing \"listbox inside of a dialog\".\nWhen `undefined`, the dialog keeps its native role.",
8945
+ "attribute": "dialogRole"
8766
8946
  }
8767
8947
  ],
8768
8948
  "events": [
@@ -8771,6 +8951,12 @@
8771
8951
  "type": {
8772
8952
  "text": "CustomEvent"
8773
8953
  }
8954
+ },
8955
+ {
8956
+ "name": "auro-bib-cancel",
8957
+ "type": {
8958
+ "text": "CustomEvent"
8959
+ }
8774
8960
  }
8775
8961
  ],
8776
8962
  "attributes": [
@@ -8830,6 +9016,22 @@
8830
9016
  },
8831
9017
  "default": "\"rounded\"",
8832
9018
  "fieldName": "shape"
9019
+ },
9020
+ {
9021
+ "name": "dialogLabel",
9022
+ "type": {
9023
+ "text": "string"
9024
+ },
9025
+ "description": "Accessible label for the dialog element, used when displayed as a modal.\nApplied via aria-labelledby on a visually hidden element rather than\naria-label because iOS VoiceOver does not reliably read aria-label\non <dialog> elements.",
9026
+ "fieldName": "dialogLabel"
9027
+ },
9028
+ {
9029
+ "name": "dialogRole",
9030
+ "type": {
9031
+ "text": "string"
9032
+ },
9033
+ "description": "Overrides the native role of the dialog element.\nFor example, set to `\"presentation\"` on desktop combobox to prevent\nVoiceOver from announcing \"listbox inside of a dialog\".\nWhen `undefined`, the dialog keeps its native role.",
9034
+ "fieldName": "dialogRole"
8833
9035
  }
8834
9036
  ],
8835
9037
  "superclass": {
@@ -8880,6 +9082,81 @@
8880
9082
  }
8881
9083
  ]
8882
9084
  },
9085
+ {
9086
+ "kind": "javascript-module",
9087
+ "path": "components/dropdown/src/keyboardUtils.js",
9088
+ "declarations": [
9089
+ {
9090
+ "kind": "function",
9091
+ "name": "applyKeyboardStrategy",
9092
+ "parameters": [
9093
+ {
9094
+ "name": "component",
9095
+ "description": "The component to attach the listener to.",
9096
+ "type": {
9097
+ "text": "HTMLElement"
9098
+ }
9099
+ },
9100
+ {
9101
+ "name": "strategy",
9102
+ "description": "Map of key names to handler functions.",
9103
+ "type": {
9104
+ "text": "Object"
9105
+ }
9106
+ }
9107
+ ],
9108
+ "description": "Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.\nHandles both sync and async handlers."
9109
+ },
9110
+ {
9111
+ "kind": "function",
9112
+ "name": "navigateArrow",
9113
+ "parameters": [
9114
+ {
9115
+ "name": "component",
9116
+ "description": "The component with dropdown and menu references.",
9117
+ "type": {
9118
+ "text": "HTMLElement"
9119
+ }
9120
+ },
9121
+ {
9122
+ "name": "direction",
9123
+ "description": "'up' or 'down'.",
9124
+ "type": {
9125
+ "text": "string"
9126
+ }
9127
+ },
9128
+ {
9129
+ "name": "options",
9130
+ "default": "{}",
9131
+ "description": "Optional config.",
9132
+ "optional": true,
9133
+ "type": {
9134
+ "text": "@param {Function} [options.showFn] - Called to open the dropdown when closed.\n "
9135
+ }
9136
+ }
9137
+ ],
9138
+ "description": "Shared arrow navigation. Calls menu.navigateOptions(direction) if visible.\nOptionally opens dropdown via showFn when closed."
9139
+ }
9140
+ ],
9141
+ "exports": [
9142
+ {
9143
+ "kind": "js",
9144
+ "name": "applyKeyboardStrategy",
9145
+ "declaration": {
9146
+ "name": "applyKeyboardStrategy",
9147
+ "module": "components/dropdown/src/keyboardUtils.js"
9148
+ }
9149
+ },
9150
+ {
9151
+ "kind": "js",
9152
+ "name": "navigateArrow",
9153
+ "declaration": {
9154
+ "name": "navigateArrow",
9155
+ "module": "components/dropdown/src/keyboardUtils.js"
9156
+ }
9157
+ }
9158
+ ]
9159
+ },
8883
9160
  {
8884
9161
  "kind": "javascript-module",
8885
9162
  "path": "components/dropdown/src/registered.js",
@@ -8978,7 +9255,8 @@
8978
9255
  "type": {
8979
9256
  "text": "boolean"
8980
9257
  }
8981
- }
9258
+ },
9259
+ "privacy": "private"
8982
9260
  },
8983
9261
  {
8984
9262
  "kind": "method",
@@ -9023,12 +9301,13 @@
9023
9301
  "type": {
9024
9302
  "text": "boolean"
9025
9303
  }
9026
- }
9304
+ },
9305
+ "privacy": "private"
9027
9306
  },
9028
9307
  {
9029
9308
  "kind": "field",
9030
9309
  "name": "value",
9031
- "description": "Reduce the form value into a key-value pair.\n\nNOTE: form keys use `name` first, and `id` second if `name` is not available.\nThis follows standard HTML5 form behavior - submission uses `name` by default when creating\nthe FormData object.",
9310
+ "description": "Returns the current values of all named form elements as a key-value object, keyed by each element's `name` attribute.",
9032
9311
  "return": {
9033
9312
  "type": {
9034
9313
  "text": "Record<string, string | number | boolean | string[] | null>"
@@ -9045,6 +9324,7 @@
9045
9324
  "text": "HTMLButtonElement[]"
9046
9325
  }
9047
9326
  },
9327
+ "privacy": "private",
9048
9328
  "readonly": true
9049
9329
  },
9050
9330
  {
@@ -9056,6 +9336,7 @@
9056
9336
  "text": "HTMLButtonElement[]"
9057
9337
  }
9058
9338
  },
9339
+ "privacy": "private",
9059
9340
  "readonly": true
9060
9341
  },
9061
9342
  {
@@ -9067,22 +9348,29 @@
9067
9348
  {
9068
9349
  "kind": "field",
9069
9350
  "name": "validity",
9070
- "description": "Current validity state of the form, based on form element events.",
9351
+ "description": "Returns `'valid'` if all required and interacted-with form elements are valid, `'invalid'` if any are not, or `null` if the form has not been interacted with yet.",
9071
9352
  "return": {
9072
9353
  "type": {
9073
- "text": "\"valid\" | \"invalid\""
9354
+ "text": "\"valid\" | \"invalid\" | null"
9074
9355
  }
9075
9356
  },
9076
9357
  "readonly": true
9077
9358
  },
9078
9359
  {
9079
9360
  "kind": "method",
9080
- "name": "_setInitialState"
9361
+ "name": "_setInitialState",
9362
+ "description": "Determines whether the form is in its initial (untouched) state and updates `_isInitialState` accordingly.",
9363
+ "return": {
9364
+ "type": {
9365
+ "text": "void"
9366
+ }
9367
+ },
9368
+ "privacy": "private"
9081
9369
  },
9082
9370
  {
9083
9371
  "kind": "field",
9084
9372
  "name": "isInitialState",
9085
- "description": "Mostly internal way to determine if a form is in the initial state.",
9373
+ "description": "Returns `true` if no form element has been interacted with or had its value changed since the form was initialized or last reset.",
9086
9374
  "return": {
9087
9375
  "type": {
9088
9376
  "text": "boolean"
@@ -9092,7 +9380,14 @@
9092
9380
  },
9093
9381
  {
9094
9382
  "kind": "method",
9095
- "name": "setDisabledStateOnButtons"
9383
+ "name": "setDisabledStateOnButtons",
9384
+ "description": "Enables or disables submit and reset buttons based on the current form state and validity.",
9385
+ "return": {
9386
+ "type": {
9387
+ "text": "void"
9388
+ }
9389
+ },
9390
+ "privacy": "private"
9096
9391
  },
9097
9392
  {
9098
9393
  "kind": "method",
@@ -9102,7 +9397,8 @@
9102
9397
  "type": {
9103
9398
  "text": "NodeList"
9104
9399
  }
9105
- }
9400
+ },
9401
+ "privacy": "private"
9106
9402
  },
9107
9403
  {
9108
9404
  "kind": "method",
@@ -9122,17 +9418,33 @@
9122
9418
  {
9123
9419
  "kind": "method",
9124
9420
  "name": "initializeState",
9125
- "description": "Initialize (or reinitialize) the form state."
9421
+ "description": "Initialize (or reinitialize) the form state.",
9422
+ "return": {
9423
+ "type": {
9424
+ "text": "void"
9425
+ }
9426
+ },
9427
+ "privacy": "private"
9126
9428
  },
9127
9429
  {
9128
9430
  "kind": "method",
9129
9431
  "name": "reset",
9130
- "description": "Reset fires an event called `reset` - just as you would expect from a normal form."
9432
+ "description": "Resets all form elements to their initial state and fires a `reset` event. The event's `detail.previousValue` contains the form values captured immediately before the reset.",
9433
+ "return": {
9434
+ "type": {
9435
+ "text": "void"
9436
+ }
9437
+ }
9131
9438
  },
9132
9439
  {
9133
9440
  "kind": "method",
9134
9441
  "name": "submit",
9135
- "description": "Submit fires an event called `submit` - just as you would expect from a normal form."
9442
+ "description": "Validates all form elements. If all are valid, fires a `submit` event with `detail.value` containing the current form values. If any element is invalid, its error state is surfaced and the `submit` event is not fired.",
9443
+ "return": {
9444
+ "type": {
9445
+ "text": "Promise<void>"
9446
+ }
9447
+ }
9136
9448
  },
9137
9449
  {
9138
9450
  "kind": "method",
@@ -9142,14 +9454,14 @@
9142
9454
  {
9143
9455
  "name": "name",
9144
9456
  "default": "\"auro-form\"",
9145
- "description": "The name of element that you want to register to.",
9457
+ "description": "The custom element tag name to register.",
9146
9458
  "optional": true,
9147
9459
  "type": {
9148
9460
  "text": "string"
9149
9461
  }
9150
9462
  }
9151
9463
  ],
9152
- "description": "This will register this element with the browser."
9464
+ "description": "Registers the `auro-form` custom element with the browser under a given tag name."
9153
9465
  },
9154
9466
  {
9155
9467
  "kind": "method",
@@ -9183,18 +9495,40 @@
9183
9495
  },
9184
9496
  {
9185
9497
  "kind": "method",
9186
- "name": "_attachEventListeners"
9498
+ "name": "handleKeyDown",
9499
+ "parameters": [
9500
+ {
9501
+ "name": "event",
9502
+ "description": "The keyboard event.",
9503
+ "type": {
9504
+ "text": "KeyboardEvent"
9505
+ }
9506
+ }
9507
+ ],
9508
+ "description": "Handle Enter key press on form elements.",
9509
+ "privacy": "private"
9510
+ },
9511
+ {
9512
+ "kind": "method",
9513
+ "name": "_attachEventListeners",
9514
+ "description": "Attaches input, validation, and keydown listeners to all tracked form and button elements.\nRemoves existing listeners first to avoid duplicates on re-initialization.",
9515
+ "return": {
9516
+ "type": {
9517
+ "text": "void"
9518
+ }
9519
+ },
9520
+ "privacy": "private"
9187
9521
  },
9188
9522
  {
9189
9523
  "kind": "method",
9190
9524
  "name": "mutationEventListener",
9191
9525
  "description": "Mutation observer for form elements. Slot change does not trigger unless\nroot-level elements are added/removed. This is a workaround to ensure\nnested form elements are also observed.",
9192
- "privacy": "private",
9193
9526
  "return": {
9194
9527
  "type": {
9195
9528
  "text": "void"
9196
9529
  }
9197
- }
9530
+ },
9531
+ "privacy": "private"
9198
9532
  },
9199
9533
  {
9200
9534
  "kind": "method",
@@ -9213,12 +9547,13 @@
9213
9547
  "type": {
9214
9548
  "text": "void"
9215
9549
  }
9216
- }
9550
+ },
9551
+ "privacy": "private"
9217
9552
  },
9218
9553
  {
9219
9554
  "kind": "field",
9220
9555
  "name": "formState",
9221
- "privacy": "public",
9556
+ "privacy": "private",
9222
9557
  "type": {
9223
9558
  "text": "FormState"
9224
9559
  },
@@ -9227,7 +9562,7 @@
9227
9562
  {
9228
9563
  "kind": "field",
9229
9564
  "name": "_validity",
9230
- "privacy": "public",
9565
+ "privacy": "private",
9231
9566
  "type": {
9232
9567
  "text": "\"valid\" | \"invalid\" | null"
9233
9568
  },
@@ -9236,7 +9571,7 @@
9236
9571
  {
9237
9572
  "kind": "field",
9238
9573
  "name": "_isInitialState",
9239
- "privacy": "public",
9574
+ "privacy": "private",
9240
9575
  "type": {
9241
9576
  "text": "boolean"
9242
9577
  },
@@ -9245,7 +9580,7 @@
9245
9580
  {
9246
9581
  "kind": "field",
9247
9582
  "name": "_elements",
9248
- "privacy": "public",
9583
+ "privacy": "private",
9249
9584
  "type": {
9250
9585
  "text": "(HTMLElement & {reset: () => void})[]"
9251
9586
  },
@@ -9257,12 +9592,13 @@
9257
9592
  "type": {
9258
9593
  "text": "HTMLButtonElement[]"
9259
9594
  },
9595
+ "privacy": "private",
9260
9596
  "default": "[]"
9261
9597
  },
9262
9598
  {
9263
9599
  "kind": "field",
9264
9600
  "name": "_resetElements",
9265
- "privacy": "public",
9601
+ "privacy": "private",
9266
9602
  "type": {
9267
9603
  "text": "HTMLButtonElement[]"
9268
9604
  },
@@ -9277,31 +9613,10 @@
9277
9613
  "privacy": "private",
9278
9614
  "default": "[]"
9279
9615
  },
9280
- {
9281
- "kind": "field",
9282
- "name": "cssClass",
9283
- "privacy": "public",
9284
- "type": {
9285
- "text": "boolean"
9286
- },
9287
- "description": "Applies designated CSS class to demo element - you want to delete me!",
9288
- "attribute": "cssClass"
9289
- },
9290
- {
9291
- "kind": "field",
9292
- "name": "fixed",
9293
- "privacy": "public",
9294
- "type": {
9295
- "text": "boolean"
9296
- },
9297
- "description": "If declared, use fixed pixel values for element shape.",
9298
- "attribute": "fixed",
9299
- "reflects": true
9300
- },
9301
9616
  {
9302
9617
  "kind": "field",
9303
9618
  "name": "_submitElements",
9304
- "privacy": "public",
9619
+ "privacy": "private",
9305
9620
  "type": {
9306
9621
  "text": "array"
9307
9622
  }
@@ -9313,37 +9628,25 @@
9313
9628
  "type": {
9314
9629
  "text": "Event"
9315
9630
  },
9316
- "description": "Fires when form state changes."
9631
+ "description": "Fires when a child form element's value changes or the form is initialized."
9317
9632
  },
9318
9633
  {
9319
9634
  "name": "reset",
9320
9635
  "type": {
9321
9636
  "text": "CustomEvent"
9322
- }
9637
+ },
9638
+ "description": "Fires when the form is reset. The event detail contains the previous value of the form before reset."
9323
9639
  },
9324
9640
  {
9325
9641
  "name": "submit",
9326
9642
  "type": {
9327
9643
  "text": "CustomEvent"
9328
- }
9329
- }
9330
- ],
9331
- "attributes": [
9332
- {
9333
- "name": "cssClass",
9334
- "type": {
9335
- "text": "boolean"
9336
9644
  },
9337
- "description": "Applies designated CSS class to demo element - you want to delete me!",
9338
- "fieldName": "cssClass"
9645
+ "description": "Fires when the form is submitted. The event detail contains the current value of the form."
9339
9646
  },
9340
9647
  {
9341
- "name": "fixed",
9342
- "type": {
9343
- "text": "boolean"
9344
- },
9345
- "description": "If declared, use fixed pixel values for element shape.",
9346
- "fieldName": "fixed"
9648
+ "description": "Fires when a child form element receives user input.",
9649
+ "name": "input"
9347
9650
  }
9348
9651
  ],
9349
9652
  "superclass": {
@@ -9987,6 +10290,16 @@
9987
10290
  "name": "iconTag",
9988
10291
  "privacy": "private"
9989
10292
  },
10293
+ {
10294
+ "kind": "field",
10295
+ "name": "shadowRootOptions",
10296
+ "static": true,
10297
+ "readonly": true,
10298
+ "inheritedFrom": {
10299
+ "name": "BaseInput",
10300
+ "module": "components/input/src/base-input.js"
10301
+ }
10302
+ },
9990
10303
  {
9991
10304
  "kind": "method",
9992
10305
  "name": "_initializeDefaults",
@@ -10259,6 +10572,30 @@
10259
10572
  "module": "components/input/src/base-input.js"
10260
10573
  }
10261
10574
  },
10575
+ {
10576
+ "kind": "method",
10577
+ "name": "setActiveDescendant",
10578
+ "parameters": [
10579
+ {
10580
+ "name": "element",
10581
+ "description": "The element to set as the active descendant, or null to clear.",
10582
+ "type": {
10583
+ "text": "HTMLElement|null"
10584
+ }
10585
+ }
10586
+ ],
10587
+ "description": "Sets the active descendant element for accessibility.\nUses ariaActiveDescendantElement to cross shadow DOM boundaries.\nThis function is used in components that contain `auro-input` to set the active descendant.",
10588
+ "privacy": "private",
10589
+ "return": {
10590
+ "type": {
10591
+ "text": "void"
10592
+ }
10593
+ },
10594
+ "inheritedFrom": {
10595
+ "name": "BaseInput",
10596
+ "module": "components/input/src/base-input.js"
10597
+ }
10598
+ },
10262
10599
  {
10263
10600
  "kind": "method",
10264
10601
  "name": "validate",
@@ -10492,6 +10829,21 @@
10492
10829
  "module": "components/input/src/base-input.js"
10493
10830
  }
10494
10831
  },
10832
+ {
10833
+ "kind": "field",
10834
+ "name": "a11yActivedescendant",
10835
+ "privacy": "public",
10836
+ "type": {
10837
+ "text": "string"
10838
+ },
10839
+ "description": "The value for the aria-activedescendant attribute.\nPoints to the ID of the currently active/highlighted option in a listbox.",
10840
+ "attribute": "a11yActivedescendant",
10841
+ "reflects": true,
10842
+ "inheritedFrom": {
10843
+ "name": "BaseInput",
10844
+ "module": "components/input/src/base-input.js"
10845
+ }
10846
+ },
10495
10847
  {
10496
10848
  "kind": "field",
10497
10849
  "name": "activeLabel",
@@ -10682,6 +11034,21 @@
10682
11034
  "module": "components/input/src/base-input.js"
10683
11035
  }
10684
11036
  },
11037
+ {
11038
+ "kind": "field",
11039
+ "name": "hideLabelVisually",
11040
+ "privacy": "private",
11041
+ "type": {
11042
+ "text": "boolean"
11043
+ },
11044
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
11045
+ "attribute": "hideLabelVisually",
11046
+ "reflects": true,
11047
+ "inheritedFrom": {
11048
+ "name": "BaseInput",
11049
+ "module": "components/input/src/base-input.js"
11050
+ }
11051
+ },
10685
11052
  {
10686
11053
  "kind": "field",
10687
11054
  "name": "icon",
@@ -11298,6 +11665,18 @@
11298
11665
  "module": "components/input/src/base-input.js"
11299
11666
  }
11300
11667
  },
11668
+ {
11669
+ "name": "a11yActivedescendant",
11670
+ "type": {
11671
+ "text": "string"
11672
+ },
11673
+ "description": "The value for the aria-activedescendant attribute.\nPoints to the ID of the currently active/highlighted option in a listbox.",
11674
+ "fieldName": "a11yActivedescendant",
11675
+ "inheritedFrom": {
11676
+ "name": "BaseInput",
11677
+ "module": "components/input/src/base-input.js"
11678
+ }
11679
+ },
11301
11680
  {
11302
11681
  "name": "activeLabel",
11303
11682
  "type": {
@@ -11431,6 +11810,18 @@
11431
11810
  "module": "components/input/src/base-input.js"
11432
11811
  }
11433
11812
  },
11813
+ {
11814
+ "name": "hideLabelVisually",
11815
+ "type": {
11816
+ "text": "boolean"
11817
+ },
11818
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
11819
+ "fieldName": "hideLabelVisually",
11820
+ "inheritedFrom": {
11821
+ "name": "BaseInput",
11822
+ "module": "components/input/src/base-input.js"
11823
+ }
11824
+ },
11434
11825
  {
11435
11826
  "name": "icon",
11436
11827
  "type": {
@@ -11909,6 +12300,12 @@
11909
12300
  "description": "Base class for auro-input component that provides core input functionality.",
11910
12301
  "name": "BaseInput",
11911
12302
  "members": [
12303
+ {
12304
+ "kind": "field",
12305
+ "name": "shadowRootOptions",
12306
+ "static": true,
12307
+ "readonly": true
12308
+ },
11912
12309
  {
11913
12310
  "kind": "method",
11914
12311
  "name": "_initializeDefaults",
@@ -12117,6 +12514,26 @@
12117
12514
  }
12118
12515
  }
12119
12516
  },
12517
+ {
12518
+ "kind": "method",
12519
+ "name": "setActiveDescendant",
12520
+ "parameters": [
12521
+ {
12522
+ "name": "element",
12523
+ "description": "The element to set as the active descendant, or null to clear.",
12524
+ "type": {
12525
+ "text": "HTMLElement|null"
12526
+ }
12527
+ }
12528
+ ],
12529
+ "description": "Sets the active descendant element for accessibility.\nUses ariaActiveDescendantElement to cross shadow DOM boundaries.\nThis function is used in components that contain `auro-input` to set the active descendant.",
12530
+ "privacy": "private",
12531
+ "return": {
12532
+ "type": {
12533
+ "text": "void"
12534
+ }
12535
+ }
12536
+ },
12120
12537
  {
12121
12538
  "kind": "method",
12122
12539
  "name": "validate",
@@ -12290,6 +12707,17 @@
12290
12707
  "attribute": "a11yExpanded",
12291
12708
  "reflects": true
12292
12709
  },
12710
+ {
12711
+ "kind": "field",
12712
+ "name": "a11yActivedescendant",
12713
+ "privacy": "public",
12714
+ "type": {
12715
+ "text": "string"
12716
+ },
12717
+ "description": "The value for the aria-activedescendant attribute.\nPoints to the ID of the currently active/highlighted option in a listbox.",
12718
+ "attribute": "a11yActivedescendant",
12719
+ "reflects": true
12720
+ },
12293
12721
  {
12294
12722
  "kind": "field",
12295
12723
  "name": "activeLabel",
@@ -12428,6 +12856,17 @@
12428
12856
  },
12429
12857
  "description": "Flag to indicate if the input currently has value."
12430
12858
  },
12859
+ {
12860
+ "kind": "field",
12861
+ "name": "hideLabelVisually",
12862
+ "privacy": "private",
12863
+ "type": {
12864
+ "text": "boolean"
12865
+ },
12866
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
12867
+ "attribute": "hideLabelVisually",
12868
+ "reflects": true
12869
+ },
12431
12870
  {
12432
12871
  "kind": "field",
12433
12872
  "name": "icon",
@@ -12910,6 +13349,14 @@
12910
13349
  "description": "The value for the aria-expanded attribute.",
12911
13350
  "fieldName": "a11yExpanded"
12912
13351
  },
13352
+ {
13353
+ "name": "a11yActivedescendant",
13354
+ "type": {
13355
+ "text": "string"
13356
+ },
13357
+ "description": "The value for the aria-activedescendant attribute.\nPoints to the ID of the currently active/highlighted option in a listbox.",
13358
+ "fieldName": "a11yActivedescendant"
13359
+ },
12913
13360
  {
12914
13361
  "name": "activeLabel",
12915
13362
  "type": {
@@ -12999,6 +13446,14 @@
12999
13446
  "description": "Specifies the input mask format.",
13000
13447
  "fieldName": "format"
13001
13448
  },
13449
+ {
13450
+ "name": "hideLabelVisually",
13451
+ "type": {
13452
+ "text": "boolean"
13453
+ },
13454
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
13455
+ "fieldName": "hideLabelVisually"
13456
+ },
13002
13457
  {
13003
13458
  "name": "icon",
13004
13459
  "type": {
@@ -15200,14 +15655,8 @@
15200
15655
  "declarations": [
15201
15656
  {
15202
15657
  "kind": "class",
15203
- "description": "The `auro-menuoption` element provides users a way to define a menu option.",
15658
+ "description": "",
15204
15659
  "name": "AuroMenuOption",
15205
- "slots": [
15206
- {
15207
- "description": "The default slot for the menu option text.",
15208
- "name": "default"
15209
- }
15210
- ],
15211
15660
  "members": [
15212
15661
  {
15213
15662
  "kind": "method",
@@ -15602,8 +16051,7 @@
15602
16051
  "name": "auroMenuOption-mouseover",
15603
16052
  "type": {
15604
16053
  "text": "CustomEvent"
15605
- },
15606
- "description": "Notifies that this option has been hovered over."
16054
+ }
15607
16055
  },
15608
16056
  {
15609
16057
  "name": "auroMenuOption-click",
@@ -15735,9 +16183,7 @@
15735
16183
  "superclass": {
15736
16184
  "name": "AuroElement",
15737
16185
  "module": "/components/layoutElement/src/auroElement.js"
15738
- },
15739
- "tagName": "auro-menuoption",
15740
- "customElement": true
16186
+ }
15741
16187
  }
15742
16188
  ],
15743
16189
  "exports": [
@@ -15760,7 +16206,7 @@
15760
16206
  "kind": "js",
15761
16207
  "name": "default",
15762
16208
  "declaration": {
15763
- "name": "9.1.0",
16209
+ "name": "9.1.2",
15764
16210
  "module": "components/menu/src/iconVersion.js"
15765
16211
  }
15766
16212
  }
@@ -17022,6 +17468,17 @@
17022
17468
  "description": "Update menu to default for fullscreen bib, otherwise to this.size and this.shape.",
17023
17469
  "privacy": "private"
17024
17470
  },
17471
+ {
17472
+ "kind": "method",
17473
+ "name": "updateOptionPositions",
17474
+ "description": "Sets aria-setsize and aria-posinset on each menu option so screen readers\ncan announce position even when the listbox context is broken by\nshadow DOM boundaries.",
17475
+ "privacy": "private",
17476
+ "return": {
17477
+ "type": {
17478
+ "text": "void"
17479
+ }
17480
+ }
17481
+ },
17025
17482
  {
17026
17483
  "kind": "method",
17027
17484
  "name": "configureMenu",
@@ -17044,6 +17501,20 @@
17044
17501
  }
17045
17502
  }
17046
17503
  },
17504
+ {
17505
+ "kind": "method",
17506
+ "name": "updateActiveOption",
17507
+ "parameters": [
17508
+ {
17509
+ "name": "index",
17510
+ "description": "Index of the option to make active.",
17511
+ "type": {
17512
+ "text": "number"
17513
+ }
17514
+ }
17515
+ ],
17516
+ "description": "Updates the active option in the menu."
17517
+ },
17047
17518
  {
17048
17519
  "kind": "method",
17049
17520
  "name": "updateActiveOptionBasedOnKey",
@@ -17164,6 +17635,18 @@
17164
17635
  }
17165
17636
  ]
17166
17637
  },
17638
+ {
17639
+ "kind": "method",
17640
+ "name": "scrollActiveOptionIntoView",
17641
+ "description": "Scrolls the currently active option into view.\nRespects user's motion preferences for accessibility.",
17642
+ "privacy": "private"
17643
+ },
17644
+ {
17645
+ "kind": "method",
17646
+ "name": "scrollSelectedOptionIntoView",
17647
+ "description": "Scrolls the currently selected option into view.\nRespects user's motion preferences for accessibility.",
17648
+ "privacy": "private"
17649
+ },
17167
17650
  {
17168
17651
  "kind": "method",
17169
17652
  "name": "reset",
@@ -18143,6 +18626,30 @@
18143
18626
  "path": "components/select/src/registered.js",
18144
18627
  "declarations": [],
18145
18628
  "exports": []
18629
+ },
18630
+ {
18631
+ "kind": "javascript-module",
18632
+ "path": "components/select/src/selectKeyboardStrategy.js",
18633
+ "declarations": [
18634
+ {
18635
+ "kind": "variable",
18636
+ "name": "selectKeyboardStrategy",
18637
+ "type": {
18638
+ "text": "object"
18639
+ },
18640
+ "default": "{ ArrowUp(component, evt) { evt.preventDefault(); navigateArrow(component, 'up', { showFn: () => component.dropdown.show() }); }, ArrowDown(component, evt) { evt.preventDefault(); navigateArrow(component, 'down', { showFn: () => component.dropdown.show() }); }, Enter(component, evt) { evt.preventDefault(); component.menu.makeSelection(); }, Tab(component) { if (!component.dropdown.isPopoverVisible) { return; } // Tab selects the focused option and closes the popup per the // WAI-ARIA APG select-only combobox / listbox pattern. if (component.optionActive && !component.multiSelect) { component.menu.makeSelection(); } component.dropdown.hide(); }, default(component, evt) { component.updateActiveOptionBasedOnKey(evt.key); }, }"
18641
+ }
18642
+ ],
18643
+ "exports": [
18644
+ {
18645
+ "kind": "js",
18646
+ "name": "selectKeyboardStrategy",
18647
+ "declaration": {
18648
+ "name": "selectKeyboardStrategy",
18649
+ "module": "components/select/src/selectKeyboardStrategy.js"
18650
+ }
18651
+ }
18652
+ ]
18146
18653
  }
18147
18654
  ]
18148
18655
  }