@ionic/core 8.8.14-dev.11784216165.1ecbf364 → 8.8.14-dev.11784222473.142aed23

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 (360) 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-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +1 -1
  13. package/components/ion-input-password-toggle.js +1 -1
  14. package/components/ion-input.js +1 -1
  15. package/components/ion-item-option.js +1 -1
  16. package/components/ion-item.js +1 -1
  17. package/components/ion-loading.js +1 -1
  18. package/components/ion-menu-button.js +1 -1
  19. package/components/ion-menu.js +1 -1
  20. package/components/ion-modal.js +1 -1
  21. package/components/ion-nav.js +1 -1
  22. package/components/ion-picker-legacy-column.d.ts +11 -0
  23. package/components/ion-picker-legacy-column.js +4 -0
  24. package/components/ion-picker-legacy.d.ts +11 -0
  25. package/components/ion-picker-legacy.js +4 -0
  26. package/components/ion-popover.js +1 -1
  27. package/components/ion-progress-bar.js +1 -1
  28. package/components/ion-radio.js +1 -1
  29. package/components/ion-range.js +1 -1
  30. package/components/ion-refresher-content.js +1 -1
  31. package/components/ion-refresher.js +1 -1
  32. package/components/ion-reorder-group.js +1 -1
  33. package/components/ion-reorder.js +1 -1
  34. package/components/ion-ripple-effect.js +1 -1
  35. package/components/ion-router-link.js +1 -1
  36. package/components/ion-router-outlet.js +1 -1
  37. package/components/ion-router.js +1 -1
  38. package/components/ion-row.js +1 -1
  39. package/components/ion-searchbar.js +1 -1
  40. package/components/ion-segment-button.js +1 -1
  41. package/components/ion-segment-content.js +1 -1
  42. package/components/ion-segment-view.js +1 -1
  43. package/components/ion-segment.js +1 -1
  44. package/components/ion-select-modal.js +1 -1
  45. package/components/ion-select-option.js +1 -1
  46. package/components/ion-select-popover.js +1 -1
  47. package/components/ion-select.js +1 -1
  48. package/components/ion-skeleton-text.js +1 -1
  49. package/components/ion-spinner.js +1 -1
  50. package/components/ion-split-pane.js +1 -1
  51. package/components/ion-tab-bar.js +1 -1
  52. package/components/ion-tab-button.js +1 -1
  53. package/components/ion-tab.js +1 -1
  54. package/components/ion-tabs.js +1 -1
  55. package/components/ion-text.js +1 -1
  56. package/components/ion-textarea.js +1 -1
  57. package/components/ion-thumbnail.js +1 -1
  58. package/components/ion-title.js +1 -1
  59. package/components/ion-toast.js +1 -1
  60. package/components/ion-toggle.js +1 -1
  61. package/components/ion-toolbar.js +1 -1
  62. package/components/p-3hGiN2uq.js +4 -0
  63. package/components/{p-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
  64. package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
  65. package/components/{p-Buf_7zcy.js → p-BHrrc-3d.js} +1 -1
  66. package/components/p-BIPPbW0M.js +4 -0
  67. package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
  68. package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
  69. package/components/p-BUYFy35a.js +4 -0
  70. package/components/p-BWEZufiK.js +4 -0
  71. package/components/p-BqpciLfi.js +4 -0
  72. package/components/p-BsQPAqo9.js +4 -0
  73. package/components/p-CU5rbWAW.js +4 -0
  74. package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
  75. package/components/p-k_E4tX5Z.js +4 -0
  76. package/components/p-nyXeHk23.js +4 -0
  77. package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
  78. package/dist/cjs/config-xninhj0J.js +201 -0
  79. package/dist/cjs/index.cjs.js +6 -6
  80. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -27
  81. package/dist/cjs/ion-alert.cjs.entry.js +25 -64
  82. package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
  83. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  85. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
  86. package/dist/cjs/ion-img.cjs.entry.js +1 -3
  87. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -3
  88. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  89. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-loading.cjs.entry.js +5 -10
  91. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-modal.cjs.entry.js +18 -23
  93. package/dist/cjs/ion-nav_2.cjs.entry.js +115 -2
  94. package/dist/cjs/ion-popover.cjs.entry.js +5 -9
  95. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  97. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  98. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -6
  99. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-route_4.cjs.entry.js +4 -18
  102. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  103. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  106. package/dist/cjs/ion-select-modal.cjs.entry.js +30 -84
  107. package/dist/cjs/ion-select_3.cjs.entry.js +49 -407
  108. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  112. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-toast.cjs.entry.js +5 -6
  115. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  116. package/dist/cjs/ionic.cjs.js +1 -1
  117. package/dist/cjs/loader.cjs.js +1 -1
  118. package/dist/cjs/{overlays-DSmSrd_4.js → overlays-DdtIYQUH.js} +31 -27
  119. package/dist/collection/collection-manifest.json +10 -6
  120. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -229
  121. package/dist/collection/components/action-sheet/action-sheet.js +5 -24
  122. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -175
  123. package/dist/collection/components/alert/alert.ios.css +10 -280
  124. package/dist/collection/components/alert/alert.js +21 -59
  125. package/dist/collection/components/alert/alert.md.css +20 -269
  126. package/dist/collection/components/img/img.js +1 -6
  127. package/dist/collection/components/input/input.js +8 -8
  128. package/dist/collection/components/loading/loading.js +3 -7
  129. package/dist/collection/components/modal/modal.ios.css +8 -0
  130. package/dist/collection/components/modal/modal.js +18 -23
  131. package/dist/collection/components/modal/modal.md.css +8 -0
  132. package/dist/collection/components/nav/nav.js +219 -4
  133. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  134. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  135. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  136. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  137. package/dist/collection/components/picker-legacy/picker.js +890 -0
  138. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  139. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  140. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  141. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  142. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  143. package/dist/collection/components/popover/popover.ios.css +0 -15
  144. package/dist/collection/components/popover/popover.js +3 -7
  145. package/dist/collection/components/popover/popover.md.css +0 -15
  146. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  147. package/dist/collection/components/radio/radio.js +4 -4
  148. package/dist/collection/components/range/range.js +3 -3
  149. package/dist/collection/components/refresher/refresher.js +1 -1
  150. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  151. package/dist/collection/components/reorder/reorder.js +1 -1
  152. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  153. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  154. package/dist/collection/components/route/route.js +1 -1
  155. package/dist/collection/components/router/utils/dom.js +3 -22
  156. package/dist/collection/components/router-link/router-link.js +2 -2
  157. package/dist/collection/components/router-outlet/router-outlet.js +5 -38
  158. package/dist/collection/components/row/row.js +1 -1
  159. package/dist/collection/components/searchbar/searchbar.js +9 -9
  160. package/dist/collection/components/segment/segment.js +2 -2
  161. package/dist/collection/components/segment-button/segment-button.js +2 -2
  162. package/dist/collection/components/segment-content/segment-content.js +1 -1
  163. package/dist/collection/components/segment-view/segment-view.js +2 -2
  164. package/dist/collection/components/select/select.ios.css +0 -33
  165. package/dist/collection/components/select/select.js +16 -323
  166. package/dist/collection/components/select/select.md.css +0 -33
  167. package/dist/collection/components/select-modal/select-modal.ios.css +0 -219
  168. package/dist/collection/components/select-modal/select-modal.js +26 -79
  169. package/dist/collection/components/select-modal/select-modal.md.css +0 -165
  170. package/dist/collection/components/select-option/select-option.js +3 -67
  171. package/dist/collection/components/select-popover/select-popover.ios.css +0 -219
  172. package/dist/collection/components/select-popover/select-popover.js +26 -78
  173. package/dist/collection/components/select-popover/select-popover.md.css +0 -165
  174. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  175. package/dist/collection/components/spinner/spinner.js +1 -1
  176. package/dist/collection/components/split-pane/split-pane.js +2 -2
  177. package/dist/collection/components/tab/tab.js +2 -2
  178. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  179. package/dist/collection/components/tab-button/tab-button.js +2 -2
  180. package/dist/collection/components/tabs/tabs.js +1 -1
  181. package/dist/collection/components/text/text.js +2 -2
  182. package/dist/collection/components/textarea/textarea.js +2 -2
  183. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  184. package/dist/collection/components/title/title.js +2 -2
  185. package/dist/collection/components/toast/toast.js +2 -2
  186. package/dist/collection/components/toggle/toggle.js +3 -3
  187. package/dist/collection/components/toolbar/toolbar.js +2 -2
  188. package/dist/collection/index.js +1 -1
  189. package/dist/collection/utils/overlays.js +30 -26
  190. package/dist/collection/utils/sanitization/index.js +18 -274
  191. package/dist/docs.json +1189 -497
  192. package/dist/esm/config-DQCONYYp.js +195 -0
  193. package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
  194. package/dist/esm/index.js +2 -3
  195. package/dist/esm/ion-accordion_2.entry.js +1 -1
  196. package/dist/esm/ion-action-sheet.entry.js +7 -27
  197. package/dist/esm/ion-alert.entry.js +24 -63
  198. package/dist/esm/ion-app_8.entry.js +9 -23
  199. package/dist/esm/ion-avatar_3.entry.js +1 -1
  200. package/dist/esm/ion-back-button.entry.js +1 -1
  201. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  202. package/dist/esm/ion-col_3.entry.js +1 -1
  203. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
  204. package/dist/esm/ion-fab_3.entry.js +1 -1
  205. package/dist/esm/ion-img.entry.js +2 -4
  206. package/dist/esm/ion-infinite-scroll_2.entry.js +1 -2
  207. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  208. package/dist/esm/ion-input.entry.js +5 -5
  209. package/dist/esm/ion-item_8.entry.js +3 -3
  210. package/dist/esm/ion-loading.entry.js +4 -9
  211. package/dist/esm/ion-menu_3.entry.js +2 -2
  212. package/dist/esm/ion-modal.entry.js +18 -23
  213. package/dist/esm/ion-nav_2.entry.js +116 -3
  214. package/dist/esm/ion-popover.entry.js +5 -9
  215. package/dist/esm/ion-progress-bar.entry.js +1 -1
  216. package/dist/esm/ion-radio_2.entry.js +3 -3
  217. package/dist/esm/ion-range.entry.js +3 -3
  218. package/dist/esm/ion-refresher_2.entry.js +4 -5
  219. package/dist/esm/ion-reorder_2.entry.js +3 -3
  220. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  221. package/dist/esm/ion-route_4.entry.js +4 -18
  222. package/dist/esm/ion-searchbar.entry.js +6 -6
  223. package/dist/esm/ion-segment-content.entry.js +1 -1
  224. package/dist/esm/ion-segment-view.entry.js +2 -2
  225. package/dist/esm/ion-segment_2.entry.js +4 -4
  226. package/dist/esm/ion-select-modal.entry.js +30 -84
  227. package/dist/esm/ion-select_3.entry.js +52 -410
  228. package/dist/esm/ion-spinner.entry.js +1 -1
  229. package/dist/esm/ion-split-pane.entry.js +2 -2
  230. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  231. package/dist/esm/ion-tab_2.entry.js +3 -3
  232. package/dist/esm/ion-text.entry.js +2 -2
  233. package/dist/esm/ion-textarea.entry.js +2 -2
  234. package/dist/esm/ion-toast.entry.js +4 -5
  235. package/dist/esm/ion-toggle.entry.js +4 -4
  236. package/dist/esm/ionic.js +1 -1
  237. package/dist/esm/loader.js +1 -1
  238. package/dist/esm/{overlays-DLNOHWNc.js → overlays-Dg0q2_tJ.js} +32 -28
  239. package/dist/html.html-data.json +80 -52
  240. package/dist/ionic/index.esm.js +1 -1
  241. package/dist/ionic/ionic.esm.js +1 -1
  242. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  243. package/dist/ionic/p-0cc11f99.entry.js +4 -0
  244. package/dist/ionic/p-0dc33652.entry.js +4 -0
  245. package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
  246. package/dist/ionic/p-20b1a044.entry.js +4 -0
  247. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  248. package/dist/ionic/p-27d30585.entry.js +4 -0
  249. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  250. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  251. package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
  252. package/dist/ionic/{p-c93553d2.entry.js → p-34586ead.entry.js} +1 -1
  253. package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
  254. package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
  255. package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
  256. package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
  257. package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
  258. package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
  259. package/dist/ionic/p-485fda23.entry.js +4 -0
  260. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  261. package/dist/ionic/p-5018dfc8.entry.js +4 -0
  262. package/dist/ionic/p-50e1194a.entry.js +4 -0
  263. package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
  264. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  265. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  266. package/dist/ionic/p-6ebdbebe.entry.js +4 -0
  267. package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
  268. package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
  269. package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
  270. package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
  271. package/dist/ionic/p-8fce95d5.entry.js +4 -0
  272. package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
  273. package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
  274. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  275. package/dist/ionic/p-D-3ycHmd.js +4 -0
  276. package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
  277. package/dist/ionic/p-DzWaWHGc.js +4 -0
  278. package/dist/ionic/p-a21add2f.entry.js +4 -0
  279. package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
  280. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  281. package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
  282. package/dist/ionic/p-ec090e0a.entry.js +4 -0
  283. package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
  284. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  285. package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
  286. package/dist/types/components/img/img.d.ts +0 -2
  287. package/dist/types/components/input/input.d.ts +1 -1
  288. package/dist/types/components/modal/modal.d.ts +4 -11
  289. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  290. package/dist/types/components/nav/nav.d.ts +22 -2
  291. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  292. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  293. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  294. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  295. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  296. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  297. package/dist/types/components/route/route.d.ts +1 -1
  298. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  299. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  300. package/dist/types/components/select/select-interface.d.ts +0 -31
  301. package/dist/types/components/select/select.d.ts +0 -18
  302. package/dist/types/components/select-option/select-option.d.ts +1 -42
  303. package/dist/types/components.d.ts +303 -74
  304. package/dist/types/index.d.ts +1 -1
  305. package/dist/types/interface.d.ts +1 -0
  306. package/dist/types/utils/config.d.ts +8 -0
  307. package/dist/types/utils/overlays.d.ts +9 -11
  308. package/dist/types/utils/sanitization/index.d.ts +2 -58
  309. package/hydrate/index.js +1268 -1400
  310. package/hydrate/index.mjs +1268 -1400
  311. package/package.json +5 -37
  312. package/components/p-279dFMvg.js +0 -4
  313. package/components/p-BSQPZ79H.js +0 -4
  314. package/components/p-BwKpO3Is.js +0 -4
  315. package/components/p-C-Rx1zny.js +0 -4
  316. package/components/p-CHzfYZbv.js +0 -4
  317. package/components/p-D4h1H_hh.js +0 -4
  318. package/components/p-LMGfIvTf.js +0 -4
  319. package/components/p-_lHSumhG.js +0 -4
  320. package/components/p-j9Da6cYO.js +0 -4
  321. package/components/p-jOtMJMv8.js +0 -4
  322. package/components/p-uTR_dEqg.js +0 -4
  323. package/dist/cjs/config-DWdFbSNK.js +0 -35
  324. package/dist/cjs/index-Cueg3U4w.js +0 -429
  325. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  326. package/dist/cjs/select-option-render-DTF50t5r.js +0 -124
  327. package/dist/collection/utils/overlay-control-label.js +0 -45
  328. package/dist/collection/utils/select-option-render.js +0 -119
  329. package/dist/esm/config-BwKpO3Is.js +0 -31
  330. package/dist/esm/index-DQSkZyOJ.js +0 -424
  331. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  332. package/dist/esm/select-option-render-B8nWZRnd.js +0 -122
  333. package/dist/ionic/p-038eb991.entry.js +0 -4
  334. package/dist/ionic/p-4621c387.entry.js +0 -4
  335. package/dist/ionic/p-4ace7762.entry.js +0 -4
  336. package/dist/ionic/p-4bb3eb60.entry.js +0 -4
  337. package/dist/ionic/p-4e9ec5c5.entry.js +0 -4
  338. package/dist/ionic/p-5c3ec490.entry.js +0 -4
  339. package/dist/ionic/p-5d1ac2c7.entry.js +0 -4
  340. package/dist/ionic/p-700795f6.entry.js +0 -4
  341. package/dist/ionic/p-79a36078.entry.js +0 -4
  342. package/dist/ionic/p-913b218a.entry.js +0 -4
  343. package/dist/ionic/p-BDtODLZ4.js +0 -4
  344. package/dist/ionic/p-BSQPZ79H.js +0 -4
  345. package/dist/ionic/p-BwKpO3Is.js +0 -4
  346. package/dist/ionic/p-Cg5-OQYy.js +0 -4
  347. package/dist/ionic/p-DCOvXkOm.js +0 -4
  348. package/dist/ionic/p-a18dcb3c.entry.js +0 -4
  349. package/dist/ionic/p-a9a33367.entry.js +0 -4
  350. package/dist/ionic/p-ad728198.entry.js +0 -4
  351. package/dist/ionic/p-bfc8c629.entry.js +0 -4
  352. package/dist/ionic/p-c08e666a.entry.js +0 -4
  353. package/dist/ionic/p-c474f471.entry.js +0 -4
  354. package/dist/ionic/p-ce7992c4.entry.js +0 -4
  355. package/dist/ionic/p-ed797c72.entry.js +0 -4
  356. package/dist/ionic/p-f09f9642.entry.js +0 -4
  357. package/dist/ionic/p-f1c06f82.entry.js +0 -4
  358. package/dist/ionic/p-f718fccb.entry.js +0 -4
  359. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  360. package/dist/types/utils/select-option-render.d.ts +0 -53
@@ -7,10 +7,8 @@ import { createButtonActiveGesture } from "../../utils/gesture/button-active";
7
7
  import { raf } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
- import { getOverlayLabelJustify, getOverlayLabelPlacement } from "../../utils/overlay-control-label";
11
- import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
10
+ import { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
12
11
  import { sanitizeDOMString } from "../../utils/sanitization/index";
13
- import { renderOptionLabel } from "../../utils/select-option-render";
14
12
  import { getClassMap } from "../../utils/theme";
15
13
  import { config } from "../../global/config";
16
14
  import { getIonMode } from "../../global/ionic-global";
@@ -181,7 +179,22 @@ export class Alert {
181
179
  this.inputType = inputTypes.values().next().value;
182
180
  this.processedInputs = inputs.map((i, index) => {
183
181
  var _a;
184
- return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
182
+ return ({
183
+ type: i.type || 'text',
184
+ name: i.name || `${index}`,
185
+ placeholder: i.placeholder || '',
186
+ value: i.value,
187
+ label: i.label,
188
+ checked: !!i.checked,
189
+ disabled: !!i.disabled,
190
+ id: i.id || `alert-input-${this.overlayIndex}-${index}`,
191
+ handler: i.handler,
192
+ min: i.min,
193
+ max: i.max,
194
+ cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
195
+ attributes: i.attributes || {},
196
+ tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
197
+ });
185
198
  });
186
199
  }
187
200
  connectedCallback() {
@@ -209,10 +222,6 @@ export class Alert {
209
222
  this.gesture.destroy();
210
223
  this.gesture = undefined;
211
224
  }
212
- // Clean up aria-hidden if removed without dismiss() being called
213
- if (this.presented) {
214
- cleanupRootFocusTrapAccessibility();
215
- }
216
225
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
217
226
  this.buttonGroupResizeObserver = undefined;
218
227
  }
@@ -383,61 +392,14 @@ export class Alert {
383
392
  if (inputs.length === 0) {
384
393
  return null;
385
394
  }
386
- return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
387
- var _a, _b;
388
- /**
389
- * Cast to `SelectAlertInput` to access rich content
390
- * fields (`startContent`, `endContent`, `description`)
391
- * that are passed through from `ion-select` but not
392
- * part of the public `AlertInput` interface.
393
- */
394
- const richInput = i;
395
- const optionLabelOptions = {
396
- id: richInput.id,
397
- label: richInput.label,
398
- startContent: richInput.startContent,
399
- endContent: richInput.endContent,
400
- description: richInput.description,
401
- };
402
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
403
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
404
- return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: {
405
- 'alert-button-inner': true,
406
- [`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
407
- [`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
408
- } }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && h("ion-ripple-effect", null)));
409
- })));
395
+ return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), h("div", { class: "alert-checkbox-label" }, i.label)), mode === 'md' && h("ion-ripple-effect", null))))));
410
396
  }
411
397
  renderRadio() {
412
398
  const inputs = this.processedInputs;
413
- const mode = getIonMode(this);
414
399
  if (inputs.length === 0) {
415
400
  return null;
416
401
  }
417
- return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
418
- var _a, _b;
419
- /**
420
- * Cast to `SelectAlertInput` to access rich content
421
- * fields (`startContent`, `endContent`, `description`)
422
- * that are passed through from `ion-select` but not
423
- * part of the public `AlertInput` interface.
424
- */
425
- const richInput = i;
426
- const optionLabelOptions = {
427
- id: richInput.id,
428
- label: richInput.label,
429
- startContent: richInput.startContent,
430
- endContent: richInput.endContent,
431
- description: richInput.description,
432
- };
433
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
434
- const defaultJustify = getOverlayLabelJustify(mode, 'radio');
435
- return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: {
436
- 'alert-button-inner': true,
437
- [`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
438
- [`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
439
- } }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
440
- })));
402
+ return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), h("div", { class: "alert-radio-label" }, i.label)))))));
441
403
  }
442
404
  renderInput() {
443
405
  const inputs = this.processedInputs;
@@ -540,9 +502,9 @@ export class Alert {
540
502
  * If neither are defined, do not set aria-labelledby.
541
503
  */
542
504
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
543
- return (h(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
505
+ return (h(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
544
506
  zIndex: `${20000 + overlayIndex}`,
545
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), h("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (h("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
507
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), h("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (h("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
546
508
  }
547
509
  static get is() { return "ion-alert"; }
548
510
  static get encapsulation() { return "scoped"; }
@@ -1,168 +1,3 @@
1
- /**
2
- * A heuristic that applies CSS to tablet
3
- * viewports.
4
- *
5
- * Usage:
6
- * @include tablet-viewport() {
7
- * :host {
8
- * background-color: green;
9
- * }
10
- * }
11
- */
12
- /**
13
- * A heuristic that applies CSS to mobile
14
- * viewports (i.e. phones, not tablets).
15
- *
16
- * Usage:
17
- * @include mobile-viewport() {
18
- * :host {
19
- * background-color: blue;
20
- * }
21
- * }
22
- */
23
- /**
24
- * Convert a font size to a dynamic font size.
25
- * Fonts that participate in Dynamic Type should use
26
- * dynamic font sizes.
27
- * @param size - The initial font size including the unit (i.e. px or pt)
28
- * @param unit (optional) - The unit to convert to. Use this if you want to
29
- * convert to a unit other than $baselineUnit.
30
- */
31
- /**
32
- * Convert a font size to a dynamic font size but impose
33
- * a maximum font size.
34
- * @param size - The initial font size including the unit (i.e. px or pt)
35
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
36
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
37
- * convert to a unit other than $baselineUnit.
38
- */
39
- /**
40
- * Convert a font size to a dynamic font size but impose
41
- * a minimum font size.
42
- * @param size - The initial font size including the unit (i.e. px or pt)
43
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
44
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
45
- * convert to a unit other than $baselineUnit.
46
- */
47
- /**
48
- * Convert a font size to a dynamic font size but impose
49
- * maximum and minimum font sizes.
50
- * @param size - The initial font size including the unit (i.e. px or pt)
51
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
52
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
53
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
54
- * convert to a unit other than $baselineUnit.
55
- */
56
- .action-sheet-button-label-has-rich-content,
57
- .alert-radio-label-has-rich-content,
58
- .alert-checkbox-label-has-rich-content,
59
- .select-option-label-has-rich-content {
60
- display: flex;
61
- align-items: center;
62
- gap: 16px;
63
- }
64
-
65
- /**
66
- * Outer label container has rich content
67
- * (start, content, description, end) that needs the
68
- * label to span the available row width.
69
- */
70
- .action-sheet-button-label-has-rich-content,
71
- .alert-radio-label-has-rich-content,
72
- .alert-checkbox-label-has-rich-content,
73
- .select-option-content {
74
- flex: 1;
75
- }
76
-
77
- .action-sheet-button-label-text,
78
- .alert-checkbox-label-text,
79
- .alert-radio-label-text,
80
- .select-option-label-text {
81
- display: flex;
82
- align-items: center;
83
- gap: 12px;
84
- }
85
-
86
- .select-option-start,
87
- .select-option-end {
88
- display: flex;
89
- align-items: center;
90
- gap: 8px;
91
- }
92
-
93
- .select-option-description {
94
- padding-left: 0;
95
- padding-right: 0;
96
- padding-top: 5px;
97
- padding-bottom: 0;
98
- display: block;
99
- color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
100
- font-size: 0.75rem;
101
- }
102
-
103
- /**
104
- * Non-rich labels are plain text and should ellipsize when they
105
- * overflow the row. Rich-content labels switch to flex so the
106
- * start / content / end pieces can lay out side-by-side and wrap.
107
- */
108
- .select-option-label:not(.select-option-label-has-rich-content) {
109
- text-overflow: ellipsis;
110
- white-space: nowrap;
111
- overflow: hidden;
112
- }
113
-
114
- .select-option-label-has-rich-content {
115
- display: flex;
116
- align-items: center;
117
- }
118
-
119
- ion-radio.select-option-has-rich-content::part(label),
120
- ion-checkbox.select-option-has-rich-content::part(label),
121
- .select-option-content {
122
- flex: 1;
123
- /**
124
- * Let rich content wrap instead of inheriting the label part's
125
- * single-line truncation, so arbitrary slotted elements render
126
- * without clipping.
127
- */
128
- white-space: normal;
129
- }
130
-
131
- /**
132
- * Cap slotted children so they can't stretch the option
133
- * row out of proportion, keeping rows visually uniform
134
- * regardless of the content.
135
- */
136
- .select-option-start > ion-avatar,
137
- .select-option-end > ion-avatar {
138
- width: 40px;
139
- height: 40px;
140
- }
141
-
142
- .select-option-start > ion-icon,
143
- .select-option-end > ion-icon {
144
- width: 24px;
145
- height: 24px;
146
- }
147
-
148
- .select-option-start > ion-img,
149
- .select-option-start > img,
150
- .select-option-start > svg,
151
- .select-option-start > ion-thumbnail,
152
- .select-option-end > ion-img,
153
- .select-option-end > img,
154
- .select-option-end > svg,
155
- .select-option-end > ion-thumbnail {
156
- width: 56px;
157
- height: 56px;
158
- }
159
-
160
- .select-option-start > video,
161
- .select-option-end > video {
162
- width: 114px;
163
- height: 56px;
164
- }
165
-
166
1
  /**
167
2
  * Convert a font size to a dynamic font size.
168
3
  * Fonts that participate in Dynamic Type should use
@@ -407,39 +242,6 @@ ion-checkbox.select-option-has-rich-content::part(label),
407
242
  min-height: inherit;
408
243
  }
409
244
 
410
- /**
411
- * Label is on the right of the radio in LTR and
412
- * on the left in RTL.
413
- */
414
- .radio-label-placement-start,
415
- .checkbox-label-placement-start {
416
- flex-direction: row-reverse;
417
- }
418
-
419
- /**
420
- * Label is on the left of the radio in LTR and
421
- * on the right in RTL.
422
- */
423
- .radio-label-placement-end,
424
- .checkbox-label-placement-end {
425
- flex-direction: row;
426
- }
427
-
428
- .radio-justify-start,
429
- .checkbox-justify-start {
430
- justify-content: start;
431
- }
432
-
433
- .radio-justify-end,
434
- .checkbox-justify-end {
435
- justify-content: end;
436
- }
437
-
438
- .radio-justify-space-between,
439
- .checkbox-justify-space-between {
440
- justify-content: space-between;
441
- }
442
-
443
245
  .alert-input-disabled,
444
246
  .alert-checkbox-button-disabled .alert-button-inner,
445
247
  .alert-radio-button-disabled .alert-button-inner {
@@ -617,10 +419,10 @@ textarea.alert-input {
617
419
  }
618
420
 
619
421
  .alert-head {
620
- -webkit-padding-start: 24px;
621
- padding-inline-start: 24px;
622
- -webkit-padding-end: 24px;
623
- padding-inline-end: 24px;
422
+ -webkit-padding-start: 23px;
423
+ padding-inline-start: 23px;
424
+ -webkit-padding-end: 23px;
425
+ padding-inline-end: 23px;
624
426
  padding-top: 20px;
625
427
  padding-bottom: 15px;
626
428
  text-align: start;
@@ -720,56 +522,30 @@ textarea.alert-input {
720
522
  }
721
523
 
722
524
  .alert-radio-label {
525
+ -webkit-padding-start: 52px;
526
+ padding-inline-start: 52px;
527
+ -webkit-padding-end: 26px;
528
+ padding-inline-end: 26px;
723
529
  padding-top: 13px;
724
530
  padding-bottom: 13px;
725
- max-width: calc(100% - 20px);
531
+ flex: 1;
726
532
  color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
727
533
  font-size: 1rem;
728
534
  }
729
535
 
730
- .radio-label-placement-end .alert-radio-label {
731
- /**
732
- * The label's inline padding clears space for the icon on the icon's side.
733
- * When the label is placed at the end, the icon is at the start, so the
734
- * larger padding clears it on the start side.
735
- */
736
- -webkit-padding-start: 56px;
737
- padding-inline-start: 56px;
738
- -webkit-padding-end: 24px;
739
- padding-inline-end: 24px;
740
- }
741
-
742
- .radio-label-placement-start .alert-radio-label {
743
- /**
744
- * The label's inline padding clears space for the icon on the icon's side.
745
- * When the label is placed at the start, the icon is at the end, so the
746
- * larger padding clears it on the end side.
747
- */
748
- -webkit-padding-start: 24px;
749
- padding-inline-start: 24px;
750
- -webkit-padding-end: 56px;
751
- padding-inline-end: 56px;
752
- }
753
-
754
536
  .alert-radio-icon {
755
537
  top: 0;
756
538
  border-radius: 50%;
757
539
  display: block;
758
540
  position: relative;
759
- flex-shrink: 0;
760
541
  width: 20px;
761
542
  height: 20px;
762
543
  border-width: 2px;
763
544
  border-style: solid;
764
545
  border-color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
765
546
  }
766
-
767
- .radio-label-placement-end .alert-radio-icon {
768
- inset-inline-start: 24px;
769
- }
770
-
771
- .radio-label-placement-start .alert-radio-icon {
772
- inset-inline-end: 24px;
547
+ .alert-radio-icon {
548
+ inset-inline-start: 26px;
773
549
  }
774
550
 
775
551
  .alert-radio-inner {
@@ -799,42 +575,22 @@ textarea.alert-input {
799
575
  }
800
576
 
801
577
  .alert-checkbox-label {
578
+ -webkit-padding-start: 53px;
579
+ padding-inline-start: 53px;
580
+ -webkit-padding-end: 26px;
581
+ padding-inline-end: 26px;
802
582
  padding-top: 13px;
803
583
  padding-bottom: 13px;
804
- max-width: calc(100% - 16px);
584
+ flex: 1;
585
+ width: calc(100% - 53px);
805
586
  color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
806
587
  font-size: 1rem;
807
588
  }
808
589
 
809
- .checkbox-label-placement-end .alert-checkbox-label {
810
- /**
811
- * The label's inline padding clears space for the icon on the icon's side.
812
- * When the label is placed at the end, the icon is at the start, so the
813
- * larger padding clears it on the start side.
814
- */
815
- -webkit-padding-start: 56px;
816
- padding-inline-start: 56px;
817
- -webkit-padding-end: 24px;
818
- padding-inline-end: 24px;
819
- }
820
-
821
- .checkbox-label-placement-start .alert-checkbox-label {
822
- /**
823
- * The label's inline padding clears space for the icon on the icon's side.
824
- * When the label is placed at the start, the icon is at the end, so the
825
- * larger padding clears it on the end side.
826
- */
827
- -webkit-padding-start: 24px;
828
- padding-inline-start: 24px;
829
- -webkit-padding-end: 56px;
830
- padding-inline-end: 56px;
831
- }
832
-
833
590
  .alert-checkbox-icon {
834
591
  top: 0;
835
592
  border-radius: 2px;
836
593
  position: relative;
837
- flex-shrink: 0;
838
594
  width: 16px;
839
595
  height: 16px;
840
596
  border-width: 2px;
@@ -842,13 +598,8 @@ textarea.alert-input {
842
598
  border-color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
843
599
  contain: strict;
844
600
  }
845
-
846
- .checkbox-label-placement-end .alert-checkbox-icon {
847
- inset-inline-start: 24px;
848
- }
849
-
850
- .checkbox-label-placement-start .alert-checkbox-icon {
851
- inset-inline-end: 24px;
601
+ .alert-checkbox-icon {
602
+ inset-inline-start: 26px;
852
603
  }
853
604
 
854
605
  [aria-checked=true] .alert-checkbox-icon {
@@ -907,7 +658,7 @@ textarea.alert-input {
907
658
  overflow: hidden;
908
659
  }
909
660
 
910
- .alert-button-group .alert-button-inner {
661
+ .alert-button-inner {
911
662
  justify-content: flex-end;
912
663
  }
913
664
 
@@ -3,11 +3,8 @@
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
5
  import { inheritAttributes } from "../../utils/helpers";
6
- import { printIonWarning } from "../../utils/logging/index";
7
6
  import { getIonMode } from "../../global/ionic-global";
8
7
  /**
9
- * @deprecated
10
- *
11
8
  * @part image - The inner `img` element.
12
9
  */
13
10
  export class Img {
@@ -27,8 +24,6 @@ export class Img {
27
24
  this.inheritedAttributes = inheritAttributes(this.el, ['draggable']);
28
25
  }
29
26
  componentDidLoad() {
30
- printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
31
- 'Use a native <img> with the loading="lazy" attribute instead.', this.el);
32
27
  this.addIO();
33
28
  }
34
29
  disconnectedCallback() {
@@ -81,7 +76,7 @@ export class Img {
81
76
  render() {
82
77
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
83
78
  const { draggable } = inheritedAttributes;
84
- return (h(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode(this) }, h("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
79
+ return (h(Host, { key: '9bfaa659b0680189fd29f3acb2fdce7f70be6060', class: getIonMode(this) }, h("img", { key: 'd484beae0d5cbe0406958bfad40cdd6c05625340', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
85
80
  }
86
81
  static get is() { return "ion-img"; }
87
82
  static get encapsulation() { return "shadow"; }
@@ -56,7 +56,7 @@ export class Input {
56
56
  /**
57
57
  * Whether auto correction should be enabled when the user is entering/editing the text value.
58
58
  */
59
- this.autocorrect = false;
59
+ this.autocorrect = 'off';
60
60
  /**
61
61
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
62
62
  *
@@ -540,7 +540,7 @@ export class Input {
540
540
  * TODO(FW-5592): Remove hasStartEndSlots condition
541
541
  */
542
542
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
543
- return (h(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses(this.color, {
543
+ return (h(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses(this.color, {
544
544
  [mode]: true,
545
545
  'has-value': hasValue,
546
546
  'has-focus': hasFocus,
@@ -551,14 +551,14 @@ export class Input {
551
551
  'in-item': inItem,
552
552
  'in-item-color': hostContext('ion-item.ion-color', this.el),
553
553
  'input-disabled': disabled,
554
- }) }, h("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, h("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), h("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
554
+ }) }, h("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, h("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), h("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
555
555
  /**
556
556
  * This prevents mobile browsers from
557
557
  * blurring the input when the clear
558
558
  * button is activated.
559
559
  */
560
560
  ev.preventDefault();
561
- }, onClick: this.clearTextInput }, h("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), h("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && h("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
561
+ }, onClick: this.clearTextInput }, h("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), h("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && h("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
562
562
  }
563
563
  static get is() { return "ion-input"; }
564
564
  static get encapsulation() { return "scoped"; }
@@ -650,11 +650,11 @@ export class Input {
650
650
  "defaultValue": "'off'"
651
651
  },
652
652
  "autocorrect": {
653
- "type": "boolean",
653
+ "type": "string",
654
654
  "mutable": false,
655
655
  "complexType": {
656
- "original": "boolean",
657
- "resolved": "boolean",
656
+ "original": "'on' | 'off'",
657
+ "resolved": "\"off\" | \"on\"",
658
658
  "references": {}
659
659
  },
660
660
  "required": false,
@@ -667,7 +667,7 @@ export class Input {
667
667
  "setter": false,
668
668
  "reflect": false,
669
669
  "attribute": "autocorrect",
670
- "defaultValue": "false"
670
+ "defaultValue": "'off'"
671
671
  },
672
672
  "autofocus": {
673
673
  "type": "boolean",
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
6
6
  import { raf } from "../../utils/helpers";
7
7
  import { createLockController } from "../../utils/lock-controller";
8
- import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, prepareOverlay, present, setOverlayId, } from "../../utils/overlays";
8
+ import { BACKDROP, dismiss, eventMethod, prepareOverlay, present, createDelegateController, createTriggerController, setOverlayId, } from "../../utils/overlays";
9
9
  import { sanitizeDOMString } from "../../utils/sanitization/index";
10
10
  import { getClassMap } from "../../utils/theme";
11
11
  import { config } from "../../global/config";
@@ -114,10 +114,6 @@ export class Loading {
114
114
  }
115
115
  disconnectedCallback() {
116
116
  this.triggerController.removeClickListener();
117
- // Clean up aria-hidden if removed without dismiss() being called
118
- if (this.presented) {
119
- cleanupRootFocusTrapAccessibility();
120
- }
121
117
  }
122
118
  /**
123
119
  * Present the loading overlay after it has been created.
@@ -183,9 +179,9 @@ export class Loading {
183
179
  * Otherwise, don't set aria-labelledby.
184
180
  */
185
181
  const ariaLabelledBy = message !== undefined ? msgId : null;
186
- return (h(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
182
+ return (h(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
187
183
  zIndex: `${40000 + this.overlayIndex}`,
188
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, h("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
184
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, h("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
189
185
  }
190
186
  static get is() { return "ion-loading"; }
191
187
  static get encapsulation() { return "scoped"; }
@@ -126,6 +126,14 @@ ion-backdrop {
126
126
  z-index: 10;
127
127
  }
128
128
 
129
+ /**
130
+ * The wrapper receives programmatic focus for screen readers but should not
131
+ * show a visible focus ring, which is meant only for keyboard navigation.
132
+ */
133
+ .modal-wrapper {
134
+ outline: none;
135
+ }
136
+
129
137
  .modal-shadow {
130
138
  position: absolute;
131
139
  background: transparent;