@ionic/core 8.7.3-dev.11755195979.1ec83531 → 8.7.3-dev.11755551681.10d084fd

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 (236) hide show
  1. package/components/checkbox.js +1 -1
  2. package/components/ion-input.js +7 -38
  3. package/components/ion-item-divider.js +2 -2
  4. package/components/ion-item-group.js +1 -1
  5. package/components/ion-item-option.js +2 -2
  6. package/components/ion-item-options.js +1 -1
  7. package/components/ion-item-sliding.js +1 -1
  8. package/components/ion-loading.js +2 -2
  9. package/components/ion-menu-button.js +2 -2
  10. package/components/ion-menu-toggle.js +2 -2
  11. package/components/ion-menu.js +2 -2
  12. package/components/ion-nav-link.js +1 -1
  13. package/components/ion-nav.js +1 -1
  14. package/components/ion-note.js +2 -2
  15. package/components/ion-picker-legacy.js +2 -2
  16. package/components/ion-progress-bar.js +1 -1
  17. package/components/ion-range.js +3 -3
  18. package/components/ion-refresher-content.js +1 -1
  19. package/components/ion-refresher.js +18 -1
  20. package/components/ion-reorder-group.js +1 -1
  21. package/components/ion-reorder.js +1 -1
  22. package/components/ion-router-link.js +2 -2
  23. package/components/ion-router-outlet.js +1 -1
  24. package/components/ion-row.js +1 -1
  25. package/components/ion-searchbar.js +4 -4
  26. package/components/ion-segment-button.js +2 -2
  27. package/components/ion-segment-content.js +1 -1
  28. package/components/ion-segment-view.js +2 -2
  29. package/components/ion-segment.js +2 -2
  30. package/components/ion-select-option.js +1 -1
  31. package/components/ion-select.js +2 -2
  32. package/components/ion-skeleton-text.js +2 -2
  33. package/components/ion-split-pane.js +2 -2
  34. package/components/ion-tab-bar.js +2 -2
  35. package/components/ion-tab-button.js +2 -2
  36. package/components/ion-tab.js +2 -2
  37. package/components/ion-tabs.js +1 -1
  38. package/components/ion-text.js +2 -2
  39. package/components/ion-textarea.js +6 -37
  40. package/components/ion-thumbnail.js +1 -1
  41. package/components/ion-toast.js +2 -2
  42. package/components/ion-toggle.js +3 -3
  43. package/components/label.js +2 -2
  44. package/components/list-header.js +2 -2
  45. package/components/modal.js +4 -4
  46. package/components/picker-column-option.js +2 -2
  47. package/components/picker-column2.js +2 -2
  48. package/components/popover.js +2 -2
  49. package/components/radio-group.js +1 -1
  50. package/components/radio.js +3 -3
  51. package/components/ripple-effect.js +1 -1
  52. package/components/select-modal.js +1 -1
  53. package/components/select-popover.js +1 -1
  54. package/components/spinner.js +1 -1
  55. package/components/title.js +2 -2
  56. package/components/toolbar.js +2 -2
  57. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  58. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
  60. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-input.cjs.entry.js +7 -37
  63. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  64. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  65. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  67. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  68. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  73. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  74. package/dist/cjs/ion-refresher_2.cjs.entry.js +19 -2
  75. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  77. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  79. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  84. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  85. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  87. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  88. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-textarea.cjs.entry.js +6 -36
  90. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  92. package/dist/cjs/ionic.cjs.js +1 -1
  93. package/dist/cjs/loader.cjs.js +1 -1
  94. package/dist/collection/components/checkbox/checkbox.js +1 -1
  95. package/dist/collection/components/input/input.js +8 -39
  96. package/dist/collection/components/item-divider/item-divider.js +2 -2
  97. package/dist/collection/components/item-group/item-group.js +1 -1
  98. package/dist/collection/components/item-option/item-option.js +2 -2
  99. package/dist/collection/components/item-options/item-options.js +1 -1
  100. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  101. package/dist/collection/components/label/label.js +2 -2
  102. package/dist/collection/components/list-header/list-header.js +2 -2
  103. package/dist/collection/components/loading/loading.js +2 -2
  104. package/dist/collection/components/menu/menu.js +2 -2
  105. package/dist/collection/components/menu-button/menu-button.js +2 -2
  106. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  107. package/dist/collection/components/modal/modal.js +4 -4
  108. package/dist/collection/components/nav/nav.js +1 -1
  109. package/dist/collection/components/nav-link/nav-link.js +1 -1
  110. package/dist/collection/components/note/note.js +2 -2
  111. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  112. package/dist/collection/components/picker-legacy/picker.js +2 -2
  113. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  114. package/dist/collection/components/popover/popover.js +2 -2
  115. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  116. package/dist/collection/components/radio/radio.js +3 -3
  117. package/dist/collection/components/radio-group/radio-group.js +1 -1
  118. package/dist/collection/components/range/range.js +3 -3
  119. package/dist/collection/components/refresher/refresher.js +18 -1
  120. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  121. package/dist/collection/components/reorder/reorder.js +1 -1
  122. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  123. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  124. package/dist/collection/components/router-link/router-link.js +2 -2
  125. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  126. package/dist/collection/components/row/row.js +1 -1
  127. package/dist/collection/components/searchbar/searchbar.js +4 -4
  128. package/dist/collection/components/segment/segment.js +2 -2
  129. package/dist/collection/components/segment-button/segment-button.js +2 -2
  130. package/dist/collection/components/segment-content/segment-content.js +1 -1
  131. package/dist/collection/components/segment-view/segment-view.js +2 -2
  132. package/dist/collection/components/select/select.js +2 -2
  133. package/dist/collection/components/select-modal/select-modal.js +1 -1
  134. package/dist/collection/components/select-option/select-option.js +1 -1
  135. package/dist/collection/components/select-popover/select-popover.js +1 -1
  136. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  137. package/dist/collection/components/spinner/spinner.js +1 -1
  138. package/dist/collection/components/split-pane/split-pane.js +2 -2
  139. package/dist/collection/components/tab/tab.js +2 -2
  140. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  141. package/dist/collection/components/tab-button/tab-button.js +2 -2
  142. package/dist/collection/components/tabs/tabs.js +1 -1
  143. package/dist/collection/components/text/text.js +2 -2
  144. package/dist/collection/components/textarea/textarea.js +7 -38
  145. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  146. package/dist/collection/components/title/title.js +2 -2
  147. package/dist/collection/components/toast/toast.js +2 -2
  148. package/dist/collection/components/toggle/toggle.js +3 -3
  149. package/dist/collection/components/toolbar/toolbar.js +2 -2
  150. package/dist/docs.json +1 -1
  151. package/dist/esm/ion-app_8.entry.js +5 -5
  152. package/dist/esm/ion-avatar_3.entry.js +1 -1
  153. package/dist/esm/ion-checkbox.entry.js +1 -1
  154. package/dist/esm/ion-col_3.entry.js +1 -1
  155. package/dist/esm/ion-datetime_3.entry.js +4 -4
  156. package/dist/esm/ion-input.entry.js +7 -37
  157. package/dist/esm/ion-item-option_3.entry.js +4 -4
  158. package/dist/esm/ion-item_8.entry.js +11 -11
  159. package/dist/esm/ion-loading.entry.js +2 -2
  160. package/dist/esm/ion-menu_3.entry.js +6 -6
  161. package/dist/esm/ion-modal.entry.js +4 -4
  162. package/dist/esm/ion-nav_2.entry.js +2 -2
  163. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  164. package/dist/esm/ion-popover.entry.js +2 -2
  165. package/dist/esm/ion-progress-bar.entry.js +1 -1
  166. package/dist/esm/ion-radio_2.entry.js +4 -4
  167. package/dist/esm/ion-range.entry.js +3 -3
  168. package/dist/esm/ion-refresher_2.entry.js +19 -2
  169. package/dist/esm/ion-reorder_2.entry.js +2 -2
  170. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  171. package/dist/esm/ion-route_4.entry.js +2 -2
  172. package/dist/esm/ion-searchbar.entry.js +4 -4
  173. package/dist/esm/ion-segment-content.entry.js +1 -1
  174. package/dist/esm/ion-segment-view.entry.js +2 -2
  175. package/dist/esm/ion-segment_2.entry.js +4 -4
  176. package/dist/esm/ion-select-modal.entry.js +1 -1
  177. package/dist/esm/ion-select_3.entry.js +4 -4
  178. package/dist/esm/ion-spinner.entry.js +1 -1
  179. package/dist/esm/ion-split-pane.entry.js +2 -2
  180. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  181. package/dist/esm/ion-tab_2.entry.js +3 -3
  182. package/dist/esm/ion-text.entry.js +2 -2
  183. package/dist/esm/ion-textarea.entry.js +6 -36
  184. package/dist/esm/ion-toast.entry.js +2 -2
  185. package/dist/esm/ion-toggle.entry.js +3 -3
  186. package/dist/esm/ionic.js +1 -1
  187. package/dist/esm/loader.js +1 -1
  188. package/dist/ionic/ionic.esm.js +1 -1
  189. package/dist/ionic/{p-92e8f208.entry.js → p-039c8f8e.entry.js} +1 -1
  190. package/dist/ionic/{p-f9eb54ee.entry.js → p-0c580145.entry.js} +1 -1
  191. package/dist/ionic/{p-40d56a51.entry.js → p-0e45320b.entry.js} +1 -1
  192. package/dist/ionic/{p-1bbd0a23.entry.js → p-12b99129.entry.js} +1 -1
  193. package/dist/ionic/p-1488b7cc.entry.js +4 -0
  194. package/dist/ionic/{p-6383afc2.entry.js → p-165d1309.entry.js} +1 -1
  195. package/dist/ionic/{p-7b12d853.entry.js → p-165d8e84.entry.js} +1 -1
  196. package/dist/ionic/p-1a91f317.entry.js +4 -0
  197. package/dist/ionic/{p-c575e7ce.entry.js → p-1cfb0bc4.entry.js} +1 -1
  198. package/dist/ionic/{p-4f2c5845.entry.js → p-1e8b1767.entry.js} +1 -1
  199. package/dist/ionic/{p-e6c465ff.entry.js → p-22351d1b.entry.js} +1 -1
  200. package/dist/ionic/{p-3624b640.entry.js → p-2e967897.entry.js} +1 -1
  201. package/dist/ionic/p-332e4eac.entry.js +4 -0
  202. package/dist/ionic/p-3364562a.entry.js +4 -0
  203. package/dist/ionic/{p-d04d66fc.entry.js → p-4c79bd85.entry.js} +1 -1
  204. package/dist/ionic/{p-cde6d39b.entry.js → p-5420fd3e.entry.js} +1 -1
  205. package/dist/ionic/{p-54dec9b1.entry.js → p-70e05fd1.entry.js} +1 -1
  206. package/dist/ionic/{p-16116947.entry.js → p-78aff731.entry.js} +1 -1
  207. package/dist/ionic/p-7922ca30.entry.js +4 -0
  208. package/dist/ionic/{p-ab33ef20.entry.js → p-82ce0043.entry.js} +1 -1
  209. package/dist/ionic/{p-29032e49.entry.js → p-8ca65589.entry.js} +1 -1
  210. package/dist/ionic/p-8de104c4.entry.js +4 -0
  211. package/dist/ionic/{p-7bac2c5f.entry.js → p-9cf01220.entry.js} +1 -1
  212. package/dist/ionic/{p-1191a2d9.entry.js → p-c32b6c20.entry.js} +1 -1
  213. package/dist/ionic/{p-982fe1c4.entry.js → p-c7d2c21b.entry.js} +1 -1
  214. package/dist/ionic/p-c91aa324.entry.js +4 -0
  215. package/dist/ionic/p-dff5b0b6.entry.js +4 -0
  216. package/dist/ionic/{p-ec76fec4.entry.js → p-e1310192.entry.js} +1 -1
  217. package/dist/ionic/{p-dbba38cf.entry.js → p-e8429777.entry.js} +1 -1
  218. package/dist/ionic/{p-528af4e6.entry.js → p-ee881603.entry.js} +1 -1
  219. package/dist/ionic/{p-ac434970.entry.js → p-f267c7dc.entry.js} +1 -1
  220. package/dist/ionic/{p-7a53f04c.entry.js → p-f4e6e570.entry.js} +1 -1
  221. package/dist/ionic/{p-c0d58c8e.entry.js → p-f550f186.entry.js} +1 -1
  222. package/dist/ionic/{p-f456d176.entry.js → p-f5da8541.entry.js} +1 -1
  223. package/dist/ionic/{p-f7db572a.entry.js → p-f868d51c.entry.js} +1 -1
  224. package/dist/types/components/input/input.d.ts +0 -9
  225. package/dist/types/components/textarea/textarea.d.ts +0 -9
  226. package/hydrate/index.js +123 -138
  227. package/hydrate/index.mjs +123 -138
  228. package/package.json +1 -1
  229. package/dist/ionic/p-0f396661.entry.js +0 -4
  230. package/dist/ionic/p-44415a3b.entry.js +0 -4
  231. package/dist/ionic/p-8d96a0cd.entry.js +0 -4
  232. package/dist/ionic/p-ac2be9d6.entry.js +0 -4
  233. package/dist/ionic/p-c836e1a2.entry.js +0 -4
  234. package/dist/ionic/p-d3df6032.entry.js +0 -4
  235. package/dist/ionic/p-e6c3214c.entry.js +0 -4
  236. package/dist/ionic/p-f80f7416.entry.js +0 -4
@@ -438,8 +438,8 @@ const Searchbar = class {
438
438
  const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
439
439
  const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
440
440
  const shouldShowCancelButton = this.shouldShowCancelButton();
441
- const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '19e18775856db87daeb4b9e3d7bca0461915a0df', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: 'b3bbdcc033f3bd3441d619e4a252cef0dad4d07e', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
442
- return (index.h(index.Host, { key: '074aa60e051bfb3225e87d44bbb6346c59c73574', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
441
+ const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: 'bf574336a561a5bf66c771fb606a9b19adbecb68', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '747ad4368bda5044198259d5bc8f7be9e472e5af', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
442
+ return (index.h(index.Host, { key: 'bcc5b33a2859903ba11bfc5c611c6a2aaa71d06b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
443
443
  [mode]: true,
444
444
  'searchbar-animated': animated,
445
445
  'searchbar-disabled': this.disabled,
@@ -449,14 +449,14 @@ const Searchbar = class {
449
449
  'searchbar-has-focus': this.focused,
450
450
  'searchbar-should-show-clear': this.shouldShowClearButton(),
451
451
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
452
- }) }, index.h("div", { key: '54f58a79fe36e85d9295157303f1be89c98bbdaf', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: 'f991a37fcf54d26b7ad10d89084764e03d97b9de', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, index.h("ion-icon", { key: '8b44dd90a3292c5cf872ef16a8520675f5673494', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '79d9cfed8f01268044f82811a35d323a12dca749', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
452
+ }) }, index.h("div", { key: 'ac0dbf5ddd9c4eb6d714f45c62c44ba3d0bf034d', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '4b9fdac1b0d5a7a68bf61a6beb00f166434d3e84', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, index.h("ion-icon", { key: '32a889c48b3960560a3873061b4ac5a8a5ce532f', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '71222df691ef0b95008e619f755224d069ee9388', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
453
453
  /**
454
454
  * This prevents mobile browsers from
455
455
  * blurring the input when the clear
456
456
  * button is activated.
457
457
  */
458
458
  ev.preventDefault();
459
- }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: 'aa3b9fa8a61f853236783ac7bcd0b113ea65ece2', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
459
+ }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: 'f1c8c0bd8fbb655085875731d3ece387dbe2967e', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
460
460
  }
461
461
  get el() { return index.getElement(this); }
462
462
  static get watchers() { return {
@@ -12,7 +12,7 @@ const SegmentContent = class {
12
12
  index.registerInstance(this, hostRef);
13
13
  }
14
14
  render() {
15
- return (index.h(index.Host, { key: 'db6876f2aee7afa1ea8bc147337670faa68fae1c' }, index.h("slot", { key: 'bc05714a973a5655668679033f5809a1da6db8cc' })));
15
+ return (index.h(index.Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, index.h("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
16
16
  }
17
17
  };
18
18
  SegmentContent.style = segmentContentCss;
@@ -105,10 +105,10 @@ const SegmentView = class {
105
105
  }
106
106
  render() {
107
107
  const { disabled, isManualScroll } = this;
108
- return (index.h(index.Host, { key: '754a374e89fd4dd682eb00497e717242a6f83357', class: {
108
+ return (index.h(index.Host, { key: '3776707134f85b81028f9668e77974c21e3a5491', class: {
109
109
  'segment-view-disabled': disabled,
110
110
  'segment-view-scroll-disabled': isManualScroll === false,
111
- } }, index.h("slot", { key: '77366044eb61f0d4bba305bd6f0ef8fd1e25194b' })));
111
+ } }, index.h("slot", { key: 'e67efc16cbfa0c13aa9d81e9f91b61162782c0ea' })));
112
112
  }
113
113
  get el() { return index.getElement(this); }
114
114
  };
@@ -549,14 +549,14 @@ const Segment = class {
549
549
  }
550
550
  render() {
551
551
  const mode = ionicGlobal.getIonMode(this);
552
- return (index.h(index.Host, { key: 'e67ed512739cf2cfe657b0c44ebc3dfb1e9fbb79', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
552
+ return (index.h(index.Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
553
553
  [mode]: true,
554
554
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
555
555
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
556
556
  'segment-activated': this.activated,
557
557
  'segment-disabled': this.disabled,
558
558
  'segment-scrollable': this.scrollable,
559
- }) }, index.h("slot", { key: '804d8acfcb9abfeeee38244b015fbc5c36330b9e', onSlotchange: this.onSlottedItemsChange })));
559
+ }) }, index.h("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
560
560
  }
561
561
  get el() { return index.getElement(this); }
562
562
  static get watchers() { return {
@@ -674,7 +674,7 @@ const SegmentButton = class {
674
674
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
675
675
  const mode = ionicGlobal.getIonMode(this);
676
676
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
677
- return (index.h(index.Host, { key: '26cb7ee90455bcaa6416125802d7e5729fa05b5b', class: {
677
+ return (index.h(index.Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
678
678
  [mode]: true,
679
679
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
680
680
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
@@ -690,7 +690,7 @@ const SegmentButton = class {
690
690
  'ion-activatable': true,
691
691
  'ion-activatable-instant': true,
692
692
  'ion-focusable': true,
693
- } }, index.h("button", Object.assign({ key: '75add37f11c107d1e2cfdb154e08004e9579e863', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), index.h("span", { key: '8e720d2a3e304903685bf09d226a64e944d78a22', class: "button-inner" }, index.h("slot", { key: 'c8e7b3ebf8f03042a1001155643b585283c73c65' })), mode === 'md' && index.h("ion-ripple-effect", { key: '3586ac317b8d82c92b0ccfbfae42f8778612321b' })), index.h("div", { key: '9cf93957da9e8dc333c8b05327bb903385b1c5f4', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, index.h("div", { key: 'd3b6f0b3860ec6896b46703f64ed1cc8c75612e3', part: "indicator-background", class: "segment-button-indicator-background" }))));
693
+ } }, index.h("button", Object.assign({ key: '0a6fea3a374074af19f7ece0ba3a7cf1e269ab6d', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), index.h("span", { key: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, index.h("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && index.h("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), index.h("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, index.h("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
694
694
  }
695
695
  get el() { return index.getElement(this); }
696
696
  static get watchers() { return {
@@ -90,7 +90,7 @@ const SelectModal = class {
90
90
  } }, option.text))));
91
91
  }
92
92
  render() {
93
- return (index.h(index.Host, { key: 'b6c0dec240b2e41985b15fdf4e5a6d3a145c1567', class: ionicGlobal.getIonMode(this) }, index.h("ion-header", { key: 'cd177e85ee0f62a60a3a708342d6ab6eb19a44dc' }, index.h("ion-toolbar", { key: 'aee8222a5a4daa540ad202b2e4cac1ef93d9558c' }, this.header !== undefined && index.h("ion-title", { key: '5f8fecc764d97bf840d3d4cfddeeccd118ab4436' }, this.header), index.h("ion-buttons", { key: '919033950d7c2b0101f96a9c9698219de9f568ea', slot: "end" }, index.h("ion-button", { key: '34b571cab6dced4bde555a077a21e91800829931', onClick: () => this.closeModal() }, "Close")))), index.h("ion-content", { key: '3c9153d26ba7a5a03d3b20fcd628d0c3031661a7' }, index.h("ion-list", { key: 'e00b222c071bc97c82ad1bba4db95a8a5c43ed6d' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
93
+ return (index.h(index.Host, { key: '5bffdb106e6f628dae2e2aeb9ee8008b5c547b3a', class: ionicGlobal.getIonMode(this) }, index.h("ion-header", { key: '4de1c33b0504372f8a0a26123e4e086080ee1ecb' }, index.h("ion-toolbar", { key: '5d55a67d1db4352c260e9e0457d5dac6110b6598' }, this.header !== undefined && index.h("ion-title", { key: '4f07fe8a9af8c9bd0852af2a9b95517d16356e50' }, this.header), index.h("ion-buttons", { key: 'ca676a34f7cd3dd6b465b0d803434c2e2c8536c5', slot: "end" }, index.h("ion-button", { key: '801ed63a357c7c9d354668851db65e5c1b0e1abe', onClick: () => this.closeModal() }, "Close")))), index.h("ion-content", { key: 'f3c239ec9d84b8ed7413ea9db6efa18e29aca285' }, index.h("ion-list", { key: '40c157e9abe477171a39ae7e6e1cd4ed08735cb4' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
94
94
  }
95
95
  get el() { return index.getElement(this); }
96
96
  };
@@ -737,7 +737,7 @@ const Select = class {
737
737
  * TODO(FW-5592): Remove hasStartEndSlots condition
738
738
  */
739
739
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
740
- return (index.h(index.Host, { key: 'c03fb65e8fc9f9aab295e07b282377d57d910519', onClick: this.onClick, class: theme.createColorClasses(this.color, {
740
+ return (index.h(index.Host, { key: 'c1e6967b3ccc9631bfceeadd074a6e87b4e96dbe', onClick: this.onClick, class: theme.createColorClasses(this.color, {
741
741
  [mode]: true,
742
742
  'in-item': inItem,
743
743
  'in-item-color': theme.hostContext('ion-item.ion-color', el),
@@ -755,7 +755,7 @@ const Select = class {
755
755
  [`select-justify-${justify}`]: justifyEnabled,
756
756
  [`select-shape-${shape}`]: shape !== undefined,
757
757
  [`select-label-placement-${labelPlacement}`]: true,
758
- }) }, index.h("label", { key: '0d0c8ec55269adcac625f2899a547f4e7f3e3741', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: 'f6dfc93c0e23cbe75a2947abde67d842db2dad78', class: "select-wrapper-inner" }, index.h("slot", { key: '957bfadf9f101f519091419a362d3abdc2be66f6', name: "start" }), index.h("div", { key: 'ca349202a484e7f2e884533fd330f0b136754f7d', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), index.h("slot", { key: 'f0e62a6533ff1c8f62bd2d27f60b23385c4fa9ed', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && index.h("div", { key: 'fb840d46bafafb09898ebeebbe8c181906a3d8a2', class: "select-highlight" })), this.renderBottomContent()));
758
+ }) }, index.h("label", { key: 'b890417073d5a622869549173f9cdac695d51079', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: '43deb671a8570f9b407617dd3153f8ed37cf77b9', class: "select-wrapper-inner" }, index.h("slot", { key: '91b64e1926ea44912e85eec336992c36ca5a6fff', name: "start" }), index.h("div", { key: '4d3b26a304b18c68576302440ba7810a91324b86', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), index.h("slot", { key: '64d839f2e862efffd32e01204e567c58f59c20cb', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && index.h("div", { key: 'edffaee197d2f9ee8268cd2ecac6d6ce4ed28bfb', class: "select-highlight" })), this.renderBottomContent()));
759
759
  }
760
760
  get el() { return index.getElement(this); }
761
761
  static get watchers() { return {
@@ -817,7 +817,7 @@ const SelectOption = class {
817
817
  this.disabled = false;
818
818
  }
819
819
  render() {
820
- return index.h(index.Host, { key: '3a70eea9fa03a9acba582180761d18347c72acee', role: "option", id: this.inputId, class: ionicGlobal.getIonMode(this) });
820
+ return index.h(index.Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: ionicGlobal.getIonMode(this) });
821
821
  }
822
822
  get el() { return index.getElement(this); }
823
823
  };
@@ -922,7 +922,7 @@ const SelectPopover = class {
922
922
  render() {
923
923
  const { header, message, options, subHeader } = this;
924
924
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
925
- return (index.h(index.Host, { key: 'ab931b49b59283825bd2afa3f7f995b0e6e05bef', class: ionicGlobal.getIonMode(this) }, index.h("ion-list", { key: '3bd12b67832607596b912a73d5b3ae9b954b244d' }, header !== undefined && index.h("ion-list-header", { key: '97da930246edf7423a039c030d40e3ff7a5148a3' }, header), hasSubHeaderOrMessage && (index.h("ion-item", { key: 'c579df6ea8fac07bb0c59d34c69b149656863224' }, index.h("ion-label", { key: 'af699c5f465710ccb13b8cf8e7be66f0e8acfad1', class: "ion-text-wrap" }, subHeader !== undefined && index.h("h3", { key: 'df9a936d42064b134e843c7229f314a2a3ec7e80' }, subHeader), message !== undefined && index.h("p", { key: '9c3ddad378df00f106afa94e9928cf68c17124dd' }, message)))), this.renderOptions(options))));
925
+ return (index.h(index.Host, { key: '0c9845a40d3fc392b0a7d64e2a6ed27d94bb7634', class: ionicGlobal.getIonMode(this) }, index.h("ion-list", { key: '84a30f6661b0f8c00e6fa199658ed2adbcf27358' }, header !== undefined && index.h("ion-list-header", { key: '13f5f56bbfbc06751fa516291a2da72629b60ece' }, header), hasSubHeaderOrMessage && (index.h("ion-item", { key: '3d39d18e720e798bbde334e79e6832091c7dfb81' }, index.h("ion-label", { key: 'd3051b0d140120b44bf5e79572f6f287e7cfb03a', class: "ion-text-wrap" }, subHeader !== undefined && index.h("h3", { key: 'b16805956f3316f8ec703c123b76f717488e8637' }, subHeader), message !== undefined && index.h("p", { key: '2215ac4ab4146a14e75a79192e319a8016286b5f' }, message)))), this.renderOptions(options))));
926
926
  }
927
927
  get el() { return index.getElement(this); }
928
928
  };
@@ -44,7 +44,7 @@ const Spinner = class {
44
44
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
45
45
  }
46
46
  }
47
- return (index.h(index.Host, { key: 'a33d6421fcc885995fbc7a348516525f68ca496c', class: theme.createColorClasses(self.color, {
47
+ return (index.h(index.Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: theme.createColorClasses(self.color, {
48
48
  [mode]: true,
49
49
  [`spinner-${spinnerName}`]: true,
50
50
  'spinner-paused': self.paused || index.config.getBoolean('_testing'),
@@ -128,12 +128,12 @@ const SplitPane = class {
128
128
  }
129
129
  render() {
130
130
  const mode = ionicGlobal.getIonMode(this);
131
- return (index.h(index.Host, { key: 'd5e30df12f1f1f855da4c66f98076b9dce762c59', class: {
131
+ return (index.h(index.Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
132
132
  [mode]: true,
133
133
  // Used internally for styling
134
134
  [`split-pane-${mode}`]: true,
135
135
  'split-pane-visible': this.visible,
136
- } }, index.h("slot", { key: '3e30d7cf3bc1cf434e16876a0cb2a36377b8e00f' })));
136
+ } }, index.h("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
137
137
  }
138
138
  get el() { return index.getElement(this); }
139
139
  static get watchers() { return {
@@ -65,11 +65,11 @@ const TabBar = class {
65
65
  const { color, translucent, keyboardVisible } = this;
66
66
  const mode = ionicGlobal.getIonMode(this);
67
67
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
68
- return (index.h(index.Host, { key: '275dc6c1b30f6928ce9039b2f445208bb3500ddc', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: theme.createColorClasses(color, {
68
+ return (index.h(index.Host, { key: '7384afd3f2d364c8a052ea5a27131c51ce7ef94b', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: theme.createColorClasses(color, {
69
69
  [mode]: true,
70
70
  'tab-bar-translucent': translucent,
71
71
  'tab-bar-hidden': shouldHide,
72
- }) }, index.h("slot", { key: 'ceac20128d75c6a4a0f445f2df8deb8cc71fc4da' })));
72
+ }) }, index.h("slot", { key: '4330de4be572cb2c88a37c88124fe66b8da98cc5' })));
73
73
  }
74
74
  get el() { return index.getElement(this); }
75
75
  static get watchers() { return {
@@ -147,7 +147,7 @@ const TabButton = class {
147
147
  rel,
148
148
  target,
149
149
  };
150
- return (index.h(index.Host, { key: 'ce9d29ced0c781d6b2fa62cd5feb801c11fc42e8', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
150
+ return (index.h(index.Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
151
151
  [mode]: true,
152
152
  'tab-selected': selected,
153
153
  'tab-disabled': disabled,
@@ -159,7 +159,7 @@ const TabButton = class {
159
159
  'ion-activatable': true,
160
160
  'ion-selectable': true,
161
161
  'ion-focusable': true,
162
- } }, index.h("a", Object.assign({ key: '01cb0ed2e77c5c1a8abd48da1bb07ac1b305d0b6' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: 'd0240c05f42217cfb186b86ff8a0c9cd70b9c8df', class: "button-inner" }, index.h("slot", { key: '0a20b84925037dbaa8bb4a495b813d3f7c2e58ac' })), mode === 'md' && index.h("ion-ripple-effect", { key: '4c92c27178cdac89d69cffef8d2c39c3644914e8', type: "unbounded" }))));
162
+ } }, index.h("a", Object.assign({ key: 'c053d32fbcdad8d5e4a409956b47164d7a080c6b' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, index.h("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && index.h("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
163
163
  }
164
164
  get el() { return index.getElement(this); }
165
165
  };
@@ -45,10 +45,10 @@ const Tab = class {
45
45
  }
46
46
  render() {
47
47
  const { tab, active, component } = this;
48
- return (index.h(index.Host, { key: 'dbad8fe9f1566277d14647626308eaf1601ab01f', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
48
+ return (index.h(index.Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
49
49
  'ion-page': component === undefined,
50
50
  'tab-hidden': !active,
51
- } }, index.h("slot", { key: '3be64f4e7161f6769aaf8e4dcb5293fcaa09af45' })));
51
+ } }, index.h("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
52
52
  }
53
53
  get el() { return index.getElement(this); }
54
54
  static get watchers() { return {
@@ -218,7 +218,7 @@ const Tabs = class {
218
218
  return Array.from(this.el.querySelectorAll('ion-tab'));
219
219
  }
220
220
  render() {
221
- return (index.h(index.Host, { key: '6dd1d17cc5a7aff4b910303006b4478080ca97af', onIonTabButtonClick: this.onTabClicked }, index.h("slot", { key: 'db54a692d1a825498a116f090eb305f7cceceb5a', name: "top" }), index.h("div", { key: 'e1b7d49ba7032e9071de2029695254e2a8303be9', class: "tabs-inner" }, index.h("slot", { key: '4c3b58d5292c8c834e7532c51de0861068943d79' })), index.h("slot", { key: 'dd59c0b9b217dfbfb0fccdbc6896b593278549cc', name: "bottom" })));
221
+ return (index.h(index.Host, { key: '97d3548ef12a33b783b4ea090ba19ca5055ef6d7', onIonTabButtonClick: this.onTabClicked }, index.h("slot", { key: '13fc2090ff2d030803caec332f30b2dd41352644', name: "top" }), index.h("div", { key: '5f5c12c96efca85cba50442e7633b8a95f699918', class: "tabs-inner" }, index.h("slot", { key: '92e702217cb2bab6133928adae8a6a516796ca1a' })), index.h("slot", { key: '57a08296c8d77d62e4832a4eca431fea8ace3616', name: "bottom" })));
222
222
  }
223
223
  get el() { return index.getElement(this); }
224
224
  };
@@ -15,9 +15,9 @@ const Text = class {
15
15
  }
16
16
  render() {
17
17
  const mode = ionicGlobal.getIonMode(this);
18
- return (index.h(index.Host, { key: '361035eae7b92dc109794348d39bad2f596eb6be', class: theme.createColorClasses(this.color, {
18
+ return (index.h(index.Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: theme.createColorClasses(this.color, {
19
19
  [mode]: true,
20
- }) }, index.h("slot", { key: 'c7b8835cf485ba9ecd73298f0529276ce1ea0852' })));
20
+ }) }, index.h("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
21
21
  }
22
22
  };
23
23
  Text.style = textCss;
@@ -42,10 +42,6 @@ const Textarea = class {
42
42
  * is applied in both cases.
43
43
  */
44
44
  this.hasFocus = false;
45
- /**
46
- * Track validation state for proper aria-live announcements
47
- */
48
- this.isInvalid = false;
49
45
  /**
50
46
  * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
51
47
  * Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
@@ -192,31 +188,10 @@ const Textarea = class {
192
188
  this.el.click();
193
189
  }
194
190
  }
195
- /**
196
- * Checks if the textarea is in an invalid state based on validation classes
197
- */
198
- checkValidationState() {
199
- return this.el.classList.contains('ion-touched') && this.el.classList.contains('ion-invalid');
200
- }
201
191
  connectedCallback() {
202
192
  const { el } = this;
203
193
  this.slotMutationController = input_utils.createSlotMutationController(el, ['label', 'start', 'end'], () => index.forceUpdate(this));
204
194
  this.notchController = notchController.createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
205
- // Watch for class changes to update validation state
206
- {
207
- this.validationObserver = new MutationObserver(() => {
208
- const newIsInvalid = this.checkValidationState();
209
- if (this.isInvalid !== newIsInvalid) {
210
- this.isInvalid = newIsInvalid;
211
- }
212
- });
213
- this.validationObserver.observe(el, {
214
- attributes: true,
215
- attributeFilter: ['class'],
216
- });
217
- // Set initial state
218
- this.isInvalid = this.checkValidationState();
219
- }
220
195
  this.debounceChanged();
221
196
  {
222
197
  document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
@@ -238,11 +213,6 @@ const Textarea = class {
238
213
  this.notchController.destroy();
239
214
  this.notchController = undefined;
240
215
  }
241
- // Clean up validation observer to prevent memory leaks
242
- if (this.validationObserver) {
243
- this.validationObserver.disconnect();
244
- this.validationObserver = undefined;
245
- }
246
216
  }
247
217
  componentWillLoad() {
248
218
  this.inheritedAttributes = Object.assign(Object.assign({}, helpers.inheritAriaAttributes(this.el)), helpers.inheritAttributes(this.el, ['data-form-type', 'title', 'tabindex', 'dir']));
@@ -413,15 +383,15 @@ const Textarea = class {
413
383
  * Renders the helper text or error text values
414
384
  */
415
385
  renderHintText() {
416
- const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
386
+ const { helperText, errorText, helperTextId, errorTextId } = this;
417
387
  return [
418
388
  index.h("div", { id: helperTextId, class: "helper-text" }, helperText),
419
- index.h("div", { id: errorTextId, class: "error-text", role: isInvalid && errorText ? 'alert' : undefined, "aria-live": isInvalid && errorText ? 'polite' : 'off', "aria-atomic": "true" }, isInvalid && errorText ? errorText : ''),
389
+ index.h("div", { id: errorTextId, class: "error-text" }, errorText),
420
390
  ];
421
391
  }
422
392
  getHintTextID() {
423
- const { isInvalid, helperText, errorText, helperTextId, errorTextId } = this;
424
- if (isInvalid && errorText) {
393
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
394
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
425
395
  return errorTextId;
426
396
  }
427
397
  if (helperText) {
@@ -480,7 +450,7 @@ const Textarea = class {
480
450
  * TODO(FW-5592): Remove hasStartEndSlots condition
481
451
  */
482
452
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
483
- return (index.h(index.Host, { key: 'b67193cbdbd70844901e7f58346cb6021ea8ff9b', class: theme.createColorClasses(this.color, {
453
+ return (index.h(index.Host, { key: '9fd36834a8ed8496212e00e5cc684c7fa6e8f6d5', class: theme.createColorClasses(this.color, {
484
454
  [mode]: true,
485
455
  'has-value': hasValue,
486
456
  'has-focus': hasFocus,
@@ -489,7 +459,7 @@ const Textarea = class {
489
459
  [`textarea-shape-${shape}`]: shape !== undefined,
490
460
  [`textarea-label-placement-${labelPlacement}`]: true,
491
461
  'textarea-disabled': disabled,
492
- }) }, index.h("label", { key: '11cb5c9eefd6c82f0d94a283f65e3bfea7cfd31f', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: 'f23c54b1d02b07ae54a729a1c871788b804031fe', class: "textarea-wrapper-inner" }, index.h("div", { key: 'd467679b2132c67307eacf29f0cb9cffe9fa3f70', class: "start-slot-wrapper" }, index.h("slot", { key: 'e75629aeb663218b24598803a400c0755bbc0958', name: "start" })), index.h("div", { key: 'dacfbeaee43984034a59375adcda329e5cf73de4', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, index.h("textarea", Object.assign({ key: 'cee91118b3d2fa7f6b0660bab8384cd508e432b1', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), index.h("div", { key: '7802d173e3e338776ae2a095037191fdfe771dda', class: "end-slot-wrapper" }, index.h("slot", { key: '1b721a633799701fab2527b046c03ee23fa30c2e', name: "end" }))), shouldRenderHighlight && index.h("div", { key: 'ae2836d8d7ab9a1a6e70c3c17bbf99e30835c39d', class: "textarea-highlight" })), this.renderBottomContent()));
462
+ }) }, index.h("label", { key: '60dd748594cb8e710bd6be8779c5bbafc7bb129c', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: 'dc11a0e37279c142cde124e3868144024a5439ed', class: "textarea-wrapper-inner" }, index.h("div", { key: '49aee693a69bf17cf9d05a903d5e176f5ef7c50d', class: "start-slot-wrapper" }, index.h("slot", { key: '7307aad65706b8191dac46b7e61e662af8976e97', name: "start" })), index.h("div", { key: '81fb54829e4dd759d812fe98e24893071fdfb92a', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, index.h("textarea", Object.assign({ key: 'fe51fca195f8e2ec6607ba6d92bce72e0a94e2cd', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), index.h("div", { key: '87fd163075ea795ddb75b8d6bbf2f89ddceca4dc', class: "end-slot-wrapper" }, index.h("slot", { key: 'b09b52993d2471e7e75773a8f36c49995959ce7a', name: "end" }))), shouldRenderHighlight && index.h("div", { key: 'acad88bca506ebf44d3bedab29f6d53ff8f92981', class: "textarea-highlight" })), this.renderBottomContent()));
493
463
  }
494
464
  get el() { return index.getElement(this); }
495
465
  static get watchers() { return {
@@ -851,9 +851,9 @@ const Toast = class {
851
851
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
852
852
  index$1.printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
853
853
  }
854
- return (index$1.h(index$1.Host, Object.assign({ key: 'd1ecd90c87700aad4685e230cdd430aa286b8791', tabindex: "-1" }, this.htmlAttributes, { style: {
854
+ return (index$1.h(index$1.Host, Object.assign({ key: '4a303f9ebb69614e9dca677d9d80a4a275de0d85', tabindex: "-1" }, this.htmlAttributes, { style: {
855
855
  zIndex: `${60000 + this.overlayIndex}`,
856
- }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index$1.h("div", { key: '4bfc863417324de69e222054d5cf9c452038b41e', class: wrapperClass }, index$1.h("div", { key: '3417940afec0392e81b7d54c7cb00f3ab6c30d47', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index$1.h("ion-icon", { key: '6bf878fbc85c01e1e5faa9d97d46255a6511a952', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index$1.h("div", { key: '54b500348a9c37660c3aff37436d9188e4374947', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
856
+ }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index$1.h("div", { key: '4f58fcbba8dce9834eab743fc91715935216f3d0', class: wrapperClass }, index$1.h("div", { key: 'bbc7b73b186432bd4be8247c5de2ce3b2551fb0a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index$1.h("ion-icon", { key: '0b953478eb739ceb864373416183bfbf5ce2f9f1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index$1.h("div", { key: '7a63497d1c0440256218426194851a969b042ca6', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
857
857
  }
858
858
  get el() { return index$1.getElement(this); }
859
859
  static get watchers() { return {
@@ -241,7 +241,7 @@ const Toggle = class {
241
241
  const value = this.getValue();
242
242
  const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
243
243
  helpers.renderHiddenInput(true, el, name, checked ? value : '', disabled);
244
- return (index.h(index.Host, { key: '21037ea2e8326f58c84becadde475f007f931924', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === errorTextId, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, class: theme.createColorClasses(color, {
244
+ return (index.h(index.Host, { key: '4bfaf87191b3ba4daef9d7afc693e290dbb2c5d2', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === errorTextId, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, class: theme.createColorClasses(color, {
245
245
  [mode]: true,
246
246
  'in-item': theme.hostContext('ion-item', el),
247
247
  'toggle-activated': activated,
@@ -251,10 +251,10 @@ const Toggle = class {
251
251
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
252
252
  [`toggle-label-placement-${labelPlacement}`]: true,
253
253
  [`toggle-${rtl}`]: true,
254
- }) }, index.h("label", { key: '4d153679d118d01286f6633d1c19558a97745ff6', class: "toggle-wrapper", htmlFor: inputId }, index.h("input", Object.assign({ key: '0dfcd4df15b8d41bec5ff5f8912503afbb7bec53', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), index.h("div", { key: 'ffed3a07ba2ab70e5b232e6041bc3b6b34be8331', class: {
254
+ }) }, index.h("label", { key: '08a7744d71410f8befc04776a0ef7d3b03e9cfaf', class: "toggle-wrapper", htmlFor: inputId }, index.h("input", Object.assign({ key: 'e41f1cc9779e3ea364f3b0cee91686bd177bc883', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), index.h("div", { key: '986ee5fd8f7011dc8f2857b3ed19ea391070f20b', class: {
255
255
  'label-text-wrapper': true,
256
256
  'label-text-wrapper-hidden': !hasLabel,
257
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, index.h("slot", { key: 'd88e1e3dcdd8293f6b61f237cd7a0511dcbce300' }), this.renderHintText()), index.h("div", { key: '0e924225f5f0caf3c88738acb6c557bd8c1b68f6', class: "native-wrapper" }, this.renderToggleControl()))));
257
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, index.h("slot", { key: '0cb70572a622b68d8e49239314bf00a32d7551c0' }), this.renderHintText()), index.h("div", { key: 'f6e2a4f074af1398af3b6eaeb1a2ef2125e1ba67', class: "native-wrapper" }, this.renderToggleControl()))));
258
258
  }
259
259
  get el() { return index.getElement(this); }
260
260
  static get watchers() { return {