@aurodesignsystem-dev/auro-formkit 0.0.0-pr1503.4 → 0.0.0-pr1503.5

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 (190) 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/accessibility.md +1 -1
  4. package/components/checkbox/demo/customize.html +1 -2
  5. package/components/checkbox/demo/customize.min.js +23 -8
  6. package/components/checkbox/demo/getting-started.min.js +23 -8
  7. package/components/checkbox/demo/index.min.js +23 -8
  8. package/components/checkbox/dist/index.js +23 -8
  9. package/components/checkbox/dist/registered.js +23 -8
  10. package/components/combobox/README.md +1 -1
  11. package/components/combobox/demo/accessibility.md +1 -1
  12. package/components/combobox/demo/api.md +2 -2
  13. package/components/combobox/demo/customize.html +1 -2
  14. package/components/combobox/demo/customize.md +166 -142
  15. package/components/combobox/demo/customize.min.js +2515 -2316
  16. package/components/combobox/demo/getting-started.min.js +2515 -2312
  17. package/components/combobox/demo/index.md +2 -1
  18. package/components/combobox/demo/index.min.js +2515 -2312
  19. package/components/combobox/demo/keyboard-behavior.md +3 -146
  20. package/components/combobox/demo/readme.md +1 -1
  21. package/components/combobox/demo/why-combobox.md +2 -2
  22. package/components/combobox/dist/auro-combobox.d.ts +49 -15
  23. package/components/combobox/dist/index.js +1462 -753
  24. package/components/combobox/dist/registered.js +1462 -753
  25. package/components/counter/demo/customize.min.js +188 -244
  26. package/components/counter/demo/index.min.js +188 -244
  27. package/components/counter/dist/auro-counter.d.ts +0 -8
  28. package/components/counter/dist/index.js +188 -244
  29. package/components/counter/dist/registered.js +188 -244
  30. package/components/datepicker/demo/accessibility.md +20 -10
  31. package/components/datepicker/demo/api.md +65 -62
  32. package/components/datepicker/demo/customize.md +180 -40
  33. package/components/datepicker/demo/customize.min.js +1690 -777
  34. package/components/datepicker/demo/getting-started.md +118 -2
  35. package/components/datepicker/demo/index.min.js +1690 -759
  36. package/components/datepicker/demo/keyboard-behavior.md +3 -3
  37. package/components/datepicker/demo/voiceover.md +4 -4
  38. package/components/datepicker/demo/why-datepicker.md +2 -2
  39. package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +48 -3
  40. package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +188 -10
  41. package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +89 -6
  42. package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
  43. package/components/datepicker/dist/index.js +1690 -759
  44. package/components/datepicker/dist/registered.js +1690 -759
  45. package/components/dropdown/demo/customize.html +3 -0
  46. package/components/dropdown/demo/customize.min.js +142 -208
  47. package/components/dropdown/demo/getting-started.min.js +131 -207
  48. package/components/dropdown/demo/index.min.js +131 -207
  49. package/components/dropdown/dist/auro-dropdown.d.ts +17 -1
  50. package/components/dropdown/dist/index.js +131 -207
  51. package/components/dropdown/dist/registered.js +131 -207
  52. package/components/form/demo/api.md +3 -3
  53. package/components/form/demo/customize.html +6 -6
  54. package/components/form/demo/customize.md +535 -135
  55. package/components/form/demo/customize.min.js +6307 -4378
  56. package/components/form/demo/getting-started.md +344 -96
  57. package/components/form/demo/getting-started.min.js +6255 -4378
  58. package/components/form/demo/index.min.js +6206 -4378
  59. package/components/form/demo/registerDemoDeps.min.js +5827 -4333
  60. package/components/form/dist/auro-form.d.ts +128 -10
  61. package/components/form/dist/index.js +377 -43
  62. package/components/form/dist/registered.js +377 -43
  63. package/components/input/demo/accessibility.md +1 -1
  64. package/components/input/demo/api.md +58 -57
  65. package/components/input/demo/customize.html +1 -2
  66. package/components/input/demo/customize.md +62 -61
  67. package/components/input/demo/customize.min.js +396 -275
  68. package/components/input/demo/getting-started.min.js +396 -275
  69. package/components/input/demo/index.min.js +396 -275
  70. package/components/input/dist/auro-input.d.ts +1 -1
  71. package/components/input/dist/base-input.d.ts +60 -81
  72. package/components/input/dist/index.js +409 -276
  73. package/components/input/dist/registered.js +396 -275
  74. package/components/input/dist/utilities.d.ts +10 -1
  75. package/components/menu/demo/accessibility.md +9 -4
  76. package/components/menu/demo/api.md +48 -45
  77. package/components/menu/demo/css-only.md +26 -19
  78. package/components/menu/demo/customize.md +307 -75
  79. package/components/menu/demo/design.md +1 -1
  80. package/components/menu/demo/getting-started.md +144 -7
  81. package/components/menu/demo/index.min.js +961 -1341
  82. package/components/menu/demo/keyboard-behavior.md +83 -4
  83. package/components/menu/demo/voiceover.md +21 -14
  84. package/components/menu/demo/why-menu.md +8 -9
  85. package/components/menu/dist/auro-menu-utils.d.ts +19 -0
  86. package/components/menu/dist/auro-menu.d.ts +97 -116
  87. package/components/menu/dist/auro-menuoption.d.ts +39 -133
  88. package/components/menu/dist/index.js +823 -1309
  89. package/components/menu/dist/registered.js +835 -1309
  90. package/components/radio/demo/accessibility.md +1 -1
  91. package/components/radio/demo/customize.min.js +23 -8
  92. package/components/radio/demo/getting-started.min.js +23 -8
  93. package/components/radio/demo/index.min.js +23 -8
  94. package/components/radio/dist/index.js +23 -8
  95. package/components/radio/dist/registered.js +23 -8
  96. package/components/select/demo/accessibility.md +6 -1
  97. package/components/select/demo/api.md +3 -2
  98. package/components/select/demo/customize.html +1 -2
  99. package/components/select/demo/customize.md +210 -5
  100. package/components/select/demo/customize.min.js +1613 -1854
  101. package/components/select/demo/design.md +10 -10
  102. package/components/select/demo/getting-started.md +1 -1
  103. package/components/select/demo/getting-started.min.js +1617 -1903
  104. package/components/select/demo/index.md +2 -2
  105. package/components/select/demo/index.min.js +1613 -1854
  106. package/components/select/demo/keyboard-behavior.md +81 -54
  107. package/components/select/demo/voiceover.md +28 -15
  108. package/components/select/dist/auro-select.d.ts +70 -12
  109. package/components/select/dist/index.js +580 -315
  110. package/components/select/dist/registered.js +580 -315
  111. package/components/select/dist/selectUtils.d.ts +24 -0
  112. package/custom-elements.json +8071 -7919
  113. package/package.json +7 -3
  114. package/components/checkbox/demo/customize.js +0 -22
  115. package/components/checkbox/demo/demo-support.js +0 -1
  116. package/components/checkbox/demo/getting-started.js +0 -22
  117. package/components/checkbox/demo/index.js +0 -8
  118. package/components/checkbox/demo/styles.scss +0 -1
  119. package/components/combobox/demo/customize.js +0 -24
  120. package/components/combobox/demo/demo-support.js +0 -1
  121. package/components/combobox/demo/getting-started.js +0 -21
  122. package/components/combobox/demo/index.js +0 -23
  123. package/components/combobox/demo/styles.scss +0 -1
  124. package/components/counter/demo/customize.js +0 -21
  125. package/components/counter/demo/demo-support.js +0 -1
  126. package/components/counter/demo/index.js +0 -21
  127. package/components/counter/demo/styles.scss +0 -1
  128. package/components/datepicker/demo/customize.js +0 -19
  129. package/components/datepicker/demo/demo-support.js +0 -1
  130. package/components/datepicker/demo/index.js +0 -23
  131. package/components/datepicker/demo/styles.scss +0 -1
  132. package/components/dropdown/demo/customize.js +0 -9
  133. package/components/dropdown/demo/demo-support.js +0 -1
  134. package/components/dropdown/demo/getting-started.js +0 -9
  135. package/components/dropdown/demo/index.js +0 -16
  136. package/components/dropdown/demo/styles.scss +0 -1
  137. package/components/form/demo/customize.js +0 -9
  138. package/components/form/demo/demo-support.js +0 -1
  139. package/components/form/demo/getting-started.js +0 -9
  140. package/components/form/demo/index.js +0 -5
  141. package/components/form/demo/registerDemoDeps.js +0 -23
  142. package/components/form/demo/styles.scss +0 -1
  143. package/components/input/demo/customize.js +0 -25
  144. package/components/input/demo/demo-support.js +0 -1
  145. package/components/input/demo/getting-started.js +0 -8
  146. package/components/input/demo/index.js +0 -8
  147. package/components/input/demo/styles.css +0 -974
  148. package/components/input/demo/styles.scss +0 -1
  149. package/components/menu/demo/demo-support.js +0 -1
  150. package/components/menu/demo/index.js +0 -25
  151. package/components/menu/demo/styles.scss +0 -1
  152. package/components/menu/dist/auro-menu.context.d.ts +0 -238
  153. package/components/radio/demo/customize.js +0 -22
  154. package/components/radio/demo/demo-support.js +0 -1
  155. package/components/radio/demo/getting-started.js +0 -24
  156. package/components/radio/demo/index.js +0 -8
  157. package/components/radio/demo/styles.scss +0 -1
  158. package/components/select/demo/customize.js +0 -11
  159. package/components/select/demo/demo-support.js +0 -1
  160. package/components/select/demo/getting-started.js +0 -26
  161. package/components/select/demo/index.js +0 -11
  162. package/components/select/demo/styles.scss +0 -1
  163. /package/components/counter/dist/styles/{counter-wrapper-color-css.d.ts → counter-group-color-css.d.ts} +0 -0
  164. /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
  165. /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
  166. /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
  167. /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
  168. /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
  169. /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
  170. /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
  171. /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
  172. /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
  173. /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
  174. /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
  175. /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
  176. /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
  177. /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
  178. /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
  179. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
  180. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
  181. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
  182. /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
  183. /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
  184. /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
  185. /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
  186. /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
  187. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
  188. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
  189. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
  190. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
@@ -26,7 +26,7 @@ const t$2=globalThis,i$4=t=>t,s$4=t$2.trustedTypes,e$3=s$4?s$4.createPolicy("lit
26
26
 
27
27
  var shapeSizeCss = i$6`.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:56px;max-height:56px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:58px;max-height:58px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:56px;max-height:56px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:54px;max-height:54px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-box-lg{min-height:52px;max-height:52px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-box-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-box-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-box-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-box-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-box-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-box-sm{min-height:32px;max-height:32px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-sm.simple{border-width:0px;min-height:36px;max-height:36px;background-color:unset;box-shadow:none}.shape-box-sm.thin{border-width:1px;min-height:34px;max-height:34px;background-color:unset}.shape-box-sm.parentBorder{border:0;box-shadow:unset;min-height:32px;max-height:32px}.shape-box-xs{min-height:20px;max-height:20px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xs.simple{border-width:0px;min-height:24px;max-height:24px;background-color:unset;box-shadow:none}.shape-box-xs.thin{border-width:1px;min-height:22px;max-height:22px;background-color:unset}.shape-box-xs.parentBorder{border:0;box-shadow:unset;min-height:20px;max-height:20px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
28
28
 
29
- var styleCss$1 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:host{display:block}.wrapper:has(:enabled){cursor:text}.wrapper:has(:enabled) label{cursor:text}.helpTextClasses{cursor:default}input{overflow:clip !important;width:100%;padding:0;border:0;background:unset;outline:none;overflow-clip-margin:0 !important;text-overflow:ellipsis}input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.displayValue{display:none}.displayValue.hasContent:is(.withValue):not(.hasFocus){display:flex;align-items:center}.accents:not(.util_displayHidden){display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}.wrapper:not(:focus-within):not(:hover) .notificationBtn.passwordBtn,.wrapper:not(:focus-within):not(:hover) .notification.clear{display:none}.notification{display:flex;align-items:center;justify-content:center}`;
29
+ var styleCss$1 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:host{display:block}.wrapper:has(:enabled){cursor:text}.wrapper:has(:enabled) label{cursor:text}.helpTextClasses{cursor:default}input{overflow:clip !important;width:100%;padding:0;border:0;background:unset;outline:none;overflow-clip-margin:0 !important;text-overflow:ellipsis}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.displayValue{display:none}.displayValue.hasContent:is(.withValue):not(.hasFocus){display:flex;align-items:center}.accents:not(.util_displayHidden){display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}.wrapper:not(:focus-within):not(:hover) .notificationBtn.passwordBtn,.wrapper:not(:focus-within):not(:hover) .notification.clear{display:none}.notification{display:flex;align-items:center;justify-content:center}`;
30
30
 
31
31
  var styleDefaultCss = i$6`.layoutDefault .typeIcon,:host(:not([layout])) .typeIcon{display:flex;flex-direction:row;align-items:center}.layoutDefault .typeIcon [auro-icon],:host(:not([layout])) .typeIcon [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);height:var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-100, 0.5rem)}.layoutDefault .notificationIcons,:host(:not([layout])) .notificationIcons{display:flex;flex-direction:row;padding-right:var(--ds-size-100, 0.5rem)}:host([class=layoutDefault][bordered]) .typeIcon,:host(:not([layout])[bordered]) .typeIcon{padding-left:var(--ds-size-100, 0.5rem)}:host([class=layoutDefault][bordered]) .notificationIcons,:host(:not([layout])[bordered]) .notificationIcons{align-items:center}:host([class=layoutDefault][bordered]) .notification:not(:first-of-type),:host(:not([layout])[bordered]) .notification:not(:first-of-type){margin-left:var(--ds-size-100, 0.5rem)}:host([class=layoutDefault][bordered]) .alertNotification,:host(:not([layout])[bordered]) .alertNotification{width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-25, 0.125rem));height:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-25, 0.125rem))}:host([class=layoutDefault][bordered]) .passwordBtn,:host(:not([layout])[bordered]) .passwordBtn{width:calc(var(--ds-size-300, 1.5rem));height:calc(var(--ds-size-300, 1.5rem))}:host([class=layoutDefault][bordered]) .notificationBtn,:host(:not([layout])[bordered]) .notificationBtn{display:block;width:var(--ds-size-300, 1.5rem);height:var(--ds-size-300, 1.5rem);padding:0;border:0;background:unset;cursor:pointer}:host([class=layoutDefault][bordered]) .notificationBtn [auro-icon],:host(:not([layout])[bordered]) .notificationBtn [auro-icon]{display:block;height:var(--ds-size-300, 1.5rem);--ds-auro-icon-size: var(--ds-size-300, 1.5rem)}:host([class=layoutDefault][bordered]) .notificationBtn [auro-icon][hidden],:host(:not([layout])[bordered]) .notificationBtn [auro-icon][hidden]{display:none}:host([class=layoutDefault]:not([bordered])) .typeIcon,:host([class=layoutDefault]:not([bordered])) .notificationIcons,:host(:not([layout]):not([bordered])) .typeIcon,:host(:not([layout]):not([bordered])) .notificationIcons{align-items:flex-end;padding-bottom:var(--ds-size-50, 0.25rem)}:host([class=layoutDefault]:not([bordered])) .clearBtn,:host(:not([layout]):not([bordered])) .clearBtn{transition:all .3s cubic-bezier(0.215, 0.61, 0.355, 1);overflow:hidden;width:0;opacity:0}.layoutDefault .wrapper:hover .clearBtn,.layoutDefault .wrapper:focus-within .clearBtn,:host(:not([layout])) .wrapper:hover .clearBtn,:host(:not([layout])) .wrapper:focus-within .clearBtn{width:calc(var(--ds-size-200, 1rem) + var(--ds-size-25, 0.125rem));height:calc(var(--ds-size-200, 1rem) + var(--ds-size-25, 0.125rem));opacity:1}:host([class=layoutDefault]:focus-within[type=password]) .notificationIcons[hasValue] .alertNotification,:host(:not([layout]):focus-within[type=password]) .notificationIcons[hasValue] .alertNotification{overflow:hidden;width:0;height:0;padding:0;margin:0;visibility:hidden}.layoutDefault input,:host(:not([layout])) input{border:unset}.layoutDefault .wrapper,:host(:not([layout])) .wrapper{position:relative;overflow:hidden;border-style:solid}:host([class=layoutDefault]:not([bordered],[borderless])) .wrapper,:host(:not([layout]):not([bordered],[borderless])) .wrapper{border-width:1px 0}:host([class=layoutDefault][bordered]) .wrapper,:host(:not([layout])[bordered]) .wrapper{border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}:host([class=layoutDefault]:not([borderless])) .wrapper:focus-within:before,:host(:not([layout]):not([borderless])) .wrapper:focus-within:before{position:absolute;display:block;border-bottom-width:1px;border-bottom-style:solid;content:"";inset:0;pointer-events:none}:host([class=layoutDefault][validity]:not([validity=valid])) .wrapper:before,:host(:not([layout])[validity]:not([validity=valid])) .wrapper:before{border-bottom:0}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{text-align:left}.layoutDefault :host,:host(:not([layout])) :host{position:relative;display:block}.layoutDefault .wrapper,:host(:not([layout])) .wrapper{display:flex;flex-direction:row}.layoutDefault .main,:host(:not([layout])) .main{display:flex;flex-direction:row;position:relative;flex:1}`;
32
32
 
@@ -4343,8 +4343,21 @@ class AuroFormValidation {
4343
4343
  return;
4344
4344
  }
4345
4345
 
4346
- // Validate that the date passed was the correct format and is a valid date
4346
+ // Validate that the date passed was the correct format and is a valid date.
4347
+ // For partial date formats, valueObject is never populated; validate them directly.
4347
4348
  if (elem.value && !elem.valueObject) {
4349
+ const isPartialDateFormat = elem.util && !elem.util.isFullDateFormat(elem.type, elem.format);
4350
+
4351
+ if (isPartialDateFormat) {
4352
+ if (!elem.util.isValidPartialDate(elem.value, elem.format)) {
4353
+ elem.validity = 'patternMismatch';
4354
+ elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
4355
+ }
4356
+ // Partial date format — validate directly and skip max/min checks since valueObject is undefined.
4357
+ return;
4358
+ }
4359
+
4360
+ // Full date format with no valueObject means the value is not a valid calendar date.
4348
4361
  elem.validity = 'patternMismatch';
4349
4362
  elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || 'Invalid Date Format Entered';
4350
4363
  return;
@@ -4441,15 +4454,17 @@ class AuroFormValidation {
4441
4454
  );
4442
4455
  }
4443
4456
 
4444
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
4445
- if (this.auroInputElements?.length === 2) {
4446
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
4457
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
4458
+
4459
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
4460
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
4461
+ // field (datepicker is the intended consumer — start/end are independently required).
4462
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
4463
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
4447
4464
  hasValue = false;
4448
4465
  }
4449
4466
  }
4450
4467
 
4451
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
4452
-
4453
4468
  if (isCombobox) {
4454
4469
 
4455
4470
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -4548,7 +4563,7 @@ class AuroFormValidation {
4548
4563
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
4549
4564
  const input = elem.renderRoot.querySelector('input');
4550
4565
 
4551
- if (input.validationMessage.length > 0) {
4566
+ if (input && input.validationMessage.length > 0) {
4552
4567
  elem.errorMessage = input.validationMessage;
4553
4568
  }
4554
4569
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
@@ -10130,8 +10145,6 @@ function cleanEscapedString(input) {
10130
10145
  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'");
10131
10146
  }
10132
10147
 
10133
- /* eslint-disable max-lines */
10134
-
10135
10148
  class AuroInputUtilities {
10136
10149
 
10137
10150
  /**
@@ -10174,7 +10187,7 @@ class AuroInputUtilities {
10174
10187
  /**
10175
10188
  * Converts an IMask-style date mask to a date-fns compatible format string.
10176
10189
  * @param {string} mask - IMask date mask (e.g. "MM/DD/YYYY").
10177
- * @returns {string} date-fns format string (e.g. "MM/dd/yyyy").
10190
+ * @returns {string} A date-fns format string (e.g. "MM/dd/yyyy").
10178
10191
  */
10179
10192
  toDateFnsMask(mask) {
10180
10193
  return mask
@@ -10274,10 +10287,11 @@ class AuroInputUtilities {
10274
10287
  const dateFormat = format$1 || this.overrideFormat || pattern || 'mm/dd/yyyy';
10275
10288
 
10276
10289
  if (dateFormat === 'dd' || dateFormat === 'yy' || dateFormat === 'yyyy') {
10277
- const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 9999);
10290
+ const fromValue = dateFormat === 'yyyy' ? 1900 : (dateFormat === 'yy' ? 0 : 1);
10291
+ const maxValue = dateFormat === 'dd' ? 31 : (dateFormat === 'yy' ? 99 : 2100);
10278
10292
  return {
10279
10293
  mask: IMask.MaskedRange,
10280
- from: 1,
10294
+ from: fromValue,
10281
10295
  to: maxValue,
10282
10296
  lazy: true,
10283
10297
  placeholderChar: '',
@@ -10285,7 +10299,8 @@ class AuroInputUtilities {
10285
10299
  return value.toString().padStart(dateFormat.length, '0');
10286
10300
  },
10287
10301
  parse(str) {
10288
- return parseInt(str) || null;
10302
+ const num = parseInt(str, 10);
10303
+ return isNaN(num) ? null : num;
10289
10304
  }
10290
10305
  };
10291
10306
  }
@@ -10349,6 +10364,49 @@ class AuroInputUtilities {
10349
10364
  return type === 'date' && normalizedFormat.includes('yy') && normalizedFormat.includes('mm') && normalizedFormat.includes('dd');
10350
10365
  }
10351
10366
 
10367
+ /**
10368
+ * Validates a value against a partial date format (one that lacks yy/mm/dd all three).
10369
+ * Day- and year-only formats (dd/yy/yyyy) are checked as integer ranges; other partial formats use
10370
+ * a date-fns parse + round-trip to confirm both validity and exact formatting.
10371
+ * @param {string} value - The user-facing display value.
10372
+ * @param {string} format - The partial date format string (e.g. "mm/yyyy", "yyyy", "dd").
10373
+ * @returns {boolean}
10374
+ */
10375
+ isValidPartialDate(value, format$1) {
10376
+ if (!value || !format$1) {
10377
+ return false;
10378
+ }
10379
+ const normalizedFormat = format$1.toLowerCase();
10380
+
10381
+ if (normalizedFormat === 'dd') {
10382
+ const num = Number(value);
10383
+ return (/^\d{2}$/u).test(value) && num >= 1 && num <= 31;
10384
+ }
10385
+ if (normalizedFormat === 'yy') {
10386
+ const num = Number(value);
10387
+ return (/^\d{2}$/u).test(value) && num >= 0 && num <= 99;
10388
+ }
10389
+ if (normalizedFormat === 'yyyy') {
10390
+ const num = Number(value);
10391
+ return (/^\d{4}$/u).test(value) && num >= 1900 && num <= 2100;
10392
+ }
10393
+
10394
+ const dateFnsMask = this.toDateFnsMask(normalizedFormat);
10395
+ // Use the 1st of the current month as the reference so that formats
10396
+ // omitting a day (e.g. MM/yyyy) never roll over on days 29–31.
10397
+ const referenceDate = new Date();
10398
+ referenceDate.setDate(1);
10399
+ const parsed = parse(value, dateFnsMask, referenceDate);
10400
+ if (!isValid(parsed) || format(parsed, dateFnsMask) !== value) {
10401
+ return false;
10402
+ }
10403
+ if (normalizedFormat.includes('yyyy')) {
10404
+ const year = parsed.getFullYear();
10405
+ return year >= 1900 && year <= 2100;
10406
+ }
10407
+ return true;
10408
+ }
10409
+
10352
10410
  /**
10353
10411
  * Converts a display string to its model value.
10354
10412
  * For full date formats, converts the display string to an ISO date string.
@@ -10385,6 +10443,13 @@ class AuroInputUtilities {
10385
10443
  * @returns {string | undefined}
10386
10444
  */
10387
10445
  toFormattedValue(valueObject, format) {
10446
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
10447
+ // `format` argument has to fail gracefully rather than throw on
10448
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
10449
+ // as "no format → no display value".
10450
+ if (!format) {
10451
+ return undefined;
10452
+ }
10388
10453
  const normalizedFormat = format.toLowerCase();
10389
10454
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10390
10455
 
@@ -10523,9 +10588,10 @@ class DomHandler {
10523
10588
  class BaseInput extends AuroElement {
10524
10589
 
10525
10590
  // Delegate focus to the native <input> inside the shadow root so that
10526
- // showModal()'s dialog focusing steps reach the input element.
10527
- // This keeps the mobile virtual keyboard open when the fullscreen dialog
10528
- // opens, because the browser sees an input-to-input focus transfer.
10591
+ // clicking anywhere on the input wrapper focuses the native input, and
10592
+ // programmatic .focus() calls on elements in the shadow DOM work correctly.
10593
+ // The initial-load focus theft was caused by the static `autofocus`
10594
+ // attribute on the bib input (now conditional), not by delegatesFocus.
10529
10595
  static get shadowRootOptions() {
10530
10596
  return {
10531
10597
  ...AuroElement.shadowRootOptions,
@@ -10536,79 +10602,19 @@ class BaseInput extends AuroElement {
10536
10602
  constructor() {
10537
10603
  super();
10538
10604
 
10539
- this.appearance = "default";
10540
- this.disabled = false;
10541
- this.layout = 'classic';
10542
- this.locale = 'en-US';
10543
- this.max = undefined;
10544
- this._maxObject = undefined;
10545
- this.maxLength = undefined;
10546
- this.min = undefined;
10547
- this._minObject = undefined;
10548
- this.minLength = undefined;
10549
- this.required = false;
10550
- this.onDark = false;
10551
- this.setCustomValidityForType = undefined;
10552
- this.size = 'lg';
10553
- this.shape = 'classic';
10554
- this.value = undefined;
10555
- this._valueObject = undefined;
10556
-
10557
- this._initializePrivateDefaults();
10558
- }
10559
-
10560
- /**
10561
- * Internal Defaults.
10562
- * @private
10563
- * @returns {void}
10564
- */
10565
- _initializePrivateDefaults() {
10605
+ // Single-source initialization. Alphabetized so duplicate or stale
10606
+ // defaults are immediately obvious on a diff. Every field is assigned
10607
+ // exactly once here (previously the constructor + the old
10608
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
10609
+ // fields and double-allocated `util` and `validation`, discarding the
10610
+ // first instance). `validation` is now allocated exactly once; `util`
10611
+ // is seeded here with an en-US default and then rebuilt in
10612
+ // `connectedCallback` once the consumer-resolved locale is available,
10613
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
10614
+ // during its own update cycle sees a populated util instance.
10566
10615
  this.activeLabel = false;
10567
- this.appearance = "default";
10568
- this.icon = false;
10569
- this.disabled = false;
10570
- this.dvInputOnly = false;
10571
- this.hideLabelVisually = false;
10572
- this.max = undefined;
10573
- this.maxLength = undefined;
10574
- this.min = undefined;
10575
- this.minLength = undefined;
10576
- this.noValidate = false;
10577
- this.onDark = false;
10578
- this.required = false;
10579
- this.setCustomValidityForType = undefined;
10580
-
10581
- // Used for storing raw values returned from input mask.
10582
- this._rawMaskValue = undefined;
10583
-
10584
- /**
10585
- * @private
10586
- */
10587
- this.layout = 'classic';
10588
-
10589
- /**
10590
- * @private
10591
- */
10592
- this.shape = 'classic';
10593
-
10594
- /**
10595
- * @private
10596
- */
10597
- this.size = 'lg';
10598
-
10599
- this.touched = false;
10600
- this.util = new AuroInputUtilities({
10601
- locale: "en-US",
10602
- format: this.format
10603
- });
10604
- this.validation = new AuroFormValidation();
10605
- this.inputIconName = undefined;
10606
- this.showPassword = false;
10607
- this.validationCCLength = undefined;
10608
- this.hasValue = false;
10609
- this.label = 'Input label is undefined';
10610
-
10611
10616
 
10617
+ /** @private */
10612
10618
  this.allowedInputTypes = [
10613
10619
  "text",
10614
10620
  "number",
@@ -10617,7 +10623,9 @@ class BaseInput extends AuroElement {
10617
10623
  "credit-card",
10618
10624
  "tel"
10619
10625
  ];
10620
- this.icon = false;
10626
+ this.appearance = "default";
10627
+
10628
+ /** @private */
10621
10629
  this.dateFormatMap = {
10622
10630
  'mm/dd/yyyy': 'dateMMDDYYYY',
10623
10631
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -10634,27 +10642,64 @@ class BaseInput extends AuroElement {
10634
10642
  'dd/mm': 'dateDDMM',
10635
10643
  'mm/dd': 'dateMMDD'
10636
10644
  };
10645
+ this.disabled = false;
10646
+
10647
+ /** @private */
10637
10648
  this.domHandler = new DomHandler();
10638
10649
  this.dvInputOnly = false;
10639
10650
  this.hasValue = false;
10651
+ this.hideLabelVisually = false;
10652
+ this.icon = false;
10653
+
10654
+ /** @private */
10640
10655
  this.inputIconName = undefined;
10656
+
10657
+ /** @private */
10641
10658
  this.label = 'Input label is undefined';
10659
+ this.layout = 'classic';
10660
+ this.locale = 'en-US';
10661
+ this._format = undefined;
10662
+
10663
+ /** @private */
10664
+ this._userSetFormat = false;
10665
+ this.max = undefined;
10666
+ this.maxLength = undefined;
10667
+ this.min = undefined;
10668
+ this.minLength = undefined;
10642
10669
  this.noValidate = false;
10643
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
10670
+ this.onDark = false;
10671
+ this.required = false;
10672
+ this.setCustomValidityForType = undefined;
10673
+ // Credit Card is intentionally excluded — its mask manages the cursor
10674
+ // itself, and listing it here caused cursor placement issues in Safari.
10675
+ /** @private */
10644
10676
  this.setSelectionInputTypes = [
10645
10677
  "text",
10646
10678
  "password",
10647
10679
  "email"
10648
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
10680
+ ];
10681
+ this.shape = 'classic';
10682
+
10683
+ /** @private */
10649
10684
  this.showPassword = false;
10685
+ this.size = 'lg';
10650
10686
  this.touched = false;
10687
+
10688
+ /** @private */
10651
10689
  this.uniqueId = new UniqueId().create();
10690
+
10691
+ /** @private */
10652
10692
  this.util = new AuroInputUtilities({
10653
10693
  locale: this.locale,
10654
10694
  format: this.format
10655
10695
  });
10696
+
10697
+ /** @private */
10656
10698
  this.validation = new AuroFormValidation();
10699
+
10700
+ /** @private */
10657
10701
  this.validationCCLength = undefined;
10702
+ this.value = undefined;
10658
10703
  }
10659
10704
 
10660
10705
  // function to define props used within the scope of this component
@@ -10780,7 +10825,8 @@ class BaseInput extends AuroElement {
10780
10825
  */
10781
10826
  format: {
10782
10827
  type: String,
10783
- reflect: true
10828
+ reflect: true,
10829
+ noAccessor: true
10784
10830
  },
10785
10831
 
10786
10832
  /**
@@ -10984,6 +11030,13 @@ class BaseInput extends AuroElement {
10984
11030
  type: String
10985
11031
  },
10986
11032
 
11033
+ /**
11034
+ * Custom help text message to display when validity = `patternMismatch`.
11035
+ */
11036
+ setCustomValidityPatternMismatch: {
11037
+ type: String
11038
+ },
11039
+
10987
11040
  /**
10988
11041
  * Custom help text message to display when validity = `rangeOverflow`.
10989
11042
  */
@@ -11054,7 +11107,7 @@ class BaseInput extends AuroElement {
11054
11107
 
11055
11108
  /**
11056
11109
  * Populates the `type` attribute on the input.
11057
- * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number'}
11110
+ * @type {'text' | 'password' | 'email' | 'credit-card' | 'tel' | 'number' | 'date'}
11058
11111
  * @default 'text'
11059
11112
  */
11060
11113
  type: {
@@ -11079,7 +11132,7 @@ class BaseInput extends AuroElement {
11079
11132
 
11080
11133
  /**
11081
11134
  * Populates the `value` attribute on the input. Can also be read to retrieve the current value of the input.
11082
- * The format for this property should be ISO for `date` type inputs.
11135
+ * For `date` type inputs using a full date format (year/month/day), the `value` should be ISO (YYYY-MM-DD). Partial date formats use the display format.
11083
11136
  */
11084
11137
  value: {
11085
11138
  type: String
@@ -11092,7 +11145,7 @@ class BaseInput extends AuroElement {
11092
11145
  * @returns {Date|undefined}
11093
11146
  */
11094
11147
  get valueObject() {
11095
- return this._valueObject;
11148
+ return this.value && dateFormatter.isValidDate(this.value) ? dateFormatter.stringToDateInstance(this.value) : undefined;
11096
11149
  }
11097
11150
 
11098
11151
  /**
@@ -11100,7 +11153,7 @@ class BaseInput extends AuroElement {
11100
11153
  * @returns {Date|undefined}
11101
11154
  */
11102
11155
  get minObject() {
11103
- return this._minObject;
11156
+ return this.min && dateFormatter.isValidDate(this.min) ? dateFormatter.stringToDateInstance(this.min) : undefined;
11104
11157
  }
11105
11158
 
11106
11159
  /**
@@ -11108,33 +11161,63 @@ class BaseInput extends AuroElement {
11108
11161
  * @returns {Date|undefined}
11109
11162
  */
11110
11163
  get maxObject() {
11111
- return this._maxObject;
11164
+ return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
11165
+ }
11166
+
11167
+ get format() {
11168
+ return this._format;
11112
11169
  }
11113
11170
 
11114
11171
  /**
11115
- * Internal setter for readonly date object properties.
11116
- * @private
11117
- * @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
11118
- * @param {Date|undefined} propertyValue - Value to assign.
11119
- * @returns {void}
11172
+ * Overrides LitElement's generated accessor so we can track whether the
11173
+ * consumer explicitly set `format`. Locale-derived updates use
11174
+ * `_setFormatFromLocale` instead, which skips this flag.
11120
11175
  */
11121
- setDateObjectProperty(propertyName, propertyValue) {
11122
- const internalPropertyName = `_${propertyName}`;
11123
- const previousValue = this[internalPropertyName];
11124
-
11125
- if (previousValue === propertyValue) {
11126
- return;
11127
- }
11176
+ set format(value) {
11177
+ const oldValue = this._format;
11178
+ this._format = value ? value.toLowerCase() : value;
11179
+ this._userSetFormat = Boolean(value);
11180
+ this.requestUpdate('format', oldValue);
11181
+ }
11128
11182
 
11129
- this[internalPropertyName] = propertyValue;
11130
- this.requestUpdate(propertyName, previousValue);
11183
+ /**
11184
+ * Sets format without marking it as user-set. Used by locale auto-derive
11185
+ * so that a subsequent locale change can still update the format.
11186
+ * @private
11187
+ * @param {string} value
11188
+ */
11189
+ _setFormatFromLocale(value) {
11190
+ const oldValue = this._format;
11191
+ this._format = value ? value.toLowerCase() : value;
11192
+ this.requestUpdate('format', oldValue);
11131
11193
  }
11132
11194
 
11133
11195
  connectedCallback() {
11134
11196
  super.connectedCallback();
11135
11197
 
11198
+ // Mark for query selectors when registered under a versioned tag (e.g. inside
11199
+ // a datepicker/combobox). Must run before parent components call validate() on
11200
+ // their inner inputs — the validation framework matches via tag-or-attribute,
11201
+ // and parents trigger validation during their own updated() cycle, which can
11202
+ // precede this input's firstUpdated().
11203
+ if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
11204
+ this.setAttribute('auro-input', '');
11205
+ }
11206
+
11136
11207
  this.locale = this.domHandler.getLocale(this);
11137
11208
  notifyOnLangChange(this);
11209
+
11210
+ // Pre-compute lengthForType and date-object fields so a parent (e.g. datepicker)
11211
+ // calling our validate() synchronously during its own updated() cycle sees
11212
+ // populated values. Without this, range validation silently no-ops because
11213
+ // `max.length === lengthForType` fails when lengthForType is still undefined.
11214
+ // Rebuild util here (constructor seeded with en-US default) so configureDataForType's
11215
+ // locale-derived format lookup uses the actual locale just resolved above.
11216
+ this.util = new AuroInputUtilities({
11217
+ locale: this.locale,
11218
+ format: this.format
11219
+ });
11220
+ this.configureDataForType();
11138
11221
  }
11139
11222
 
11140
11223
  disconnectedCallback() {
@@ -11154,10 +11237,6 @@ class BaseInput extends AuroElement {
11154
11237
  this.wrapperElement.addEventListener('click', this.handleClick);
11155
11238
  }
11156
11239
 
11157
- // add attribute for query selectors when auro-input is registered under a custom name
11158
- if (this.tagName.toLowerCase() !== 'auro-input') {
11159
- this.setAttribute('auro-input', true);
11160
- }
11161
11240
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
11162
11241
 
11163
11242
  // use validity message override if declared when initializing the component
@@ -11168,7 +11247,6 @@ class BaseInput extends AuroElement {
11168
11247
  this.setCustomHelpTextMessage();
11169
11248
  this.configureAutoFormatting();
11170
11249
  this.configureDataForType();
11171
- this.syncDateValues();
11172
11250
  }
11173
11251
 
11174
11252
  /**
@@ -11204,6 +11282,12 @@ class BaseInput extends AuroElement {
11204
11282
  return;
11205
11283
  }
11206
11284
 
11285
+ // While configureAutoFormatting is running, imask's internal updateControl
11286
+ // writes el.value to align display with the masked value. A synthetic input
11287
+ // event from that write would re-enter handleInput → processCreditCard mid-setup
11288
+ // and clobber a Lit value that was just pushed by the parent combobox.
11289
+ if (component._configuringMask) return;
11290
+
11207
11291
  // If all guard clauses are passed, dispatch the event
11208
11292
  const inputEvent = new InputEvent('input', {
11209
11293
  bubbles: true,
@@ -11220,7 +11304,7 @@ class BaseInput extends AuroElement {
11220
11304
 
11221
11305
  /**
11222
11306
  * @private
11223
- * @deprecated https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296
11307
+ * @deprecated See https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296.
11224
11308
  * @returns {void} Sets the default help text for the input.
11225
11309
  */
11226
11310
  setCustomHelpTextMessage() {
@@ -11238,6 +11322,13 @@ class BaseInput extends AuroElement {
11238
11322
 
11239
11323
  if (typeToI18n.includes(this.type)) {
11240
11324
  this.setCustomValidityForType = i18n(this.lang, this.type);
11325
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
11326
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
11327
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
11328
+ // type=date input whose `format` attribute is unset. That runs before
11329
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
11330
+ // always false here. Retained as a defensive fallback; the whole function
11331
+ // is @deprecated per AB#1557296 and slated for removal.
11241
11332
  } else if (!this.format && this.type === 'date') {
11242
11333
  this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
11243
11334
  } else if (this.dateFormatMap[this.format]) {
@@ -11254,12 +11345,10 @@ class BaseInput extends AuroElement {
11254
11345
  updated(changedProperties) {
11255
11346
  super.updated(changedProperties);
11256
11347
 
11257
- // When locale changes without an explicit format override, derive format from the new locale.
11258
- // Only runs if the current format is still the previous locale's default (not user-overridden).
11348
+ // When locale changes, auto-derive format unless the consumer explicitly set one.
11259
11349
  if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
11260
- const previousLocaleFormat = getDateFormatFromLocale(changedProperties.get('locale'));
11261
- if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
11262
- this.format = getDateFormatFromLocale(this.locale);
11350
+ if (!this._userSetFormat) {
11351
+ this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
11263
11352
  }
11264
11353
  }
11265
11354
 
@@ -11299,8 +11388,6 @@ class BaseInput extends AuroElement {
11299
11388
  this.configureDataForType();
11300
11389
  }
11301
11390
 
11302
- this.syncDateValues(changedProperties);
11303
-
11304
11391
  if (changedProperties.has('value')) {
11305
11392
  if (this.value && this.value.length > 0) {
11306
11393
  this.hasValue = true;
@@ -11322,7 +11409,16 @@ class BaseInput extends AuroElement {
11322
11409
 
11323
11410
  if (formattedValue !== this.inputElement.value) {
11324
11411
  this.skipNextProgrammaticInputEvent = true;
11325
- if (formattedValue) {
11412
+ if (this.maskInstance && this.type !== 'date') {
11413
+ // Route through the mask so its _value and el.value stay in lock-step
11414
+ // (set value calls updateControl which writes el.value = displayValue).
11415
+ // Writing el.value directly leaves the mask thinking displayValue is
11416
+ // stale; _saveSelection on the next focus/click then warns. Date is
11417
+ // excluded because its formattedValue can be raw ISO when the calendar
11418
+ // is invalid, and re-masking through mm/dd/yyyy would truncate it and
11419
+ // flip validity from patternMismatch to tooShort.
11420
+ this.maskInstance.value = formattedValue || '';
11421
+ } else if (formattedValue) {
11326
11422
  this.inputElement.value = formattedValue;
11327
11423
  } else {
11328
11424
  this.inputElement.value = '';
@@ -11362,127 +11458,85 @@ class BaseInput extends AuroElement {
11362
11458
  }));
11363
11459
  }
11364
11460
 
11365
-
11366
- /**
11367
- * Synchronizes the ISO string values and Date object representations for date-related properties.
11368
- * This keeps the model and display values aligned when either side changes.
11369
- *
11370
- * When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
11371
- * Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
11372
- * represents a full year/month/day date format.
11373
- *
11374
- * @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
11375
- * @returns {void}
11376
- * @private
11377
- */
11378
- syncDateValues(changedProperties = undefined) {
11379
- if (!this.util.isFullDateFormat(this.type, this.format)) {
11380
- return;
11381
- }
11382
-
11383
- this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
11384
- this.syncSingleDateValue(changedProperties, 'minObject', 'min');
11385
- this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
11386
- }
11387
-
11388
- /**
11389
- * Synchronizes one date object/string property pair.
11390
- * @private
11391
- * @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
11392
- * @param {string} objectProperty - Date object property name.
11393
- * @param {string} valueProperty - ISO string property name.
11394
- * @returns {void}
11395
- */
11396
- syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
11397
- const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
11398
-
11399
- // objectProperty wins over valueProperty when both changed
11400
- if (objectPropertyChanged && this[objectProperty]) {
11401
- this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
11402
- return;
11403
- }
11404
-
11405
- const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
11406
- if (!valuePropertyChanged) {
11407
- return;
11408
- }
11409
-
11410
- // when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
11411
- if (
11412
- changedProperties &&
11413
- valueProperty === 'value' &&
11414
- changedProperties.get('value') === undefined &&
11415
- this[objectProperty] instanceof Date &&
11416
- this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
11417
- ) {
11418
- return;
11419
- }
11420
-
11421
- if (dateFormatter.isValidDate(this[valueProperty])) {
11422
- this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
11423
- } else {
11424
- this.setDateObjectProperty(objectProperty, undefined);
11425
- }
11426
- }
11427
-
11428
11461
  /**
11429
11462
  * Sets up IMasks and logic based on auto-formatting requirements.
11430
11463
  * @private
11431
11464
  * @returns {void}
11432
11465
  */
11433
11466
  configureAutoFormatting() {
11434
- if (this.maskInstance) {
11435
- this.maskInstance.destroy();
11436
- }
11437
-
11438
- // Pass new format to util
11439
- this.util.updateFormat(this.format);
11467
+ // _configuringMask gates two things: external re-entry into this method
11468
+ // while setup is mid-flight (from property changes that call back here),
11469
+ // and the accept/complete listeners below — both need to ignore the mask
11470
+ // events fired by our own value-restore step.
11471
+ if (this._configuringMask) return;
11472
+ this._configuringMask = true;
11473
+ try {
11474
+ // Destroy any prior mask so IMask can attach fresh under the new format.
11475
+ // Null the reference too — if the new maskOptions.mask is falsy (e.g.
11476
+ // type switched from credit-card to text) the IMask() reassignment
11477
+ // below is skipped, and downstream writes at line ~823 would otherwise
11478
+ // route through the destroyed instance.
11479
+ if (this.maskInstance) {
11480
+ this.maskInstance.destroy();
11481
+ this.maskInstance = null;
11482
+ }
11440
11483
 
11441
- const maskOptions = this.util.getMaskOptions(this.type, this.format);
11484
+ this.util.updateFormat(this.format);
11442
11485
 
11443
- if (this.inputElement && maskOptions.mask) {
11486
+ const maskOptions = this.util.getMaskOptions(this.type, this.format);
11487
+
11488
+ if (this.inputElement && maskOptions.mask) {
11489
+ // Capture the current display so it can be re-applied after IMask
11490
+ // attaches. The restore at the bottom goes through maskInstance.value
11491
+ // (not inputElement.value directly) so the mask's internal state and
11492
+ // the input's displayed text stay in lock-step.
11493
+ let existingValue = this.inputElement.value;
11494
+
11495
+ // Format-change case (e.g. locale switch): existingValue is the OLD
11496
+ // mask's display string and may not parse under the new mask. When
11497
+ // we have a valid date model, rebuild the display from valueObject
11498
+ // (the canonical source) using the new mask's format function.
11499
+ if (
11500
+ this.util.isFullDateFormat(this.type, this.format) &&
11501
+ this.value &&
11502
+ this.valueObject &&
11503
+ typeof maskOptions.format === 'function'
11504
+ ) {
11505
+ existingValue = maskOptions.format(this.valueObject);
11506
+ }
11444
11507
 
11445
- // Stash and clear any existing value before IMask init.
11446
- // IMask's constructor processes the current input value which requires
11447
- // selection state clearing first avoids that scenario entirely.
11448
- // When the format changes (e.g. locale switch) and we have a valid ISO
11449
- // model value, compute the display string for the NEW format instead of
11450
- // re-using the old display string, which may be invalid in the new mask.
11451
- let existingValue = this.inputElement.value;
11452
- if (
11453
- this.util.isFullDateFormat(this.type, this.format) &&
11454
- this.value &&
11455
- dateFormatter.isValidDate(this.value) &&
11456
- this.valueObject instanceof Date &&
11457
- !Number.isNaN(this.valueObject.getTime()) &&
11458
- typeof maskOptions.format === 'function'
11459
- ) {
11460
- existingValue = maskOptions.format(this.valueObject);
11461
- }
11508
+ // Clear before IMask attaches so the constructor seeds an empty
11509
+ // internal value. Otherwise IMask reads the stale unmasked string
11510
+ // and emits a spurious 'accept' before the restore below runs.
11511
+ this.skipNextProgrammaticInputEvent = true;
11512
+ this.inputElement.value = '';
11462
11513
 
11463
- this.skipNextProgrammaticInputEvent = true;
11464
- this.inputElement.value = '';
11514
+ this.maskInstance = IMask(this.inputElement, maskOptions);
11465
11515
 
11466
- this.maskInstance = IMask(this.inputElement, maskOptions);
11516
+ // Mask fires 'accept' on every value change, including the restore
11517
+ // step below. Skip events fired during configureAutoFormatting so
11518
+ // we don't overwrite a value the parent just pushed.
11519
+ this.maskInstance.on('accept', () => {
11520
+ if (this._configuringMask) return;
11521
+ this.value = this.util.toModelValue(this.maskInstance.value, this.format);
11522
+ });
11467
11523
 
11468
- this.maskInstance.on('accept', () => {
11469
- this.value = this.util.toModelValue(this.maskInstance.value, this.format);
11470
- if (this.type === "date") {
11471
- this._rawMaskValue = this.maskInstance.value;
11472
- }
11473
- });
11524
+ // Mask fires 'complete' on the restore step below for any value that
11525
+ // happens to be a complete match. Same setup-suppression as 'accept'.
11526
+ this.maskInstance.on('complete', () => {
11527
+ if (this._configuringMask) return;
11528
+ this.value = this.util.toModelValue(this.maskInstance.value, this.format);
11529
+ });
11474
11530
 
11475
- this.maskInstance.on('complete', () => {
11476
- this.value = this.util.toModelValue(this.maskInstance.value, this.format);
11477
- if (this.type === "date") {
11478
- this._rawMaskValue = this.maskInstance.value;
11531
+ // Write existingValue through the mask (not the input directly) so
11532
+ // the mask reformats it under the new rules and keeps its internal
11533
+ // _value aligned with the input's displayed text.
11534
+ if (existingValue) {
11535
+ this.maskInstance.value = existingValue;
11479
11536
  }
11480
- });
11481
-
11482
- // Restore the stashed value through IMask so it's properly masked
11483
- if (existingValue) {
11484
- this.maskInstance.value = existingValue;
11485
11537
  }
11538
+ } finally {
11539
+ this._configuringMask = false;
11486
11540
  }
11487
11541
  }
11488
11542
 
@@ -11492,14 +11546,17 @@ class BaseInput extends AuroElement {
11492
11546
  * @returns {void}
11493
11547
  */
11494
11548
  notifyValueChanged() {
11495
- let inputEvent = null;
11496
-
11497
- inputEvent = new Event('input', {
11549
+ // This echoes Lit's reactive value update (and handleClickClear's
11550
+ // programmatic clear) — it is NOT a fresh user-input event. Mark it
11551
+ // `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
11552
+ // it from genuine user typing and skip clobbering their own
11553
+ // programmatic state during init-time renders.
11554
+ const inputEvent = new Event('input', {
11498
11555
  bubbles: true,
11499
11556
  composed: true,
11500
11557
  });
11558
+ inputEvent.isProgrammatic = true;
11501
11559
 
11502
- // Dispatched event to alert outside shadow DOM context of event firing.
11503
11560
  this.dispatchEvent(inputEvent);
11504
11561
  }
11505
11562
 
@@ -11556,6 +11613,38 @@ class BaseInput extends AuroElement {
11556
11613
  this.touched = true;
11557
11614
  this.validation.validate(this);
11558
11615
  }
11616
+
11617
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
11618
+ // update that can re-render the input and reset the native cursor; we
11619
+ // capture the caret position before that update commits and restore it
11620
+ // via `setSelectionRange` once the update has flushed. Gated on
11621
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
11622
+ // formatter manages the cursor itself) doesn't get a competing write.
11623
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
11624
+ // on input types that don't support text selection (number, email in
11625
+ // some browsers) throws InvalidStateError, which would crash all input
11626
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
11627
+ // the gated types currently support it, since the list is a public
11628
+ // property a consumer could mutate.
11629
+ if (this.setSelectionInputTypes.includes(this.type)) {
11630
+ let selectionStart = null;
11631
+ try {
11632
+ ({ selectionStart } = this.inputElement);
11633
+ } catch {
11634
+ return;
11635
+ }
11636
+ if (typeof selectionStart !== 'number') {
11637
+ return;
11638
+ }
11639
+ this.updateComplete.then(() => {
11640
+ try {
11641
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
11642
+ } catch {
11643
+ // Some input types (number/email in certain UAs) throw on
11644
+ // setSelectionRange; swallow and let the native cursor stand.
11645
+ }
11646
+ });
11647
+ }
11559
11648
  }
11560
11649
 
11561
11650
  /**
@@ -11644,7 +11733,6 @@ class BaseInput extends AuroElement {
11644
11733
  */
11645
11734
  reset() {
11646
11735
  this.value = undefined;
11647
- this.setDateObjectProperty('valueObject', undefined);
11648
11736
  this.validation.reset(this);
11649
11737
  }
11650
11738
 
@@ -11653,7 +11741,6 @@ class BaseInput extends AuroElement {
11653
11741
  */
11654
11742
  clear() {
11655
11743
  this.value = undefined;
11656
- this.setDateObjectProperty('valueObject', undefined);
11657
11744
  }
11658
11745
 
11659
11746
  /**
@@ -11678,8 +11765,7 @@ class BaseInput extends AuroElement {
11678
11765
 
11679
11766
  // Set default date format if type=date and no format is defined
11680
11767
  if (this.type === "date" && !this.format) {
11681
- // Use locale to determine default date format
11682
- this.format = this.util.getDateMaskFromLocale().toLowerCase();
11768
+ this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
11683
11769
  this.util.updateFormat(this.format);
11684
11770
  }
11685
11771
  }
@@ -11691,7 +11777,7 @@ class BaseInput extends AuroElement {
11691
11777
  */
11692
11778
  get placeholderStr() {
11693
11779
  if (!this.placeholder && this.type === 'date') {
11694
- return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
11780
+ return this.format.toUpperCase();
11695
11781
  }
11696
11782
  return this.placeholder || "";
11697
11783
  }
@@ -11708,7 +11794,7 @@ class BaseInput extends AuroElement {
11708
11794
  const creditCard = this.matchInputValueToCreditCard();
11709
11795
  const previousFormat = this.format;
11710
11796
 
11711
- this.format = creditCard.maskFormat;
11797
+ this._setFormatFromLocale(creditCard.maskFormat);
11712
11798
 
11713
11799
  this.maxLength = creditCard.formatLength;
11714
11800
  this.minLength = creditCard.formatMinLength;
@@ -11728,7 +11814,7 @@ class BaseInput extends AuroElement {
11728
11814
  /**
11729
11815
  * Function to support credit-card feature type.
11730
11816
  * @private
11731
- * @deprecated https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296
11817
+ * @deprecated See https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296.
11732
11818
  * @returns {object} JSON with data for credit card formatting.
11733
11819
  */
11734
11820
  matchInputValueToCreditCard() {
@@ -11769,10 +11855,10 @@ class BaseInput extends AuroElement {
11769
11855
  },
11770
11856
  {
11771
11857
  name: 'Diners club',
11772
- regex: /^(?<num>36|38)\d{0}/u,
11858
+ regex: /^(?<num>30[0-5]|36|38)\d{0}/u,
11773
11859
  formatLength: 16,
11774
11860
  errorMessage: CreditCardValidationMessage,
11775
- cardIcon: 'credit-card',
11861
+ cardIcon: 'cc-dinersclub',
11776
11862
  maskFormat: "0000 000000 0000"
11777
11863
  },
11778
11864
  {
@@ -12182,7 +12268,7 @@ class AuroHelpText extends i$3 {
12182
12268
  }
12183
12269
  }
12184
12270
 
12185
- var formkitVersion = '202606191907';
12271
+ var formkitVersion = '202607221815';
12186
12272
 
12187
12273
  /**
12188
12274
  * @license
@@ -12480,20 +12566,50 @@ class AuroInput extends BaseInput {
12480
12566
  * @returns {void}
12481
12567
  */
12482
12568
  checkDisplayValueSlotChange() {
12483
- let nodes = this.shadowRoot.querySelector('slot[name="displayValue"]').assignedNodes();
12484
-
12485
- // Handle when DisplayValue is multi-level slot content (e.g. combobox passing displayValue to input)
12486
- if (nodes && nodes[0] && nodes[0].tagName === 'SLOT') {
12487
- nodes = nodes[0].assignedNodes();
12569
+ const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12570
+ if (!slot) {
12571
+ // Shadow slot not yet rendered fall back to checking light-DOM
12572
+ // children so hasDisplayValueContent isn't stuck false when called
12573
+ // before firstUpdated (e.g. from auro-combobox during mount).
12574
+ // Check for any element (including custom elements like <auro-icon>
12575
+ // that render via shadow DOM with no text content).
12576
+ const lightDomNodes = Array.from(this.querySelectorAll('[slot="displayValue"]:not(slot)'));
12577
+ const hasContent = lightDomNodes.some((node) => (
12578
+ node.textContent.trim().length > 0 ||
12579
+ node.children.length > 0 ||
12580
+ node.shadowRoot !== null
12581
+ ));
12582
+ if (this.hasDisplayValueContent !== hasContent) {
12583
+ this.hasDisplayValueContent = hasContent;
12584
+ this.requestUpdate();
12585
+ }
12586
+ return;
12488
12587
  }
12489
-
12490
- let hasContent = false;
12491
-
12492
- if (nodes.length > 0) {
12493
- hasContent = true;
12588
+ const nodes = slot.assignedNodes({ flatten: true });
12589
+
12590
+ // Check for actual visible content, not just node existence.
12591
+ // An empty <span slot="displayValue"></span> forwarded from the
12592
+ // consumer should not be treated as "has content" — it causes the
12593
+ // displayValue wrapper to render (with hasContent class) but show
12594
+ // nothing, blocking the combobox's synthetic displayValue from
12595
+ // being visible on preset/deeplink load.
12596
+ // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12597
+ // treated as content even when they have no text or light-DOM children.
12598
+ const hasContent = nodes.some((node) => {
12599
+ if (node.nodeType === Node.TEXT_NODE) {
12600
+ return node.textContent.trim().length > 0;
12601
+ }
12602
+ if (node.nodeType === Node.ELEMENT_NODE) {
12603
+ return node.textContent.trim().length > 0 ||
12604
+ node.children.length > 0 ||
12605
+ node.shadowRoot !== null;
12606
+ }
12607
+ return false;
12608
+ });
12609
+ if (this.hasDisplayValueContent !== hasContent) {
12610
+ this.hasDisplayValueContent = hasContent;
12611
+ this.requestUpdate();
12494
12612
  }
12495
-
12496
- this.hasDisplayValueContent = hasContent;
12497
12613
  }
12498
12614
 
12499
12615
  firstUpdated() {
@@ -12517,7 +12633,7 @@ class AuroInput extends BaseInput {
12517
12633
  /**
12518
12634
  * Determines default help text string.
12519
12635
  * @private
12520
- * @deprecated https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296
12636
+ * @deprecated See https://dev.azure.com/itsals/E_Retain_Content/_workitems/edit/1557296.
12521
12637
  * @returns {string} Evaluates pre-determined help text.
12522
12638
  */
12523
12639
  getHelpText() {
@@ -12697,6 +12813,7 @@ class AuroInput extends BaseInput {
12697
12813
  <${this.buttonTag}
12698
12814
  @click="${this.handleClickShowPassword}"
12699
12815
  appearance="${this.onDark ? 'inverse' : this.appearance}"
12816
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
12700
12817
  class="notificationBtn passwordBtn"
12701
12818
  shape="circle"
12702
12819
  size="sm"
@@ -12770,25 +12887,29 @@ class AuroInput extends BaseInput {
12770
12887
  * @returns {html} - Returns HTML for the help text and error message.
12771
12888
  */
12772
12889
  renderHtmlHelpText() {
12890
+ // Single `<p>` with stable identity across validity transitions —
12891
+ // previously two distinct templates (valid vs invalid) caused Lit to
12892
+ // replace the node entirely on a flip, and VoiceOver wouldn't
12893
+ // re-announce because the live-region element it was watching had been
12894
+ // removed and a new one inserted. Keeping one node means the `role`,
12895
+ // `aria-live`, and text content all change in-place, which AT does
12896
+ // observe and announce.
12897
+ const isError = this.validity && this.validity !== 'valid';
12773
12898
  return u$4`
12774
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
12775
- ? u$4`
12776
- <${this.helpTextTag}
12777
- appearance="${this.onDark ? 'inverse' : this.appearance}">
12778
- <p id="${this.uniqueId}" part="helpText">
12779
- <slot name="helpText">${this.getHelpText()}</slot>
12780
- </p>
12781
- </${this.helpTextTag}>
12782
- `
12783
- : u$4`
12784
- <${this.helpTextTag} error
12785
- appearance="${this.onDark ? 'inverse' : this.appearance}">
12786
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
12787
- ${this.errorMessage}
12788
- </p>
12789
- </${this.helpTextTag}>
12790
- `
12899
+ <${this.helpTextTag}
12900
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
12901
+ ?error=${isError}>
12902
+ <p
12903
+ id="${this.uniqueId}"
12904
+ part="helpText"
12905
+ role="${o$2(isError ? 'alert' : undefined)}"
12906
+ aria-live="${o$2(isError ? 'assertive' : undefined)}">
12907
+ ${isError
12908
+ ? this.errorMessage
12909
+ : u$4`<slot name="helpText">${this.getHelpText()}</slot>`
12791
12910
  }
12911
+ </p>
12912
+ </${this.helpTextTag}>
12792
12913
  `;
12793
12914
  }
12794
12915