@ionic/core 8.8.10 → 8.8.11-dev.11781186446.19d9a1cc

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 (288) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-infinite-scroll-content.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-input.js +1 -1
  14. package/components/ion-item-option.js +1 -1
  15. package/components/ion-item.js +1 -1
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +1 -1
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-popover.js +1 -1
  21. package/components/ion-progress-bar.js +1 -1
  22. package/components/ion-radio.js +1 -1
  23. package/components/ion-range.js +1 -1
  24. package/components/ion-refresher-content.js +1 -1
  25. package/components/ion-refresher.js +1 -1
  26. package/components/ion-reorder-group.js +1 -1
  27. package/components/ion-reorder.js +1 -1
  28. package/components/ion-ripple-effect.js +1 -1
  29. package/components/ion-router-link.js +1 -1
  30. package/components/ion-router-outlet.js +1 -1
  31. package/components/ion-row.js +1 -1
  32. package/components/ion-searchbar.js +1 -1
  33. package/components/ion-segment-button.js +1 -1
  34. package/components/ion-segment-content.js +1 -1
  35. package/components/ion-segment-view.js +1 -1
  36. package/components/ion-segment.js +1 -1
  37. package/components/ion-select-modal.js +1 -1
  38. package/components/ion-select-option.js +1 -1
  39. package/components/ion-select-popover.js +1 -1
  40. package/components/ion-select.js +1 -1
  41. package/components/ion-skeleton-text.js +1 -1
  42. package/components/ion-spinner.js +1 -1
  43. package/components/ion-split-pane.js +1 -1
  44. package/components/ion-tab-bar.js +1 -1
  45. package/components/ion-tab-button.js +1 -1
  46. package/components/ion-tab.js +1 -1
  47. package/components/ion-tabs.js +1 -1
  48. package/components/ion-text.js +1 -1
  49. package/components/ion-textarea.js +1 -1
  50. package/components/ion-thumbnail.js +1 -1
  51. package/components/ion-title.js +1 -1
  52. package/components/ion-toast.js +1 -1
  53. package/components/ion-toggle.js +1 -1
  54. package/components/ion-toolbar.js +1 -1
  55. package/components/{p-nQi4oKcG.js → p-B8U2xbtx.js} +1 -1
  56. package/components/p-BpCi7xHq.js +4 -0
  57. package/components/p-CHzfYZbv.js +4 -0
  58. package/components/{p-DDWp95gH.js → p-Ck2wcXbv.js} +1 -1
  59. package/components/{p-C2lKgrXx.js → p-DEBD4LvH.js} +1 -1
  60. package/components/p-DH50pr9O.js +4 -0
  61. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  62. package/components/p-DmpBvltk.js +4 -0
  63. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  64. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  65. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  66. package/components/p-djQLE88P.js +4 -0
  67. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  68. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  69. package/dist/cjs/index.cjs.js +1 -2
  70. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -4
  71. package/dist/cjs/ion-alert.cjs.entry.js +7 -3
  72. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  73. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  75. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  76. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  77. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-loading.cjs.entry.js +7 -3
  79. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-modal.cjs.entry.js +9 -5
  81. package/dist/cjs/ion-popover.cjs.entry.js +7 -3
  82. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  90. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  93. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-select_3.cjs.entry.js +36 -5
  95. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  98. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  99. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  102. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  103. package/dist/cjs/ionic.cjs.js +1 -1
  104. package/dist/cjs/loader.cjs.js +1 -1
  105. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-DSmSrd_4.js} +26 -7
  106. package/dist/collection/collection-manifest.json +5 -9
  107. package/dist/collection/components/action-sheet/action-sheet.js +8 -4
  108. package/dist/collection/components/alert/alert.js +7 -3
  109. package/dist/collection/components/input/input.js +8 -8
  110. package/dist/collection/components/loading/loading.js +7 -3
  111. package/dist/collection/components/modal/modal.js +9 -5
  112. package/dist/collection/components/popover/popover.js +7 -3
  113. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  114. package/dist/collection/components/radio/radio.js +4 -4
  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 +38 -5
  123. package/dist/collection/components/row/row.js +1 -1
  124. package/dist/collection/components/searchbar/searchbar.js +9 -9
  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 +33 -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 +2 -2
  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/collection/index.js +1 -1
  148. package/dist/collection/utils/overlays.js +25 -6
  149. package/dist/docs.json +247 -1170
  150. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  151. package/dist/esm/index.js +1 -1
  152. package/dist/esm/ion-accordion_2.entry.js +1 -1
  153. package/dist/esm/ion-action-sheet.entry.js +8 -4
  154. package/dist/esm/ion-alert.entry.js +7 -3
  155. package/dist/esm/ion-app_8.entry.js +23 -9
  156. package/dist/esm/ion-avatar_3.entry.js +1 -1
  157. package/dist/esm/ion-back-button.entry.js +1 -1
  158. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  159. package/dist/esm/ion-col_3.entry.js +1 -1
  160. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  161. package/dist/esm/ion-fab_3.entry.js +1 -1
  162. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  163. package/dist/esm/ion-input.entry.js +5 -5
  164. package/dist/esm/ion-item_8.entry.js +3 -3
  165. package/dist/esm/ion-loading.entry.js +7 -3
  166. package/dist/esm/ion-menu_3.entry.js +2 -2
  167. package/dist/esm/ion-modal.entry.js +9 -5
  168. package/dist/esm/ion-popover.entry.js +7 -3
  169. package/dist/esm/ion-progress-bar.entry.js +1 -1
  170. package/dist/esm/ion-radio_2.entry.js +3 -3
  171. package/dist/esm/ion-range.entry.js +3 -3
  172. package/dist/esm/ion-refresher_2.entry.js +3 -3
  173. package/dist/esm/ion-reorder_2.entry.js +3 -3
  174. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  175. package/dist/esm/ion-route_4.entry.js +2 -2
  176. package/dist/esm/ion-searchbar.entry.js +6 -6
  177. package/dist/esm/ion-segment-content.entry.js +1 -1
  178. package/dist/esm/ion-segment-view.entry.js +2 -2
  179. package/dist/esm/ion-segment_2.entry.js +4 -4
  180. package/dist/esm/ion-select-modal.entry.js +2 -2
  181. package/dist/esm/ion-select_3.entry.js +38 -7
  182. package/dist/esm/ion-spinner.entry.js +1 -1
  183. package/dist/esm/ion-split-pane.entry.js +2 -2
  184. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  185. package/dist/esm/ion-tab_2.entry.js +3 -3
  186. package/dist/esm/ion-text.entry.js +2 -2
  187. package/dist/esm/ion-textarea.entry.js +2 -2
  188. package/dist/esm/ion-toast.entry.js +3 -3
  189. package/dist/esm/ion-toggle.entry.js +4 -4
  190. package/dist/esm/ionic.js +1 -1
  191. package/dist/esm/loader.js +1 -1
  192. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DLNOHWNc.js} +26 -7
  193. package/dist/html.html-data.json +6 -77
  194. package/dist/ionic/index.esm.js +1 -1
  195. package/dist/ionic/ionic.esm.js +1 -1
  196. package/dist/ionic/{p-aa5d6b8f.entry.js → p-03aa786d.entry.js} +1 -1
  197. package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
  198. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  199. package/dist/ionic/{p-e847a888.entry.js → p-2a6d6565.entry.js} +1 -1
  200. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  201. package/dist/ionic/{p-a21add2f.entry.js → p-441fbb13.entry.js} +1 -1
  202. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  203. package/dist/ionic/p-4621c387.entry.js +4 -0
  204. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  205. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  206. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  207. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  208. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  209. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  210. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  211. package/dist/ionic/p-7aed7726.entry.js +4 -0
  212. package/dist/ionic/p-7ebd980c.entry.js +4 -0
  213. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  214. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  215. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  216. package/dist/ionic/p-944c8939.entry.js +4 -0
  217. package/dist/ionic/p-9c6a5a8d.entry.js +4 -0
  218. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  219. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  220. package/dist/ionic/p-a2e51c5d.entry.js +4 -0
  221. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  222. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  223. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  224. package/dist/ionic/p-b16be471.entry.js +4 -0
  225. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  226. package/dist/ionic/{p-94f2a736.entry.js → p-c93553d2.entry.js} +1 -1
  227. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  228. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  229. package/dist/ionic/p-d8ac9eea.entry.js +4 -0
  230. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  231. package/dist/ionic/p-ed797c72.entry.js +4 -0
  232. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  233. package/dist/ionic/p-f09f9642.entry.js +4 -0
  234. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  235. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  236. package/dist/types/components/input/input.d.ts +1 -1
  237. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  238. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  239. package/dist/types/components/select/select.d.ts +1 -0
  240. package/dist/types/components.d.ts +19 -282
  241. package/dist/types/index.d.ts +1 -1
  242. package/dist/types/interface.d.ts +0 -1
  243. package/dist/types/utils/config.d.ts +0 -8
  244. package/dist/types/utils/overlays.d.ts +11 -9
  245. package/hydrate/index.js +202 -795
  246. package/hydrate/index.mjs +202 -795
  247. package/package.json +37 -5
  248. package/components/ion-picker-legacy-column.d.ts +0 -11
  249. package/components/ion-picker-legacy-column.js +0 -4
  250. package/components/ion-picker-legacy.d.ts +0 -11
  251. package/components/ion-picker-legacy.js +0 -4
  252. package/components/p-0NRupjzW.js +0 -4
  253. package/components/p-Bth-EzJ0.js +0 -4
  254. package/components/p-CU5rbWAW.js +0 -4
  255. package/components/p-W9CZ2mWX.js +0 -4
  256. package/components/p-dhLYXa7A.js +0 -4
  257. package/components/p-uVRyUM3z.js +0 -4
  258. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  259. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  260. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  261. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  262. package/dist/collection/components/picker-legacy/picker.js +0 -890
  263. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  264. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  265. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  266. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  267. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  268. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  269. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  270. package/dist/ionic/p-0d005398.entry.js +0 -4
  271. package/dist/ionic/p-27d30585.entry.js +0 -4
  272. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  273. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  274. package/dist/ionic/p-30bf9737.entry.js +0 -4
  275. package/dist/ionic/p-3a541154.entry.js +0 -4
  276. package/dist/ionic/p-485fda23.entry.js +0 -4
  277. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  278. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  279. package/dist/ionic/p-5fc7e542.entry.js +0 -4
  280. package/dist/ionic/p-e686695b.entry.js +0 -4
  281. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  282. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  283. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  284. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  285. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  286. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  287. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  288. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
@@ -35,7 +35,7 @@ export class Searchbar {
35
35
  /**
36
36
  * Set the input's autocorrect property.
37
37
  */
38
- this.autocorrect = 'off';
38
+ this.autocorrect = false;
39
39
  /**
40
40
  * Set the cancel button icon. Only applies to `md` mode.
41
41
  * Defaults to `arrow-back-sharp`.
@@ -438,8 +438,8 @@ export class Searchbar {
438
438
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
439
439
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
440
440
  const shouldShowCancelButton = this.shouldShowCancelButton();
441
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '9e9f3a7f6ee66140181f8c3cfa42bbeee75adafc', "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" }, h("div", { key: '5f83fbcc0708830637815e8c0b69356cad381870', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
442
- return (h(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
441
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '870c9284441fdf431056ac944ac93afa7cb1ee96', "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" }, h("div", { key: '730e33f44c5ec6eee898ea6612fdba337de354e3', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
442
+ return (h(Host, { key: 'd898b9f9768ec7119a3ad4be8350d8a3cfb32ba6', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
443
443
  [mode]: true,
444
444
  'searchbar-animated': animated,
445
445
  'searchbar-disabled': this.disabled,
@@ -449,14 +449,14 @@ export class Searchbar {
449
449
  'searchbar-has-focus': this.focused,
450
450
  'searchbar-should-show-clear': this.shouldShowClearButton(),
451
451
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
452
- }) }, h("div", { key: '3f1c25442d6d87c0df67f79482a925b80dcc403d', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'a386fecafda0fab449ea1488906ba6cfc55e2b5c', "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, h("ion-icon", { key: '5f81642628335def39a14f0726e0fafdc7203776', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'da3073646f2d7f639261b556517fbadabc3c10e9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
452
+ }) }, h("div", { key: 'a0b49cce6241b7e79834de7cbb1d1076f9d42a21', class: "searchbar-input-container" }, h("input", Object.assign({ key: '8ad5e659f8ed675fa5559f9e5dfcdf99cfcb8bcf', "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 ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '09f26831a519bb6639115f827b2b8985ae51e4b9', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'd70ccda51cb79e51577648fcca3b274c6fa20a4f', "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) }, h("ion-icon", { key: '065cd6c707ae462c0767df1bab04ce8045f340a4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
459
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '428dcb1c0ffef947e24771b060288da47e67b6bd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
460
460
  }
461
461
  static get is() { return "ion-searchbar"; }
462
462
  static get encapsulation() { return "scoped"; }
@@ -568,11 +568,11 @@ export class Searchbar {
568
568
  "defaultValue": "'off'"
569
569
  },
570
570
  "autocorrect": {
571
- "type": "string",
571
+ "type": "boolean",
572
572
  "mutable": false,
573
573
  "complexType": {
574
- "original": "'on' | 'off'",
575
- "resolved": "\"off\" | \"on\"",
574
+ "original": "boolean",
575
+ "resolved": "boolean",
576
576
  "references": {}
577
577
  },
578
578
  "required": false,
@@ -585,7 +585,7 @@ export class Searchbar {
585
585
  "setter": false,
586
586
  "reflect": false,
587
587
  "attribute": "autocorrect",
588
- "defaultValue": "'off'"
588
+ "defaultValue": "false"
589
589
  },
590
590
  "cancelButtonIcon": {
591
591
  "type": "string",
@@ -547,14 +547,14 @@ export class Segment {
547
547
  }
548
548
  render() {
549
549
  const mode = getIonMode(this);
550
- return (h(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
550
+ return (h(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
551
551
  [mode]: true,
552
552
  'in-toolbar': hostContext('ion-toolbar', this.el),
553
553
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
554
554
  'segment-activated': this.activated,
555
555
  'segment-disabled': this.disabled,
556
556
  'segment-scrollable': this.scrollable,
557
- }) }, h("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
557
+ }) }, h("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
558
558
  }
559
559
  static get is() { return "ion-segment"; }
560
560
  static get encapsulation() { return "shadow"; }
@@ -111,7 +111,7 @@ export class SegmentButton {
111
111
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
112
112
  const mode = getIonMode(this);
113
113
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
114
- return (h(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
114
+ return (h(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
115
115
  [mode]: true,
116
116
  'in-toolbar': hostContext('ion-toolbar', this.el),
117
117
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -127,7 +127,7 @@ export class SegmentButton {
127
127
  'ion-activatable': true,
128
128
  'ion-activatable-instant': true,
129
129
  'ion-focusable': true,
130
- } }, 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), h("span", { key: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, h("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && h("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), h("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
130
+ } }, h("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, h("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && h("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), h("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
131
131
  }
132
132
  static get is() { return "ion-segment-button"; }
133
133
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@
4
4
  import { Host, h } from "@stencil/core";
5
5
  export class SegmentContent {
6
6
  render() {
7
- return (h(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, h("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
7
+ return (h(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, h("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
8
8
  }
9
9
  static get is() { return "ion-segment-content"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -103,11 +103,11 @@ export class SegmentView {
103
103
  }
104
104
  render() {
105
105
  const { disabled, isManualScroll, swipeGesture } = this;
106
- return (h(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
106
+ return (h(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
107
107
  'segment-view-disabled': disabled,
108
108
  'segment-view-scroll-disabled': isManualScroll === false,
109
109
  'segment-view-swipe-disabled': swipeGesture === false,
110
- } }, h("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
110
+ } }, h("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
111
111
  }
112
112
  static get is() { return "ion-segment-view"; }
113
113
  static get encapsulation() { return "shadow"; }
@@ -162,9 +162,40 @@ export class Select {
162
162
  this.emitStyle();
163
163
  }
164
164
  setValue(value) {
165
+ if (this.isValueEqual(this.value, value)) {
166
+ return;
167
+ }
165
168
  this.value = value;
166
169
  this.ionChange.emit({ value });
167
170
  }
171
+ isValueEqual(currentValue, newValue) {
172
+ if (this.multiple) {
173
+ const currentArr = Array.isArray(currentValue) ? currentValue : [];
174
+ const newArr = Array.isArray(newValue) ? newValue : [];
175
+ if (currentArr.length !== newArr.length) {
176
+ return false;
177
+ }
178
+ // Multiset compare: each new value must match a distinct current value.
179
+ // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
180
+ // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
181
+ const remaining = currentArr.slice();
182
+ return newArr.every((val) => {
183
+ const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
184
+ if (idx === -1) {
185
+ return false;
186
+ }
187
+ remaining.splice(idx, 1);
188
+ return true;
189
+ });
190
+ }
191
+ if (currentValue == null && newValue == null) {
192
+ return true;
193
+ }
194
+ if (currentValue == null || newValue == null) {
195
+ return false;
196
+ }
197
+ return compareOptions(currentValue, newValue, this.compareWith);
198
+ }
168
199
  async connectedCallback() {
169
200
  const { el } = this;
170
201
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -837,7 +868,7 @@ export class Select {
837
868
  * TODO(FW-5592): Remove hasStartEndSlots condition
838
869
  */
839
870
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
840
- return (h(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses(this.color, {
871
+ return (h(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses(this.color, {
841
872
  [mode]: true,
842
873
  'in-item': inItem,
843
874
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -855,7 +886,7 @@ export class Select {
855
886
  [`select-justify-${justify}`]: justifyEnabled,
856
887
  [`select-shape-${shape}`]: shape !== undefined,
857
888
  [`select-label-placement-${labelPlacement}`]: true,
858
- }) }, h("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), h("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
889
+ }) }, h("label", { key: 'fa1889b325387da10d1e5fa865aef128bc31aee6', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e31f4ae38af01dbe3a7551e9e5dca2650ae42ef5', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: '623916631f44446fcf2c1df64788ce530964afea', name: "start" }), h("div", { key: 'cbd2298a7c6666ce6b4443b3967195f96558861c', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'ee8c2a236c7f120988f5bab17397204f1b374b57', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '951566d0da3aea0be4921b2951207765b089a7f3', class: "select-highlight" })), this.renderBottomContent()));
859
890
  }
860
891
  static get is() { return "ion-select"; }
861
892
  static get encapsulation() { return "shadow"; }
@@ -90,7 +90,7 @@ export class SelectModal {
90
90
  } }, option.text))));
91
91
  }
92
92
  render() {
93
- return (h(Host, { key: 'fda0bf6f93cd5ec9f3c64f88a52de849e0e140a2', class: getIonMode(this) }, h("ion-header", { key: '27c0b17175a53db9ff159feeeb96451a3f011dab' }, h("ion-toolbar", { key: '91a4155ebc317fbc9f1bb3e26a7e94754b953c9b' }, this.header !== undefined && h("ion-title", { key: 'f6dae8e4e381f322cc90efefd9bb6ef81d4d2f3e' }, this.header), h("ion-buttons", { key: 'e7760532fb2e7e7385ed6e62097d92d96ff20148', slot: "end" }, h("ion-button", { key: '4999b6fc46cba138186546dca67b7950855e6fb7', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: 'c73f80a4bc25b9061ea65cf11e5d811c1a4d8704' }, h("ion-list", { key: 'b21905d15b36ad5eb45845e768918d2763cf48b1' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
93
+ return (h(Host, { key: '36fe925fe98356858630325abc9ab71ef25dfb46', class: getIonMode(this) }, h("ion-header", { key: '16d89db1284d7080b4ead5f4a4a0bac57f264f62' }, h("ion-toolbar", { key: 'e16c889d9c7b5edf3b26a7cca1443ec5520e69e0' }, this.header !== undefined && h("ion-title", { key: '269df2e45a3abf3fe7518e8a34b0bab749bdea14' }, this.header), h("ion-buttons", { key: 'd8e218821e085424e52f86ef6ede2c5fb568dc82', slot: "end" }, h("ion-button", { key: '26c99660d4f5ec6334da56ad5712bfc79f80d0e2', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '455fb684edae7d6754ef4882c1221956f7b4d29b' }, h("ion-list", { key: '3817a9deb1881a8c0d165b21940890bd628b3614' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
94
94
  }
95
95
  static get is() { return "ion-select-modal"; }
96
96
  static get encapsulation() { return "scoped"; }
@@ -12,7 +12,7 @@ export class SelectOption {
12
12
  this.disabled = false;
13
13
  }
14
14
  render() {
15
- return h(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode(this) });
15
+ return h(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode(this) });
16
16
  }
17
17
  static get is() { return "ion-select-option"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -112,7 +112,7 @@ export class SelectPopover {
112
112
  render() {
113
113
  const { header, message, options, subHeader } = this;
114
114
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
115
- return (h(Host, { key: 'e7449a1ecfcdbf45a79f8e26a00253c4e146448a', class: getIonMode(this) }, h("ion-list", { key: '52abdfc8668c3429a0dcefef8ddedb6647fdd894' }, header !== undefined && h("ion-list-header", { key: '978e5c03728756feafcc60a0e10e6ec59bf2ae11' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'e93c44e7f07a76def16e4b11f0fb4780d84ed402' }, h("ion-label", { key: 'bba1aac43b0bc7f4f00978dd8301985233f3725c', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'ad96f6017cf2cc5219540bded2c4f1ca3b532de2' }, subHeader), message !== undefined && h("p", { key: '3fd038921dc40c4d0c29734433984b279ccaeec3' }, message)))), this.renderOptions(options))));
115
+ return (h(Host, { key: '81783ad099ad52b3e035efa18e5a23be766faf7b', class: getIonMode(this) }, h("ion-list", { key: '319171787e9c2228d1d5a0133b2f5e0998644516' }, header !== undefined && h("ion-list-header", { key: '09a0fdbe2807c270b9abdb908965f72c4838030c' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'ede19cb8e121fd14a2335fcb81cc59b9a102eac5' }, h("ion-label", { key: '6b98c0f132bc6161299b22c0e56092f85b7b0095', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '8053e175eb36d7b8f52df1f93cee48ee0794857e' }, subHeader), message !== undefined && h("p", { key: '508673abcda7444ed8f8c828b5418dd48ef86b8e' }, message)))), this.renderOptions(options))));
116
116
  }
117
117
  static get is() { return "ion-select-popover"; }
118
118
  static get encapsulation() { return "scoped"; }
@@ -28,11 +28,11 @@ export class SkeletonText {
28
28
  const animated = this.animated && config.getBoolean('animated', true);
29
29
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30
30
  const mode = getIonMode(this);
31
- return (h(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
31
+ return (h(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
32
32
  [mode]: true,
33
33
  'skeleton-text-animated': animated,
34
34
  'in-media': inMedia,
35
- } }, h("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
35
+ } }, h("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
36
36
  }
37
37
  static get is() { return "ion-skeleton-text"; }
38
38
  static get encapsulation() { return "shadow"; }
@@ -39,7 +39,7 @@ export class Spinner {
39
39
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40
40
  }
41
41
  }
42
- return (h(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses(self.color, {
42
+ return (h(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses(self.color, {
43
43
  [mode]: true,
44
44
  [`spinner-${spinnerName}`]: true,
45
45
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -126,12 +126,12 @@ export class SplitPane {
126
126
  }
127
127
  render() {
128
128
  const mode = getIonMode(this);
129
- return (h(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
129
+ return (h(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
130
130
  [mode]: true,
131
131
  // Used internally for styling
132
132
  [`split-pane-${mode}`]: true,
133
133
  'split-pane-visible': this.visible,
134
- } }, h("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
134
+ } }, h("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
135
135
  }
136
136
  static get is() { return "ion-split-pane"; }
137
137
  static get encapsulation() { return "shadow"; }
@@ -47,10 +47,10 @@ export class Tab {
47
47
  }
48
48
  render() {
49
49
  const { tab, active, component } = this;
50
- return (h(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
50
+ return (h(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
51
51
  'ion-page': component === undefined,
52
52
  'tab-hidden': !active,
53
- } }, h("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
53
+ } }, h("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
54
54
  }
55
55
  static get is() { return "ion-tab"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -87,11 +87,11 @@ export class TabBar {
87
87
  const { color, translucent, keyboardVisible } = this;
88
88
  const mode = getIonMode(this);
89
89
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
90
- return (h(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
90
+ return (h(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
91
91
  [mode]: true,
92
92
  'tab-bar-translucent': translucent,
93
93
  'tab-bar-hidden': shouldHide,
94
- }) }, h("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
94
+ }) }, h("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
95
95
  }
96
96
  static get is() { return "ion-tab-bar"; }
97
97
  static get encapsulation() { return "shadow"; }
@@ -70,7 +70,7 @@ export class TabButton {
70
70
  rel,
71
71
  target,
72
72
  };
73
- return (h(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
73
+ return (h(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
74
74
  [mode]: true,
75
75
  'tab-selected': selected,
76
76
  'tab-disabled': disabled,
@@ -82,7 +82,7 @@ export class TabButton {
82
82
  'ion-activatable': true,
83
83
  'ion-selectable': true,
84
84
  'ion-focusable': true,
85
- } }, 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" }))));
85
+ } }, h("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, 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: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, h("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && h("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
86
86
  }
87
87
  static get is() { return "ion-tab-button"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -162,7 +162,7 @@ export class Tabs {
162
162
  return Array.from(this.el.querySelectorAll('ion-tab'));
163
163
  }
164
164
  render() {
165
- return (h(Host, { key: 'c7131135b31aa312dc0207602561e1c0f4ac3e53', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '6c46e91c0389bbcea1f15f35cf3ea513a74ac545', name: "top" }), h("div", { key: '4f1b649d8bb60b61402b97359de204979c5eda52', class: "tabs-inner" }, h("slot", { key: '8d1ef4952be4fb33567376e1083ea4da697fcae0' })), h("slot", { key: '260b8da8031494e9cb4635b3d22c49a433042db1', name: "bottom" })));
165
+ return (h(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), h("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, h("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), h("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
166
166
  }
167
167
  static get is() { return "ion-tabs"; }
168
168
  static get encapsulation() { return "shadow"; }
@@ -10,9 +10,9 @@ import { getIonMode } from "../../global/ionic-global";
10
10
  export class Text {
11
11
  render() {
12
12
  const mode = getIonMode(this);
13
- return (h(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses(this.color, {
13
+ return (h(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses(this.color, {
14
14
  [mode]: true,
15
- }) }, h("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
15
+ }) }, h("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
16
16
  }
17
17
  static get is() { return "ion-text"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -471,7 +471,7 @@ export class Textarea {
471
471
  * TODO(FW-5592): Remove hasStartEndSlots condition
472
472
  */
473
473
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
474
- return (h(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses(this.color, {
474
+ return (h(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses(this.color, {
475
475
  [mode]: true,
476
476
  'has-value': hasValue,
477
477
  'has-focus': hasFocus,
@@ -480,7 +480,7 @@ export class Textarea {
480
480
  [`textarea-shape-${shape}`]: shape !== undefined,
481
481
  [`textarea-label-placement-${labelPlacement}`]: true,
482
482
  'textarea-disabled': disabled,
483
- }) }, h("label", { key: '003da35bad92ab36777b7ae40855541bf900c64a', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '3cae2d19f96ba2b18a2d64298fdcc4b64ad34ac7', class: "textarea-wrapper-inner" }, h("div", { key: 'e26cb06763d551f7f83b6ea80349871aab18a016', class: "start-slot-wrapper" }, h("slot", { key: '135ba6db893eaca5f2a785fe61e24f33f56f3765', name: "start" })), h("div", { key: '951eabdd01c5e370790cec8578268361dcc8abdc', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '13d78f1a934b9f8d85cd9ed386dabc786f953f1d', 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: '699038558019470bccb4853fa65e7aeb069e0baa', class: "end-slot-wrapper" }, h("slot", { key: '19d8c212d7c718aeb6924e10bf8e48cad01314ea', name: "end" }))), shouldRenderHighlight && h("div", { key: '910a9437437ce7cab21e37a1cb4a6b309afda58f', class: "textarea-highlight" })), this.renderBottomContent()));
483
+ }) }, h("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, h("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, h("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), h("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', 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: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, h("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && h("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
484
484
  }
485
485
  static get is() { return "ion-textarea"; }
486
486
  static get encapsulation() { return "scoped"; }
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Thumbnail {
7
7
  render() {
8
- return (h(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode(this) }, h("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
8
+ return (h(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode(this) }, h("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
9
9
  }
10
10
  static get is() { return "ion-thumbnail"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -23,11 +23,11 @@ export class ToolbarTitle {
23
23
  render() {
24
24
  const mode = getIonMode(this);
25
25
  const size = this.getSize();
26
- return (h(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses(this.color, {
26
+ return (h(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses(this.color, {
27
27
  [mode]: true,
28
28
  [`title-${size}`]: true,
29
29
  'title-rtl': document.dir === 'rtl',
30
- }) }, h("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, h("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
30
+ }) }, h("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, h("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
31
31
  }
32
32
  static get is() { return "ion-title"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -417,9 +417,9 @@ export class Toast {
417
417
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
418
418
  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);
419
419
  }
420
- return (h(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
420
+ return (h(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
421
421
  zIndex: `${60000 + this.overlayIndex}`,
422
- }, 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: '0860f7e895d8bc66e44c4d924ca569f4cbb1a749', class: wrapperClass, part: "wrapper" }, h("div", { key: '28784199c880a3f664677c8f5560b7caa8903251', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '0a63ba1336ad43d2aec14e49055eb46c112359c2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'ecec8107af582dc55d4b3828dd7f3054a29f26b1', class: "toast-content", part: "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')))));
422
+ }, 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: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, h("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "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')))));
423
423
  }
424
424
  static get is() { return "ion-toast"; }
425
425
  static get encapsulation() { return "shadow"; }
@@ -287,7 +287,7 @@ export class Toggle {
287
287
  const value = this.getValue();
288
288
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
289
289
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
290
- return (h(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
290
+ return (h(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
291
291
  [mode]: true,
292
292
  'in-item': hostContext('ion-item', el),
293
293
  'toggle-activated': activated,
@@ -297,10 +297,10 @@ export class Toggle {
297
297
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
298
298
  [`toggle-label-placement-${labelPlacement}`]: true,
299
299
  [`toggle-${rtl}`]: true,
300
- }) }, h("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
300
+ }) }, h("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
301
301
  'label-text-wrapper': true,
302
302
  'label-text-wrapper-hidden': !hasLabel,
303
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), h("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
303
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), h("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
304
304
  }
305
305
  static get is() { return "ion-toggle"; }
306
306
  static get encapsulation() { return "shadow"; }
@@ -65,10 +65,10 @@ export class Toolbar {
65
65
  this.childrenStyles.forEach((value) => {
66
66
  Object.assign(childStyles, value);
67
67
  });
68
- return (h(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
68
+ return (h(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
69
69
  [mode]: true,
70
70
  'in-toolbar': hostContext('ion-toolbar', this.el),
71
- })) }, 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" }))));
71
+ })) }, h("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), h("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, h("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), h("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), h("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, h("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), h("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), h("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
72
72
  }
73
73
  static get is() { return "ion-toolbar"; }
74
74
  static get encapsulation() { return "shadow"; }
@@ -17,5 +17,5 @@ export { getMode, setupConfig } from './utils/config';
17
17
  export { openURL } from './utils/theme';
18
18
  export { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_UNLOAD, } from './components/nav/constants';
19
19
  export { menuController } from './utils/menu-controller';
20
- export { alertController, actionSheetController, modalController, loadingController, pickerController, popoverController, toastController, } from './utils/overlays';
20
+ export { alertController, actionSheetController, modalController, loadingController, popoverController, toastController, } from './utils/overlays';
21
21
  export { IonicSlides } from './components/slides/IonicSlides';
@@ -39,10 +39,6 @@ export const alertController = /*@__PURE__*/ createController('ion-alert');
39
39
  export const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
40
40
  export const loadingController = /*@__PURE__*/ createController('ion-loading');
41
41
  export const modalController = /*@__PURE__*/ createController('ion-modal');
42
- /**
43
- * @deprecated Use the inline ion-picker component instead.
44
- */
45
- export const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
46
42
  export const popoverController = /*@__PURE__*/ createController('ion-popover');
47
43
  export const toastController = /*@__PURE__*/ createController('ion-toast');
48
44
  /**
@@ -136,7 +132,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
136
132
  * Should NOT include: Toast
137
133
  */
138
134
  const trapKeyboardFocus = (ev, doc) => {
139
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
135
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
140
136
  const target = ev.target;
141
137
  /**
142
138
  * If no active overlay, ignore this event.
@@ -370,7 +366,7 @@ export const dismissOverlay = (doc, data, role, overlayTag, id) => {
370
366
  */
371
367
  export const getOverlays = (doc, selector) => {
372
368
  if (selector === undefined) {
373
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
369
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
374
370
  }
375
371
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
376
372
  };
@@ -432,6 +428,29 @@ export const setRootAriaHidden = (hidden = false) => {
432
428
  viewContainer.removeAttribute('aria-hidden');
433
429
  }
434
430
  };
431
+ /**
432
+ * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
433
+ * an overlay is removed from the DOM without going through
434
+ * the `dismiss()` flow (e.g., when a framework unmounts the
435
+ * overlay during a route change).
436
+ *
437
+ * Should be called from an overlay's `disconnectedCallback`
438
+ * when the overlay was still presented at the time of removal.
439
+ */
440
+ export const cleanupRootFocusTrapAccessibility = () => {
441
+ if (typeof document === 'undefined') {
442
+ return;
443
+ }
444
+ const remainingOverlays = getPresentedOverlays(document);
445
+ const hasRemainingLocking = remainingOverlays.some((o) => {
446
+ const el = o;
447
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
448
+ });
449
+ if (!hasRemainingLocking) {
450
+ setRootAriaHidden(false);
451
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
452
+ }
453
+ };
435
454
  export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
436
455
  var _a, _b;
437
456
  if (overlay.presented) {