@aurodesignsystem-dev/auro-formkit 0.0.0-pr1507.0 → 0.0.0-pr1508.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 (148) hide show
  1. package/components/bibtemplate/dist/index.js +1 -1
  2. package/components/bibtemplate/dist/registered.js +1 -1
  3. package/components/checkbox/demo/customize.html +1 -2
  4. package/components/checkbox/demo/customize.min.js +8 -6
  5. package/components/checkbox/demo/getting-started.min.js +8 -6
  6. package/components/checkbox/demo/index.min.js +8 -6
  7. package/components/checkbox/dist/index.js +8 -6
  8. package/components/checkbox/dist/registered.js +8 -6
  9. package/components/combobox/demo/customize.html +1 -2
  10. package/components/combobox/demo/customize.md +105 -137
  11. package/components/combobox/demo/customize.min.js +506 -568
  12. package/components/combobox/demo/getting-started.min.js +506 -564
  13. package/components/combobox/demo/index.min.js +506 -564
  14. package/components/combobox/demo/keyboard-behavior.md +2 -142
  15. package/components/combobox/demo/why-combobox.md +1 -1
  16. package/components/combobox/dist/auro-combobox.d.ts +30 -14
  17. package/components/combobox/dist/index.js +505 -563
  18. package/components/combobox/dist/registered.js +505 -563
  19. package/components/counter/demo/customize.min.js +26 -8
  20. package/components/counter/demo/index.min.js +26 -8
  21. package/components/counter/dist/index.js +26 -8
  22. package/components/counter/dist/registered.js +26 -8
  23. package/components/datepicker/demo/accessibility.md +2 -1
  24. package/components/datepicker/demo/api.md +65 -62
  25. package/components/datepicker/demo/customize.md +150 -39
  26. package/components/datepicker/demo/customize.min.js +988 -500
  27. package/components/datepicker/demo/index.min.js +988 -482
  28. package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +20 -3
  29. package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +121 -7
  30. package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +80 -5
  31. package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
  32. package/components/datepicker/dist/index.js +988 -482
  33. package/components/datepicker/dist/registered.js +988 -482
  34. package/components/dropdown/demo/customize.min.js +10 -1
  35. package/components/dropdown/demo/getting-started.min.js +10 -1
  36. package/components/dropdown/demo/index.min.js +10 -1
  37. package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
  38. package/components/dropdown/dist/index.js +10 -1
  39. package/components/dropdown/dist/registered.js +10 -1
  40. package/components/form/demo/customize.html +6 -6
  41. package/components/form/demo/customize.md +203 -51
  42. package/components/form/demo/customize.min.js +2357 -1419
  43. package/components/form/demo/getting-started.min.js +2285 -1419
  44. package/components/form/demo/index.min.js +2285 -1419
  45. package/components/form/demo/registerDemoDeps.min.js +1922 -1382
  46. package/components/form/dist/auro-form.d.ts +122 -4
  47. package/components/form/dist/index.js +363 -37
  48. package/components/form/dist/registered.js +363 -37
  49. package/components/input/demo/api.md +5 -5
  50. package/components/input/demo/customize.html +1 -2
  51. package/components/input/demo/customize.md +62 -61
  52. package/components/input/demo/customize.min.js +177 -241
  53. package/components/input/demo/getting-started.min.js +177 -241
  54. package/components/input/demo/index.min.js +177 -241
  55. package/components/input/dist/base-input.d.ts +34 -93
  56. package/components/input/dist/index.js +190 -242
  57. package/components/input/dist/registered.js +177 -241
  58. package/components/radio/demo/customize.min.js +8 -6
  59. package/components/radio/demo/getting-started.min.js +8 -6
  60. package/components/radio/demo/index.min.js +8 -6
  61. package/components/radio/dist/index.js +8 -6
  62. package/components/radio/dist/registered.js +8 -6
  63. package/components/select/demo/customize.html +1 -2
  64. package/components/select/demo/customize.md +86 -0
  65. package/components/select/demo/customize.min.js +202 -68
  66. package/components/select/demo/getting-started.min.js +204 -115
  67. package/components/select/demo/index.min.js +202 -68
  68. package/components/select/demo/keyboard-behavior.md +18 -4
  69. package/components/select/dist/auro-select.d.ts +20 -8
  70. package/components/select/dist/index.js +202 -68
  71. package/components/select/dist/registered.js +202 -68
  72. package/custom-elements.json +1035 -604
  73. package/package.json +6 -2
  74. package/components/checkbox/demo/customize.js +0 -22
  75. package/components/checkbox/demo/demo-support.js +0 -1
  76. package/components/checkbox/demo/getting-started.js +0 -22
  77. package/components/checkbox/demo/index.js +0 -8
  78. package/components/checkbox/demo/styles.scss +0 -1
  79. package/components/combobox/demo/customize.js +0 -24
  80. package/components/combobox/demo/demo-support.js +0 -1
  81. package/components/combobox/demo/getting-started.js +0 -21
  82. package/components/combobox/demo/index.js +0 -23
  83. package/components/combobox/demo/styles.scss +0 -1
  84. package/components/counter/demo/customize.js +0 -21
  85. package/components/counter/demo/demo-support.js +0 -1
  86. package/components/counter/demo/index.js +0 -21
  87. package/components/counter/demo/styles.scss +0 -1
  88. package/components/datepicker/demo/customize.js +0 -19
  89. package/components/datepicker/demo/demo-support.js +0 -1
  90. package/components/datepicker/demo/index.js +0 -23
  91. package/components/datepicker/demo/styles.scss +0 -1
  92. package/components/dropdown/demo/customize.js +0 -9
  93. package/components/dropdown/demo/demo-support.js +0 -1
  94. package/components/dropdown/demo/getting-started.js +0 -9
  95. package/components/dropdown/demo/index.js +0 -16
  96. package/components/dropdown/demo/styles.scss +0 -1
  97. package/components/form/demo/customize.js +0 -9
  98. package/components/form/demo/demo-support.js +0 -1
  99. package/components/form/demo/getting-started.js +0 -9
  100. package/components/form/demo/index.js +0 -5
  101. package/components/form/demo/registerDemoDeps.js +0 -23
  102. package/components/form/demo/styles.scss +0 -1
  103. package/components/input/demo/customize.js +0 -25
  104. package/components/input/demo/demo-support.js +0 -1
  105. package/components/input/demo/getting-started.js +0 -8
  106. package/components/input/demo/index.js +0 -8
  107. package/components/input/demo/styles.css +0 -974
  108. package/components/input/demo/styles.scss +0 -1
  109. package/components/menu/demo/demo-support.js +0 -1
  110. package/components/menu/demo/index.js +0 -25
  111. package/components/menu/demo/styles.scss +0 -1
  112. package/components/radio/demo/customize.js +0 -22
  113. package/components/radio/demo/demo-support.js +0 -1
  114. package/components/radio/demo/getting-started.js +0 -24
  115. package/components/radio/demo/index.js +0 -8
  116. package/components/radio/demo/styles.scss +0 -1
  117. package/components/select/demo/customize.js +0 -11
  118. package/components/select/demo/demo-support.js +0 -1
  119. package/components/select/demo/getting-started.js +0 -26
  120. package/components/select/demo/index.js +0 -11
  121. package/components/select/demo/styles.scss +0 -1
  122. /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
  123. /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
  124. /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
  125. /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
  126. /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
  127. /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
  128. /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
  129. /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
  130. /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
  131. /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
  132. /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
  133. /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
  134. /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
  135. /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
  136. /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
  137. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
  138. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
  139. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
  140. /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
  141. /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
  142. /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
  143. /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
  144. /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
  145. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
  146. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
  147. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
  148. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
@@ -1164,6 +1164,33 @@
1164
1164
  }
1165
1165
  }
1166
1166
  },
1167
+ {
1168
+ "kind": "method",
1169
+ "name": "_scheduleTimer",
1170
+ "parameters": [
1171
+ {
1172
+ "name": "fn",
1173
+ "description": "Callback to run.",
1174
+ "type": {
1175
+ "text": "Function"
1176
+ }
1177
+ },
1178
+ {
1179
+ "name": "ms",
1180
+ "description": "Delay in milliseconds.",
1181
+ "type": {
1182
+ "text": "number"
1183
+ }
1184
+ }
1185
+ ],
1186
+ "description": "setTimeout wrapper that records the timer id so disconnectedCallback\ncan cancel any outstanding callbacks. The id is removed from the set\nonce the callback fires so the set doesn't grow unbounded.",
1187
+ "return": {
1188
+ "type": {
1189
+ "text": "number"
1190
+ }
1191
+ },
1192
+ "privacy": "private"
1193
+ },
1167
1194
  {
1168
1195
  "kind": "field",
1169
1196
  "name": "inputValue",
@@ -1256,6 +1283,26 @@
1256
1283
  "description": "Update displayValue or input.value, it's called when making a selection.",
1257
1284
  "privacy": "private"
1258
1285
  },
1286
+ {
1287
+ "kind": "method",
1288
+ "name": "syncInputValuesAcrossTriggerAndBib",
1289
+ "parameters": [
1290
+ {
1291
+ "name": "nextValue",
1292
+ "description": "The value to write to both inputs.",
1293
+ "type": {
1294
+ "text": "string"
1295
+ }
1296
+ }
1297
+ ],
1298
+ "description": "Writes nextValue to the trigger input and the bib input when their current\nvalue differs, then re-asserts imask after Lit's update flushes.",
1299
+ "return": {
1300
+ "type": {
1301
+ "text": "Promise<void>"
1302
+ }
1303
+ },
1304
+ "privacy": "private"
1305
+ },
1259
1306
  {
1260
1307
  "kind": "method",
1261
1308
  "name": "handleMenuOptions",
@@ -1423,6 +1470,26 @@
1423
1470
  }
1424
1471
  }
1425
1472
  },
1473
+ {
1474
+ "kind": "method",
1475
+ "name": "handleTriggerInputValueChange",
1476
+ "parameters": [
1477
+ {
1478
+ "name": "event",
1479
+ "description": "The input event from the trigger input element.",
1480
+ "type": {
1481
+ "text": "Event"
1482
+ }
1483
+ }
1484
+ ],
1485
+ "description": "Handles input value changes originating from the trigger input.\nRefreshes menu options and filtering, delegates to handleInputValueChange\nfor value synchronization, and manages fullscreen bib focus.",
1486
+ "privacy": "private",
1487
+ "return": {
1488
+ "type": {
1489
+ "text": "void"
1490
+ }
1491
+ }
1492
+ },
1426
1493
  {
1427
1494
  "kind": "method",
1428
1495
  "name": "configureCombobox",
@@ -1995,15 +2062,6 @@
1995
2062
  },
1996
2063
  "description": "Specifies the currently active option."
1997
2064
  },
1998
- {
1999
- "kind": "field",
2000
- "name": "triggerExpandedState",
2001
- "privacy": "private",
2002
- "type": {
2003
- "text": "boolean"
2004
- },
2005
- "description": "Deferred aria-expanded state for the trigger input.\nDelays the \"true\" transition so VoiceOver finishes its character echo\nbefore announcing \"expanded\"."
2006
- },
2007
2065
  {
2008
2066
  "kind": "field",
2009
2067
  "name": "componentHasFocus",
@@ -2454,7 +2512,7 @@
2454
2512
  "type": {
2455
2513
  "text": "object"
2456
2514
  },
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(); } } }, }"
2515
+ "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) { 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) { navigateArrow(component, 'up'); } else { component.showBib(); } } }, End(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateLastEnabledAvailableOption(); } }, Enter(component, evt, ctx) { // Forms should not submit on Enter from a combobox, regardless of which // child element (input, clear button, menu) is focused. evt.stopPropagation(); if (isClearBtnFocused(ctx)) { // Let the browser dispatch Enter to the focused clear button so its // built-in activation fires and clears the selection. Do NOT call // preventDefault — that would block the activation. return; } if (ctx.isExpanded && component.menu.optionActive) { reconcileMenuIndex(component.menu); component.menu.makeSelection(); if (ctx.isModal) { component.setTriggerInputFocus(); } evt.preventDefault(); } else { evt.preventDefault(); component.showBib(); } }, Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups evt.stopPropagation(); if (ctx.isModal) { component.setTriggerInputFocus(); } component.hideBib(); }, Home(component, evt, ctx) { if (ctx.isExpanded) { evt.preventDefault(); evt.stopPropagation(); component.activateFirstEnabledAvailableOption(); } }, Tab(component, evt, ctx) { if (ctx.isExpanded && !isClearBtnFocused(ctx)) { // When the clear button is focused, Tab events do not bubble out of // its shadow DOM, so this handler only fires when the clear button // is NOT focused. In that case, select the active option and close. reconcileMenuIndex(component.menu); component.menu.makeSelection(); component.hideBib(); // In fullscreen modal mode, closing the dialog does not // automatically restores focus to the input. In the tab case, // Explicitly move focus to the trigger's clear button so the // user can continues tabbing through the page normally. if (ctx.isModal && !evt.shiftKey) { component.setClearBtnFocus(); } } } }"
2458
2516
  }
2459
2517
  ],
2460
2518
  "exports": [
@@ -4577,7 +4635,7 @@
4577
4635
  {
4578
4636
  "kind": "method",
4579
4637
  "name": "updateHostAria",
4580
- "description": "Updates ARIA attributes on the host element so that\nariaActiveDescendantElement can expose cell info to the SR.",
4638
+ "description": "Sets host-level ARIA so each cell exposes its date, selection state,\nand blackout status to assistive tech browsing the month grid.",
4581
4639
  "privacy": "private",
4582
4640
  "return": {
4583
4641
  "type": {
@@ -4598,7 +4656,7 @@
4598
4656
  {
4599
4657
  "kind": "method",
4600
4658
  "name": "setActive",
4601
- "description": "Imperatively marks this cell as active without triggering a Lit re-render.\nNote: buttons stay tabindex=\"-1\" because the grid uses aria-activedescendant.",
4659
+ "description": "Imperatively marks this cell as active without triggering a Lit re-render.\nButtons stay tabindex=\"-1\" because DOM focus stays on the grid wrapper —\narrow keys move the active cell imperatively and the live region carries\nthe SR announcement.\n\nRefuses to activate out-of-range cells: those are aria-hidden, have no\nclick/focus handlers, and are filtered out of `getFocusableCells`. The\nactive class showing on a disabled cell would be visually misleading,\nso this guard is the single source of truth across every code path\nthat might call setActive (keyboard nav, focus restore, cell click).",
4602
4660
  "return": {
4603
4661
  "type": {
4604
4662
  "text": "void"
@@ -4743,6 +4801,7 @@
4743
4801
  "type": {
4744
4802
  "text": "array"
4745
4803
  },
4804
+ "deprecated": "Propagated from the legacy `auro-calendar.disabledDays`\nUnix-timestamp array. The cell honors it for backward compatibility\n(see the divergence-check fallback inside `isBlackout`), but\nconsumers should migrate to `auro-datepicker.blackoutDates`\n(YYYY-MM-DD ISO strings). The calendar emits a one-time\ndeprecation warning the first time a non-empty value is observed.",
4746
4805
  "default": "[]",
4747
4806
  "attribute": "disabledDays"
4748
4807
  },
@@ -4902,6 +4961,7 @@
4902
4961
  "type": {
4903
4962
  "text": "array"
4904
4963
  },
4964
+ "deprecated": "Propagated from the legacy `auro-calendar.disabledDays`\nUnix-timestamp array. The cell honors it for backward compatibility\n(see the divergence-check fallback inside `isBlackout`), but\nconsumers should migrate to `auro-datepicker.blackoutDates`\n(YYYY-MM-DD ISO strings). The calendar emits a one-time\ndeprecation warning the first time a non-empty value is observed.",
4905
4965
  "default": "[]",
4906
4966
  "fieldName": "disabledDays"
4907
4967
  },
@@ -5306,6 +5366,26 @@
5306
5366
  }
5307
5367
  }
5308
5368
  },
5369
+ {
5370
+ "kind": "method",
5371
+ "name": "_afterMonthRender",
5372
+ "parameters": [
5373
+ {
5374
+ "name": "callback",
5375
+ "description": "Runs once after the month re-render and\nthe cells' button caches have refreshed.",
5376
+ "type": {
5377
+ "text": "() => void"
5378
+ }
5379
+ }
5380
+ ],
5381
+ "description": "Schedules `callback` two animation frames out, giving the child\n`auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements\na full render-and-paint cycle to settle before the callback reads or\nmutates DOM.\n\nWhy two frames, not one:\n1. Lit batches property updates and renders in a microtask, so frame N\n schedules the render but the new DOM may not be painted yet.\n2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,\n which also lands a tick later. Reading buttons from frame N+1\n (after both renders + cache refresh have flushed) reliably hits the\n new month's cells.\n\nUsed by every code path that calls `handleNextMonth`/`handlePrevMonth`\nand then needs to inspect the freshly-rendered cells (cross-month\nkeyboard nav, boundary events, `updateActiveCellForVisibleMonth`).\nDo NOT collapse to a single rAF — it intermittently lands before\n`_cachedButton` is refreshed, which silently breaks focus restoration\nand `setActiveCell` lookups.",
5382
+ "privacy": "private",
5383
+ "return": {
5384
+ "type": {
5385
+ "text": "void"
5386
+ }
5387
+ }
5388
+ },
5309
5389
  {
5310
5390
  "kind": "method",
5311
5391
  "name": "renderAllCalendars",
@@ -5357,6 +5437,40 @@
5357
5437
  }
5358
5438
  }
5359
5439
  },
5440
+ {
5441
+ "kind": "method",
5442
+ "name": "pickNearestCell",
5443
+ "parameters": [
5444
+ {
5445
+ "name": "cells",
5446
+ "description": "Focusable cells from getAllFocusableCells.",
5447
+ "type": {
5448
+ "text": "Array"
5449
+ }
5450
+ },
5451
+ {
5452
+ "name": "targetTs",
5453
+ "description": "Desired Unix timestamp (seconds).",
5454
+ "type": {
5455
+ "text": "Number"
5456
+ }
5457
+ },
5458
+ {
5459
+ "name": "direction",
5460
+ "description": "Navigation direction.",
5461
+ "type": {
5462
+ "text": "'next'|'prev'"
5463
+ }
5464
+ }
5465
+ ],
5466
+ "description": "Picks the focusable cell whose date is closest to targetTs. Used as a\nfallback after a month-boundary nav when the exact target date isn't\nfocusable — typically because the month re-render lagged or the date\nwas filtered out by isOutOfRange. When two cells are equidistant, the\nnavigation direction breaks the tie so the user moves the way they\npressed (forward → later cell, backward → earlier cell).",
5467
+ "privacy": "private",
5468
+ "return": {
5469
+ "type": {
5470
+ "text": "Object|null"
5471
+ }
5472
+ }
5473
+ },
5360
5474
  {
5361
5475
  "kind": "method",
5362
5476
  "name": "getAllFocusableCells",
@@ -5380,7 +5494,7 @@
5380
5494
  }
5381
5495
  }
5382
5496
  ],
5383
- "description": "Sets the active cell across all months. Only one cell has tabindex=\"0\" at a time.\nUses imperative DOM manipulation — no Lit re-render triggered.\nAlso updates ariaActiveDescendantElement on the grid wrapper so\nscreen readers announce the active cell without moving DOM focus.",
5497
+ "description": "Sets the active cell across all months. Only one cell has tabindex=\"0\" at a time.\nUses imperative DOM manipulation — no Lit re-render triggered. DOM focus\nstays on the grid wrapper; the live region (see getOrCreateLiveRegion)\nis what announces the active cell to assistive tech.",
5384
5498
  "return": {
5385
5499
  "type": {
5386
5500
  "text": "void"
@@ -5400,6 +5514,16 @@
5400
5514
  {
5401
5515
  "kind": "method",
5402
5516
  "name": "handleGridFocusIn",
5517
+ "parameters": [
5518
+ {
5519
+ "name": "event",
5520
+ "description": "The focusin event.",
5521
+ "optional": true,
5522
+ "type": {
5523
+ "text": "FocusEvent"
5524
+ }
5525
+ }
5526
+ ],
5403
5527
  "description": "Shows the activeCell ring when the grid gains focus.",
5404
5528
  "privacy": "private",
5405
5529
  "return": {
@@ -5419,6 +5543,39 @@
5419
5543
  }
5420
5544
  }
5421
5545
  },
5546
+ {
5547
+ "kind": "method",
5548
+ "name": "_getBlackoutSet",
5549
+ "description": "Returns a memoized Set of blackout timestamps (seconds) drawn from both\nthe legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.\nThe cache invalidates when either source array's reference changes, which\nmatches Lit's own reactive identity semantics for array properties.",
5550
+ "privacy": "private",
5551
+ "return": {
5552
+ "type": {
5553
+ "text": "Set<Number>"
5554
+ }
5555
+ }
5556
+ },
5557
+ {
5558
+ "kind": "field",
5559
+ "name": "_warnedDisabledDaysDeprecation",
5560
+ "type": {
5561
+ "text": "boolean"
5562
+ },
5563
+ "static": true,
5564
+ "default": "false",
5565
+ "description": "Per-class flag that gates the `disabledDays` deprecation warning so it\nfires exactly once per page no matter how many calendars or rebuild\ncycles encounter the legacy array.",
5566
+ "privacy": "private"
5567
+ },
5568
+ {
5569
+ "kind": "method",
5570
+ "name": "_warnDisabledDaysDeprecated",
5571
+ "description": "One-time `console.debug` directing consumers from the legacy\n`disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires\nthe first time `_getBlackoutSet` rebuilds from a non-empty\n`disabledDays`; subsequent calls (on this or any other AuroCalendar\ninstance on the page) are silent.",
5572
+ "privacy": "private",
5573
+ "return": {
5574
+ "type": {
5575
+ "text": "void"
5576
+ }
5577
+ }
5578
+ },
5422
5579
  {
5423
5580
  "kind": "method",
5424
5581
  "name": "computeActiveDate",
@@ -5473,7 +5630,7 @@
5473
5630
  }
5474
5631
  }
5475
5632
  ],
5476
- "description": "Handles arrow key navigation on the calendar grid wrapper.\nFocus stays on the grid wrapper; only ariaActiveDescendantElement\nand the visual active-cell indicator change.",
5633
+ "description": "Handles arrow key navigation on the calendar grid wrapper.\nFocus stays on the grid wrapper; only the visual active-cell indicator\nchanges. The live region announces the new active cell.",
5477
5634
  "privacy": "private",
5478
5635
  "return": {
5479
5636
  "type": {
@@ -5593,7 +5750,7 @@
5593
5750
  }
5594
5751
  }
5595
5752
  ],
5596
- "description": "Checks whether a given date is a blackout date.",
5753
+ "description": "Checks whether a given date is a blackout date. Delegates to the\nmemoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the\nlegacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).",
5597
5754
  "privacy": "private",
5598
5755
  "return": {
5599
5756
  "type": {
@@ -5665,7 +5822,7 @@
5665
5822
  {
5666
5823
  "kind": "method",
5667
5824
  "name": "scrollToActiveCell",
5668
- "description": "Scrolls the calendar to ensure the month containing the active cell is visible.",
5825
+ "description": "Scrolls the calendar so the active cell is visible.\n\nWalks the flat tree (rendered, slot-aware) outward from the active\ncell's button and calls `scrollBy` on every vertically-scrollable\nancestor by whatever delta still separates the cell from that\nancestor's viewport. Native `scrollIntoView` is not used because the\ncell sits inside multiple nested scroll containers (the dropdown bib's\n`<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only\nscrolls one of them on its own, leaving the cell short of the\nviewport in mobile fullscreen.\n\nUses `behavior: 'auto'` (the spec's universally-supported non-animated\nvalue) so each `scrollBy` resolves synchronously and the next\niteration's `getBoundingClientRect` reads post-scroll positions\naccurately. This also satisfies `prefers-reduced-motion` users — the\nscroll containers do not set CSS `scroll-behavior: smooth`, so `auto`\nis effectively instant.\n\nThe active cell is looked up from the cache populated by\n`setActiveCell`. On a cache miss (stale or absent) the cache is\nrefreshed from a single full scan so subsequent calls stay on the\nfast path.",
5669
5826
  "privacy": "private",
5670
5827
  "return": {
5671
5828
  "type": {
@@ -5704,6 +5861,33 @@
5704
5861
  }
5705
5862
  }
5706
5863
  },
5864
+ {
5865
+ "kind": "method",
5866
+ "name": "_deliverAnnouncement",
5867
+ "parameters": [
5868
+ {
5869
+ "name": "dateStr",
5870
+ "description": "The localized date string to announce.",
5871
+ "type": {
5872
+ "text": "String"
5873
+ }
5874
+ },
5875
+ {
5876
+ "name": "attempts",
5877
+ "description": "Number of prior retry attempts.",
5878
+ "type": {
5879
+ "text": "Number"
5880
+ }
5881
+ }
5882
+ ],
5883
+ "description": "Writes `dateStr` to the live region. If the dropdown's dialog hasn't\nmounted yet (so getOrCreateLiveRegion can't attach), retries on the\nnext animation frame up to MAX_LIVE_REGION_RETRIES instead of silently\ndropping the announcement. The retry uses the same `_announceRafId`\nthe double-rAF below uses, so a newer announceSelection call (or\ndisconnectedCallback) cancels any in-flight retry.",
5884
+ "privacy": "private",
5885
+ "return": {
5886
+ "type": {
5887
+ "text": "void"
5888
+ }
5889
+ }
5890
+ },
5707
5891
  {
5708
5892
  "kind": "method",
5709
5893
  "name": "announceFocusDebounced",
@@ -5857,6 +6041,16 @@
5857
6041
  "privacy": "private",
5858
6042
  "default": "null"
5859
6043
  },
6044
+ {
6045
+ "kind": "field",
6046
+ "name": "_activeCell",
6047
+ "type": {
6048
+ "text": "null"
6049
+ },
6050
+ "description": "Cached reference to the active cell host. Set by setActiveCell and\nrefreshed by scrollToActiveCell when its cache check misses (stale\nor missing). Lets scrollToActiveCell skip a full cell scan on each\narrow key.",
6051
+ "privacy": "private",
6052
+ "default": "null"
6053
+ },
5860
6054
  {
5861
6055
  "kind": "field",
5862
6056
  "name": "_gridHasFocus",
@@ -5888,7 +6082,7 @@
5888
6082
  "type": {
5889
6083
  "text": "array"
5890
6084
  },
5891
- "description": "Legacy array of disabled-date timestamps.",
6085
+ "deprecated": "Use `auro-datepicker.blackoutDates` (an array of\n`YYYY-MM-DD` ISO strings) instead. This legacy array of Unix\ntimestamps is still honored for backward compatibility but emits a\none-time `console.debug` the first time a non-empty value is observed.\nSupport will be removed in a future major release.",
5892
6086
  "privacy": "private",
5893
6087
  "default": "[]"
5894
6088
  },
@@ -6305,6 +6499,14 @@
6305
6499
  "description": "Defines the label content for the first input.",
6306
6500
  "name": "fromLabel"
6307
6501
  },
6502
+ {
6503
+ "description": "Overrides the \"(optional)\" text rendered next to the first input's label when the datepicker is not `required`.",
6504
+ "name": "optionalFromLabel"
6505
+ },
6506
+ {
6507
+ "description": "Overrides the \"(optional)\" text rendered next to the second input's label when `range` is set and the datepicker is not `required`.",
6508
+ "name": "optionalToLabel"
6509
+ },
6308
6510
  {
6309
6511
  "description": "Defines the content to display in the auro-calendar-cell for the specified date. The content text is colored using the success state token when the `highlight` attribute is applied to the slot.",
6310
6512
  "name": "date_YYYY_MM_DD"
@@ -6582,13 +6784,13 @@
6582
6784
  "parameters": [
6583
6785
  {
6584
6786
  "name": "time",
6585
- "description": "Unix timestamp in seconds.",
6787
+ "description": "Unix timestamp (seconds), local midnight of the day.",
6586
6788
  "type": {
6587
6789
  "text": "number"
6588
6790
  }
6589
6791
  }
6590
6792
  ],
6591
- "description": "Converts a Unix timestamp (seconds) from the vendor calendar to an ISO date string.",
6793
+ "description": "Converts a Unix timestamp (seconds) from the vendored range-datepicker\n(`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.\n\nTimezone contract:\n- INPUT: `time` is assumed to be the seconds-since-epoch of **local\n midnight** for the intended calendar day. The vendor's Day constructor\n builds it via `date-fns format(date, 't')` from a locally-constructed\n Date, so this assumption currently holds end-to-end.\n- OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local\n getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD\n string matches the local calendar day.\n\nIf the vendor ever switches to emitting UTC-midnight timestamps, this\nconversion will silently shift the returned date by one day in zones\nwest of UTC. Any vendor swap should re-verify this contract; the TZ\nregression suite (`npm run test:hst`, UTC-10) will catch the symptom.",
6592
6794
  "privacy": "private",
6593
6795
  "return": {
6594
6796
  "type": {
@@ -6864,6 +7066,34 @@
6864
7066
  },
6865
7067
  "readonly": true
6866
7068
  },
7069
+ {
7070
+ "kind": "field",
7071
+ "name": "_warnedInvalidLocales",
7072
+ "static": true,
7073
+ "default": "new Set()",
7074
+ "description": "Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup\nspans every datepicker instance on the page; lives on the class (not\nat module scope) so it stays an encapsulated implementation detail of\nthis component and does not interfere with WCA's class-JSDoc\nattachment.",
7075
+ "privacy": "private"
7076
+ },
7077
+ {
7078
+ "kind": "method",
7079
+ "name": "_warnInvalidLocale",
7080
+ "parameters": [
7081
+ {
7082
+ "name": "badLocale",
7083
+ "description": "The locale value that failed.",
7084
+ "type": {
7085
+ "text": "string|undefined"
7086
+ }
7087
+ }
7088
+ ],
7089
+ "description": "Logs a one-time `console.debug` when an unsupported locale falls back to\nen-US. Deduped by the offending tag so noisy re-renders that resurface\nthe same bad value stay quiet, but each new bad value still signals so\nconsumers can spot the typo or missing tag.",
7090
+ "privacy": "private",
7091
+ "return": {
7092
+ "type": {
7093
+ "text": "void"
7094
+ }
7095
+ }
7096
+ },
6867
7097
  {
6868
7098
  "kind": "method",
6869
7099
  "name": "handleSlotToSlot",
@@ -7228,11 +7458,23 @@
7228
7458
  "type": {
7229
7459
  "text": "string"
7230
7460
  },
7231
- "description": "Label announced for cells after the range (or after start when no end is selected).",
7461
+ "description": "Label announced for cells after a fully selected range (both\n`dateFrom` and `dateTo` are set). While a range is still being\npicked (`dateFrom` set, `dateTo` unset), focused cells past the\nstart use `rangeLabelEndPreview` instead.",
7232
7462
  "default": "'after range'",
7233
7463
  "attribute": "rangeLabelAfterRange",
7234
7464
  "reflects": true
7235
7465
  },
7466
+ {
7467
+ "kind": "field",
7468
+ "name": "rangeLabelEndPreview",
7469
+ "privacy": "public",
7470
+ "type": {
7471
+ "text": "string"
7472
+ },
7473
+ "description": "Label announced for the focused cell while previewing a range end\n(dateFrom set, dateTo not yet selected). Tells AT users that\npressing Enter would commit this cell as the range end.",
7474
+ "default": "'previewing range end'",
7475
+ "attribute": "rangeLabelEndPreview",
7476
+ "reflects": true
7477
+ },
7236
7478
  {
7237
7479
  "kind": "field",
7238
7480
  "name": "blackoutDates",
@@ -7572,6 +7814,13 @@
7572
7814
  "name": "helpTextTag",
7573
7815
  "privacy": "private"
7574
7816
  },
7817
+ {
7818
+ "kind": "field",
7819
+ "name": "_listenerAbortController",
7820
+ "description": "Single AbortController shared by every listener registered in the\nconfigure* methods. Lets disconnectedCallback tear all of them down\nwith one abort() call.\n\nThe genuine leak risk is the listeners attached to children that can\noutlive the host if they get reparented — `this.dropdown`,\n`this.calendar`, and the inputs inside the dropdown's slot.\nListeners attached to `this` (e.g. focusin/focusout on the host)\nform a self-contained reference graph that the GC can collect with\nthe host anyway, but they share the same signal so the cleanup\npattern stays uniform across all configure* sites.",
7821
+ "privacy": "private",
7822
+ "default": "new AbortController()"
7823
+ },
7575
7824
  {
7576
7825
  "kind": "field",
7577
7826
  "name": "layout",
@@ -7742,7 +7991,7 @@
7742
7991
  "type": {
7743
7992
  "text": "array"
7744
7993
  },
7745
- "description": "Dates that the user should have for reference as part of their decision making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
7994
+ "description": "Dates that the user should have for reference as part of their decision-making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
7746
7995
  "attribute": "referenceDates",
7747
7996
  "reflects": true
7748
7997
  },
@@ -8182,7 +8431,7 @@
8182
8431
  "type": {
8183
8432
  "text": "string"
8184
8433
  },
8185
- "description": "Label announced for cells after the range (or after start when no end is selected).",
8434
+ "description": "Label announced for cells after a fully selected range (both\n`dateFrom` and `dateTo` are set). While a range is still being\npicked (`dateFrom` set, `dateTo` unset), focused cells past the\nstart use `rangeLabelEndPreview` instead.",
8186
8435
  "default": "'after range'",
8187
8436
  "fieldName": "rangeLabelAfterRange"
8188
8437
  },
@@ -8204,6 +8453,15 @@
8204
8453
  "default": "'range end'",
8205
8454
  "fieldName": "rangeLabelEnd"
8206
8455
  },
8456
+ {
8457
+ "name": "rangeLabelEndPreview",
8458
+ "type": {
8459
+ "text": "string"
8460
+ },
8461
+ "description": "Label announced for the focused cell while previewing a range end\n(dateFrom set, dateTo not yet selected). Tells AT users that\npressing Enter would commit this cell as the range end.",
8462
+ "default": "'previewing range end'",
8463
+ "fieldName": "rangeLabelEndPreview"
8464
+ },
8207
8465
  {
8208
8466
  "name": "rangeLabelInRange",
8209
8467
  "type": {
@@ -8227,7 +8485,7 @@
8227
8485
  "type": {
8228
8486
  "text": "array"
8229
8487
  },
8230
- "description": "Dates that the user should have for reference as part of their decision making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
8488
+ "description": "Dates that the user should have for reference as part of their decision-making when selecting a date.\nThis should be a JSON string array of ISO date strings (`YYYY-MM-DD`).",
8231
8489
  "fieldName": "referenceDates"
8232
8490
  },
8233
8491
  {
@@ -8379,44 +8637,154 @@
8379
8637
  },
8380
8638
  {
8381
8639
  "kind": "javascript-module",
8382
- "path": "components/datepicker/src/buttonVersion.js",
8383
- "declarations": [],
8384
- "exports": [
8385
- {
8386
- "kind": "js",
8387
- "name": "default",
8388
- "declaration": {
8389
- "name": "12.3.2",
8390
- "module": "components/datepicker/src/buttonVersion.js"
8391
- }
8392
- }
8393
- ]
8394
- },
8395
- {
8396
- "kind": "javascript-module",
8397
- "path": "components/datepicker/src/datepickerKeyboardStrategy.js",
8640
+ "path": "components/datepicker/src/blackoutUtils.js",
8398
8641
  "declarations": [
8399
8642
  {
8400
- "kind": "variable",
8401
- "name": "datepickerKeyboardStrategy",
8402
- "type": {
8403
- "text": "object"
8404
- },
8405
- "default": "{ Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Stop propagation so parent containers (auro-dialog, auro-drawer) // don't also react to Escape. evt.stopPropagation(); evt.preventDefault(); component.hideBib(); }, Enter(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, ' '(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, }"
8406
- }
8407
- ],
8408
- "exports": [
8409
- {
8410
- "kind": "js",
8411
- "name": "datepickerKeyboardStrategy",
8412
- "declaration": {
8413
- "name": "datepickerKeyboardStrategy",
8414
- "module": "components/datepicker/src/datepickerKeyboardStrategy.js"
8643
+ "kind": "function",
8644
+ "name": "parseIsoToTimestamp",
8645
+ "parameters": [
8646
+ {
8647
+ "name": "isoStr",
8648
+ "description": "Date string in `YYYY-MM-DD` format.",
8649
+ "type": {
8650
+ "text": "string"
8651
+ }
8652
+ }
8653
+ ],
8654
+ "description": "Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)\nrepresenting local midnight on that calendar day. Returns `null` for\ninputs that don't parse to a finite timestamp.\n\nUses the `new Date(year, monthIndex, day)` constructor (NOT\n`new Date(isoStr)`) so the result is local-midnight rather than UTC\nmidnight — required to keep the calendar grid aligned with the user's\nlocal calendar day in negative-offset timezones.",
8655
+ "return": {
8656
+ "type": {
8657
+ "text": "number|null"
8658
+ }
8415
8659
  }
8416
- }
8417
- ]
8418
- },
8419
- {
8660
+ },
8661
+ {
8662
+ "kind": "function",
8663
+ "name": "buildBlackoutSet",
8664
+ "parameters": [
8665
+ {
8666
+ "name": "disabledDays",
8667
+ "description": "Legacy timestamp array.",
8668
+ "type": {
8669
+ "text": "Array<string|number>|undefined"
8670
+ }
8671
+ },
8672
+ {
8673
+ "name": "blackoutDates",
8674
+ "description": "ISO `YYYY-MM-DD` array.",
8675
+ "type": {
8676
+ "text": "Array<string>|undefined"
8677
+ }
8678
+ }
8679
+ ],
8680
+ "description": "Builds a `Set<number>` of seconds-since-epoch timestamps covering both the\nlegacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`\narray. Use this for O(1) membership checks in hot paths.",
8681
+ "return": {
8682
+ "type": {
8683
+ "text": "Set<number>"
8684
+ }
8685
+ }
8686
+ },
8687
+ {
8688
+ "kind": "function",
8689
+ "name": "isBlackoutTimestamp",
8690
+ "parameters": [
8691
+ {
8692
+ "name": "dateTs",
8693
+ "description": "Unix timestamp (seconds) to test.",
8694
+ "type": {
8695
+ "text": "number"
8696
+ }
8697
+ },
8698
+ {
8699
+ "name": "disabledDays",
8700
+ "description": "Legacy timestamp array.",
8701
+ "type": {
8702
+ "text": "Array<string|number>|undefined"
8703
+ }
8704
+ },
8705
+ {
8706
+ "name": "blackoutDates",
8707
+ "description": "ISO `YYYY-MM-DD` array.",
8708
+ "type": {
8709
+ "text": "Array<string>|undefined"
8710
+ }
8711
+ }
8712
+ ],
8713
+ "description": "One-shot membership test for a single timestamp against both blackout\nsources. Allocates a Set on each call; only use this in cold paths\n(e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the\nSet returned from `buildBlackoutSet` and `.has(ts)` directly.",
8714
+ "return": {
8715
+ "type": {
8716
+ "text": "boolean"
8717
+ }
8718
+ }
8719
+ }
8720
+ ],
8721
+ "exports": [
8722
+ {
8723
+ "kind": "js",
8724
+ "name": "parseIsoToTimestamp",
8725
+ "declaration": {
8726
+ "name": "parseIsoToTimestamp",
8727
+ "module": "components/datepicker/src/blackoutUtils.js"
8728
+ }
8729
+ },
8730
+ {
8731
+ "kind": "js",
8732
+ "name": "buildBlackoutSet",
8733
+ "declaration": {
8734
+ "name": "buildBlackoutSet",
8735
+ "module": "components/datepicker/src/blackoutUtils.js"
8736
+ }
8737
+ },
8738
+ {
8739
+ "kind": "js",
8740
+ "name": "isBlackoutTimestamp",
8741
+ "declaration": {
8742
+ "name": "isBlackoutTimestamp",
8743
+ "module": "components/datepicker/src/blackoutUtils.js"
8744
+ }
8745
+ }
8746
+ ]
8747
+ },
8748
+ {
8749
+ "kind": "javascript-module",
8750
+ "path": "components/datepicker/src/buttonVersion.js",
8751
+ "declarations": [],
8752
+ "exports": [
8753
+ {
8754
+ "kind": "js",
8755
+ "name": "default",
8756
+ "declaration": {
8757
+ "name": "12.3.2",
8758
+ "module": "components/datepicker/src/buttonVersion.js"
8759
+ }
8760
+ }
8761
+ ]
8762
+ },
8763
+ {
8764
+ "kind": "javascript-module",
8765
+ "path": "components/datepicker/src/datepickerKeyboardStrategy.js",
8766
+ "declarations": [
8767
+ {
8768
+ "kind": "variable",
8769
+ "name": "datepickerKeyboardStrategy",
8770
+ "type": {
8771
+ "text": "object"
8772
+ },
8773
+ "default": "{ Escape(component, evt, ctx) { if (!ctx.isExpanded) { return; } // Stop propagation so parent containers (auro-dialog, auro-drawer) // don't also react to Escape. evt.stopPropagation(); evt.preventDefault(); component.hideBib(); }, Enter(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, ' '(component, evt, ctx) { if (ctx.isExpanded) { return; } // Only open from the trigger input, not the clear button or other internal elements. // evt.target is retargeted to the host in shadow DOM, so use composedPath() // to find the real origin. The clear button is rendered with class \"clearBtn\". const path = evt.composedPath(); if (path.some(el => el.classList?.contains('clearBtn'))) { return; } evt.preventDefault(); component.dropdown.show(); }, }"
8774
+ }
8775
+ ],
8776
+ "exports": [
8777
+ {
8778
+ "kind": "js",
8779
+ "name": "datepickerKeyboardStrategy",
8780
+ "declaration": {
8781
+ "name": "datepickerKeyboardStrategy",
8782
+ "module": "components/datepicker/src/datepickerKeyboardStrategy.js"
8783
+ }
8784
+ }
8785
+ ]
8786
+ },
8787
+ {
8420
8788
  "kind": "javascript-module",
8421
8789
  "path": "components/datepicker/src/iconVersion.js",
8422
8790
  "declarations": [],
@@ -10493,6 +10861,46 @@
10493
10861
  },
10494
10862
  "privacy": "private"
10495
10863
  },
10864
+ {
10865
+ "kind": "method",
10866
+ "name": "_isDisabled",
10867
+ "parameters": [
10868
+ {
10869
+ "name": "element",
10870
+ "description": "The element to check.",
10871
+ "type": {
10872
+ "text": "HTMLElement | undefined | null"
10873
+ }
10874
+ }
10875
+ ],
10876
+ "description": "Whether a given element is currently disabled. Disabled controls are excluded\nfrom submission, validity, and initial-state checks per the HTML spec\n(section 4.10.19.2 \"Enabling and disabling form controls\":\nhttps://www.w3.org/TR/2011/WD-html5-20110113/association-of-controls-and-forms.html).\n\nImplementation note: we deliberately read only the attribute. Every Auro\nform element in `formElementTags` declares `disabled` with `reflect: true`,\nso the attribute and property stay in sync. Reading the attribute also\nlets the MutationObserver in `connectedCallback` (which is filtered to\n`['disabled', 'name']`) be the single source of truth for re-renders.\nIf a future form-element type ships without attribute reflection, expand\nthis helper to also read `element.disabled`.",
10877
+ "return": {
10878
+ "type": {
10879
+ "text": "boolean"
10880
+ }
10881
+ },
10882
+ "privacy": "private"
10883
+ },
10884
+ {
10885
+ "kind": "method",
10886
+ "name": "_isNameDisabled",
10887
+ "parameters": [
10888
+ {
10889
+ "name": "name",
10890
+ "description": "The `name` attribute used to register the element.",
10891
+ "type": {
10892
+ "text": "string"
10893
+ }
10894
+ }
10895
+ ],
10896
+ "description": "Whether the tracked form element registered under `name` is currently disabled.\nSee `_isDisabled` for the HTML-spec rationale behind excluding disabled\ncontrols from form state.\n\nReads a cached flag on `formState[name]` populated by `_addElementToState`\nat registration and refreshed by `_handleAttributeMutations` whenever the\nelement's `disabled` attribute toggles. The cache is fed by the same\n`hasAttribute('disabled')` read as `_isDisabled`, so the \"future form-element\ntype without attribute reflection\" caveat documented there applies here too.",
10897
+ "return": {
10898
+ "type": {
10899
+ "text": "boolean"
10900
+ }
10901
+ },
10902
+ "privacy": "private"
10903
+ },
10496
10904
  {
10497
10905
  "kind": "method",
10498
10906
  "name": "_eventIsValidFormEvent",
@@ -10574,10 +10982,52 @@
10574
10982
  "privacy": "private",
10575
10983
  "readonly": true
10576
10984
  },
10985
+ {
10986
+ "kind": "method",
10987
+ "name": "_isFormValid",
10988
+ "description": "Raw constraint-validation check. Returns `true` when no enabled field\nhas a validity error. Unlike the public `validity` getter, this does\nNOT gate on `isInitialState` — callers that need to make a decision\nbased on the actual constraint state (submit-button enablement, the\ninternal `submit()` gate) read this so a pre-filled valid form is\ncorrectly recognized as submittable at first render.",
10989
+ "return": {
10990
+ "type": {
10991
+ "text": "boolean"
10992
+ }
10993
+ },
10994
+ "privacy": "private"
10995
+ },
10996
+ {
10997
+ "kind": "method",
10998
+ "name": "_hasResetableState",
10999
+ "description": "Whether the reset button should be enabled. True when the form has\ndiverged from its initial state (so the user can always return to\ndefaults — even if the dirty value lives behind a now-disabled field),\nOR when any non-disabled field has a current value or captured initial\nvalue (covers pre-filled forms and user-cleared-back-to-empty cases).",
11000
+ "return": {
11001
+ "type": {
11002
+ "text": "boolean"
11003
+ }
11004
+ },
11005
+ "privacy": "private"
11006
+ },
11007
+ {
11008
+ "kind": "method",
11009
+ "name": "_normalizeEmpty",
11010
+ "parameters": [
11011
+ {
11012
+ "name": "value",
11013
+ "description": "Value to normalize.",
11014
+ "type": {
11015
+ "text": "*"
11016
+ }
11017
+ }
11018
+ ],
11019
+ "description": "Collapse empty representations to a single canonical `null`.\n\n`_addElementToState` captures `null` for a field that mounts without a\n`value` attribute (`element.value || element.getAttribute('value')` is\nfalsy → resolves to `null`), but `sharedInputListener` later stores the\nraw `event.target.value` — which is `''` for a user-cleared text input.\nWithout this normalization, backspacing back to empty would taint the\nform forever (`'' !== null`) and Reset would stay enabled with nothing\nto actually reset.\n\n`''`, `undefined`, and `[]` all collapse to `null`. The empty-array case\ncovers checkbox-group, radio-group, and multiselect, where `[]` means\n\"no selection\" — semantically the same as `null`/`''`. Genuine values\n— including `0`, `false`, non-empty strings, and non-empty arrays —\npass through unchanged so number, boolean, and populated multi-value\nfields still compare correctly.",
11020
+ "return": {
11021
+ "type": {
11022
+ "text": "*"
11023
+ }
11024
+ },
11025
+ "privacy": "private"
11026
+ },
10577
11027
  {
10578
11028
  "kind": "method",
10579
11029
  "name": "_calculateValidity",
10580
- "description": "Infer validity status based on current formState.",
11030
+ "description": "Infer validity status based on current formState.\n\nValidity stays `null` while the form is in its initial state — this is\nthe \"stay quiet until the user interacts\" UX contract that consumers\ndepend on to delay error indicators. Code that needs the raw\nconstraint-validation result regardless of interaction (e.g.,\nsubmit-button enablement) should call `_isFormValid()` directly.",
10581
11031
  "privacy": "private"
10582
11032
  },
10583
11033
  {
@@ -10594,7 +11044,7 @@
10594
11044
  {
10595
11045
  "kind": "method",
10596
11046
  "name": "_setInitialState",
10597
- "description": "Determines whether the form is in its initial (untouched) state and updates `_isInitialState` accordingly.",
11047
+ "description": "Determines whether the form is in its initial (untouched) state.\n\nA field is tainted if either:\n - its value differs from the value captured on first render, OR\n - its validity is failing (anything other than `null` or `'valid'`).\n\nValidity acts as a backup signal: it catches users who interact with a\nfield without changing its value (e.g., focusing and blurring a required\nfield). We skip `null` (not yet validated) and `'valid'` (the default\nafter Auro's auto-validation on mount) because neither proves the user\ntouched anything.",
10598
11048
  "return": {
10599
11049
  "type": {
10600
11050
  "text": "void"
@@ -10754,6 +11204,26 @@
10754
11204
  },
10755
11205
  "privacy": "private"
10756
11206
  },
11207
+ {
11208
+ "kind": "method",
11209
+ "name": "_handleAttributeMutations",
11210
+ "parameters": [
11211
+ {
11212
+ "name": "mutations",
11213
+ "description": "The batched mutation records.",
11214
+ "type": {
11215
+ "text": "MutationRecord[]"
11216
+ }
11217
+ }
11218
+ ],
11219
+ "description": "Handle batched MutationObserver records for `disabled` and `name`\nattribute changes on tracked form elements. A `name` change invalidates\nthe formState keying — we resolve it by re-initializing state. A `disabled`\nchange simply needs a re-render (so `value` / `validity` getters re-evaluate)\nand a refresh of the submit/reset button enablement.",
11220
+ "return": {
11221
+ "type": {
11222
+ "text": "void"
11223
+ }
11224
+ },
11225
+ "privacy": "private"
11226
+ },
10757
11227
  {
10758
11228
  "kind": "method",
10759
11229
  "name": "mutationEventListener",
@@ -10847,6 +11317,25 @@
10847
11317
  },
10848
11318
  "privacy": "private",
10849
11319
  "default": "[]"
11320
+ },
11321
+ {
11322
+ "kind": "field",
11323
+ "name": "_initialValues",
11324
+ "type": {
11325
+ "text": "Record<string, string | number | boolean | string[] | null | undefined>"
11326
+ },
11327
+ "description": "Captured initial (default) value per field `name`. Populated on first\nsight of each name in `_addElementToState` and preserved across\nsubsequent `initializeState` cycles (slot change, rename, reset) so\n`_setInitialState` can detect user edits as `current !== initial`,\nmatching HTML's `dirtyValueFlag` semantics.",
11328
+ "privacy": "private",
11329
+ "default": "{}"
11330
+ },
11331
+ {
11332
+ "kind": "field",
11333
+ "name": "_attributeObserver",
11334
+ "type": {
11335
+ "text": "MutationObserver | null"
11336
+ },
11337
+ "privacy": "private",
11338
+ "default": "null"
10850
11339
  }
10851
11340
  ],
10852
11341
  "events": [
@@ -11636,21 +12125,6 @@
11636
12125
  "module": "components/input/src/base-input.js"
11637
12126
  }
11638
12127
  },
11639
- {
11640
- "kind": "method",
11641
- "name": "_initializePrivateDefaults",
11642
- "description": "Internal Defaults.",
11643
- "privacy": "private",
11644
- "return": {
11645
- "type": {
11646
- "text": "void"
11647
- }
11648
- },
11649
- "inheritedFrom": {
11650
- "name": "BaseInput",
11651
- "module": "components/input/src/base-input.js"
11652
- }
11653
- },
11654
12128
  {
11655
12129
  "kind": "field",
11656
12130
  "name": "valueObject",
@@ -11698,23 +12172,23 @@
11698
12172
  },
11699
12173
  {
11700
12174
  "kind": "method",
11701
- "name": "_computeDateObjectFallback",
12175
+ "name": "patchInputEvent",
11702
12176
  "parameters": [
11703
12177
  {
11704
- "name": "dateStr",
11705
- "description": "ISO date string from `value`/`min`/`max`.",
12178
+ "name": "input",
12179
+ "description": "The input element to patch.",
11706
12180
  "type": {
11707
- "text": "string|undefined"
12181
+ "text": "HTMLInputElement"
11708
12182
  }
11709
12183
  }
11710
12184
  ],
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",
12185
+ "description": "Patches the input element to dispatch an 'input' event whenever its value is set programmatically.\nThis ensures that changes to the input's value are consistently communicated, even if not triggered by user input.",
11713
12186
  "return": {
11714
12187
  "type": {
11715
- "text": "Date|undefined"
12188
+ "text": "void"
11716
12189
  }
11717
12190
  },
12191
+ "privacy": "private",
11718
12192
  "inheritedFrom": {
11719
12193
  "name": "BaseInput",
11720
12194
  "module": "components/input/src/base-input.js"
@@ -11722,25 +12196,9 @@
11722
12196
  },
11723
12197
  {
11724
12198
  "kind": "method",
11725
- "name": "setDateObjectProperty",
11726
- "parameters": [
11727
- {
11728
- "name": "propertyName",
11729
- "description": "Public object property name.",
11730
- "type": {
11731
- "text": "'valueObject'|'minObject'|'maxObject'"
11732
- }
11733
- },
11734
- {
11735
- "name": "propertyValue",
11736
- "description": "Value to assign.",
11737
- "type": {
11738
- "text": "Date|undefined"
11739
- }
11740
- }
11741
- ],
11742
- "description": "Internal setter for readonly date object properties.",
12199
+ "name": "setCustomHelpTextMessage",
11743
12200
  "privacy": "private",
12201
+ "deprecated": "https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296",
11744
12202
  "return": {
11745
12203
  "type": {
11746
12204
  "text": "void"
@@ -11753,23 +12211,13 @@
11753
12211
  },
11754
12212
  {
11755
12213
  "kind": "method",
11756
- "name": "patchInputEvent",
11757
- "parameters": [
11758
- {
11759
- "name": "input",
11760
- "description": "The input element to patch.",
11761
- "type": {
11762
- "text": "HTMLInputElement"
11763
- }
11764
- }
11765
- ],
11766
- "description": "Patches the input element to dispatch an 'input' event whenever its value is set programmatically.\nThis ensures that changes to the input's value are consistently communicated, even if not triggered by user input.",
12214
+ "name": "notifyValidityChange",
12215
+ "privacy": "private",
11767
12216
  "return": {
11768
12217
  "type": {
11769
12218
  "text": "void"
11770
12219
  }
11771
12220
  },
11772
- "privacy": "private",
11773
12221
  "inheritedFrom": {
11774
12222
  "name": "BaseInput",
11775
12223
  "module": "components/input/src/base-input.js"
@@ -11777,101 +12225,8 @@
11777
12225
  },
11778
12226
  {
11779
12227
  "kind": "method",
11780
- "name": "setCustomHelpTextMessage",
11781
- "privacy": "private",
11782
- "deprecated": "https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296",
11783
- "return": {
11784
- "type": {
11785
- "text": "void"
11786
- }
11787
- },
11788
- "inheritedFrom": {
11789
- "name": "BaseInput",
11790
- "module": "components/input/src/base-input.js"
11791
- }
11792
- },
11793
- {
11794
- "kind": "method",
11795
- "name": "notifyValidityChange",
11796
- "privacy": "private",
11797
- "return": {
11798
- "type": {
11799
- "text": "void"
11800
- }
11801
- },
11802
- "inheritedFrom": {
11803
- "name": "BaseInput",
11804
- "module": "components/input/src/base-input.js"
11805
- }
11806
- },
11807
- {
11808
- "kind": "method",
11809
- "name": "syncDateValues",
11810
- "parameters": [
11811
- {
11812
- "name": "changedProperties",
11813
- "default": "undefined",
11814
- "description": "Optional map of changed properties used to limit which values are synchronized.",
11815
- "optional": true,
11816
- "type": {
11817
- "text": "Map<string, unknown>|undefined"
11818
- }
11819
- }
11820
- ],
11821
- "description": "Synchronizes the ISO string values and Date object representations for date-related properties.\nThis keeps the model and display values aligned when either side changes.\n\nWhen a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding\nDate objects or vice versa, based on which properties have changed. It only runs when the current configuration\nrepresents a full year/month/day date format.",
11822
- "return": {
11823
- "type": {
11824
- "text": "void"
11825
- }
11826
- },
11827
- "privacy": "private",
11828
- "inheritedFrom": {
11829
- "name": "BaseInput",
11830
- "module": "components/input/src/base-input.js"
11831
- }
11832
- },
11833
- {
11834
- "kind": "method",
11835
- "name": "syncSingleDateValue",
11836
- "parameters": [
11837
- {
11838
- "name": "changedProperties",
11839
- "description": "Map of changed properties from Lit.",
11840
- "type": {
11841
- "text": "Map<string, unknown>|undefined"
11842
- }
11843
- },
11844
- {
11845
- "name": "objectProperty",
11846
- "description": "Date object property name.",
11847
- "type": {
11848
- "text": "string"
11849
- }
11850
- },
11851
- {
11852
- "name": "valueProperty",
11853
- "description": "ISO string property name.",
11854
- "type": {
11855
- "text": "string"
11856
- }
11857
- }
11858
- ],
11859
- "description": "Synchronizes one date object/string property pair.",
11860
- "privacy": "private",
11861
- "return": {
11862
- "type": {
11863
- "text": "void"
11864
- }
11865
- },
11866
- "inheritedFrom": {
11867
- "name": "BaseInput",
11868
- "module": "components/input/src/base-input.js"
11869
- }
11870
- },
11871
- {
11872
- "kind": "method",
11873
- "name": "configureAutoFormatting",
11874
- "description": "Sets up IMasks and logic based on auto-formatting requirements.",
12228
+ "name": "configureAutoFormatting",
12229
+ "description": "Sets up IMasks and logic based on auto-formatting requirements.",
11875
12230
  "privacy": "private",
11876
12231
  "return": {
11877
12232
  "type": {
@@ -12164,6 +12519,35 @@
12164
12519
  "module": "components/input/src/base-input.js"
12165
12520
  }
12166
12521
  },
12522
+ {
12523
+ "kind": "field",
12524
+ "name": "activeLabel",
12525
+ "privacy": "public",
12526
+ "type": {
12527
+ "text": "boolean"
12528
+ },
12529
+ "description": "If set, the label will remain fixed in the active position.",
12530
+ "default": "false",
12531
+ "attribute": "activeLabel",
12532
+ "reflects": true,
12533
+ "inheritedFrom": {
12534
+ "name": "BaseInput",
12535
+ "module": "components/input/src/base-input.js"
12536
+ }
12537
+ },
12538
+ {
12539
+ "kind": "field",
12540
+ "name": "allowedInputTypes",
12541
+ "type": {
12542
+ "text": "array"
12543
+ },
12544
+ "privacy": "private",
12545
+ "default": "[ \"text\", \"number\", \"email\", \"password\", \"credit-card\", \"tel\" ]",
12546
+ "inheritedFrom": {
12547
+ "name": "BaseInput",
12548
+ "module": "components/input/src/base-input.js"
12549
+ }
12550
+ },
12167
12551
  {
12168
12552
  "kind": "field",
12169
12553
  "name": "appearance",
@@ -12180,6 +12564,19 @@
12180
12564
  "module": "components/input/src/base-input.js"
12181
12565
  }
12182
12566
  },
12567
+ {
12568
+ "kind": "field",
12569
+ "name": "dateFormatMap",
12570
+ "type": {
12571
+ "text": "object"
12572
+ },
12573
+ "privacy": "private",
12574
+ "default": "{ 'mm/dd/yyyy': 'dateMMDDYYYY', 'dd/mm/yyyy': 'dateDDMMYYYY', 'yyyy/mm/dd': 'dateYYYYMMDD', 'yyyy/dd/mm': 'dateYYYYDDMM', 'mm/yy': 'dateMMYY', 'yy/mm': 'dateYYMM', 'mm/yyyy': 'dateMMYYYY', 'yyyy/mm': 'dateYYYYMM', 'yy': 'dateYY', 'yyyy': 'dateYYYY', 'mm': 'dateMM', 'dd': 'dateDD', 'dd/mm': 'dateDDMM', 'mm/dd': 'dateMMDD' }",
12575
+ "inheritedFrom": {
12576
+ "name": "BaseInput",
12577
+ "module": "components/input/src/base-input.js"
12578
+ }
12579
+ },
12183
12580
  {
12184
12581
  "kind": "field",
12185
12582
  "name": "disabled",
@@ -12196,6 +12593,101 @@
12196
12593
  "module": "components/input/src/base-input.js"
12197
12594
  }
12198
12595
  },
12596
+ {
12597
+ "kind": "field",
12598
+ "name": "domHandler",
12599
+ "privacy": "private",
12600
+ "default": "new DomHandler()",
12601
+ "inheritedFrom": {
12602
+ "name": "BaseInput",
12603
+ "module": "components/input/src/base-input.js"
12604
+ }
12605
+ },
12606
+ {
12607
+ "kind": "field",
12608
+ "name": "dvInputOnly",
12609
+ "privacy": "public",
12610
+ "type": {
12611
+ "text": "boolean"
12612
+ },
12613
+ "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
12614
+ "default": "false",
12615
+ "attribute": "dvInputOnly",
12616
+ "reflects": true,
12617
+ "inheritedFrom": {
12618
+ "name": "BaseInput",
12619
+ "module": "components/input/src/base-input.js"
12620
+ }
12621
+ },
12622
+ {
12623
+ "kind": "field",
12624
+ "name": "hasValue",
12625
+ "privacy": "public",
12626
+ "type": {
12627
+ "text": "boolean"
12628
+ },
12629
+ "description": "Flag to indicate if the input currently has value.",
12630
+ "default": "false",
12631
+ "inheritedFrom": {
12632
+ "name": "BaseInput",
12633
+ "module": "components/input/src/base-input.js"
12634
+ }
12635
+ },
12636
+ {
12637
+ "kind": "field",
12638
+ "name": "hideLabelVisually",
12639
+ "privacy": "private",
12640
+ "type": {
12641
+ "text": "boolean"
12642
+ },
12643
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
12644
+ "default": "false",
12645
+ "attribute": "hideLabelVisually",
12646
+ "reflects": true,
12647
+ "inheritedFrom": {
12648
+ "name": "BaseInput",
12649
+ "module": "components/input/src/base-input.js"
12650
+ }
12651
+ },
12652
+ {
12653
+ "kind": "field",
12654
+ "name": "icon",
12655
+ "privacy": "public",
12656
+ "type": {
12657
+ "text": "boolean"
12658
+ },
12659
+ "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
12660
+ "default": "false",
12661
+ "attribute": "icon",
12662
+ "reflects": true,
12663
+ "inheritedFrom": {
12664
+ "name": "BaseInput",
12665
+ "module": "components/input/src/base-input.js"
12666
+ }
12667
+ },
12668
+ {
12669
+ "kind": "field",
12670
+ "name": "inputIconName",
12671
+ "privacy": "private",
12672
+ "default": "undefined",
12673
+ "inheritedFrom": {
12674
+ "name": "BaseInput",
12675
+ "module": "components/input/src/base-input.js"
12676
+ }
12677
+ },
12678
+ {
12679
+ "kind": "field",
12680
+ "name": "label",
12681
+ "type": {
12682
+ "text": "string"
12683
+ },
12684
+ "privacy": "private",
12685
+ "default": "'Input label is undefined'",
12686
+ "inheritedFrom": {
12687
+ "name": "BaseInput",
12688
+ "module": "components/input/src/base-input.js"
12689
+ }
12690
+ },
12199
12691
  {
12200
12692
  "kind": "field",
12201
12693
  "name": "layout",
@@ -12243,15 +12735,6 @@
12243
12735
  "module": "components/input/src/base-input.js"
12244
12736
  }
12245
12737
  },
12246
- {
12247
- "kind": "field",
12248
- "name": "_maxObject",
12249
- "default": "undefined",
12250
- "inheritedFrom": {
12251
- "name": "BaseInput",
12252
- "module": "components/input/src/base-input.js"
12253
- }
12254
- },
12255
12738
  {
12256
12739
  "kind": "field",
12257
12740
  "name": "maxLength",
@@ -12283,15 +12766,6 @@
12283
12766
  "module": "components/input/src/base-input.js"
12284
12767
  }
12285
12768
  },
12286
- {
12287
- "kind": "field",
12288
- "name": "_minObject",
12289
- "default": "undefined",
12290
- "inheritedFrom": {
12291
- "name": "BaseInput",
12292
- "module": "components/input/src/base-input.js"
12293
- }
12294
- },
12295
12769
  {
12296
12770
  "kind": "field",
12297
12771
  "name": "minLength",
@@ -12310,14 +12784,14 @@
12310
12784
  },
12311
12785
  {
12312
12786
  "kind": "field",
12313
- "name": "required",
12787
+ "name": "noValidate",
12314
12788
  "privacy": "public",
12315
12789
  "type": {
12316
12790
  "text": "boolean"
12317
12791
  },
12318
- "description": "Populates the `required` attribute on the input. Used for client-side validation.",
12792
+ "description": "If set, disables auto-validation on blur.",
12319
12793
  "default": "false",
12320
- "attribute": "required",
12794
+ "attribute": "noValidate",
12321
12795
  "reflects": true,
12322
12796
  "inheritedFrom": {
12323
12797
  "name": "BaseInput",
@@ -12340,6 +12814,31 @@
12340
12814
  "module": "components/layoutElement/src/auroElement.js"
12341
12815
  }
12342
12816
  },
12817
+ {
12818
+ "kind": "field",
12819
+ "name": "_rawMaskValue",
12820
+ "default": "undefined",
12821
+ "inheritedFrom": {
12822
+ "name": "BaseInput",
12823
+ "module": "components/input/src/base-input.js"
12824
+ }
12825
+ },
12826
+ {
12827
+ "kind": "field",
12828
+ "name": "required",
12829
+ "privacy": "public",
12830
+ "type": {
12831
+ "text": "boolean"
12832
+ },
12833
+ "description": "Populates the `required` attribute on the input. Used for client-side validation.",
12834
+ "default": "false",
12835
+ "attribute": "required",
12836
+ "reflects": true,
12837
+ "inheritedFrom": {
12838
+ "name": "BaseInput",
12839
+ "module": "components/input/src/base-input.js"
12840
+ }
12841
+ },
12343
12842
  {
12344
12843
  "kind": "field",
12345
12844
  "name": "setCustomValidityForType",
@@ -12357,17 +12856,15 @@
12357
12856
  },
12358
12857
  {
12359
12858
  "kind": "field",
12360
- "name": "size",
12361
- "privacy": "public",
12859
+ "name": "setSelectionInputTypes",
12362
12860
  "type": {
12363
- "text": "string"
12861
+ "text": "array"
12364
12862
  },
12365
- "attribute": "size",
12366
- "reflects": true,
12367
- "default": "'lg'",
12863
+ "privacy": "private",
12864
+ "default": "[ \"text\", \"password\", \"email\" ]",
12368
12865
  "inheritedFrom": {
12369
- "name": "AuroElement",
12370
- "module": "components/layoutElement/src/auroElement.js"
12866
+ "name": "BaseInput",
12867
+ "module": "components/input/src/base-input.js"
12371
12868
  }
12372
12869
  },
12373
12870
  {
@@ -12387,14 +12884,81 @@
12387
12884
  },
12388
12885
  {
12389
12886
  "kind": "field",
12390
- "name": "value",
12887
+ "name": "showPassword",
12888
+ "privacy": "private",
12889
+ "type": {
12890
+ "text": "boolean"
12891
+ },
12892
+ "default": "false",
12893
+ "attribute": "showPassword",
12894
+ "inheritedFrom": {
12895
+ "name": "BaseInput",
12896
+ "module": "components/input/src/base-input.js"
12897
+ }
12898
+ },
12899
+ {
12900
+ "kind": "field",
12901
+ "name": "size",
12391
12902
  "privacy": "public",
12392
12903
  "type": {
12393
12904
  "text": "string"
12394
12905
  },
12395
- "description": "Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.\nThe format for this property should be ISO for `date` type inputs.",
12906
+ "attribute": "size",
12907
+ "reflects": true,
12908
+ "default": "'lg'",
12909
+ "inheritedFrom": {
12910
+ "name": "AuroElement",
12911
+ "module": "components/layoutElement/src/auroElement.js"
12912
+ }
12913
+ },
12914
+ {
12915
+ "kind": "field",
12916
+ "name": "touched",
12917
+ "privacy": "private",
12918
+ "type": {
12919
+ "text": "boolean"
12920
+ },
12921
+ "description": "Indicates whether the input is in a dirty state (has been interacted with).",
12922
+ "default": "false",
12923
+ "inheritedFrom": {
12924
+ "name": "BaseInput",
12925
+ "module": "components/input/src/base-input.js"
12926
+ }
12927
+ },
12928
+ {
12929
+ "kind": "field",
12930
+ "name": "uniqueId",
12931
+ "privacy": "private",
12932
+ "inheritedFrom": {
12933
+ "name": "BaseInput",
12934
+ "module": "components/input/src/base-input.js"
12935
+ }
12936
+ },
12937
+ {
12938
+ "kind": "field",
12939
+ "name": "util",
12940
+ "privacy": "private",
12941
+ "default": "new AuroInputUtilities({ locale: this.locale, format: this.format })",
12942
+ "inheritedFrom": {
12943
+ "name": "BaseInput",
12944
+ "module": "components/input/src/base-input.js"
12945
+ }
12946
+ },
12947
+ {
12948
+ "kind": "field",
12949
+ "name": "validation",
12950
+ "privacy": "private",
12951
+ "default": "new AuroFormValidation()",
12952
+ "inheritedFrom": {
12953
+ "name": "BaseInput",
12954
+ "module": "components/input/src/base-input.js"
12955
+ }
12956
+ },
12957
+ {
12958
+ "kind": "field",
12959
+ "name": "validationCCLength",
12960
+ "privacy": "private",
12396
12961
  "default": "undefined",
12397
- "attribute": "value",
12398
12962
  "inheritedFrom": {
12399
12963
  "name": "BaseInput",
12400
12964
  "module": "components/input/src/base-input.js"
@@ -12402,8 +12966,14 @@
12402
12966
  },
12403
12967
  {
12404
12968
  "kind": "field",
12405
- "name": "_valueObject",
12969
+ "name": "value",
12970
+ "privacy": "public",
12971
+ "type": {
12972
+ "text": "string"
12973
+ },
12974
+ "description": "Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.\nThe format for this property should be ISO for `date` type inputs.",
12406
12975
  "default": "undefined",
12976
+ "attribute": "value",
12407
12977
  "inheritedFrom": {
12408
12978
  "name": "BaseInput",
12409
12979
  "module": "components/input/src/base-input.js"
@@ -12469,21 +13039,6 @@
12469
13039
  "module": "components/input/src/base-input.js"
12470
13040
  }
12471
13041
  },
12472
- {
12473
- "kind": "field",
12474
- "name": "activeLabel",
12475
- "privacy": "public",
12476
- "type": {
12477
- "text": "boolean"
12478
- },
12479
- "description": "If set, the label will remain fixed in the active position.",
12480
- "attribute": "activeLabel",
12481
- "reflects": true,
12482
- "inheritedFrom": {
12483
- "name": "BaseInput",
12484
- "module": "components/input/src/base-input.js"
12485
- }
12486
- },
12487
13042
  {
12488
13043
  "kind": "field",
12489
13044
  "name": "autocapitalize",
@@ -12543,21 +13098,6 @@
12543
13098
  "module": "components/input/src/base-input.js"
12544
13099
  }
12545
13100
  },
12546
- {
12547
- "kind": "field",
12548
- "name": "dvInputOnly",
12549
- "privacy": "public",
12550
- "type": {
12551
- "text": "boolean"
12552
- },
12553
- "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
12554
- "attribute": "dvInputOnly",
12555
- "reflects": true,
12556
- "inheritedFrom": {
12557
- "name": "BaseInput",
12558
- "module": "components/input/src/base-input.js"
12559
- }
12560
- },
12561
13101
  {
12562
13102
  "kind": "field",
12563
13103
  "name": "error",
@@ -12615,49 +13155,6 @@
12615
13155
  "module": "components/input/src/base-input.js"
12616
13156
  }
12617
13157
  },
12618
- {
12619
- "kind": "field",
12620
- "name": "hasValue",
12621
- "privacy": "public",
12622
- "type": {
12623
- "text": "boolean"
12624
- },
12625
- "description": "Flag to indicate if the input currently has value.",
12626
- "inheritedFrom": {
12627
- "name": "BaseInput",
12628
- "module": "components/input/src/base-input.js"
12629
- }
12630
- },
12631
- {
12632
- "kind": "field",
12633
- "name": "hideLabelVisually",
12634
- "privacy": "private",
12635
- "type": {
12636
- "text": "boolean"
12637
- },
12638
- "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
12639
- "attribute": "hideLabelVisually",
12640
- "reflects": true,
12641
- "inheritedFrom": {
12642
- "name": "BaseInput",
12643
- "module": "components/input/src/base-input.js"
12644
- }
12645
- },
12646
- {
12647
- "kind": "field",
12648
- "name": "icon",
12649
- "privacy": "public",
12650
- "type": {
12651
- "text": "boolean"
12652
- },
12653
- "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
12654
- "attribute": "icon",
12655
- "reflects": true,
12656
- "inheritedFrom": {
12657
- "name": "BaseInput",
12658
- "module": "components/input/src/base-input.js"
12659
- }
12660
- },
12661
13158
  {
12662
13159
  "kind": "field",
12663
13160
  "name": "id",
@@ -12746,21 +13243,6 @@
12746
13243
  "module": "components/input/src/base-input.js"
12747
13244
  }
12748
13245
  },
12749
- {
12750
- "kind": "field",
12751
- "name": "noValidate",
12752
- "privacy": "public",
12753
- "type": {
12754
- "text": "boolean"
12755
- },
12756
- "description": "If set, disables auto-validation on blur.",
12757
- "attribute": "noValidate",
12758
- "reflects": true,
12759
- "inheritedFrom": {
12760
- "name": "BaseInput",
12761
- "module": "components/input/src/base-input.js"
12762
- }
12763
- },
12764
13246
  {
12765
13247
  "kind": "field",
12766
13248
  "name": "pattern",
@@ -12918,16 +13400,6 @@
12918
13400
  "module": "components/input/src/base-input.js"
12919
13401
  }
12920
13402
  },
12921
- {
12922
- "kind": "field",
12923
- "name": "showPassword",
12924
- "privacy": "public",
12925
- "attribute": "showPassword",
12926
- "inheritedFrom": {
12927
- "name": "BaseInput",
12928
- "module": "components/input/src/base-input.js"
12929
- }
12930
- },
12931
13403
  {
12932
13404
  "kind": "field",
12933
13405
  "name": "simple",
@@ -12958,19 +13430,6 @@
12958
13430
  "module": "components/input/src/base-input.js"
12959
13431
  }
12960
13432
  },
12961
- {
12962
- "kind": "field",
12963
- "name": "touched",
12964
- "privacy": "private",
12965
- "type": {
12966
- "text": "boolean"
12967
- },
12968
- "description": "Indicates whether the input is in a dirty state (has been interacted with).",
12969
- "inheritedFrom": {
12970
- "name": "BaseInput",
12971
- "module": "components/input/src/base-input.js"
12972
- }
12973
- },
12974
13433
  {
12975
13434
  "kind": "field",
12976
13435
  "name": "type",
@@ -13118,6 +13577,7 @@
13118
13577
  "text": "boolean"
13119
13578
  },
13120
13579
  "description": "If set, the label will remain fixed in the active position.",
13580
+ "default": "false",
13121
13581
  "fieldName": "activeLabel",
13122
13582
  "inheritedFrom": {
13123
13583
  "name": "BaseInput",
@@ -13204,6 +13664,7 @@
13204
13664
  "text": "boolean"
13205
13665
  },
13206
13666
  "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
13667
+ "default": "false",
13207
13668
  "fieldName": "dvInputOnly",
13208
13669
  "inheritedFrom": {
13209
13670
  "name": "BaseInput",
@@ -13252,6 +13713,7 @@
13252
13713
  "text": "boolean"
13253
13714
  },
13254
13715
  "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
13716
+ "default": "false",
13255
13717
  "fieldName": "hideLabelVisually",
13256
13718
  "inheritedFrom": {
13257
13719
  "name": "BaseInput",
@@ -13264,6 +13726,7 @@
13264
13726
  "text": "boolean"
13265
13727
  },
13266
13728
  "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
13729
+ "default": "false",
13267
13730
  "fieldName": "icon",
13268
13731
  "inheritedFrom": {
13269
13732
  "name": "BaseInput",
@@ -13401,6 +13864,7 @@
13401
13864
  "text": "boolean"
13402
13865
  },
13403
13866
  "description": "If set, disables auto-validation on blur.",
13867
+ "default": "false",
13404
13868
  "fieldName": "noValidate",
13405
13869
  "inheritedFrom": {
13406
13870
  "name": "BaseInput",
@@ -13580,6 +14044,10 @@
13580
14044
  },
13581
14045
  {
13582
14046
  "name": "showPassword",
14047
+ "type": {
14048
+ "text": "boolean"
14049
+ },
14050
+ "default": "false",
13583
14051
  "fieldName": "showPassword",
13584
14052
  "inheritedFrom": {
13585
14053
  "name": "BaseInput",
@@ -13763,17 +14231,6 @@
13763
14231
  "static": true,
13764
14232
  "readonly": true
13765
14233
  },
13766
- {
13767
- "kind": "method",
13768
- "name": "_initializePrivateDefaults",
13769
- "description": "Internal Defaults.",
13770
- "privacy": "private",
13771
- "return": {
13772
- "type": {
13773
- "text": "void"
13774
- }
13775
- }
13776
- },
13777
14234
  {
13778
14235
  "kind": "field",
13779
14236
  "name": "valueObject",
@@ -13807,53 +14264,6 @@
13807
14264
  },
13808
14265
  "readonly": true
13809
14266
  },
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
- {
13831
- "kind": "method",
13832
- "name": "setDateObjectProperty",
13833
- "parameters": [
13834
- {
13835
- "name": "propertyName",
13836
- "description": "Public object property name.",
13837
- "type": {
13838
- "text": "'valueObject'|'minObject'|'maxObject'"
13839
- }
13840
- },
13841
- {
13842
- "name": "propertyValue",
13843
- "description": "Value to assign.",
13844
- "type": {
13845
- "text": "Date|undefined"
13846
- }
13847
- }
13848
- ],
13849
- "description": "Internal setter for readonly date object properties.",
13850
- "privacy": "private",
13851
- "return": {
13852
- "type": {
13853
- "text": "void"
13854
- }
13855
- }
13856
- },
13857
14267
  {
13858
14268
  "kind": "method",
13859
14269
  "name": "patchInputEvent",
@@ -13895,62 +14305,6 @@
13895
14305
  }
13896
14306
  }
13897
14307
  },
13898
- {
13899
- "kind": "method",
13900
- "name": "syncDateValues",
13901
- "parameters": [
13902
- {
13903
- "name": "changedProperties",
13904
- "default": "undefined",
13905
- "description": "Optional map of changed properties used to limit which values are synchronized.",
13906
- "optional": true,
13907
- "type": {
13908
- "text": "Map<string, unknown>|undefined"
13909
- }
13910
- }
13911
- ],
13912
- "description": "Synchronizes the ISO string values and Date object representations for date-related properties.\nThis keeps the model and display values aligned when either side changes.\n\nWhen a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding\nDate objects or vice versa, based on which properties have changed. It only runs when the current configuration\nrepresents a full year/month/day date format.",
13913
- "return": {
13914
- "type": {
13915
- "text": "void"
13916
- }
13917
- },
13918
- "privacy": "private"
13919
- },
13920
- {
13921
- "kind": "method",
13922
- "name": "syncSingleDateValue",
13923
- "parameters": [
13924
- {
13925
- "name": "changedProperties",
13926
- "description": "Map of changed properties from Lit.",
13927
- "type": {
13928
- "text": "Map<string, unknown>|undefined"
13929
- }
13930
- },
13931
- {
13932
- "name": "objectProperty",
13933
- "description": "Date object property name.",
13934
- "type": {
13935
- "text": "string"
13936
- }
13937
- },
13938
- {
13939
- "name": "valueProperty",
13940
- "description": "ISO string property name.",
13941
- "type": {
13942
- "text": "string"
13943
- }
13944
- }
13945
- ],
13946
- "description": "Synchronizes one date object/string property pair.",
13947
- "privacy": "private",
13948
- "return": {
13949
- "type": {
13950
- "text": "void"
13951
- }
13952
- }
13953
- },
13954
14308
  {
13955
14309
  "kind": "method",
13956
14310
  "name": "configureAutoFormatting",
@@ -14164,41 +14518,138 @@
14164
14518
  }
14165
14519
  },
14166
14520
  {
14167
- "kind": "method",
14168
- "name": "matchInputValueToCreditCard",
14169
- "description": "Function to support credit-card feature type.",
14170
- "privacy": "private",
14171
- "deprecated": "https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296",
14172
- "return": {
14173
- "type": {
14174
- "text": "object"
14175
- }
14176
- }
14521
+ "kind": "method",
14522
+ "name": "matchInputValueToCreditCard",
14523
+ "description": "Function to support credit-card feature type.",
14524
+ "privacy": "private",
14525
+ "deprecated": "https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296",
14526
+ "return": {
14527
+ "type": {
14528
+ "text": "object"
14529
+ }
14530
+ }
14531
+ },
14532
+ {
14533
+ "kind": "field",
14534
+ "name": "activeLabel",
14535
+ "privacy": "public",
14536
+ "type": {
14537
+ "text": "boolean"
14538
+ },
14539
+ "description": "If set, the label will remain fixed in the active position.",
14540
+ "default": "false",
14541
+ "attribute": "activeLabel",
14542
+ "reflects": true
14543
+ },
14544
+ {
14545
+ "kind": "field",
14546
+ "name": "allowedInputTypes",
14547
+ "type": {
14548
+ "text": "array"
14549
+ },
14550
+ "privacy": "private",
14551
+ "default": "[ \"text\", \"number\", \"email\", \"password\", \"credit-card\", \"tel\" ]"
14552
+ },
14553
+ {
14554
+ "kind": "field",
14555
+ "name": "appearance",
14556
+ "privacy": "public",
14557
+ "type": {
14558
+ "text": "string"
14559
+ },
14560
+ "description": "Defines whether the component will be on lighter or darker backgrounds.",
14561
+ "default": "\"default\"",
14562
+ "attribute": "appearance",
14563
+ "reflects": true
14564
+ },
14565
+ {
14566
+ "kind": "field",
14567
+ "name": "dateFormatMap",
14568
+ "type": {
14569
+ "text": "object"
14570
+ },
14571
+ "privacy": "private",
14572
+ "default": "{ 'mm/dd/yyyy': 'dateMMDDYYYY', 'dd/mm/yyyy': 'dateDDMMYYYY', 'yyyy/mm/dd': 'dateYYYYMMDD', 'yyyy/dd/mm': 'dateYYYYDDMM', 'mm/yy': 'dateMMYY', 'yy/mm': 'dateYYMM', 'mm/yyyy': 'dateMMYYYY', 'yyyy/mm': 'dateYYYYMM', 'yy': 'dateYY', 'yyyy': 'dateYYYY', 'mm': 'dateMM', 'dd': 'dateDD', 'dd/mm': 'dateDDMM', 'mm/dd': 'dateMMDD' }"
14573
+ },
14574
+ {
14575
+ "kind": "field",
14576
+ "name": "disabled",
14577
+ "privacy": "public",
14578
+ "type": {
14579
+ "text": "boolean"
14580
+ },
14581
+ "description": "If set, disables the input.",
14582
+ "default": "false",
14583
+ "attribute": "disabled",
14584
+ "reflects": true
14585
+ },
14586
+ {
14587
+ "kind": "field",
14588
+ "name": "domHandler",
14589
+ "privacy": "private",
14590
+ "default": "new DomHandler()"
14591
+ },
14592
+ {
14593
+ "kind": "field",
14594
+ "name": "dvInputOnly",
14595
+ "privacy": "public",
14596
+ "type": {
14597
+ "text": "boolean"
14598
+ },
14599
+ "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
14600
+ "default": "false",
14601
+ "attribute": "dvInputOnly",
14602
+ "reflects": true
14603
+ },
14604
+ {
14605
+ "kind": "field",
14606
+ "name": "hasValue",
14607
+ "privacy": "public",
14608
+ "type": {
14609
+ "text": "boolean"
14610
+ },
14611
+ "description": "Flag to indicate if the input currently has value.",
14612
+ "default": "false"
14177
14613
  },
14178
14614
  {
14179
14615
  "kind": "field",
14180
- "name": "appearance",
14181
- "privacy": "public",
14616
+ "name": "hideLabelVisually",
14617
+ "privacy": "private",
14182
14618
  "type": {
14183
- "text": "string"
14619
+ "text": "boolean"
14184
14620
  },
14185
- "description": "Defines whether the component will be on lighter or darker backgrounds.",
14186
- "default": "\"default\"",
14187
- "attribute": "appearance",
14621
+ "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
14622
+ "default": "false",
14623
+ "attribute": "hideLabelVisually",
14188
14624
  "reflects": true
14189
14625
  },
14190
14626
  {
14191
14627
  "kind": "field",
14192
- "name": "disabled",
14628
+ "name": "icon",
14193
14629
  "privacy": "public",
14194
14630
  "type": {
14195
14631
  "text": "boolean"
14196
14632
  },
14197
- "description": "If set, disables the input.",
14633
+ "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
14198
14634
  "default": "false",
14199
- "attribute": "disabled",
14635
+ "attribute": "icon",
14200
14636
  "reflects": true
14201
14637
  },
14638
+ {
14639
+ "kind": "field",
14640
+ "name": "inputIconName",
14641
+ "privacy": "private",
14642
+ "default": "undefined"
14643
+ },
14644
+ {
14645
+ "kind": "field",
14646
+ "name": "label",
14647
+ "type": {
14648
+ "text": "string"
14649
+ },
14650
+ "privacy": "private",
14651
+ "default": "'Input label is undefined'"
14652
+ },
14202
14653
  {
14203
14654
  "kind": "field",
14204
14655
  "name": "layout",
@@ -14238,11 +14689,6 @@
14238
14689
  "default": "undefined",
14239
14690
  "attribute": "max"
14240
14691
  },
14241
- {
14242
- "kind": "field",
14243
- "name": "_maxObject",
14244
- "default": "undefined"
14245
- },
14246
14692
  {
14247
14693
  "kind": "field",
14248
14694
  "name": "maxLength",
@@ -14266,11 +14712,6 @@
14266
14712
  "default": "undefined",
14267
14713
  "attribute": "min"
14268
14714
  },
14269
- {
14270
- "kind": "field",
14271
- "name": "_minObject",
14272
- "default": "undefined"
14273
- },
14274
14715
  {
14275
14716
  "kind": "field",
14276
14717
  "name": "minLength",
@@ -14285,14 +14726,14 @@
14285
14726
  },
14286
14727
  {
14287
14728
  "kind": "field",
14288
- "name": "required",
14729
+ "name": "noValidate",
14289
14730
  "privacy": "public",
14290
14731
  "type": {
14291
14732
  "text": "boolean"
14292
14733
  },
14293
- "description": "Populates the `required` attribute on the input. Used for client-side validation.",
14734
+ "description": "If set, disables auto-validation on blur.",
14294
14735
  "default": "false",
14295
- "attribute": "required",
14736
+ "attribute": "noValidate",
14296
14737
  "reflects": true
14297
14738
  },
14298
14739
  {
@@ -14311,6 +14752,23 @@
14311
14752
  "module": "components/layoutElement/src/auroElement.js"
14312
14753
  }
14313
14754
  },
14755
+ {
14756
+ "kind": "field",
14757
+ "name": "_rawMaskValue",
14758
+ "default": "undefined"
14759
+ },
14760
+ {
14761
+ "kind": "field",
14762
+ "name": "required",
14763
+ "privacy": "public",
14764
+ "type": {
14765
+ "text": "boolean"
14766
+ },
14767
+ "description": "Populates the `required` attribute on the input. Used for client-side validation.",
14768
+ "default": "false",
14769
+ "attribute": "required",
14770
+ "reflects": true
14771
+ },
14314
14772
  {
14315
14773
  "kind": "field",
14316
14774
  "name": "setCustomValidityForType",
@@ -14324,14 +14782,23 @@
14324
14782
  },
14325
14783
  {
14326
14784
  "kind": "field",
14327
- "name": "size",
14785
+ "name": "setSelectionInputTypes",
14786
+ "type": {
14787
+ "text": "array"
14788
+ },
14789
+ "privacy": "private",
14790
+ "default": "[ \"text\", \"password\", \"email\" ]"
14791
+ },
14792
+ {
14793
+ "kind": "field",
14794
+ "name": "shape",
14328
14795
  "privacy": "public",
14329
14796
  "type": {
14330
14797
  "text": "string"
14331
14798
  },
14332
- "attribute": "size",
14799
+ "attribute": "shape",
14333
14800
  "reflects": true,
14334
- "default": "'lg'",
14801
+ "default": "'classic'",
14335
14802
  "inheritedFrom": {
14336
14803
  "name": "AuroElement",
14337
14804
  "module": "components/layoutElement/src/auroElement.js"
@@ -14339,19 +14806,62 @@
14339
14806
  },
14340
14807
  {
14341
14808
  "kind": "field",
14342
- "name": "shape",
14809
+ "name": "showPassword",
14810
+ "privacy": "private",
14811
+ "type": {
14812
+ "text": "boolean"
14813
+ },
14814
+ "default": "false",
14815
+ "attribute": "showPassword"
14816
+ },
14817
+ {
14818
+ "kind": "field",
14819
+ "name": "size",
14343
14820
  "privacy": "public",
14344
14821
  "type": {
14345
14822
  "text": "string"
14346
14823
  },
14347
- "attribute": "shape",
14824
+ "attribute": "size",
14348
14825
  "reflects": true,
14349
- "default": "'classic'",
14826
+ "default": "'lg'",
14350
14827
  "inheritedFrom": {
14351
14828
  "name": "AuroElement",
14352
14829
  "module": "components/layoutElement/src/auroElement.js"
14353
14830
  }
14354
14831
  },
14832
+ {
14833
+ "kind": "field",
14834
+ "name": "touched",
14835
+ "privacy": "private",
14836
+ "type": {
14837
+ "text": "boolean"
14838
+ },
14839
+ "description": "Indicates whether the input is in a dirty state (has been interacted with).",
14840
+ "default": "false"
14841
+ },
14842
+ {
14843
+ "kind": "field",
14844
+ "name": "uniqueId",
14845
+ "privacy": "private"
14846
+ },
14847
+ {
14848
+ "kind": "field",
14849
+ "name": "util",
14850
+ "privacy": "private",
14851
+ "default": "new AuroInputUtilities({ locale: this.locale, format: this.format })"
14852
+ },
14853
+ {
14854
+ "kind": "field",
14855
+ "name": "validation",
14856
+ "privacy": "private",
14857
+ "default": "new AuroFormValidation()"
14858
+ },
14859
+ {
14860
+ "kind": "field",
14861
+ "name": "validationCCLength",
14862
+ "privacy": "private",
14863
+ "default": "undefined"
14864
+ },
14355
14865
  {
14356
14866
  "kind": "field",
14357
14867
  "name": "value",
@@ -14363,11 +14873,6 @@
14363
14873
  "default": "undefined",
14364
14874
  "attribute": "value"
14365
14875
  },
14366
- {
14367
- "kind": "field",
14368
- "name": "_valueObject",
14369
- "default": "undefined"
14370
- },
14371
14876
  {
14372
14877
  "kind": "field",
14373
14878
  "name": "a11yRole",
@@ -14412,17 +14917,6 @@
14412
14917
  "attribute": "a11yActivedescendant",
14413
14918
  "reflects": true
14414
14919
  },
14415
- {
14416
- "kind": "field",
14417
- "name": "activeLabel",
14418
- "privacy": "public",
14419
- "type": {
14420
- "text": "boolean"
14421
- },
14422
- "description": "If set, the label will remain fixed in the active position.",
14423
- "attribute": "activeLabel",
14424
- "reflects": true
14425
- },
14426
14920
  {
14427
14921
  "kind": "field",
14428
14922
  "name": "autocapitalize",
@@ -14466,17 +14960,6 @@
14466
14960
  "description": "Custom help text message for email type validity.",
14467
14961
  "attribute": "customValidityTypeEmail"
14468
14962
  },
14469
- {
14470
- "kind": "field",
14471
- "name": "dvInputOnly",
14472
- "privacy": "public",
14473
- "type": {
14474
- "text": "boolean"
14475
- },
14476
- "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
14477
- "attribute": "dvInputOnly",
14478
- "reflects": true
14479
- },
14480
14963
  {
14481
14964
  "kind": "field",
14482
14965
  "name": "error",
@@ -14518,37 +15001,6 @@
14518
15001
  },
14519
15002
  "description": "Flag to indicate if the input currently has focus."
14520
15003
  },
14521
- {
14522
- "kind": "field",
14523
- "name": "hasValue",
14524
- "privacy": "public",
14525
- "type": {
14526
- "text": "boolean"
14527
- },
14528
- "description": "Flag to indicate if the input currently has value."
14529
- },
14530
- {
14531
- "kind": "field",
14532
- "name": "hideLabelVisually",
14533
- "privacy": "private",
14534
- "type": {
14535
- "text": "boolean"
14536
- },
14537
- "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
14538
- "attribute": "hideLabelVisually",
14539
- "reflects": true
14540
- },
14541
- {
14542
- "kind": "field",
14543
- "name": "icon",
14544
- "privacy": "public",
14545
- "type": {
14546
- "text": "boolean"
14547
- },
14548
- "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
14549
- "attribute": "icon",
14550
- "reflects": true
14551
- },
14552
15004
  {
14553
15005
  "kind": "field",
14554
15006
  "name": "id",
@@ -14613,17 +15065,6 @@
14613
15065
  "attribute": "nested",
14614
15066
  "reflects": true
14615
15067
  },
14616
- {
14617
- "kind": "field",
14618
- "name": "noValidate",
14619
- "privacy": "public",
14620
- "type": {
14621
- "text": "boolean"
14622
- },
14623
- "description": "If set, disables auto-validation on blur.",
14624
- "attribute": "noValidate",
14625
- "reflects": true
14626
- },
14627
15068
  {
14628
15069
  "kind": "field",
14629
15070
  "name": "pattern",
@@ -14737,12 +15178,6 @@
14737
15178
  "description": "Custom help text message to display when validity = `valueMissing`.",
14738
15179
  "attribute": "setCustomValidityValueMissing"
14739
15180
  },
14740
- {
14741
- "kind": "field",
14742
- "name": "showPassword",
14743
- "privacy": "public",
14744
- "attribute": "showPassword"
14745
- },
14746
15181
  {
14747
15182
  "kind": "field",
14748
15183
  "name": "simple",
@@ -14765,15 +15200,6 @@
14765
15200
  "attribute": "spellcheck",
14766
15201
  "reflects": true
14767
15202
  },
14768
- {
14769
- "kind": "field",
14770
- "name": "touched",
14771
- "privacy": "private",
14772
- "type": {
14773
- "text": "boolean"
14774
- },
14775
- "description": "Indicates whether the input is in a dirty state (has been interacted with)."
14776
- },
14777
15203
  {
14778
15204
  "kind": "field",
14779
15205
  "name": "type",
@@ -14903,6 +15329,7 @@
14903
15329
  "text": "boolean"
14904
15330
  },
14905
15331
  "description": "If set, the label will remain fixed in the active position.",
15332
+ "default": "false",
14906
15333
  "fieldName": "activeLabel"
14907
15334
  },
14908
15335
  {
@@ -14961,6 +15388,7 @@
14961
15388
  "text": "boolean"
14962
15389
  },
14963
15390
  "description": "If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked.",
15391
+ "default": "false",
14964
15392
  "fieldName": "dvInputOnly"
14965
15393
  },
14966
15394
  {
@@ -14993,6 +15421,7 @@
14993
15421
  "text": "boolean"
14994
15422
  },
14995
15423
  "description": "If set, the label will be hidden visually but still accessible to assistive technologies.",
15424
+ "default": "false",
14996
15425
  "fieldName": "hideLabelVisually"
14997
15426
  },
14998
15427
  {
@@ -15001,6 +15430,7 @@
15001
15430
  "text": "boolean"
15002
15431
  },
15003
15432
  "description": "If set, will render an icon inside the input to the left of the value. Support is limited to auro-input instances with credit card format.",
15433
+ "default": "false",
15004
15434
  "fieldName": "icon"
15005
15435
  },
15006
15436
  {
@@ -15094,6 +15524,7 @@
15094
15524
  "text": "boolean"
15095
15525
  },
15096
15526
  "description": "If set, disables auto-validation on blur.",
15527
+ "default": "false",
15097
15528
  "fieldName": "noValidate"
15098
15529
  },
15099
15530
  {
@@ -15213,6 +15644,10 @@
15213
15644
  },
15214
15645
  {
15215
15646
  "name": "showPassword",
15647
+ "type": {
15648
+ "text": "boolean"
15649
+ },
15650
+ "default": "false",
15216
15651
  "fieldName": "showPassword"
15217
15652
  },
15218
15653
  {
@@ -18506,6 +18941,18 @@
18506
18941
  }
18507
18942
  }
18508
18943
  },
18944
+ {
18945
+ "kind": "method",
18946
+ "name": "_syncLabelText",
18947
+ "description": "Reads the current label slot text and pushes it to the dropdown bib\n(for dialog naming) and the menu (for listbox aria-label). Safe to call\nbefore either child has been wired up — each branch self-guards.",
18948
+ "privacy": "private"
18949
+ },
18950
+ {
18951
+ "kind": "method",
18952
+ "name": "_observeLabelChanges",
18953
+ "description": "Keeps the dialog/menu accessible names in sync when consumers mutate the\nlabel slot at runtime (e.g., i18n locale swap). `slotchange` alone is\ninsufficient — it doesn't fire when textContent of an already-assigned\nslotted node changes, which is the common case. We scope the observer to\nthe label node itself (not the whole host subtree) so option-content\nmutations don't trigger label re-syncs, and re-target on `slotchange`\nwhen consumers add or replace the label element.",
18954
+ "privacy": "private"
18955
+ },
18509
18956
  {
18510
18957
  "kind": "method",
18511
18958
  "name": "register",
@@ -19224,15 +19671,6 @@
19224
19671
  "module": "components/layoutElement/src/auroElement.js"
19225
19672
  }
19226
19673
  },
19227
- {
19228
- "kind": "field",
19229
- "name": "options",
19230
- "privacy": "private",
19231
- "type": {
19232
- "text": "array"
19233
- },
19234
- "attribute": "options"
19235
- },
19236
19674
  {
19237
19675
  "kind": "field",
19238
19676
  "name": "optionSelected",
@@ -19601,13 +20039,6 @@
19601
20039
  "description": "DEPRECATED - use `appearance=\"inverse\"` instead.",
19602
20040
  "fieldName": "onDark"
19603
20041
  },
19604
- {
19605
- "name": "options",
19606
- "type": {
19607
- "text": "array"
19608
- },
19609
- "fieldName": "options"
19610
- },
19611
20042
  {
19612
20043
  "name": "optionSelected",
19613
20044
  "type": {
@@ -19785,7 +20216,7 @@
19785
20216
  "type": {
19786
20217
  "text": "object"
19787
20218
  },
19788
- "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) { // Always clear the type-ahead buffer — Escape is a universal cancel. // Safe to call when the buffer is empty. // eslint-disable-next-line no-underscore-dangle if (typeof component._clearTypeaheadBuffer === 'function') { // eslint-disable-next-line no-underscore-dangle component._clearTypeaheadBuffer(); } 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) { // Space resolves to either typeahead-buffer extension or bib toggle // depending on whether a type-ahead buffer is active. Mirrors native // <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space // is a search character (e.g. \"San Francisco\"); otherwise it toggles. if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (component.typeaheadBuffer && component.typeaheadBuffer.length > 0) { component.updateActiveOptionBasedOnKey(evt.key); return; } if (ctx.isExpanded) { component.dropdown.hide(); } else { component.dropdown.show(); } return; } component.updateActiveOptionBasedOnKey(evt.key); }, }"
20219
+ "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) { // Always clear the type-ahead buffer — Escape is a universal cancel. // Safe to call when the buffer is empty. // eslint-disable-next-line no-underscore-dangle if (typeof component._clearTypeaheadBuffer === 'function') { // eslint-disable-next-line no-underscore-dangle component._clearTypeaheadBuffer(); } 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) { evt.preventDefault(); evt.stopPropagation(); // `pop()` is safe here: getEnabledOptions returns a fresh filtered array. const lastOption = getEnabledOptions(component.menu).pop(); if (!lastOption) { return; } // Pre-stash before show() so the auroDropdown-toggled handler's // `!optionActive` guard short-circuits the firstActive/selected fallback — // otherwise show() synchronously fires the handler and writes // aria-activedescendant once before we overwrite it. component.menu.updateActiveOption(lastOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, Enter(component, evt, ctx) { // Prevent the keypress from bubbling to parent containers (e.g., forms) // which could interpret Enter as a submit. Matches APG select-only combobox // and native <select> behavior: Enter opens the listbox when closed, selects // the active option when open — it does not submit a parent form. evt.preventDefault(); evt.stopPropagation(); if (!ctx.isExpanded) { component.dropdown.show(); return; } component.menu.makeSelection(); }, Home(component, evt, ctx) { evt.preventDefault(); evt.stopPropagation(); const [firstOption] = getEnabledOptions(component.menu); if (!firstOption) { return; } // See End() for why this must run before show(). component.menu.updateActiveOption(firstOption); if (!ctx.isExpanded) { component.dropdown.show(); } }, 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) { // Space resolves to either typeahead-buffer extension or bib toggle // depending on whether a type-ahead buffer is active. Mirrors native // <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space // is a search character (e.g. \"San Francisco\"); otherwise it toggles. if (evt.key === ' ') { evt.preventDefault(); evt.stopPropagation(); if (component.typeaheadBuffer && component.typeaheadBuffer.length > 0) { component.updateActiveOptionBasedOnKey(evt.key); return; } if (ctx.isExpanded) { component.dropdown.hide(); } else { component.dropdown.show(); } return; } component.updateActiveOptionBasedOnKey(evt.key); }, }"
19789
20220
  }
19790
20221
  ],
19791
20222
  "exports": [