@ionic/core 8.7.18-dev.11770916502.174efd7f → 8.7.18-dev.11771365900.125bf49c

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 (338) hide show
  1. package/components/index.js +13 -14
  2. package/components/ion-accordion-group.js +3 -4
  3. package/components/ion-accordion.js +6 -7
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +11 -12
  7. package/components/ion-avatar.js +3 -3
  8. package/components/ion-back-button.js +8 -9
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +4 -4
  11. package/components/ion-breadcrumb.js +7 -7
  12. package/components/ion-breadcrumbs.js +4 -4
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +3 -3
  16. package/components/ion-card-header.js +4 -4
  17. package/components/ion-card-subtitle.js +4 -4
  18. package/components/ion-card-title.js +4 -4
  19. package/components/ion-card.js +6 -6
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +5 -5
  22. package/components/ion-col.js +3 -3
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +7 -8
  25. package/components/ion-datetime.js +19 -20
  26. package/components/ion-fab-button.js +8 -8
  27. package/components/ion-fab-list.js +3 -3
  28. package/components/ion-fab.js +3 -3
  29. package/components/ion-footer.js +6 -6
  30. package/components/ion-grid.js +3 -3
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +4 -4
  34. package/components/ion-infinite-scroll-content.js +5 -6
  35. package/components/ion-infinite-scroll.js +4 -4
  36. package/components/ion-input-otp.js +6 -7
  37. package/components/ion-input-password-toggle.js +8 -9
  38. package/components/ion-input.js +13 -13
  39. package/components/ion-item-divider.js +6 -6
  40. package/components/ion-item-group.js +4 -4
  41. package/components/ion-item-option.js +7 -7
  42. package/components/ion-item-options.js +5 -5
  43. package/components/ion-item-sliding.js +8 -9
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +13 -14
  49. package/components/ion-menu-button.js +12 -13
  50. package/components/ion-menu-toggle.js +7 -7
  51. package/components/ion-menu.js +14 -18
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +3 -3
  54. package/components/ion-nav.js +9 -14
  55. package/components/ion-note.js +6 -6
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker-legacy-column.js +1 -1
  59. package/components/ion-picker-legacy.js +12 -13
  60. package/components/ion-picker.js +1 -1
  61. package/components/ion-popover.js +1 -1
  62. package/components/ion-progress-bar.js +6 -7
  63. package/components/ion-radio-group.js +1 -1
  64. package/components/ion-radio.js +1 -1
  65. package/components/ion-range.js +11 -12
  66. package/components/ion-refresher-content.js +9 -10
  67. package/components/ion-refresher.js +12 -13
  68. package/components/ion-reorder-group.js +8 -8
  69. package/components/ion-reorder.js +6 -6
  70. package/components/ion-ripple-effect.js +1 -1
  71. package/components/ion-route-redirect.js +2 -2
  72. package/components/ion-route.js +2 -2
  73. package/components/ion-router-link.js +6 -6
  74. package/components/ion-router-outlet.js +10 -11
  75. package/components/ion-router.js +3 -4
  76. package/components/ion-row.js +4 -4
  77. package/components/ion-searchbar.js +12 -13
  78. package/components/ion-segment-button.js +8 -9
  79. package/components/ion-segment-content.js +3 -3
  80. package/components/ion-segment-view.js +5 -5
  81. package/components/ion-segment.js +9 -9
  82. package/components/ion-select-modal.js +1 -1
  83. package/components/ion-select-option.js +4 -4
  84. package/components/ion-select-popover.js +1 -1
  85. package/components/ion-select.js +36 -37
  86. package/components/ion-skeleton-text.js +6 -7
  87. package/components/ion-spinner.js +1 -1
  88. package/components/ion-split-pane.js +5 -12
  89. package/components/ion-tab-bar.js +7 -7
  90. package/components/ion-tab-button.js +7 -8
  91. package/components/ion-tab.js +5 -14
  92. package/components/ion-tabs.js +3 -4
  93. package/components/ion-text.js +6 -6
  94. package/components/ion-textarea.js +13 -13
  95. package/components/ion-thumbnail.js +4 -4
  96. package/components/ion-title.js +1 -1
  97. package/components/ion-toast.js +17 -20
  98. package/components/ion-toggle.js +15 -16
  99. package/components/ion-toolbar.js +1 -1
  100. package/components/{list.js → p-B25GjpND.js} +3 -3
  101. package/components/{buttons.js → p-BBFQmhcD.js} +3 -3
  102. package/components/{index5.js → p-BC-awmYt.js} +6 -6
  103. package/components/{picker.js → p-BHbOsu99.js} +3 -3
  104. package/components/{title.js → p-BTlwXR9e.js} +6 -6
  105. package/components/{alert.js → p-BcazQttQ.js} +12 -13
  106. package/components/{spinner.js → p-BdGshsIJ.js} +5 -6
  107. package/components/{input.utils.js → p-BfS7vSpC.js} +3 -3
  108. package/components/{ios.transition.js → p-BhRFCLuX.js} +2 -2
  109. package/components/{backdrop.js → p-Bhnhnzjz.js} +3 -3
  110. package/components/{notch-controller.js → p-BmcqD0EN.js} +2 -2
  111. package/components/{radio-group.js → p-BnpDIASH.js} +7 -7
  112. package/components/{hardware-back-button.js → p-Boi6hecl.js} +2 -2
  113. package/components/{radio.js → p-Bt_moUyl.js} +8 -8
  114. package/components/{ionic-global.js → p-Bxl5etF4.js} +1 -2
  115. package/components/{picker-column-option.js → p-ByjmWt3s.js} +7 -7
  116. package/components/{md.transition.js → p-C04oPyjT.js} +2 -2
  117. package/components/{capacitor.js → p-CIGNaXM1.js} +1 -1
  118. package/components/{config.js → p-CIJwkzL6.js} +1 -1
  119. package/components/{select-modal.js → p-CJrGvZ1Z.js} +19 -19
  120. package/components/{animation.js → p-CL12ApCQ.js} +2 -2
  121. package/components/{label.js → p-CUfY9DTD.js} +6 -6
  122. package/components/{action-sheet.js → p-CXJR56Oq.js} +12 -12
  123. package/components/{index3.js → p-Cl0B-RWe.js} +1 -1
  124. package/components/{keyboard-controller.js → p-CtWGkNnJ.js} +2 -2
  125. package/components/{index7.js → p-Cyd00tgZ.js} +2 -2
  126. package/components/{picker-column2.js → p-CzAJ3ArC.js} +9 -9
  127. package/components/{menu-toggle-util.js → p-CzW34QBh.js} +1 -1
  128. package/components/{refresher.utils.js → p-D0zXRwcr.js} +3 -3
  129. package/components/{keyboard2.js → p-D13Eaw-8.js} +1 -1
  130. package/components/{select-popover.js → p-D3KEyQ8e.js} +15 -15
  131. package/components/{helpers.js → p-D5hF6rwn.js} +1 -1
  132. package/components/{keyboard.js → p-D6Ynv7Xh.js} +1 -1
  133. package/components/{button-active.js → p-D8eD2iBA.js} +3 -3
  134. package/components/{button.js → p-DK2Bn1Mc.js} +6 -7
  135. package/components/{picker-column.js → p-DKRQWlK2.js} +7 -7
  136. package/components/{index8.js → p-DNDUsygf.js} +2 -2
  137. package/components/{content.js → p-DPm73mCi.js} +7 -7
  138. package/components/{popover.js → p-DRHwNkVo.js} +43 -166
  139. package/components/{index2.js → p-DTWZF6wg.js} +4 -5
  140. package/components/p-DWoUQeZ3.js +3012 -0
  141. package/components/{header.js → p-DX0w75a9.js} +6 -6
  142. package/components/{toolbar.js → p-Dt8zaCLQ.js} +6 -6
  143. package/components/{checkbox.js → p-DyFBFrV7.js} +7 -7
  144. package/components/{status-tap.js → p-DyHPCMyn.js} +3 -3
  145. package/components/{modal.js → p-IHgAGzvW.js} +35 -345
  146. package/components/{ripple-effect.js → p-LgLeKTkH.js} +4 -4
  147. package/components/{list-header.js → p-NhiRFRn9.js} +6 -6
  148. package/components/{input-shims.js → p-OuiHmXO5.js} +4 -4
  149. package/components/{icon.js → p-Wro9IPHE.js} +6 -6
  150. package/components/{item.js → p-aIWC4ZEV.js} +8 -8
  151. package/components/{overlays.js → p-c-XJ9XhZ.js} +7 -7
  152. package/components/{haptic.js → p-cyNmxje6.js} +1 -1
  153. package/components/{swipe-back.js → p-fVuFT3Wd.js} +3 -3
  154. package/components/{framework-delegate.js → p-l_lso3Zl.js} +1 -1
  155. package/components/{data.js → p-mQp4lwQD.js} +2 -2
  156. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  157. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  158. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  159. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  160. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  161. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  162. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  163. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  164. package/dist/cjs/ion-modal.cjs.entry.js +17 -326
  165. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  166. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  167. package/dist/cjs/ion-popover.cjs.entry.js +32 -154
  168. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  169. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  170. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  171. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  172. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  173. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  174. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  175. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  176. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  177. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  178. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  179. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  180. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  181. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  182. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  183. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  184. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  185. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  186. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  187. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  188. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  189. package/dist/collection/components/item-divider/item-divider.js +2 -2
  190. package/dist/collection/components/item-group/item-group.js +1 -1
  191. package/dist/collection/components/item-option/item-option.js +2 -2
  192. package/dist/collection/components/item-options/item-options.js +1 -1
  193. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  194. package/dist/collection/components/label/label.js +2 -2
  195. package/dist/collection/components/list-header/list-header.js +2 -2
  196. package/dist/collection/components/loading/loading.js +2 -2
  197. package/dist/collection/components/menu/menu.js +2 -2
  198. package/dist/collection/components/menu-button/menu-button.js +2 -2
  199. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  200. package/dist/collection/components/modal/modal.ios.css +5 -6
  201. package/dist/collection/components/modal/modal.js +15 -164
  202. package/dist/collection/components/modal/modal.md.css +5 -6
  203. package/dist/collection/components/nav/nav.js +1 -1
  204. package/dist/collection/components/nav-link/nav-link.js +1 -1
  205. package/dist/collection/components/note/note.js +2 -2
  206. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  207. package/dist/collection/components/picker-legacy/picker.js +2 -2
  208. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  209. package/dist/collection/components/popover/animations/ios.enter.js +8 -33
  210. package/dist/collection/components/popover/animations/md.enter.js +6 -26
  211. package/dist/collection/components/popover/popover.js +2 -2
  212. package/dist/collection/components/popover/utils.js +19 -96
  213. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  214. package/dist/collection/components/radio/radio.js +3 -3
  215. package/dist/collection/components/radio-group/radio-group.js +1 -1
  216. package/dist/collection/components/range/range.js +3 -3
  217. package/dist/collection/components/refresher/refresher.js +1 -1
  218. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  219. package/dist/collection/components/reorder/reorder.js +1 -1
  220. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  221. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  222. package/dist/collection/components/router-link/router-link.js +2 -2
  223. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  224. package/dist/collection/components/row/row.js +1 -1
  225. package/dist/collection/components/searchbar/searchbar.js +4 -4
  226. package/dist/collection/components/segment/segment.js +2 -2
  227. package/dist/collection/components/segment-button/segment-button.js +2 -2
  228. package/dist/collection/components/segment-content/segment-content.js +1 -1
  229. package/dist/collection/components/segment-view/segment-view.js +2 -2
  230. package/dist/collection/components/select/select.js +2 -2
  231. package/dist/collection/components/select-modal/select-modal.js +1 -1
  232. package/dist/collection/components/select-option/select-option.js +1 -1
  233. package/dist/collection/components/select-popover/select-popover.js +1 -1
  234. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  235. package/dist/collection/components/spinner/spinner.js +1 -1
  236. package/dist/collection/components/split-pane/split-pane.js +2 -2
  237. package/dist/collection/components/tab/tab.js +2 -2
  238. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  239. package/dist/collection/components/tab-button/tab-button.js +2 -2
  240. package/dist/collection/components/tabs/tabs.js +1 -1
  241. package/dist/collection/components/text/text.js +2 -2
  242. package/dist/collection/components/textarea/textarea.js +2 -2
  243. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  244. package/dist/collection/components/title/title.js +2 -2
  245. package/dist/collection/components/toast/toast.js +2 -2
  246. package/dist/collection/components/toggle/toggle.js +3 -3
  247. package/dist/collection/components/toolbar/toolbar.js +2 -2
  248. package/dist/docs.json +1 -1
  249. package/dist/esm/ion-app_8.entry.js +5 -5
  250. package/dist/esm/ion-avatar_3.entry.js +1 -1
  251. package/dist/esm/ion-col_3.entry.js +1 -1
  252. package/dist/esm/ion-datetime_3.entry.js +4 -4
  253. package/dist/esm/ion-item-option_3.entry.js +4 -4
  254. package/dist/esm/ion-item_8.entry.js +11 -11
  255. package/dist/esm/ion-loading.entry.js +2 -2
  256. package/dist/esm/ion-menu_3.entry.js +6 -6
  257. package/dist/esm/ion-modal.entry.js +17 -326
  258. package/dist/esm/ion-nav_2.entry.js +2 -2
  259. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  260. package/dist/esm/ion-popover.entry.js +32 -154
  261. package/dist/esm/ion-progress-bar.entry.js +1 -1
  262. package/dist/esm/ion-radio_2.entry.js +4 -4
  263. package/dist/esm/ion-range.entry.js +3 -3
  264. package/dist/esm/ion-refresher_2.entry.js +2 -2
  265. package/dist/esm/ion-reorder_2.entry.js +2 -2
  266. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  267. package/dist/esm/ion-route_4.entry.js +2 -2
  268. package/dist/esm/ion-searchbar.entry.js +4 -4
  269. package/dist/esm/ion-segment-content.entry.js +1 -1
  270. package/dist/esm/ion-segment-view.entry.js +2 -2
  271. package/dist/esm/ion-segment_2.entry.js +4 -4
  272. package/dist/esm/ion-select-modal.entry.js +1 -1
  273. package/dist/esm/ion-select_3.entry.js +4 -4
  274. package/dist/esm/ion-spinner.entry.js +1 -1
  275. package/dist/esm/ion-split-pane.entry.js +2 -2
  276. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  277. package/dist/esm/ion-tab_2.entry.js +3 -3
  278. package/dist/esm/ion-text.entry.js +2 -2
  279. package/dist/esm/ion-textarea.entry.js +2 -2
  280. package/dist/esm/ion-toast.entry.js +2 -2
  281. package/dist/esm/ion-toggle.entry.js +3 -3
  282. package/dist/ionic/ionic.esm.js +1 -1
  283. package/dist/ionic/{p-074839fc.entry.js → p-01e27965.entry.js} +1 -1
  284. package/dist/ionic/p-0ca0fe9c.entry.js +4 -0
  285. package/dist/ionic/{p-316c0420.entry.js → p-221a3d8c.entry.js} +1 -1
  286. package/dist/ionic/{p-3a6caca9.entry.js → p-2668188b.entry.js} +1 -1
  287. package/dist/ionic/{p-d3014190.entry.js → p-2bd1ea35.entry.js} +1 -1
  288. package/dist/ionic/{p-a127bee2.entry.js → p-30333874.entry.js} +1 -1
  289. package/dist/ionic/{p-0e8c8a10.entry.js → p-31db96da.entry.js} +1 -1
  290. package/dist/ionic/{p-1647c46c.entry.js → p-363d1209.entry.js} +1 -1
  291. package/dist/ionic/p-3ec563c1.entry.js +4 -0
  292. package/dist/ionic/{p-c19af093.entry.js → p-42db6404.entry.js} +1 -1
  293. package/dist/ionic/{p-db82892c.entry.js → p-46a38cfd.entry.js} +1 -1
  294. package/dist/ionic/{p-eb024a5b.entry.js → p-4eec1a5e.entry.js} +1 -1
  295. package/dist/ionic/{p-0dfa5a37.entry.js → p-530fcd71.entry.js} +1 -1
  296. package/dist/ionic/{p-72c38b88.entry.js → p-5c8f7253.entry.js} +1 -1
  297. package/dist/ionic/{p-172a579f.entry.js → p-5d6fb6e3.entry.js} +1 -1
  298. package/dist/ionic/{p-dbbe606a.entry.js → p-652318c3.entry.js} +1 -1
  299. package/dist/ionic/{p-2a939845.entry.js → p-6f37536a.entry.js} +1 -1
  300. package/dist/ionic/{p-4e41ea20.entry.js → p-72af946b.entry.js} +1 -1
  301. package/dist/ionic/p-7f98e710.entry.js +4 -0
  302. package/dist/ionic/{p-6d070558.entry.js → p-82d5bb3d.entry.js} +1 -1
  303. package/dist/ionic/p-906bb44d.entry.js +4 -0
  304. package/dist/ionic/{p-2dbb90cb.entry.js → p-97eb0812.entry.js} +1 -1
  305. package/dist/ionic/{p-31f7095f.entry.js → p-a4a9f5ae.entry.js} +1 -1
  306. package/dist/ionic/{p-86f53961.entry.js → p-b8551510.entry.js} +1 -1
  307. package/dist/ionic/p-bc293244.entry.js +4 -0
  308. package/dist/ionic/{p-d126e8d3.entry.js → p-bce86e56.entry.js} +1 -1
  309. package/dist/ionic/{p-02d76786.entry.js → p-be263062.entry.js} +1 -1
  310. package/dist/ionic/{p-639dd543.entry.js → p-c175d792.entry.js} +1 -1
  311. package/dist/ionic/{p-020af078.entry.js → p-cc2a9936.entry.js} +1 -1
  312. package/dist/ionic/{p-1ccd6829.entry.js → p-e338f669.entry.js} +1 -1
  313. package/dist/ionic/{p-6241ce47.entry.js → p-eaf3f5ff.entry.js} +1 -1
  314. package/dist/ionic/{p-f8f22cc0.entry.js → p-fb0271ae.entry.js} +1 -1
  315. package/dist/ionic/{p-370e4237.entry.js → p-fbb00634.entry.js} +1 -1
  316. package/dist/types/components/modal/modal.d.ts +0 -35
  317. package/dist/types/components/popover/utils.d.ts +1 -23
  318. package/hydrate/index.js +137 -568
  319. package/hydrate/index.mjs +137 -568
  320. package/package.json +1 -1
  321. package/components/index4.js +0 -121
  322. package/dist/collection/components/modal/safe-area-utils.js +0 -165
  323. package/dist/ionic/p-3e69999d.entry.js +0 -4
  324. package/dist/ionic/p-51a60e0f.entry.js +0 -4
  325. package/dist/ionic/p-94de5cfa.entry.js +0 -4
  326. package/dist/ionic/p-cc3446d5.entry.js +0 -4
  327. package/dist/ionic/p-dd1aef77.entry.js +0 -4
  328. package/dist/types/components/modal/safe-area-utils.d.ts +0 -66
  329. /package/components/{lock-controller.js → p-B-hirT0v.js} +0 -0
  330. /package/components/{gesture-controller.js → p-BTEOs1at.js} +0 -0
  331. /package/components/{focus-visible.js → p-BmVRXR1y.js} +0 -0
  332. /package/components/{dir.js → p-C53feagD.js} +0 -0
  333. /package/components/{index6.js → p-CO7fmmxt.js} +0 -0
  334. /package/components/{validity.js → p-DJztqcrH.js} +0 -0
  335. /package/components/{theme.js → p-DiVJyqlX.js} +0 -0
  336. /package/components/{watch-options.js → p-Dtdm8lKC.js} +0 -0
  337. /package/components/{index9.js → p-ZjP4CjeZ.js} +0 -0
  338. /package/components/{cubic-bezier.js → p-hHmYLOfE.js} +0 -0
@@ -14,58 +14,6 @@ import './index-ZjP4CjeZ.js';
14
14
  import './hardware-back-button-CPLxO-Ev.js';
15
15
  import './gesture-controller-BTEOs1at.js';
16
16
 
17
- /**
18
- * Shared per-frame cache for safe-area insets. Avoids creating a temporary
19
- * DOM element and forcing a synchronous reflow on every call within the same
20
- * frame (e.g., multiple popovers presenting simultaneously). Invalidated
21
- * after the next animation frame so values stay fresh across orientation
22
- * changes and viewport resizes.
23
- */
24
- let cachedInsets = null;
25
- let cacheInvalidationScheduled = false;
26
- /**
27
- * Resolves the current --ion-safe-area-* CSS custom property values
28
- * to actual pixel numbers. A temporary element is needed because
29
- * getComputedStyle on :root returns the declared value of custom
30
- * properties (e.g. "env(safe-area-inset-top)") rather than a
31
- * resolved number. By assigning them to standard padding properties,
32
- * the browser resolves the value.
33
- *
34
- * Results are cached for the current frame to avoid repeated reflows.
35
- */
36
- const getSafeAreaInsets = (doc) => {
37
- if (cachedInsets !== null) {
38
- return cachedInsets;
39
- }
40
- if (doc.body === null) {
41
- return { top: 0, bottom: 0, left: 0, right: 0 };
42
- }
43
- const el = doc.createElement('div');
44
- el.style.cssText =
45
- 'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;' +
46
- 'padding-top:var(--ion-safe-area-top,0px);' +
47
- 'padding-bottom:var(--ion-safe-area-bottom,0px);' +
48
- 'padding-left:var(--ion-safe-area-left,0px);' +
49
- 'padding-right:var(--ion-safe-area-right,0px);';
50
- doc.body.appendChild(el);
51
- const style = getComputedStyle(el);
52
- const insets = {
53
- top: parseFloat(style.paddingTop) || 0,
54
- bottom: parseFloat(style.paddingBottom) || 0,
55
- left: parseFloat(style.paddingLeft) || 0,
56
- right: parseFloat(style.paddingRight) || 0,
57
- };
58
- el.remove();
59
- cachedInsets = insets;
60
- if (!cacheInvalidationScheduled) {
61
- cacheInvalidationScheduled = true;
62
- raf(() => {
63
- cachedInsets = null;
64
- cacheInvalidationScheduled = false;
65
- });
66
- }
67
- return insets;
68
- };
69
17
  /**
70
18
  * Returns the dimensions of the popover
71
19
  * arrow on `ios` mode. If arrow is disabled
@@ -701,10 +649,8 @@ const calculatePopoverCenterAlign = (side, triggerBoundingBox, contentWidth, con
701
649
  * Adjusts popover positioning coordinates
702
650
  * such that popover does not appear offscreen
703
651
  * or overlapping safe area bounds.
704
- *
705
- * @internal - This is not part of the public API.
706
652
  */
707
- const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, contentOriginX, contentOriginY, triggerCoordinates, coordArrowTop = 0, coordArrowLeft = 0, arrowHeight = 0) => {
653
+ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeAreaMargin, contentOriginX, contentOriginY, triggerCoordinates, coordArrowTop = 0, coordArrowLeft = 0, arrowHeight = 0) => {
708
654
  let arrowTop = coordArrowTop;
709
655
  const arrowLeft = coordArrowLeft;
710
656
  let left = coordLeft;
@@ -714,19 +660,16 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
714
660
  let originY = contentOriginY;
715
661
  let checkSafeAreaLeft = false;
716
662
  let checkSafeAreaRight = false;
717
- let checkSafeAreaTop = false;
718
- let checkSafeAreaBottom = false;
719
663
  const triggerTop = triggerCoordinates
720
664
  ? triggerCoordinates.top + triggerCoordinates.height
721
665
  : bodyHeight / 2 - contentHeight / 2;
722
666
  const triggerHeight = triggerCoordinates ? triggerCoordinates.height : 0;
723
667
  let addPopoverBottomClass = false;
724
- const hideArrow = false;
725
668
  /**
726
669
  * Adjust popover so it does not
727
670
  * go off the left of the screen.
728
671
  */
729
- if (left < bodyPadding + safeArea.left) {
672
+ if (left < bodyPadding + safeAreaMargin) {
730
673
  left = bodyPadding;
731
674
  checkSafeAreaLeft = true;
732
675
  originX = 'left';
@@ -735,58 +678,41 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
735
678
  * go off the right of the screen.
736
679
  */
737
680
  }
738
- else if (contentWidth + bodyPadding + left + safeArea.right > bodyWidth) {
681
+ else if (contentWidth + bodyPadding + left + safeAreaMargin > bodyWidth) {
739
682
  checkSafeAreaRight = true;
740
683
  left = bodyWidth - contentWidth - bodyPadding;
741
684
  originX = 'right';
742
685
  }
743
686
  /**
744
687
  * Adjust popover so it does not
745
- * go off the bottom of the screen
746
- * or overlap the bottom safe area.
688
+ * go off the top of the screen.
747
689
  * If popover is on the left or the right of
748
690
  * the trigger, then we should not adjust top
749
691
  * margins.
750
692
  */
751
- if (triggerTop + triggerHeight + contentHeight > bodyHeight - safeArea.bottom &&
752
- (side === 'top' || side === 'bottom')) {
753
- /**
754
- * Calculate where the popover top would be if flipped
755
- * above the trigger. Check whether that position clears
756
- * the top safe area with room for bodyPadding.
757
- */
758
- const idealFlipTop = triggerTop - contentHeight - triggerHeight - (arrowHeight - 1);
759
- if (idealFlipTop >= safeArea.top + bodyPadding) {
693
+ if (triggerTop + triggerHeight + contentHeight > bodyHeight && (side === 'top' || side === 'bottom')) {
694
+ if (triggerTop - contentHeight > 0) {
760
695
  /**
761
- * Popover fits above the trigger without overlapping
762
- * the top safe area. Use the ideal position directly —
763
- * no safe-area CSS vars needed since it clears both edges.
696
+ * While we strive to align the popover with the trigger
697
+ * on smaller screens this is not always possible. As a result,
698
+ * we adjust the popover up so that it does not hang
699
+ * off the bottom of the screen. However, we do not want to move
700
+ * the popover up so much that it goes off the top of the screen.
701
+ *
702
+ * We chose 12 here so that the popover position looks a bit nicer as
703
+ * it is not right up against the edge of the screen.
764
704
  */
765
- top = idealFlipTop;
705
+ top = Math.max(12, triggerTop - contentHeight - triggerHeight - (arrowHeight - 1));
766
706
  arrowTop = top + contentHeight;
767
707
  originY = 'bottom';
768
708
  addPopoverBottomClass = true;
769
- }
770
- else {
771
709
  /**
772
- * Can't flip above the trigger. Constrain the bottom
773
- * edge while keeping the top near the trigger. This
774
- * creates a scrollable area anchored to the trigger.
710
+ * If not enough room for popover to appear
711
+ * above trigger, then cut it off.
775
712
  */
713
+ }
714
+ else {
776
715
  bottom = bodyPadding;
777
- checkSafeAreaBottom = true;
778
- /**
779
- * When the trigger is near the bottom of the screen,
780
- * the calculated top may be at or past the bottom
781
- * constraint, leaving zero visible height. In that
782
- * case, pull top up to the top safe area so the
783
- * popover fills the available space between safe areas.
784
- */
785
- const bottomEdge = bodyHeight - safeArea.bottom - bodyPadding;
786
- if (top >= bottomEdge) {
787
- top = safeArea.top + bodyPadding;
788
- checkSafeAreaTop = true;
789
- }
790
716
  }
791
717
  }
792
718
  return {
@@ -797,12 +723,9 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
797
723
  originY,
798
724
  checkSafeAreaLeft,
799
725
  checkSafeAreaRight,
800
- checkSafeAreaTop,
801
- checkSafeAreaBottom,
802
726
  arrowTop,
803
727
  arrowLeft,
804
728
  addPopoverBottomClass,
805
- hideArrow,
806
729
  };
807
730
  };
808
731
  const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
@@ -832,15 +755,6 @@ const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
832
755
  };
833
756
 
834
757
  const POPOVER_IOS_BODY_PADDING = 5;
835
- /**
836
- * Minimum edge margin for iOS popovers ensures visual spacing from screen
837
- * edges on devices without safe areas (e.g., older iPhones without notches).
838
- * Previously this was a hardcoded `safeAreaMargin = 25` that served dual
839
- * purpose: safe-area avoidance AND visual spacing. Now that actual safe-area
840
- * insets are read dynamically, this floor preserves the visual spacing when
841
- * safe-area values are 0.
842
- */
843
- const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
844
758
  /**
845
759
  * iOS Popover Enter Animation
846
760
  */
@@ -866,16 +780,8 @@ const iosEnterAnimation = (baseEl, opts) => {
866
780
  };
867
781
  const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
868
782
  const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
869
- const rawSafeArea = getSafeAreaInsets(doc);
870
- const safeArea = size === 'cover'
871
- ? { top: 0, bottom: 0, left: 0, right: 0 }
872
- : {
873
- top: Math.max(rawSafeArea.top, POPOVER_IOS_MIN_EDGE_MARGIN),
874
- bottom: Math.max(rawSafeArea.bottom, POPOVER_IOS_MIN_EDGE_MARGIN),
875
- left: Math.max(rawSafeArea.left, POPOVER_IOS_MIN_EDGE_MARGIN),
876
- right: Math.max(rawSafeArea.right, POPOVER_IOS_MIN_EDGE_MARGIN),
877
- };
878
- const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, arrowTop, arrowLeft, addPopoverBottomClass} = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);
783
+ const margin = size === 'cover' ? 0 : 25;
784
+ const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, arrowTop, arrowLeft, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, margin, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);
879
785
  const baseAnimation = createAnimation();
880
786
  const backdropAnimation = createAnimation();
881
787
  const contentAnimation = createAnimation();
@@ -906,14 +812,10 @@ const iosEnterAnimation = (baseEl, opts) => {
906
812
  baseEl.classList.add('popover-bottom');
907
813
  }
908
814
  if (bottom !== undefined) {
909
- let bottomValue = `${bottom}px`;
910
- if (checkSafeAreaBottom) {
911
- bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
912
- }
913
- contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
815
+ contentEl.style.setProperty('bottom', `${bottom}px`);
914
816
  }
915
- const safeAreaLeft = ' + var(--ion-safe-area-left, 0px)';
916
- const safeAreaRight = ' - var(--ion-safe-area-right, 0px)';
817
+ const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
818
+ const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
917
819
  let leftValue = `${left}px`;
918
820
  if (checkSafeAreaLeft) {
919
821
  leftValue = `${left}px${safeAreaLeft}`;
@@ -921,11 +823,7 @@ const iosEnterAnimation = (baseEl, opts) => {
921
823
  if (checkSafeAreaRight) {
922
824
  leftValue = `${left}px${safeAreaRight}`;
923
825
  }
924
- let topValue = `${top}px`;
925
- if (checkSafeAreaTop) {
926
- topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
927
- }
928
- contentEl.style.setProperty('top', `calc(${topValue} + var(--offset-y, 0))`);
826
+ contentEl.style.setProperty('top', `calc(${top}px + var(--offset-y, 0))`);
929
827
  contentEl.style.setProperty('left', `calc(${leftValue} + var(--offset-x, 0))`);
930
828
  contentEl.style.setProperty('transform-origin', `${originY} ${originX}`);
931
829
  if (arrowEl !== null) {
@@ -1001,23 +899,7 @@ const mdEnterAnimation = (baseEl, opts) => {
1001
899
  };
1002
900
  const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
1003
901
  const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
1004
- // MD mode now applies safe-area insets (previously passed 0, ignoring all safe areas).
1005
- // This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
1006
- const safeArea = size === 'cover' ? { top: 0, bottom: 0, left: 0, right: 0 } : getSafeAreaInsets(doc);
1007
- const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates);
1008
- const safeAreaLeftCalc = ' + var(--ion-safe-area-left, 0px)';
1009
- const safeAreaRightCalc = ' - var(--ion-safe-area-right, 0px)';
1010
- let leftValue = `${left}px`;
1011
- if (checkSafeAreaLeft) {
1012
- leftValue = `${left}px${safeAreaLeftCalc}`;
1013
- }
1014
- if (checkSafeAreaRight) {
1015
- leftValue = `${left}px${safeAreaRightCalc}`;
1016
- }
1017
- let topValue = `${top}px`;
1018
- if (checkSafeAreaTop) {
1019
- topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
1020
- }
902
+ const { originX, originY, top, left, bottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
1021
903
  const baseAnimation = createAnimation();
1022
904
  const backdropAnimation = createAnimation();
1023
905
  const wrapperAnimation = createAnimation();
@@ -1034,17 +916,13 @@ const mdEnterAnimation = (baseEl, opts) => {
1034
916
  contentAnimation
1035
917
  .addElement(contentEl)
1036
918
  .beforeStyles({
1037
- top: `calc(${topValue} + var(--offset-y, 0px))`,
1038
- left: `calc(${leftValue} + var(--offset-x, 0px))`,
919
+ top: `calc(${top}px + var(--offset-y, 0px))`,
920
+ left: `calc(${left}px + var(--offset-x, 0px))`,
1039
921
  'transform-origin': `${originY} ${originX}`,
1040
922
  })
1041
923
  .beforeAddWrite(() => {
1042
924
  if (bottom !== undefined) {
1043
- let bottomValue = `${bottom}px`;
1044
- if (checkSafeAreaBottom) {
1045
- bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
1046
- }
1047
- contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
925
+ contentEl.style.setProperty('bottom', `${bottom}px`);
1048
926
  }
1049
927
  })
1050
928
  .fromTo('transform', 'scale(0.8)', 'scale(1)');
@@ -1056,7 +934,7 @@ const mdEnterAnimation = (baseEl, opts) => {
1056
934
  if (size === 'cover') {
1057
935
  baseEl.style.setProperty('--width', `${contentWidth}px`);
1058
936
  }
1059
- if (addPopoverBottomClass) {
937
+ if (originY === 'bottom') {
1060
938
  baseEl.classList.add('popover-bottom');
1061
939
  }
1062
940
  })
@@ -1542,9 +1420,9 @@ const Popover = class {
1542
1420
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
1543
1421
  const desktop = isPlatform('desktop');
1544
1422
  const enableArrow = arrow && !parentPopover;
1545
- return (h(Host, Object.assign({ key: '42863f748c93f709d433931d969230137b37d42d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1423
+ return (h(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1546
1424
  zIndex: `${20000 + this.overlayIndex}`,
1547
- }, 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: '22b6d82178b52158b76ab3fd9a7dd738fd6e4bbf', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'b76335c64e992a964ed3fb91d17a992c3474b4cd', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '018c846c32e7ff7fa010528e6b37a17e5f03c84c', class: "popover-arrow", part: "arrow" }), h("div", { key: '350c468c80052da3a07768bceab98fe159c35a43', class: "popover-content", part: "content" }, h("slot", { key: '686443c17ac9873d33905c1cdb67e6d6da675282' })))));
1425
+ }, 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: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), h("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, h("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
1548
1426
  }
1549
1427
  get el() { return getElement(this); }
1550
1428
  static get watchers() { return {
@@ -40,7 +40,7 @@ const ProgressBar = class {
40
40
  const mode = getIonMode(this);
41
41
  // If the progress is displayed as a solid bar.
42
42
  const progressSolid = buffer === 1;
43
- return (h(Host, { key: 'dc69693b5d2dcb2b6e4296d7cb85bc27507f3fa6', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
43
+ return (h(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
44
44
  [mode]: true,
45
45
  [`progress-bar-${type}`]: true,
46
46
  'progress-paused': paused,
@@ -136,7 +136,7 @@ const Radio = class {
136
136
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
137
137
  const mode = getIonMode(this);
138
138
  const inItem = hostContext('ion-item', el);
139
- return (h(Host, { key: '3353b28172b7f837d4b38964169b5b5f4ba02788', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
139
+ return (h(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
140
140
  [mode]: true,
141
141
  'in-item': inItem,
142
142
  'radio-checked': checked,
@@ -147,10 +147,10 @@ const Radio = class {
147
147
  // Focus and active styling should not apply when the radio is in an item
148
148
  'ion-activatable': !inItem,
149
149
  'ion-focusable': !inItem,
150
- }), 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: {
150
+ }), 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: {
151
151
  'label-text-wrapper': true,
152
152
  'label-text-wrapper-hidden': !hasLabel,
153
- }, part: "label" }, h("slot", { key: '10b157162cd283d624153c747679609cf0bbf11e' })), h("div", { key: '4c45cca95cb105cd6df1025a26e3c045272184a0', class: "native-wrapper" }, this.renderRadioControl()))));
153
+ }, part: "label" }, h("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), h("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
154
154
  }
155
155
  get el() { return getElement(this); }
156
156
  static get watchers() { return {
@@ -403,7 +403,7 @@ const RadioGroup = class {
403
403
  const { label, labelId, el, name, value } = this;
404
404
  const mode = getIonMode(this);
405
405
  renderHiddenInput(true, el, name, value, false);
406
- return (h(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("div", { key: '85045b45a0100a45f3b9a35d1c5a25ec63d525c4', class: "radio-group-wrapper" }, h("slot", { key: '53dacb87ce62398e78771fb2efaf839ab922d946' }))));
406
+ return (h(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: 'd683b01c1ba34fe843c4b320bce4661a117472a5' })));
407
407
  }
408
408
  get el() { return getElement(this); }
409
409
  static get watchers() { return {
@@ -721,7 +721,7 @@ const Range = class {
721
721
  const needsEndAdjustment = inItem && !hasEndContent;
722
722
  const mode = getIonMode(this);
723
723
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
724
- return (h(Host, { key: 'ef7b01f80515bcaeb2983934ad7f10a6bd5d13ec', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
724
+ return (h(Host, { key: 'affcac4709096a48a5b4c1864b209b6352f6b078', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
725
725
  [mode]: true,
726
726
  'in-item': inItem,
727
727
  'range-disabled': disabled,
@@ -730,10 +730,10 @@ const Range = class {
730
730
  [`range-label-placement-${labelPlacement}`]: true,
731
731
  'range-item-start-adjustment': needsStartAdjustment,
732
732
  'range-item-end-adjustment': needsEndAdjustment,
733
- }) }, h("label", { key: 'fd8aa90a9d52be9da024b907e68858dae424449d', class: "range-wrapper", id: "range-label" }, h("div", { key: '2172b4f329c22017dd23475c80aac25ba6e753eb', class: {
733
+ }) }, h("label", { key: 'c7cf95fa831d10b17c137995d0a9e0cf84006a76', class: "range-wrapper", id: "range-label" }, h("div", { key: '5b8479c7939ae0f94a042c3aafd64316e4577d30', class: {
734
734
  'label-text-wrapper': true,
735
735
  'label-text-wrapper-hidden': !hasLabel,
736
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '3c318bf2ea0576646d4c010bf44573fd0f483186', class: "native-wrapper" }, h("slot", { key: '6586fd6fc96271e73f8a86c202d1913ad1a26f96', name: "start" }), this.renderRangeSlider(), h("slot", { key: '74ac0bc2d2cb66ef708bb729f88b6ecbc1b2155d', name: "end" })))));
736
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '3c275d822b29a8008e044722e8b6bdabd3ecfad7', class: "native-wrapper" }, h("slot", { key: '03c849d0aa708914984ad57ca292bc5fc66ecad5', name: "start" }), this.renderRangeSlider(), h("slot", { key: '10ca7b8152cac00b45d8fa98ad91410f59fd176a', name: "end" })))));
737
737
  }
738
738
  get el() { return getElement(this); }
739
739
  static get watchers() { return {
@@ -887,7 +887,7 @@ const Refresher = class {
887
887
  }
888
888
  render() {
889
889
  const mode = getIonMode(this);
890
- return (h(Host, { key: '2d1bd880877b698604542ab2d602d38b9504d975', slot: "fixed", class: {
890
+ return (h(Host, { key: '06d61cc53260ce146dd6906cc96597e9baaa17cf', slot: "fixed", class: {
891
891
  [mode]: true,
892
892
  // Used internally for styling
893
893
  [`refresher-${mode}`]: true,
@@ -950,7 +950,7 @@ const RefresherContent = class {
950
950
  const pullingIcon = this.pullingIcon;
951
951
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
952
952
  const mode = getIonMode(this);
953
- return (h(Host, { key: 'e235f8a9a84070ece2e2066ced234a64663bfa1d', class: mode }, h("div", { key: '9121691818ddaa35801a5f442e144ac27686cf19', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: 'c8d65d740f1575041bd3b752c789077927397fe4', class: "refresher-pulling-icon" }, h("div", { key: '309dd904977eaa788b09ea95b7fa4996a73bec5b', class: "spinner-arrow-container" }, h("ion-spinner", { key: 'a2a1480f67775d56ca7822e76be1e9f983bca2f9', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: '811d7e06d324bf4b6a18a31427a43e5177f3ae3a', class: "arrow-container" }, h("ion-icon", { key: '86cc48e2e8dc054ff6ff1299094da35b524be63d', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '464ae097dbc95c18a2dd7dfd03f8489153dab719', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'ed6875978b9035add562caa743a68353743d978f', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'aff891924e44354543fec484e5cde1ca92e69904', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: '842d7ac4ff10a1058775493d62f31cbdcd34f7a0', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '8c3e6195501e7e78d5cde1e3ad1fef90fd4a953f', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
953
+ return (h(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, h("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, h("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, h("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
954
954
  }
955
955
  get el() { return getElement(this); }
956
956
  };
@@ -30,7 +30,7 @@ const Reorder = class {
30
30
  render() {
31
31
  const mode = getIonMode(this);
32
32
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33
- return (h(Host, { key: 'e6807bb349725682e99e791ac65e729a360d64e8', class: mode }, h("slot", { key: '1c691cdbffa6427ba08dc12184c69559ed5d5506' }, h("ion-icon", { key: '8b4150302cdca475379582b2251737b5e74079b1', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33
+ return (h(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, h("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, h("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
34
34
  }
35
35
  get el() { return getElement(this); }
36
36
  };
@@ -293,7 +293,7 @@ const ReorderGroup = class {
293
293
  }
294
294
  render() {
295
295
  const mode = getIonMode(this);
296
- return (h(Host, { key: 'b9641f3061d67fbfe68317b901ec33267046e073', class: {
296
+ return (h(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
297
297
  [mode]: true,
298
298
  'reorder-enabled': !this.disabled,
299
299
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -72,7 +72,7 @@ const RippleEffect = class {
72
72
  }
73
73
  render() {
74
74
  const mode = getIonMode(this);
75
- return (h(Host, { key: 'ae9d3b1ed6773a9b9bb2267129f7e9af23b6c9fc', role: "presentation", class: {
75
+ return (h(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
76
76
  [mode]: true,
77
77
  unbounded: this.unbounded,
78
78
  } }));
@@ -895,10 +895,10 @@ const RouterLink = class {
895
895
  rel: this.rel,
896
896
  target: this.target,
897
897
  };
898
- return (h(Host, { key: 'd7f2affcde45c5fbb6cb46cd1c30008ee92a68c5', onClick: this.onClick, class: createColorClasses(this.color, {
898
+ return (h(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses(this.color, {
899
899
  [mode]: true,
900
900
  'ion-activatable': true,
901
- }) }, h("a", Object.assign({ key: 'babafae85ca5c6429958d383feff0493ff8cf33e' }, attrs), h("slot", { key: '50314e9555bbf6dffa0c50c3f763009dee59b10b' }))));
901
+ }) }, h("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), h("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
902
902
  }
903
903
  };
904
904
  RouterLink.style = routerLinkCss;
@@ -436,8 +436,8 @@ const Searchbar = class {
436
436
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
437
437
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
438
438
  const shouldShowCancelButton = this.shouldShowCancelButton();
439
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '19e18775856db87daeb4b9e3d7bca0461915a0df', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: 'b3bbdcc033f3bd3441d619e4a252cef0dad4d07e', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
440
- return (h(Host, { key: '074aa60e051bfb3225e87d44bbb6346c59c73574', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
439
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: 'bf574336a561a5bf66c771fb606a9b19adbecb68', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '747ad4368bda5044198259d5bc8f7be9e472e5af', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
440
+ return (h(Host, { key: 'bcc5b33a2859903ba11bfc5c611c6a2aaa71d06b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
441
441
  [mode]: true,
442
442
  'searchbar-animated': animated,
443
443
  'searchbar-disabled': this.disabled,
@@ -447,14 +447,14 @@ const Searchbar = class {
447
447
  'searchbar-has-focus': this.focused,
448
448
  'searchbar-should-show-clear': this.shouldShowClearButton(),
449
449
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
450
- }) }, h("div", { key: '54f58a79fe36e85d9295157303f1be89c98bbdaf', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'f991a37fcf54d26b7ad10d89084764e03d97b9de', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '8b44dd90a3292c5cf872ef16a8520675f5673494', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '79d9cfed8f01268044f82811a35d323a12dca749', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
450
+ }) }, h("div", { key: 'ac0dbf5ddd9c4eb6d714f45c62c44ba3d0bf034d', class: "searchbar-input-container" }, h("input", Object.assign({ key: '4b9fdac1b0d5a7a68bf61a6beb00f166434d3e84', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '32a889c48b3960560a3873061b4ac5a8a5ce532f', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '71222df691ef0b95008e619f755224d069ee9388', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
451
451
  /**
452
452
  * This prevents mobile browsers from
453
453
  * blurring the input when the clear
454
454
  * button is activated.
455
455
  */
456
456
  ev.preventDefault();
457
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'aa3b9fa8a61f853236783ac7bcd0b113ea65ece2', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
457
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'f1c8c0bd8fbb655085875731d3ece387dbe2967e', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
458
458
  }
459
459
  get el() { return getElement(this); }
460
460
  static get watchers() { return {
@@ -10,7 +10,7 @@ const SegmentContent = class {
10
10
  registerInstance(this, hostRef);
11
11
  }
12
12
  render() {
13
- return (h(Host, { key: 'db6876f2aee7afa1ea8bc147337670faa68fae1c' }, h("slot", { key: 'bc05714a973a5655668679033f5809a1da6db8cc' })));
13
+ return (h(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, h("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
14
14
  }
15
15
  };
16
16
  SegmentContent.style = segmentContentCss;
@@ -106,10 +106,10 @@ const SegmentView = class {
106
106
  }
107
107
  render() {
108
108
  const { disabled, isManualScroll } = this;
109
- return (h(Host, { key: 'e180b67bb3143a5f4611fb358c037be6fc782a8f', class: {
109
+ return (h(Host, { key: '1c9bfce83967a93d63c225031a5cd688509d8fc8', class: {
110
110
  'segment-view-disabled': disabled,
111
111
  'segment-view-scroll-disabled': isManualScroll === false,
112
- } }, h("slot", { key: '41c11d6a7406a10f5c64a2e73abfc072afd8fc73' })));
112
+ } }, h("slot", { key: '19fee034e76fffbdb5f622cb514037c00f9d55d5' })));
113
113
  }
114
114
  get el() { return getElement(this); }
115
115
  };
@@ -547,14 +547,14 @@ const Segment = class {
547
547
  }
548
548
  render() {
549
549
  const mode = getIonMode(this);
550
- return (h(Host, { key: 'e67ed512739cf2cfe657b0c44ebc3dfb1e9fbb79', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
550
+ return (h(Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', 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: '804d8acfcb9abfeeee38244b015fbc5c36330b9e', onSlotchange: this.onSlottedItemsChange })));
557
+ }) }, h("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
558
558
  }
559
559
  get el() { return getElement(this); }
560
560
  static get watchers() { return {
@@ -672,7 +672,7 @@ const SegmentButton = class {
672
672
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
673
673
  const mode = getIonMode(this);
674
674
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
675
- return (h(Host, { key: '26cb7ee90455bcaa6416125802d7e5729fa05b5b', class: {
675
+ return (h(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
676
676
  [mode]: true,
677
677
  'in-toolbar': hostContext('ion-toolbar', this.el),
678
678
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -688,7 +688,7 @@ const SegmentButton = class {
688
688
  'ion-activatable': true,
689
689
  'ion-activatable-instant': true,
690
690
  'ion-focusable': true,
691
- } }, h("button", Object.assign({ key: '75add37f11c107d1e2cfdb154e08004e9579e863', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '8e720d2a3e304903685bf09d226a64e944d78a22', class: "button-inner" }, h("slot", { key: 'c8e7b3ebf8f03042a1001155643b585283c73c65' })), mode === 'md' && h("ion-ripple-effect", { key: '3586ac317b8d82c92b0ccfbfae42f8778612321b' })), h("div", { key: '9cf93957da9e8dc333c8b05327bb903385b1c5f4', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'd3b6f0b3860ec6896b46703f64ed1cc8c75612e3', part: "indicator-background", class: "segment-button-indicator-background" }))));
691
+ } }, 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" }))));
692
692
  }
693
693
  get el() { return getElement(this); }
694
694
  static get watchers() { return {
@@ -88,7 +88,7 @@ const SelectModal = class {
88
88
  } }, option.text))));
89
89
  }
90
90
  render() {
91
- 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()))));
91
+ 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()))));
92
92
  }
93
93
  get el() { return getElement(this); }
94
94
  };
@@ -787,7 +787,7 @@ const Select = class {
787
787
  * TODO(FW-5592): Remove hasStartEndSlots condition
788
788
  */
789
789
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
790
- return (h(Host, { key: 'd8026835993d0e6dce747098f741a06ae4e4f54d', onClick: this.onClick, class: createColorClasses(this.color, {
790
+ return (h(Host, { key: '9f0a833ebc3df27a42146b07bcbb181c05f5e5c4', onClick: this.onClick, class: createColorClasses(this.color, {
791
791
  [mode]: true,
792
792
  'in-item': inItem,
793
793
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -805,7 +805,7 @@ const Select = class {
805
805
  [`select-justify-${justify}`]: justifyEnabled,
806
806
  [`select-shape-${shape}`]: shape !== undefined,
807
807
  [`select-label-placement-${labelPlacement}`]: true,
808
- }) }, h("label", { key: 'fcfb40209d6d07d49c7fdca4884b31abf6ac2567', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'f191664f2290c3890bde1156157c83a6ff17dbe2', class: "select-wrapper-inner" }, h("slot", { key: '317a28d1115b4214f291e228ce0fe6fc782e57d5', name: "start" }), h("div", { key: 'db68e18abd5ca3a1023d7c7b58bf89893ae18073', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '4274e042267c2234a198b0f65c89477898d08130', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '2e2eb1ee2b2791e0683d9afb186fde6e938ca59c', class: "select-highlight" })), this.renderBottomContent()));
808
+ }) }, h("label", { key: '4b32396d8557c0d1cba13440a11e66b8eb7b13a9', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'd226cc8e30cd5202c235476cfa1632fc40bc609f', class: "select-wrapper-inner" }, h("slot", { key: 'df813ff3b7de518c70ea4fedd25bcb965607026d', name: "start" }), h("div", { key: '4a4e9348a136c598b7b08f80ecdcca268afec2d5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'f168d8b42a1e193ad27d09e5f1553b231f0332e5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'ec3deede22dd403cb16a08f532ae4809cf86a3e7', class: "select-highlight" })), this.renderBottomContent()));
809
809
  }
810
810
  get el() { return getElement(this); }
811
811
  static get watchers() { return {
@@ -867,7 +867,7 @@ const SelectOption = class {
867
867
  this.disabled = false;
868
868
  }
869
869
  render() {
870
- return h(Host, { key: '3a70eea9fa03a9acba582180761d18347c72acee', role: "option", id: this.inputId, class: getIonMode(this) });
870
+ return h(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode(this) });
871
871
  }
872
872
  get el() { return getElement(this); }
873
873
  };
@@ -972,7 +972,7 @@ const SelectPopover = class {
972
972
  render() {
973
973
  const { header, message, options, subHeader } = this;
974
974
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
975
- 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))));
975
+ 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))));
976
976
  }
977
977
  get el() { return getElement(this); }
978
978
  };
@@ -42,7 +42,7 @@ const Spinner = class {
42
42
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
43
43
  }
44
44
  }
45
- return (h(Host, { key: 'a33d6421fcc885995fbc7a348516525f68ca496c', class: createColorClasses(self.color, {
45
+ return (h(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses(self.color, {
46
46
  [mode]: true,
47
47
  [`spinner-${spinnerName}`]: true,
48
48
  'spinner-paused': self.paused || config.getBoolean('_testing'),