@ionic/core 8.7.3-dev.11755551681.10d084fd → 8.7.3-dev.11755622775.1fc05815

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 (229) hide show
  1. package/components/ion-input.js +36 -5
  2. package/components/ion-item-divider.js +2 -2
  3. package/components/ion-item-group.js +1 -1
  4. package/components/ion-item-option.js +2 -2
  5. package/components/ion-item-options.js +1 -1
  6. package/components/ion-item-sliding.js +1 -1
  7. package/components/ion-loading.js +2 -2
  8. package/components/ion-menu-button.js +2 -2
  9. package/components/ion-menu-toggle.js +2 -2
  10. package/components/ion-menu.js +2 -2
  11. package/components/ion-nav-link.js +1 -1
  12. package/components/ion-nav.js +1 -1
  13. package/components/ion-note.js +2 -2
  14. package/components/ion-picker-legacy.js +2 -2
  15. package/components/ion-progress-bar.js +1 -1
  16. package/components/ion-range.js +3 -3
  17. package/components/ion-refresher-content.js +1 -1
  18. package/components/ion-refresher.js +1 -1
  19. package/components/ion-reorder-group.js +1 -1
  20. package/components/ion-reorder.js +1 -1
  21. package/components/ion-router-link.js +2 -2
  22. package/components/ion-router-outlet.js +1 -1
  23. package/components/ion-row.js +1 -1
  24. package/components/ion-searchbar.js +4 -4
  25. package/components/ion-segment-button.js +2 -2
  26. package/components/ion-segment-content.js +1 -1
  27. package/components/ion-segment-view.js +2 -2
  28. package/components/ion-segment.js +2 -2
  29. package/components/ion-select-option.js +1 -1
  30. package/components/ion-select.js +2 -2
  31. package/components/ion-skeleton-text.js +2 -2
  32. package/components/ion-split-pane.js +2 -2
  33. package/components/ion-tab-bar.js +2 -2
  34. package/components/ion-tab-button.js +2 -2
  35. package/components/ion-tab.js +2 -2
  36. package/components/ion-tabs.js +1 -1
  37. package/components/ion-text.js +2 -2
  38. package/components/ion-textarea.js +35 -4
  39. package/components/ion-thumbnail.js +1 -1
  40. package/components/ion-toast.js +2 -2
  41. package/components/ion-toggle.js +3 -3
  42. package/components/label.js +2 -2
  43. package/components/list-header.js +2 -2
  44. package/components/modal.js +4 -4
  45. package/components/picker-column-option.js +2 -2
  46. package/components/picker-column2.js +2 -2
  47. package/components/popover.js +2 -2
  48. package/components/radio-group.js +1 -1
  49. package/components/radio.js +3 -3
  50. package/components/ripple-effect.js +1 -1
  51. package/components/select-modal.js +1 -1
  52. package/components/select-popover.js +1 -1
  53. package/components/spinner.js +1 -1
  54. package/components/title.js +2 -2
  55. package/components/toolbar.js +2 -2
  56. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  57. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  60. package/dist/cjs/ion-input.cjs.entry.js +35 -5
  61. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  63. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  65. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  66. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  70. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  71. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  72. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  77. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  78. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  80. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  85. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-textarea.cjs.entry.js +34 -4
  88. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  90. package/dist/cjs/ionic.cjs.js +1 -1
  91. package/dist/cjs/loader.cjs.js +1 -1
  92. package/dist/collection/components/input/input.js +37 -6
  93. package/dist/collection/components/item-divider/item-divider.js +2 -2
  94. package/dist/collection/components/item-group/item-group.js +1 -1
  95. package/dist/collection/components/item-option/item-option.js +2 -2
  96. package/dist/collection/components/item-options/item-options.js +1 -1
  97. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  98. package/dist/collection/components/label/label.js +2 -2
  99. package/dist/collection/components/list-header/list-header.js +2 -2
  100. package/dist/collection/components/loading/loading.js +2 -2
  101. package/dist/collection/components/menu/menu.js +2 -2
  102. package/dist/collection/components/menu-button/menu-button.js +2 -2
  103. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  104. package/dist/collection/components/modal/modal.js +4 -4
  105. package/dist/collection/components/nav/nav.js +1 -1
  106. package/dist/collection/components/nav-link/nav-link.js +1 -1
  107. package/dist/collection/components/note/note.js +2 -2
  108. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  109. package/dist/collection/components/picker-legacy/picker.js +2 -2
  110. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  111. package/dist/collection/components/popover/popover.js +2 -2
  112. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  113. package/dist/collection/components/radio/radio.js +3 -3
  114. package/dist/collection/components/radio-group/radio-group.js +1 -1
  115. package/dist/collection/components/range/range.js +3 -3
  116. package/dist/collection/components/refresher/refresher.js +1 -1
  117. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  118. package/dist/collection/components/reorder/reorder.js +1 -1
  119. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  120. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  121. package/dist/collection/components/router-link/router-link.js +2 -2
  122. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  123. package/dist/collection/components/row/row.js +1 -1
  124. package/dist/collection/components/searchbar/searchbar.js +4 -4
  125. package/dist/collection/components/segment/segment.js +2 -2
  126. package/dist/collection/components/segment-button/segment-button.js +2 -2
  127. package/dist/collection/components/segment-content/segment-content.js +1 -1
  128. package/dist/collection/components/segment-view/segment-view.js +2 -2
  129. package/dist/collection/components/select/select.js +2 -2
  130. package/dist/collection/components/select-modal/select-modal.js +1 -1
  131. package/dist/collection/components/select-option/select-option.js +1 -1
  132. package/dist/collection/components/select-popover/select-popover.js +1 -1
  133. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/split-pane/split-pane.js +2 -2
  136. package/dist/collection/components/tab/tab.js +2 -2
  137. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  138. package/dist/collection/components/tab-button/tab-button.js +2 -2
  139. package/dist/collection/components/tabs/tabs.js +1 -1
  140. package/dist/collection/components/text/text.js +2 -2
  141. package/dist/collection/components/textarea/textarea.js +36 -5
  142. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  143. package/dist/collection/components/title/title.js +2 -2
  144. package/dist/collection/components/toast/toast.js +2 -2
  145. package/dist/collection/components/toggle/toggle.js +3 -3
  146. package/dist/collection/components/toolbar/toolbar.js +2 -2
  147. package/dist/docs.json +1 -1
  148. package/dist/esm/ion-app_8.entry.js +5 -5
  149. package/dist/esm/ion-avatar_3.entry.js +1 -1
  150. package/dist/esm/ion-col_3.entry.js +1 -1
  151. package/dist/esm/ion-datetime_3.entry.js +4 -4
  152. package/dist/esm/ion-input.entry.js +35 -5
  153. package/dist/esm/ion-item-option_3.entry.js +4 -4
  154. package/dist/esm/ion-item_8.entry.js +11 -11
  155. package/dist/esm/ion-loading.entry.js +2 -2
  156. package/dist/esm/ion-menu_3.entry.js +6 -6
  157. package/dist/esm/ion-modal.entry.js +4 -4
  158. package/dist/esm/ion-nav_2.entry.js +2 -2
  159. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  160. package/dist/esm/ion-popover.entry.js +2 -2
  161. package/dist/esm/ion-progress-bar.entry.js +1 -1
  162. package/dist/esm/ion-radio_2.entry.js +4 -4
  163. package/dist/esm/ion-range.entry.js +3 -3
  164. package/dist/esm/ion-refresher_2.entry.js +2 -2
  165. package/dist/esm/ion-reorder_2.entry.js +2 -2
  166. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  167. package/dist/esm/ion-route_4.entry.js +2 -2
  168. package/dist/esm/ion-searchbar.entry.js +4 -4
  169. package/dist/esm/ion-segment-content.entry.js +1 -1
  170. package/dist/esm/ion-segment-view.entry.js +2 -2
  171. package/dist/esm/ion-segment_2.entry.js +4 -4
  172. package/dist/esm/ion-select-modal.entry.js +1 -1
  173. package/dist/esm/ion-select_3.entry.js +4 -4
  174. package/dist/esm/ion-spinner.entry.js +1 -1
  175. package/dist/esm/ion-split-pane.entry.js +2 -2
  176. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  177. package/dist/esm/ion-tab_2.entry.js +3 -3
  178. package/dist/esm/ion-text.entry.js +2 -2
  179. package/dist/esm/ion-textarea.entry.js +34 -4
  180. package/dist/esm/ion-toast.entry.js +2 -2
  181. package/dist/esm/ion-toggle.entry.js +3 -3
  182. package/dist/esm/ionic.js +1 -1
  183. package/dist/esm/loader.js +1 -1
  184. package/dist/ionic/ionic.esm.js +1 -1
  185. package/dist/ionic/p-0f396661.entry.js +4 -0
  186. package/dist/ionic/{p-c32b6c20.entry.js → p-1191a2d9.entry.js} +1 -1
  187. package/dist/ionic/{p-78aff731.entry.js → p-16116947.entry.js} +1 -1
  188. package/dist/ionic/p-187aaf4a.entry.js +4 -0
  189. package/dist/ionic/{p-12b99129.entry.js → p-1bbd0a23.entry.js} +1 -1
  190. package/dist/ionic/p-1e34d434.entry.js +4 -0
  191. package/dist/ionic/{p-8ca65589.entry.js → p-29032e49.entry.js} +1 -1
  192. package/dist/ionic/{p-2e967897.entry.js → p-3624b640.entry.js} +1 -1
  193. package/dist/ionic/{p-0e45320b.entry.js → p-40d56a51.entry.js} +1 -1
  194. package/dist/ionic/{p-1e8b1767.entry.js → p-4f2c5845.entry.js} +1 -1
  195. package/dist/ionic/{p-ee881603.entry.js → p-528af4e6.entry.js} +1 -1
  196. package/dist/ionic/{p-70e05fd1.entry.js → p-54dec9b1.entry.js} +1 -1
  197. package/dist/ionic/{p-165d1309.entry.js → p-6383afc2.entry.js} +1 -1
  198. package/dist/ionic/{p-f4e6e570.entry.js → p-7a53f04c.entry.js} +1 -1
  199. package/dist/ionic/{p-165d8e84.entry.js → p-7b12d853.entry.js} +1 -1
  200. package/dist/ionic/{p-9cf01220.entry.js → p-7bac2c5f.entry.js} +1 -1
  201. package/dist/ionic/{p-332e4eac.entry.js → p-8cdb4ff5.entry.js} +1 -1
  202. package/dist/ionic/p-8d96a0cd.entry.js +4 -0
  203. package/dist/ionic/{p-039c8f8e.entry.js → p-92e8f208.entry.js} +1 -1
  204. package/dist/ionic/{p-c7d2c21b.entry.js → p-982fe1c4.entry.js} +1 -1
  205. package/dist/ionic/{p-82ce0043.entry.js → p-ab33ef20.entry.js} +1 -1
  206. package/dist/ionic/{p-f267c7dc.entry.js → p-ac434970.entry.js} +1 -1
  207. package/dist/ionic/{p-f550f186.entry.js → p-c0d58c8e.entry.js} +1 -1
  208. package/dist/ionic/{p-1cfb0bc4.entry.js → p-c575e7ce.entry.js} +1 -1
  209. package/dist/ionic/{p-5420fd3e.entry.js → p-cde6d39b.entry.js} +1 -1
  210. package/dist/ionic/{p-4c79bd85.entry.js → p-d04d66fc.entry.js} +1 -1
  211. package/dist/ionic/p-d3df6032.entry.js +4 -0
  212. package/dist/ionic/{p-e8429777.entry.js → p-dbba38cf.entry.js} +1 -1
  213. package/dist/ionic/p-e6c3214c.entry.js +4 -0
  214. package/dist/ionic/{p-22351d1b.entry.js → p-e6c465ff.entry.js} +1 -1
  215. package/dist/ionic/{p-e1310192.entry.js → p-ec76fec4.entry.js} +1 -1
  216. package/dist/ionic/{p-f5da8541.entry.js → p-f456d176.entry.js} +1 -1
  217. package/dist/ionic/{p-f868d51c.entry.js → p-f7db572a.entry.js} +1 -1
  218. package/dist/ionic/{p-0c580145.entry.js → p-f9eb54ee.entry.js} +1 -1
  219. package/dist/types/components/input/input.d.ts +9 -0
  220. package/dist/types/components/textarea/textarea.d.ts +9 -0
  221. package/hydrate/index.js +137 -101
  222. package/hydrate/index.mjs +137 -101
  223. package/package.json +1 -1
  224. package/dist/ionic/p-1488b7cc.entry.js +0 -4
  225. package/dist/ionic/p-3364562a.entry.js +0 -4
  226. package/dist/ionic/p-7922ca30.entry.js +0 -4
  227. package/dist/ionic/p-8de104c4.entry.js +0 -4
  228. package/dist/ionic/p-c91aa324.entry.js +0 -4
  229. package/dist/ionic/p-dff5b0b6.entry.js +0 -4
@@ -61,11 +61,11 @@ const TabBar = /*@__PURE__*/ proxyCustomElement(class TabBar extends HTMLElement
61
61
  const { color, translucent, keyboardVisible } = this;
62
62
  const mode = getIonMode(this);
63
63
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
64
- return (h(Host, { key: '7384afd3f2d364c8a052ea5a27131c51ce7ef94b', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
64
+ return (h(Host, { key: '275dc6c1b30f6928ce9039b2f445208bb3500ddc', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
65
65
  [mode]: true,
66
66
  'tab-bar-translucent': translucent,
67
67
  'tab-bar-hidden': shouldHide,
68
- }) }, h("slot", { key: '4330de4be572cb2c88a37c88124fe66b8da98cc5' })));
68
+ }) }, h("slot", { key: 'ceac20128d75c6a4a0f445f2df8deb8cc71fc4da' })));
69
69
  }
70
70
  get el() { return this; }
71
71
  static get watchers() { return {
@@ -75,7 +75,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
75
75
  rel,
76
76
  target,
77
77
  };
78
- return (h(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
78
+ return (h(Host, { key: 'ce9d29ced0c781d6b2fa62cd5feb801c11fc42e8', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
79
79
  [mode]: true,
80
80
  'tab-selected': selected,
81
81
  'tab-disabled': disabled,
@@ -87,7 +87,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
87
87
  'ion-activatable': true,
88
88
  'ion-selectable': true,
89
89
  'ion-focusable': true,
90
- } }, 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), h("span", { key: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, h("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && h("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
90
+ } }, 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), h("span", { key: 'd0240c05f42217cfb186b86ff8a0c9cd70b9c8df', class: "button-inner" }, h("slot", { key: '0a20b84925037dbaa8bb4a495b813d3f7c2e58ac' })), mode === 'md' && h("ion-ripple-effect", { key: '4c92c27178cdac89d69cffef8d2c39c3644914e8', type: "unbounded" }))));
91
91
  }
92
92
  get el() { return this; }
93
93
  static get style() { return {
@@ -53,10 +53,10 @@ const Tab = /*@__PURE__*/ proxyCustomElement(class Tab extends HTMLElement {
53
53
  }
54
54
  render() {
55
55
  const { tab, active, component } = this;
56
- return (h(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
56
+ return (h(Host, { key: 'dbad8fe9f1566277d14647626308eaf1601ab01f', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
57
57
  'ion-page': component === undefined,
58
58
  'tab-hidden': !active,
59
- } }, h("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
59
+ } }, h("slot", { key: '3be64f4e7161f6769aaf8e4dcb5293fcaa09af45' })));
60
60
  }
61
61
  get el() { return this; }
62
62
  static get watchers() { return {
@@ -167,7 +167,7 @@ const Tabs = /*@__PURE__*/ proxyCustomElement(class Tabs extends HTMLElement {
167
167
  return Array.from(this.el.querySelectorAll('ion-tab'));
168
168
  }
169
169
  render() {
170
- return (h(Host, { key: '97d3548ef12a33b783b4ea090ba19ca5055ef6d7', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '13fc2090ff2d030803caec332f30b2dd41352644', name: "top" }), h("div", { key: '5f5c12c96efca85cba50442e7633b8a95f699918', class: "tabs-inner" }, h("slot", { key: '92e702217cb2bab6133928adae8a6a516796ca1a' })), h("slot", { key: '57a08296c8d77d62e4832a4eca431fea8ace3616', name: "bottom" })));
170
+ return (h(Host, { key: '6dd1d17cc5a7aff4b910303006b4478080ca97af', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'db54a692d1a825498a116f090eb305f7cceceb5a', name: "top" }), h("div", { key: 'e1b7d49ba7032e9071de2029695254e2a8303be9', class: "tabs-inner" }, h("slot", { key: '4c3b58d5292c8c834e7532c51de0861068943d79' })), h("slot", { key: 'dd59c0b9b217dfbfb0fccdbc6896b593278549cc', name: "bottom" })));
171
171
  }
172
172
  get el() { return this; }
173
173
  static get style() { return tabsCss; }
@@ -15,9 +15,9 @@ const Text = /*@__PURE__*/ proxyCustomElement(class Text extends HTMLElement {
15
15
  }
16
16
  render() {
17
17
  const mode = getIonMode(this);
18
- return (h(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses(this.color, {
18
+ return (h(Host, { key: '361035eae7b92dc109794348d39bad2f596eb6be', class: createColorClasses(this.color, {
19
19
  [mode]: true,
20
- }) }, h("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
20
+ }) }, h("slot", { key: 'c7b8835cf485ba9ecd73298f0529276ce1ea0852' })));
21
21
  }
22
22
  static get style() { return textCss; }
23
23
  }, [257, "ion-text", {
@@ -40,6 +40,10 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
40
40
  * is applied in both cases.
41
41
  */
42
42
  this.hasFocus = false;
43
+ /**
44
+ * Track validation state for proper aria-live announcements
45
+ */
46
+ this.isInvalid = false;
43
47
  /**
44
48
  * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
45
49
  * Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
@@ -186,10 +190,31 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
186
190
  this.el.click();
187
191
  }
188
192
  }
193
+ /**
194
+ * Checks if the textarea is in an invalid state based on validation classes
195
+ */
196
+ checkValidationState() {
197
+ return this.el.classList.contains('ion-touched') && this.el.classList.contains('ion-invalid');
198
+ }
189
199
  connectedCallback() {
190
200
  const { el } = this;
191
201
  this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
192
202
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
203
+ // Watch for class changes to update validation state
204
+ if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
205
+ this.validationObserver = new MutationObserver(() => {
206
+ const newIsInvalid = this.checkValidationState();
207
+ if (this.isInvalid !== newIsInvalid) {
208
+ this.isInvalid = newIsInvalid;
209
+ }
210
+ });
211
+ this.validationObserver.observe(el, {
212
+ attributes: true,
213
+ attributeFilter: ['class'],
214
+ });
215
+ }
216
+ // Always set initial state
217
+ this.isInvalid = this.checkValidationState();
193
218
  this.debounceChanged();
194
219
  if (Build.isBrowser) {
195
220
  document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
@@ -211,6 +236,11 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
211
236
  this.notchController.destroy();
212
237
  this.notchController = undefined;
213
238
  }
239
+ // Clean up validation observer to prevent memory leaks
240
+ if (this.validationObserver) {
241
+ this.validationObserver.disconnect();
242
+ this.validationObserver = undefined;
243
+ }
214
244
  }
215
245
  componentWillLoad() {
216
246
  this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['data-form-type', 'title', 'tabindex', 'dir']));
@@ -388,8 +418,8 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
388
418
  ];
389
419
  }
390
420
  getHintTextID() {
391
- const { el, helperText, errorText, helperTextId, errorTextId } = this;
392
- if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
421
+ const { isInvalid, helperText, errorText, helperTextId, errorTextId } = this;
422
+ if (isInvalid && errorText) {
393
423
  return errorTextId;
394
424
  }
395
425
  if (helperText) {
@@ -448,7 +478,7 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
448
478
  * TODO(FW-5592): Remove hasStartEndSlots condition
449
479
  */
450
480
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
451
- return (h(Host, { key: '9fd36834a8ed8496212e00e5cc684c7fa6e8f6d5', class: createColorClasses(this.color, {
481
+ return (h(Host, { key: 'de258335fde7fa934cf3bd58c469525440457468', class: createColorClasses(this.color, {
452
482
  [mode]: true,
453
483
  'has-value': hasValue,
454
484
  'has-focus': hasFocus,
@@ -457,7 +487,7 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
457
487
  [`textarea-shape-${shape}`]: shape !== undefined,
458
488
  [`textarea-label-placement-${labelPlacement}`]: true,
459
489
  'textarea-disabled': disabled,
460
- }) }, h("label", { key: '60dd748594cb8e710bd6be8779c5bbafc7bb129c', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'dc11a0e37279c142cde124e3868144024a5439ed', class: "textarea-wrapper-inner" }, h("div", { key: '49aee693a69bf17cf9d05a903d5e176f5ef7c50d', class: "start-slot-wrapper" }, h("slot", { key: '7307aad65706b8191dac46b7e61e662af8976e97', name: "start" })), h("div", { key: '81fb54829e4dd759d812fe98e24893071fdfb92a', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, 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)), h("div", { key: '87fd163075ea795ddb75b8d6bbf2f89ddceca4dc', class: "end-slot-wrapper" }, h("slot", { key: 'b09b52993d2471e7e75773a8f36c49995959ce7a', name: "end" }))), shouldRenderHighlight && h("div", { key: 'acad88bca506ebf44d3bedab29f6d53ff8f92981', class: "textarea-highlight" })), this.renderBottomContent()));
490
+ }) }, h("label", { key: '79fc87122871d45316b1c5fd0a467bf85351e804', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '2375888a47557b41ea3b3bf8eae1fd3f2a4032bd', class: "textarea-wrapper-inner" }, h("div", { key: 'c5af683527a870bd85256b6de8a7d216283403dd', class: "start-slot-wrapper" }, h("slot", { key: 'd972e5784403c5cc6ed067ae578ce23ff8303e1e', name: "start" })), h("div", { key: '1092067609d912a76a8679767611e4ca3e071c6f', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: 'cd23a4bad4d5b460830340009d24d0618f14fd73', 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.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), h("div", { key: 'c91a5456f4490ef8699f2e44b4a6c64f6084f5fd', class: "end-slot-wrapper" }, h("slot", { key: 'b71ba7ba0d74091e81784432dcffa832b66f3f25', name: "end" }))), shouldRenderHighlight && h("div", { key: '757c3287e1cea5ee851227407685a437f8408c54', class: "textarea-highlight" })), this.renderBottomContent()));
461
491
  }
462
492
  get el() { return this; }
463
493
  static get watchers() { return {
@@ -499,6 +529,7 @@ const Textarea = /*@__PURE__*/ proxyCustomElement(class Textarea extends HTMLEle
499
529
  "labelPlacement": [1, "label-placement"],
500
530
  "shape": [1],
501
531
  "hasFocus": [32],
532
+ "isInvalid": [32],
502
533
  "setFocus": [64],
503
534
  "getInputElement": [64]
504
535
  }, [[2, "click", "onClickCapture"]], {
@@ -13,7 +13,7 @@ const Thumbnail = /*@__PURE__*/ proxyCustomElement(class Thumbnail extends HTMLE
13
13
  this.__attachShadow();
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode(this) }, h("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
16
+ return (h(Host, { key: '70ada828e8cf541ab3b47f94b7e56ce34114ef88', class: getIonMode(this) }, h("slot", { key: 'c43e105669d2bae123619b616f3af8ca2f722d61' })));
17
17
  }
18
18
  static get style() { return thumbnailCss; }
19
19
  }, [257, "ion-thumbnail"]);
@@ -853,9 +853,9 @@ const Toast = /*@__PURE__*/ proxyCustomElement(class Toast extends HTMLElement {
853
853
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
854
854
  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);
855
855
  }
856
- return (h(Host, Object.assign({ key: '4a303f9ebb69614e9dca677d9d80a4a275de0d85', tabindex: "-1" }, this.htmlAttributes, { style: {
856
+ return (h(Host, Object.assign({ key: 'd1ecd90c87700aad4685e230cdd430aa286b8791', tabindex: "-1" }, this.htmlAttributes, { style: {
857
857
  zIndex: `${60000 + this.overlayIndex}`,
858
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '4f58fcbba8dce9834eab743fc91715935216f3d0', class: wrapperClass }, h("div", { key: 'bbc7b73b186432bd4be8247c5de2ce3b2551fb0a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '0b953478eb739ceb864373416183bfbf5ce2f9f1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), 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')))));
858
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '4bfc863417324de69e222054d5cf9c452038b41e', class: wrapperClass }, h("div", { key: '3417940afec0392e81b7d54c7cb00f3ab6c30d47', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '6bf878fbc85c01e1e5faa9d97d46255a6511a952', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), 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')))));
859
859
  }
860
860
  get el() { return this; }
861
861
  static get watchers() { return {
@@ -241,7 +241,7 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
241
241
  const value = this.getValue();
242
242
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
243
243
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
244
- return (h(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: createColorClasses(color, {
244
+ return (h(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: createColorClasses(color, {
245
245
  [mode]: true,
246
246
  'in-item': hostContext('ion-item', el),
247
247
  'toggle-activated': activated,
@@ -251,10 +251,10 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
251
251
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
252
252
  [`toggle-label-placement-${labelPlacement}`]: true,
253
253
  [`toggle-${rtl}`]: true,
254
- }) }, h("label", { key: '08a7744d71410f8befc04776a0ef7d3b03e9cfaf', class: "toggle-wrapper", htmlFor: inputId }, 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)), h("div", { key: '986ee5fd8f7011dc8f2857b3ed19ea391070f20b', class: {
254
+ }) }, h("label", { key: '4d153679d118d01286f6633d1c19558a97745ff6', class: "toggle-wrapper", htmlFor: inputId }, 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)), h("div", { key: 'ffed3a07ba2ab70e5b232e6041bc3b6b34be8331', class: {
255
255
  'label-text-wrapper': true,
256
256
  'label-text-wrapper-hidden': !hasLabel,
257
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '0cb70572a622b68d8e49239314bf00a32d7551c0' }), this.renderHintText()), h("div", { key: 'f6e2a4f074af1398af3b6eaeb1a2ef2125e1ba67', class: "native-wrapper" }, this.renderToggleControl()))));
257
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: 'd88e1e3dcdd8293f6b61f237cd7a0511dcbce300' }), this.renderHintText()), h("div", { key: '0e924225f5f0caf3c88738acb6c557bd8c1b68f6', class: "native-wrapper" }, this.renderToggleControl()))));
258
258
  }
259
259
  get el() { return this; }
260
260
  static get watchers() { return {
@@ -59,13 +59,13 @@ const Label = /*@__PURE__*/ proxyCustomElement(class Label extends HTMLElement {
59
59
  render() {
60
60
  const position = this.position;
61
61
  const mode = getIonMode(this);
62
- return (h(Host, { key: '684ddfa719e34d743489ff05a0df067829257c73', class: createColorClasses(this.color, {
62
+ return (h(Host, { key: 'd6fba1a97189acc8ddfd64a2f009954a3e46e188', class: createColorClasses(this.color, {
63
63
  [mode]: true,
64
64
  'in-item-color': hostContext('ion-item.ion-color', this.el),
65
65
  [`label-${position}`]: position !== undefined,
66
66
  [`label-no-animate`]: this.noAnimate,
67
67
  'label-rtl': document.dir === 'rtl',
68
- }) }, h("slot", { key: '4aace3e2b36250e832c44f63bea21116d77220fb' })));
68
+ }) }, h("slot", { key: 'ce0ab50b5700398fdf50f36d02b7ad287eb71481' })));
69
69
  }
70
70
  get el() { return this; }
71
71
  static get watchers() { return {
@@ -18,10 +18,10 @@ const ListHeader = /*@__PURE__*/ proxyCustomElement(class ListHeader extends HTM
18
18
  render() {
19
19
  const { lines } = this;
20
20
  const mode = getIonMode(this);
21
- return (h(Host, { key: '2e529021279761b2b2889885437f619b0e8f71c4', class: createColorClasses(this.color, {
21
+ return (h(Host, { key: 'd9bc827ad8cc77231efddc2435831a7fc080f77d', class: createColorClasses(this.color, {
22
22
  [mode]: true,
23
23
  [`list-header-lines-${lines}`]: lines !== undefined,
24
- }) }, h("div", { key: '9a6a11b0db015df79374f6489a40b959bc80b3e4', class: "list-header-inner" }, h("slot", { key: 'ef347fc6afb47850797e2e4d1aeefcd6a318f789' }))));
24
+ }) }, h("div", { key: '02dd9698304a7b2997ea1487e2f308bebea2b44c', class: "list-header-inner" }, h("slot", { key: '01d63a572c003286ae467a1ab23631e37e695042' }))));
25
25
  }
26
26
  static get style() { return {
27
27
  ios: listHeaderIosCss,
@@ -2317,20 +2317,20 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2317
2317
  const isCardModal = presentingElement !== undefined && mode === 'ios';
2318
2318
  const isHandleCycle = handleBehavior === 'cycle';
2319
2319
  const isSheetModalWithHandle = isSheetModal && showHandle;
2320
- return (h(Host, Object.assign({ key: '3fc94b846a80cf23ab9c4d4534d5835f2ada5449', "no-router": true,
2320
+ return (h(Host, Object.assign({ key: '9e9a7bd591eb17a225a00b4fa2e379e94601d17f', "no-router": true,
2321
2321
  // Allow the modal to be navigable when the handle is focusable
2322
2322
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2323
2323
  zIndex: `${20000 + this.overlayIndex}`,
2324
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'a99663c15d2374448a2a2243da63cfc5fac769f4', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '840e71a6e0d334b413766b3b00fa60841b8abdaf', class: "modal-shadow" }), h("div", Object.assign({ key: 'a77a8a58fbb541fb78319bd8fc790cc7c35133e7',
2324
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e5eae2c14f830f75e308fcd7f4c10c86fac5b962', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'e268f9cd310c3cf4e051b5b92524ce4fb70d005e', class: "modal-shadow" }), h("div", Object.assign({ key: '9c380f36c18144c153077b15744d1c3346bce63e',
2325
2325
  /*
2326
2326
  role and aria-modal must be used on the
2327
2327
  same element. They must also be set inside the
2328
2328
  shadow DOM otherwise ion-button will not be highlighted
2329
2329
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
2330
2330
  */
2331
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '4856c8e31055dc33b8dc997c891507c2b556cd7b', class: "modal-handle",
2331
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '2d5ee6d5959d97309c306e8ce72eb0f2c19be144', class: "modal-handle",
2332
2332
  // Prevents the handle from receiving keyboard focus when it does not cycle
2333
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'ecc33d1c0670d884aeee5a0c9fe4f16030edb511', onSlotchange: this.onSlotChange }))));
2333
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '5590434c35ea04c42fc006498bc189038e15a298', onSlotchange: this.onSlotChange }))));
2334
2334
  }
2335
2335
  get el() { return this; }
2336
2336
  static get watchers() { return {
@@ -99,10 +99,10 @@ const PickerColumnOption = /*@__PURE__*/ proxyCustomElement(class PickerColumnOp
99
99
  render() {
100
100
  const { color, disabled, ariaLabel } = this;
101
101
  const mode = getIonMode(this);
102
- return (h(Host, { key: 'c45a1c14a351bf57d7113671164852349be5aa8a', class: createColorClasses(color, {
102
+ return (h(Host, { key: 'f816729941aabcb31ddfdce3ffe2e2139030d715', class: createColorClasses(color, {
103
103
  [mode]: true,
104
104
  ['option-disabled']: disabled,
105
- }) }, h("button", { key: '67334c3bc6fbff93f65aaf9a0979b5ef62db1e5b', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: 'a4766c43931d1a5cb3124a2a97141d1a4ca2bf24' }))));
105
+ }) }, h("button", { key: '48dff7833bb60fc8331cd353a0885e6affa683d1', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: 'f9224d0e7b7aa6c05b29abfdcfe0f30ad6ee3141' }))));
106
106
  }
107
107
  get el() { return this; }
108
108
  static get watchers() { return {
@@ -340,9 +340,9 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
340
340
  render() {
341
341
  const col = this.col;
342
342
  const mode = getIonMode(this);
343
- return (h(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
343
+ return (h(Host, { key: 'ed32d108dd94f0302fb453c31a3497ebae65ec37', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
344
344
  'max-width': this.col.columnWidth,
345
- } }, col.prefix && (h("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
345
+ } }, col.prefix && (h("div", { key: '9f0634890e66fd4ae74f826d1eea3431de121393', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '337e996e5be91af16446085fe22436f213b771eb', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: 'd69a132599d78d9e5107f12228978cfce4e43098', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
346
346
  }
347
347
  get el() { return this; }
348
348
  static get watchers() { return {
@@ -1387,9 +1387,9 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
1387
1387
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
1388
1388
  const desktop = isPlatform('desktop');
1389
1389
  const enableArrow = arrow && !parentPopover;
1390
- return (h(Host, Object.assign({ key: 'f977b26ee1607d83bc78418e319da90d1691b49f', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1390
+ return (h(Host, Object.assign({ key: '16866c02534968c982cf4730d2936d03a5107c8b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1391
1391
  zIndex: `${20000 + this.overlayIndex}`,
1392
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '3cfc18823bca1fd43f9f7da876a69a5d8b1eac4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '060bc23b567e92bd4740397d3d2c1994cebd2859', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: 'cbb21b281a69713dd4233ea27256d696173a634b', class: "popover-arrow", part: "arrow" }), h("div", { key: 'a28dc0557aac79410d56828746d1b77aaa9d636c', class: "popover-content", part: "content" }, h("slot", { key: 'cd29600cb42be78005e635672ee2ec1e251116cc' })))));
1392
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '0df258601a4d30df3c27aa8234a7d5e056c3ecbb', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'f94e80ed996b957b5cd09b826472b4f60e8fcc78', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '185ce22f6386e8444a9cc7b8818dbfc16c463c99', class: "popover-arrow", part: "arrow" }), h("div", { key: '206202b299404e110de5397b229678cca18568d3', class: "popover-content", part: "content" }, h("slot", { key: 'ee543a0b92d6e35a837c0a0e4617c7b0fc4ad0b0' })))));
1393
1393
  }
1394
1394
  get el() { return this; }
1395
1395
  static get watchers() { return {
@@ -196,7 +196,7 @@ const RadioGroup = /*@__PURE__*/ proxyCustomElement(class RadioGroup extends HTM
196
196
  const { label, labelId, el, name, value } = this;
197
197
  const mode = getIonMode(this);
198
198
  renderHiddenInput(true, el, name, value, false);
199
- return (h(Host, { key: '81b8ebc96b2f383c36717f290d2959cc921ad6e8', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: '77f7b5a2040b65222c9c2178c8e87d58b347ef7c' })));
199
+ return (h(Host, { key: '81b8ebc96b2f383c36717f290d2959cc921ad6e8', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, onClick: this.onClick, class: mode }, this.renderHintText(), h("div", { key: '45b09efc10776b889a8f372cba80d25a3fc849da', class: "radio-group-wrapper" }, h("slot", { key: '58714934542c2fdd7396de160364f3f06b32e8f8' }))));
200
200
  }
201
201
  get el() { return this; }
202
202
  static get watchers() { return {
@@ -173,7 +173,7 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
173
173
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
174
174
  const mode = getIonMode(this);
175
175
  const inItem = hostContext('ion-item', el);
176
- return (h(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
176
+ return (h(Host, { key: '3353b28172b7f837d4b38964169b5b5f4ba02788', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
177
177
  [mode]: true,
178
178
  'in-item': inItem,
179
179
  'radio-checked': checked,
@@ -184,10 +184,10 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
184
184
  // Focus and active styling should not apply when the radio is in an item
185
185
  'ion-activatable': !inItem,
186
186
  'ion-focusable': !inItem,
187
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, h("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
187
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '418a0a48366ff900e97da123abf665bbbda87fb7', class: "radio-wrapper" }, h("div", { key: '6e5acdd8c8f5d0ad26632a65396afef8094153d1', class: {
188
188
  'label-text-wrapper': true,
189
189
  'label-text-wrapper-hidden': !hasLabel,
190
- }, part: "label" }, h("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), h("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
190
+ }, part: "label" }, h("slot", { key: '10b157162cd283d624153c747679609cf0bbf11e' })), h("div", { key: '4c45cca95cb105cd6df1025a26e3c045272184a0', class: "native-wrapper" }, this.renderRadioControl()))));
191
191
  }
192
192
  get el() { return this; }
193
193
  static get watchers() { return {
@@ -74,7 +74,7 @@ const RippleEffect = /*@__PURE__*/ proxyCustomElement(class RippleEffect extends
74
74
  }
75
75
  render() {
76
76
  const mode = getIonMode(this);
77
- return (h(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
77
+ return (h(Host, { key: 'ae9d3b1ed6773a9b9bb2267129f7e9af23b6c9fc', role: "presentation", class: {
78
78
  [mode]: true,
79
79
  unbounded: this.unbounded,
80
80
  } }));
@@ -97,7 +97,7 @@ const SelectModal = /*@__PURE__*/ proxyCustomElement(class SelectModal extends H
97
97
  } }, option.text))));
98
98
  }
99
99
  render() {
100
- return (h(Host, { key: '5bffdb106e6f628dae2e2aeb9ee8008b5c547b3a', class: getIonMode(this) }, h("ion-header", { key: '4de1c33b0504372f8a0a26123e4e086080ee1ecb' }, h("ion-toolbar", { key: '5d55a67d1db4352c260e9e0457d5dac6110b6598' }, this.header !== undefined && h("ion-title", { key: '4f07fe8a9af8c9bd0852af2a9b95517d16356e50' }, this.header), h("ion-buttons", { key: 'ca676a34f7cd3dd6b465b0d803434c2e2c8536c5', slot: "end" }, h("ion-button", { key: '801ed63a357c7c9d354668851db65e5c1b0e1abe', onClick: () => this.closeModal() }, "Close")))), h("ion-content", { key: 'f3c239ec9d84b8ed7413ea9db6efa18e29aca285' }, h("ion-list", { key: '40c157e9abe477171a39ae7e6e1cd4ed08735cb4' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
100
+ return (h(Host, { key: 'b6c0dec240b2e41985b15fdf4e5a6d3a145c1567', class: getIonMode(this) }, h("ion-header", { key: 'cd177e85ee0f62a60a3a708342d6ab6eb19a44dc' }, h("ion-toolbar", { key: 'aee8222a5a4daa540ad202b2e4cac1ef93d9558c' }, this.header !== undefined && h("ion-title", { key: '5f8fecc764d97bf840d3d4cfddeeccd118ab4436' }, this.header), h("ion-buttons", { key: '919033950d7c2b0101f96a9c9698219de9f568ea', slot: "end" }, h("ion-button", { key: '34b571cab6dced4bde555a077a21e91800829931', onClick: () => this.closeModal() }, "Close")))), h("ion-content", { key: '3c9153d26ba7a5a03d3b20fcd628d0c3031661a7' }, h("ion-list", { key: 'e00b222c071bc97c82ad1bba4db95a8a5c43ed6d' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
101
101
  }
102
102
  get el() { return this; }
103
103
  static get style() { return {
@@ -114,7 +114,7 @@ const SelectPopover = /*@__PURE__*/ proxyCustomElement(class SelectPopover exten
114
114
  render() {
115
115
  const { header, message, options, subHeader } = this;
116
116
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
117
- return (h(Host, { key: '0c9845a40d3fc392b0a7d64e2a6ed27d94bb7634', class: getIonMode(this) }, h("ion-list", { key: '84a30f6661b0f8c00e6fa199658ed2adbcf27358' }, header !== undefined && h("ion-list-header", { key: '13f5f56bbfbc06751fa516291a2da72629b60ece' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '3d39d18e720e798bbde334e79e6832091c7dfb81' }, h("ion-label", { key: 'd3051b0d140120b44bf5e79572f6f287e7cfb03a', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'b16805956f3316f8ec703c123b76f717488e8637' }, subHeader), message !== undefined && h("p", { key: '2215ac4ab4146a14e75a79192e319a8016286b5f' }, message)))), this.renderOptions(options))));
117
+ return (h(Host, { key: 'ab931b49b59283825bd2afa3f7f995b0e6e05bef', class: getIonMode(this) }, h("ion-list", { key: '3bd12b67832607596b912a73d5b3ae9b954b244d' }, header !== undefined && h("ion-list-header", { key: '97da930246edf7423a039c030d40e3ff7a5148a3' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'c579df6ea8fac07bb0c59d34c69b149656863224' }, h("ion-label", { key: 'af699c5f465710ccb13b8cf8e7be66f0e8acfad1', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'df9a936d42064b134e843c7229f314a2a3ec7e80' }, subHeader), message !== undefined && h("p", { key: '9c3ddad378df00f106afa94e9928cf68c17124dd' }, message)))), this.renderOptions(options))));
118
118
  }
119
119
  get el() { return this; }
120
120
  static get style() { return {
@@ -185,7 +185,7 @@ const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLEleme
185
185
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
186
186
  }
187
187
  }
188
- return (h(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses(self.color, {
188
+ return (h(Host, { key: 'a33d6421fcc885995fbc7a348516525f68ca496c', class: createColorClasses(self.color, {
189
189
  [mode]: true,
190
190
  [`spinner-${spinnerName}`]: true,
191
191
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -34,11 +34,11 @@ const ToolbarTitle = /*@__PURE__*/ proxyCustomElement(class ToolbarTitle extends
34
34
  render() {
35
35
  const mode = getIonMode(this);
36
36
  const size = this.getSize();
37
- return (h(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses(this.color, {
37
+ return (h(Host, { key: 'e599c0bf1b0817df3fa8360bdcd6d787f751c371', class: createColorClasses(this.color, {
38
38
  [mode]: true,
39
39
  [`title-${size}`]: true,
40
40
  'title-rtl': document.dir === 'rtl',
41
- }) }, h("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, h("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
41
+ }) }, h("div", { key: '6e7eee9047d6759876bb31d7305b76efc7c4338c', class: "toolbar-title" }, h("slot", { key: 'bf790eb4c83dd0af4f2fd1f85ab4af5819f46ff4' }))));
42
42
  }
43
43
  get el() { return this; }
44
44
  static get watchers() { return {
@@ -60,10 +60,10 @@ const Toolbar = /*@__PURE__*/ proxyCustomElement(class Toolbar extends HTMLEleme
60
60
  this.childrenStyles.forEach((value) => {
61
61
  Object.assign(childStyles, value);
62
62
  });
63
- return (h(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
63
+ return (h(Host, { key: 'f6c4f669a6a61c5eac4cbb5ea0aa97c48ae5bd46', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
64
64
  [mode]: true,
65
65
  'in-toolbar': hostContext('ion-toolbar', this.el),
66
- })) }, h("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), h("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, h("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), h("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), h("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, h("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), h("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), h("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
66
+ })) }, h("div", { key: '9c81742ffa02de9ba7417025b077d05e67305074', class: "toolbar-background", part: "background" }), h("div", { key: '5fc96d166fa47894a062e41541a9beee38078a36', class: "toolbar-container", part: "container" }, h("slot", { key: 'b62c0d9d59a70176bdbf769aec6090d7a166853b', name: "start" }), h("slot", { key: 'd01d3cc2c50e5aaa49c345b209fe8dbdf3d48131', name: "secondary" }), h("div", { key: '3aaa3a2810aedd38c37eb616158ec7b9638528fc', class: "toolbar-content", part: "content" }, h("slot", { key: '357246690f8d5e1cc3ca369611d4845a79edf610' })), h("slot", { key: '06ed3cca4f7ebff4a54cd877dad3cc925ccf9f75', name: "primary" }), h("slot", { key: 'e453d43d14a26b0d72f41e1b81a554bab8ece811', name: "end" }))));
67
67
  }
68
68
  get el() { return this; }
69
69
  static get style() { return {
@@ -1239,7 +1239,7 @@ const RouterOutlet = class {
1239
1239
  return true;
1240
1240
  }
1241
1241
  render() {
1242
- return index.h("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
1242
+ return index.h("slot", { key: '84b50f1155b0d780dff802ee13223287259fd525' });
1243
1243
  }
1244
1244
  get el() { return index.getElement(this); }
1245
1245
  static get watchers() { return {
@@ -1275,11 +1275,11 @@ const ToolbarTitle = class {
1275
1275
  render() {
1276
1276
  const mode = ionicGlobal.getIonMode(this);
1277
1277
  const size = this.getSize();
1278
- return (index.h(index.Host, { key: '44e63f8439df64c470692904427b417e19406476', class: theme.createColorClasses(this.color, {
1278
+ return (index.h(index.Host, { key: 'e599c0bf1b0817df3fa8360bdcd6d787f751c371', class: theme.createColorClasses(this.color, {
1279
1279
  [mode]: true,
1280
1280
  [`title-${size}`]: true,
1281
1281
  'title-rtl': document.dir === 'rtl',
1282
- }) }, index.h("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, index.h("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
1282
+ }) }, index.h("div", { key: '6e7eee9047d6759876bb31d7305b76efc7c4338c', class: "toolbar-title" }, index.h("slot", { key: 'bf790eb4c83dd0af4f2fd1f85ab4af5819f46ff4' }))));
1283
1283
  }
1284
1284
  get el() { return index.getElement(this); }
1285
1285
  static get watchers() { return {
@@ -1344,10 +1344,10 @@ const Toolbar = class {
1344
1344
  this.childrenStyles.forEach((value) => {
1345
1345
  Object.assign(childStyles, value);
1346
1346
  });
1347
- return (index.h(index.Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
1347
+ return (index.h(index.Host, { key: 'f6c4f669a6a61c5eac4cbb5ea0aa97c48ae5bd46', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
1348
1348
  [mode]: true,
1349
1349
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
1350
- })) }, index.h("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), index.h("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, index.h("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), index.h("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), index.h("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, index.h("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), index.h("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), index.h("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
1350
+ })) }, index.h("div", { key: '9c81742ffa02de9ba7417025b077d05e67305074', class: "toolbar-background", part: "background" }), index.h("div", { key: '5fc96d166fa47894a062e41541a9beee38078a36', class: "toolbar-container", part: "container" }, index.h("slot", { key: 'b62c0d9d59a70176bdbf769aec6090d7a166853b', name: "start" }), index.h("slot", { key: 'd01d3cc2c50e5aaa49c345b209fe8dbdf3d48131', name: "secondary" }), index.h("div", { key: '3aaa3a2810aedd38c37eb616158ec7b9638528fc', class: "toolbar-content", part: "content" }, index.h("slot", { key: '357246690f8d5e1cc3ca369611d4845a79edf610' })), index.h("slot", { key: '06ed3cca4f7ebff4a54cd877dad3cc925ccf9f75', name: "primary" }), index.h("slot", { key: 'e453d43d14a26b0d72f41e1b81a554bab8ece811', name: "end" }))));
1351
1351
  }
1352
1352
  get el() { return index.getElement(this); }
1353
1353
  };
@@ -51,7 +51,7 @@ const Thumbnail = class {
51
51
  index.registerInstance(this, hostRef);
52
52
  }
53
53
  render() {
54
- return (index.h(index.Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: ionicGlobal.getIonMode(this) }, index.h("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
54
+ return (index.h(index.Host, { key: '70ada828e8cf541ab3b47f94b7e56ce34114ef88', class: ionicGlobal.getIonMode(this) }, index.h("slot", { key: 'c43e105669d2bae123619b616f3af8ca2f722d61' })));
55
55
  }
56
56
  };
57
57
  Thumbnail.style = thumbnailCss;
@@ -147,7 +147,7 @@ const Row = class {
147
147
  index.registerInstance(this, hostRef);
148
148
  }
149
149
  render() {
150
- return (index.h(index.Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: ionicGlobal.getIonMode(this) }, index.h("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
150
+ return (index.h(index.Host, { key: '65592a79621bd8f75f9566db3e8c05a4b8fc6048', class: ionicGlobal.getIonMode(this) }, index.h("slot", { key: '56f09784db7a0299c9ce76dfcede185b295251ff' })));
151
151
  }
152
152
  };
153
153
  Row.style = rowCss;
@@ -2145,11 +2145,11 @@ const Picker = class {
2145
2145
  render() {
2146
2146
  const { htmlAttributes } = this;
2147
2147
  const mode = ionicGlobal.getIonMode(this);
2148
- return (index.h(index.Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
2148
+ return (index.h(index.Host, Object.assign({ key: 'b95440747eb80cba23ae676d399d5e5816722c58', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
2149
2149
  zIndex: `${20000 + this.overlayIndex}`,
2150
2150
  }, class: Object.assign({ [mode]: true,
2151
2151
  // Used internally for styling
2152
- [`picker-${mode}`]: true, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), index.h("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), index.h("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, index.h("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', class: "picker-toolbar" }, this.buttons.map((b) => (index.h("div", { class: buttonWrapperClass(b) }, index.h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), index.h("div", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, index.h("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => index.h("ion-picker-legacy-column", { col: c })), index.h("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), index.h("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
2152
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), index.h("ion-backdrop", { key: '169d1c83ef40e7fcb134219a585298b403a70b0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: '98518e5f5cea2dfb8dfa63d9545e9ae3a5765023', tabindex: "0", "aria-hidden": "true" }), index.h("div", { key: '151755ab8eb23f9adafbfe201349398f5a69dee7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, index.h("div", { key: '5dcf93b2f4fe8f4fce7c7aec8f85ef45a03ef470', class: "picker-toolbar" }, this.buttons.map((b) => (index.h("div", { class: buttonWrapperClass(b) }, index.h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), index.h("div", { key: 'fd5d66708edd38adc5a4d2fad7298969398a05e3', class: "picker-columns" }, index.h("div", { key: '1b5830fd6cef1016af7736792c514965d6cb38a8', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => index.h("ion-picker-legacy-column", { col: c })), index.h("div", { key: 'c6edeca7afd69e13c9c66ba36f261974fd0f8f78', class: "picker-below-highlight" }))), index.h("div", { key: 'e2a4b24710e30579b14b82dbfd3761b2187797b5', tabindex: "0", "aria-hidden": "true" })));
2153
2153
  }
2154
2154
  get el() { return index.getElement(this); }
2155
2155
  static get watchers() { return {
@@ -2503,9 +2503,9 @@ const PickerColumnCmp = class {
2503
2503
  render() {
2504
2504
  const col = this.col;
2505
2505
  const mode = ionicGlobal.getIonMode(this);
2506
- return (index.h(index.Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, theme.getClassMap(col.cssClass)), style: {
2506
+ return (index.h(index.Host, { key: 'ed32d108dd94f0302fb453c31a3497ebae65ec37', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, theme.getClassMap(col.cssClass)), style: {
2507
2507
  'max-width': this.col.columnWidth,
2508
- } }, col.prefix && (index.h("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), index.h("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index$1) => (index.h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index$1 }, o.text)))), col.suffix && (index.h("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
2508
+ } }, col.prefix && (index.h("div", { key: '9f0634890e66fd4ae74f826d1eea3431de121393', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), index.h("div", { key: '337e996e5be91af16446085fe22436f213b771eb', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index$1) => (index.h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index$1 }, o.text)))), col.suffix && (index.h("div", { key: 'd69a132599d78d9e5107f12228978cfce4e43098', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
2509
2509
  }
2510
2510
  get el() { return index.getElement(this); }
2511
2511
  static get watchers() { return {