@ionic/core 8.8.14-dev.11784222473.142aed23 → 8.8.14-dev.11784243422.11f0110c

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 (347) 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-popover.js +1 -1
  22. package/components/ion-progress-bar.js +1 -1
  23. package/components/ion-radio.js +1 -1
  24. package/components/ion-range.js +1 -1
  25. package/components/ion-refresher-content.js +1 -1
  26. package/components/ion-refresher.js +1 -1
  27. package/components/ion-reorder-group.js +1 -1
  28. package/components/ion-reorder.js +1 -1
  29. package/components/ion-ripple-effect.js +1 -1
  30. package/components/ion-router-link.js +1 -1
  31. package/components/ion-router-outlet.js +1 -1
  32. package/components/ion-row.js +1 -1
  33. package/components/ion-searchbar.js +1 -1
  34. package/components/ion-segment-button.js +1 -1
  35. package/components/ion-segment-content.js +1 -1
  36. package/components/ion-segment-view.js +1 -1
  37. package/components/ion-segment.js +1 -1
  38. package/components/ion-select-modal.js +1 -1
  39. package/components/ion-select-option.js +1 -1
  40. package/components/ion-select-popover.js +1 -1
  41. package/components/ion-select.js +1 -1
  42. package/components/ion-skeleton-text.js +1 -1
  43. package/components/ion-spinner.js +1 -1
  44. package/components/ion-split-pane.js +1 -1
  45. package/components/ion-tab-bar.js +1 -1
  46. package/components/ion-tab-button.js +1 -1
  47. package/components/ion-tab.js +1 -1
  48. package/components/ion-tabs.js +1 -1
  49. package/components/ion-text.js +1 -1
  50. package/components/ion-textarea.js +1 -1
  51. package/components/ion-thumbnail.js +1 -1
  52. package/components/ion-title.js +1 -1
  53. package/components/ion-toast.js +1 -1
  54. package/components/ion-toggle.js +1 -1
  55. package/components/ion-toolbar.js +1 -1
  56. package/components/p-279dFMvg.js +4 -0
  57. package/components/p-BSQPZ79H.js +4 -0
  58. package/components/{p-BHrrc-3d.js → p-Buf_7zcy.js} +1 -1
  59. package/components/p-BwKpO3Is.js +4 -0
  60. package/components/p-C-Rx1zny.js +4 -0
  61. package/components/p-CHzfYZbv.js +4 -0
  62. package/components/p-D4h1H_hh.js +4 -0
  63. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  64. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  65. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  66. package/components/p-LMGfIvTf.js +4 -0
  67. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  68. package/components/p-_lHSumhG.js +4 -0
  69. package/components/p-j9Da6cYO.js +4 -0
  70. package/components/p-jOtMJMv8.js +4 -0
  71. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  72. package/components/p-uTR_dEqg.js +4 -0
  73. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  74. package/dist/cjs/config-DWdFbSNK.js +35 -0
  75. package/dist/cjs/index-Cueg3U4w.js +429 -0
  76. package/dist/cjs/index.cjs.js +6 -6
  77. package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
  78. package/dist/cjs/ion-alert.cjs.entry.js +64 -25
  79. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  80. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  82. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  83. package/dist/cjs/ion-img.cjs.entry.js +3 -1
  84. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
  85. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  86. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-loading.cjs.entry.js +10 -5
  88. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  89. package/dist/cjs/ion-modal.cjs.entry.js +23 -18
  90. package/dist/cjs/ion-popover.cjs.entry.js +9 -5
  91. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  94. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -5
  95. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  96. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  97. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  99. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  100. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  102. package/dist/cjs/ion-select-modal.cjs.entry.js +84 -30
  103. package/dist/cjs/ion-select_3.cjs.entry.js +407 -49
  104. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  105. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  107. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  108. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-toast.cjs.entry.js +6 -5
  111. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  112. package/dist/cjs/ionic.cjs.js +1 -1
  113. package/dist/cjs/loader.cjs.js +1 -1
  114. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  115. package/dist/cjs/{overlays-DdtIYQUH.js → overlays-DSmSrd_4.js} +27 -31
  116. package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
  117. package/dist/collection/collection-manifest.json +6 -10
  118. package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
  119. package/dist/collection/components/action-sheet/action-sheet.js +24 -5
  120. package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
  121. package/dist/collection/components/alert/alert.ios.css +280 -10
  122. package/dist/collection/components/alert/alert.js +59 -21
  123. package/dist/collection/components/alert/alert.md.css +269 -20
  124. package/dist/collection/components/img/img.js +6 -1
  125. package/dist/collection/components/input/input.js +8 -8
  126. package/dist/collection/components/loading/loading.js +7 -3
  127. package/dist/collection/components/modal/modal.ios.css +0 -8
  128. package/dist/collection/components/modal/modal.js +23 -18
  129. package/dist/collection/components/modal/modal.md.css +0 -8
  130. package/dist/collection/components/popover/popover.ios.css +15 -0
  131. package/dist/collection/components/popover/popover.js +7 -3
  132. package/dist/collection/components/popover/popover.md.css +15 -0
  133. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  134. package/dist/collection/components/radio/radio.js +4 -4
  135. package/dist/collection/components/range/range.js +3 -3
  136. package/dist/collection/components/refresher/refresher.js +1 -1
  137. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  138. package/dist/collection/components/reorder/reorder.js +1 -1
  139. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  140. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  141. package/dist/collection/components/router-link/router-link.js +2 -2
  142. package/dist/collection/components/router-outlet/router-outlet.js +38 -5
  143. package/dist/collection/components/row/row.js +1 -1
  144. package/dist/collection/components/searchbar/searchbar.js +9 -9
  145. package/dist/collection/components/segment/segment.js +2 -2
  146. package/dist/collection/components/segment-button/segment-button.js +2 -2
  147. package/dist/collection/components/segment-content/segment-content.js +1 -1
  148. package/dist/collection/components/segment-view/segment-view.js +2 -2
  149. package/dist/collection/components/select/select.ios.css +33 -0
  150. package/dist/collection/components/select/select.js +323 -16
  151. package/dist/collection/components/select/select.md.css +33 -0
  152. package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
  153. package/dist/collection/components/select-modal/select-modal.js +79 -26
  154. package/dist/collection/components/select-modal/select-modal.md.css +165 -0
  155. package/dist/collection/components/select-option/select-option.js +67 -3
  156. package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
  157. package/dist/collection/components/select-popover/select-popover.js +78 -26
  158. package/dist/collection/components/select-popover/select-popover.md.css +165 -0
  159. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  160. package/dist/collection/components/spinner/spinner.js +1 -1
  161. package/dist/collection/components/split-pane/split-pane.js +2 -2
  162. package/dist/collection/components/tab/tab.js +2 -2
  163. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  164. package/dist/collection/components/tab-button/tab-button.js +2 -2
  165. package/dist/collection/components/tabs/tabs.js +1 -1
  166. package/dist/collection/components/text/text.js +2 -2
  167. package/dist/collection/components/textarea/textarea.js +2 -2
  168. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  169. package/dist/collection/components/title/title.js +2 -2
  170. package/dist/collection/components/toast/toast.js +2 -2
  171. package/dist/collection/components/toggle/toggle.js +3 -3
  172. package/dist/collection/components/toolbar/toolbar.js +2 -2
  173. package/dist/collection/index.js +1 -1
  174. package/dist/collection/utils/overlay-control-label.js +45 -0
  175. package/dist/collection/utils/overlays.js +26 -30
  176. package/dist/collection/utils/sanitization/index.js +274 -18
  177. package/dist/collection/utils/select-option-render.js +119 -0
  178. package/dist/docs.json +485 -1177
  179. package/dist/esm/config-BwKpO3Is.js +31 -0
  180. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  181. package/dist/esm/index-DQSkZyOJ.js +424 -0
  182. package/dist/esm/index.js +3 -2
  183. package/dist/esm/ion-accordion_2.entry.js +1 -1
  184. package/dist/esm/ion-action-sheet.entry.js +27 -7
  185. package/dist/esm/ion-alert.entry.js +63 -24
  186. package/dist/esm/ion-app_8.entry.js +23 -9
  187. package/dist/esm/ion-avatar_3.entry.js +1 -1
  188. package/dist/esm/ion-back-button.entry.js +1 -1
  189. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  190. package/dist/esm/ion-col_3.entry.js +1 -1
  191. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  192. package/dist/esm/ion-fab_3.entry.js +1 -1
  193. package/dist/esm/ion-img.entry.js +4 -2
  194. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
  195. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  196. package/dist/esm/ion-input.entry.js +5 -5
  197. package/dist/esm/ion-item_8.entry.js +3 -3
  198. package/dist/esm/ion-loading.entry.js +9 -4
  199. package/dist/esm/ion-menu_3.entry.js +2 -2
  200. package/dist/esm/ion-modal.entry.js +23 -18
  201. package/dist/esm/ion-popover.entry.js +9 -5
  202. package/dist/esm/ion-progress-bar.entry.js +1 -1
  203. package/dist/esm/ion-radio_2.entry.js +3 -3
  204. package/dist/esm/ion-range.entry.js +3 -3
  205. package/dist/esm/ion-refresher_2.entry.js +5 -4
  206. package/dist/esm/ion-reorder_2.entry.js +3 -3
  207. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  208. package/dist/esm/ion-route_4.entry.js +2 -2
  209. package/dist/esm/ion-searchbar.entry.js +6 -6
  210. package/dist/esm/ion-segment-content.entry.js +1 -1
  211. package/dist/esm/ion-segment-view.entry.js +2 -2
  212. package/dist/esm/ion-segment_2.entry.js +4 -4
  213. package/dist/esm/ion-select-modal.entry.js +84 -30
  214. package/dist/esm/ion-select_3.entry.js +410 -52
  215. package/dist/esm/ion-spinner.entry.js +1 -1
  216. package/dist/esm/ion-split-pane.entry.js +2 -2
  217. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  218. package/dist/esm/ion-tab_2.entry.js +3 -3
  219. package/dist/esm/ion-text.entry.js +2 -2
  220. package/dist/esm/ion-textarea.entry.js +2 -2
  221. package/dist/esm/ion-toast.entry.js +5 -4
  222. package/dist/esm/ion-toggle.entry.js +4 -4
  223. package/dist/esm/ionic.js +1 -1
  224. package/dist/esm/loader.js +1 -1
  225. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  226. package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DLNOHWNc.js} +28 -32
  227. package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
  228. package/dist/html.html-data.json +51 -79
  229. package/dist/ionic/index.esm.js +1 -1
  230. package/dist/ionic/ionic.esm.js +1 -1
  231. package/dist/ionic/p-038eb991.entry.js +4 -0
  232. package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
  233. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  234. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  235. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  236. package/dist/ionic/p-4621c387.entry.js +4 -0
  237. package/dist/ionic/p-4ace7762.entry.js +4 -0
  238. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  239. package/dist/ionic/p-4e9ec5c5.entry.js +4 -0
  240. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  241. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  242. package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
  243. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  244. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  245. package/dist/ionic/p-700795f6.entry.js +4 -0
  246. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  247. package/dist/ionic/p-79a36078.entry.js +4 -0
  248. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  249. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  250. package/dist/ionic/p-913b218a.entry.js +4 -0
  251. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  252. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  253. package/dist/ionic/p-BDtODLZ4.js +4 -0
  254. package/dist/ionic/p-BSQPZ79H.js +4 -0
  255. package/dist/ionic/p-BwKpO3Is.js +4 -0
  256. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  257. package/dist/ionic/p-DCOvXkOm.js +4 -0
  258. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  259. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  260. package/dist/ionic/p-a9a33367.entry.js +4 -0
  261. package/dist/ionic/p-ad728198.entry.js +4 -0
  262. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  263. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  264. package/dist/ionic/p-bfc8c629.entry.js +4 -0
  265. package/dist/ionic/p-c08e666a.entry.js +4 -0
  266. package/dist/ionic/{p-34586ead.entry.js → p-c93553d2.entry.js} +1 -1
  267. package/dist/ionic/p-ce7992c4.entry.js +4 -0
  268. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  269. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  270. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  271. package/dist/ionic/p-ed797c72.entry.js +4 -0
  272. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  273. package/dist/ionic/p-f09f9642.entry.js +4 -0
  274. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  275. package/dist/ionic/p-f718fccb.entry.js +4 -0
  276. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  277. package/dist/types/components/img/img.d.ts +2 -0
  278. package/dist/types/components/input/input.d.ts +1 -1
  279. package/dist/types/components/modal/modal.d.ts +11 -4
  280. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  281. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  282. package/dist/types/components/select/select-interface.d.ts +31 -0
  283. package/dist/types/components/select/select.d.ts +18 -0
  284. package/dist/types/components/select-option/select-option.d.ts +42 -1
  285. package/dist/types/components.d.ts +72 -288
  286. package/dist/types/index.d.ts +1 -1
  287. package/dist/types/interface.d.ts +0 -1
  288. package/dist/types/utils/config.d.ts +0 -8
  289. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  290. package/dist/types/utils/overlays.d.ts +11 -9
  291. package/dist/types/utils/sanitization/index.d.ts +58 -2
  292. package/dist/types/utils/select-option-render.d.ts +53 -0
  293. package/hydrate/index.js +1408 -1175
  294. package/hydrate/index.mjs +1408 -1175
  295. package/package.json +37 -5
  296. package/components/ion-picker-legacy-column.d.ts +0 -11
  297. package/components/ion-picker-legacy-column.js +0 -4
  298. package/components/ion-picker-legacy.d.ts +0 -11
  299. package/components/ion-picker-legacy.js +0 -4
  300. package/components/p-3hGiN2uq.js +0 -4
  301. package/components/p-BIPPbW0M.js +0 -4
  302. package/components/p-BUYFy35a.js +0 -4
  303. package/components/p-BWEZufiK.js +0 -4
  304. package/components/p-BqpciLfi.js +0 -4
  305. package/components/p-BsQPAqo9.js +0 -4
  306. package/components/p-CU5rbWAW.js +0 -4
  307. package/components/p-k_E4tX5Z.js +0 -4
  308. package/components/p-nyXeHk23.js +0 -4
  309. package/dist/cjs/config-xninhj0J.js +0 -201
  310. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  311. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  312. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  313. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  314. package/dist/collection/components/picker-legacy/picker.js +0 -890
  315. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  316. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  317. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  318. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  319. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  320. package/dist/esm/config-DQCONYYp.js +0 -195
  321. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  322. package/dist/ionic/p-0cc11f99.entry.js +0 -4
  323. package/dist/ionic/p-0dc33652.entry.js +0 -4
  324. package/dist/ionic/p-20b1a044.entry.js +0 -4
  325. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  326. package/dist/ionic/p-27d30585.entry.js +0 -4
  327. package/dist/ionic/p-2a05aa64.entry.js +0 -4
  328. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  329. package/dist/ionic/p-485fda23.entry.js +0 -4
  330. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  331. package/dist/ionic/p-5018dfc8.entry.js +0 -4
  332. package/dist/ionic/p-50e1194a.entry.js +0 -4
  333. package/dist/ionic/p-5eb8e86d.entry.js +0 -4
  334. package/dist/ionic/p-65ebdf1b.entry.js +0 -4
  335. package/dist/ionic/p-6ebdbebe.entry.js +0 -4
  336. package/dist/ionic/p-9f9db3a2.entry.js +0 -4
  337. package/dist/ionic/p-D-3ycHmd.js +0 -4
  338. package/dist/ionic/p-DzWaWHGc.js +0 -4
  339. package/dist/ionic/p-a21add2f.entry.js +0 -4
  340. package/dist/ionic/p-ca2ab74d.entry.js +0 -4
  341. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  342. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  343. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  344. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  345. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  346. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  347. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
@@ -1,3 +1,222 @@
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
+ * Convert a font size to a dynamic font size.
133
+ * Fonts that participate in Dynamic Type should use
134
+ * dynamic font sizes.
135
+ * @param size - The initial font size including the unit (i.e. px or pt)
136
+ * @param unit (optional) - The unit to convert to. Use this if you want to
137
+ * convert to a unit other than $baselineUnit.
138
+ */
139
+ /**
140
+ * Convert a font size to a dynamic font size but impose
141
+ * a maximum font size.
142
+ * @param size - The initial font size including the unit (i.e. px or pt)
143
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
144
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
145
+ * convert to a unit other than $baselineUnit.
146
+ */
147
+ /**
148
+ * Convert a font size to a dynamic font size but impose
149
+ * a minimum font size.
150
+ * @param size - The initial font size including the unit (i.e. px or pt)
151
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
152
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
153
+ * convert to a unit other than $baselineUnit.
154
+ */
155
+ /**
156
+ * Convert a font size to a dynamic font size but impose
157
+ * maximum and minimum font sizes.
158
+ * @param size - The initial font size including the unit (i.e. px or pt)
159
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
160
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
161
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
162
+ * convert to a unit other than $baselineUnit.
163
+ */
164
+ /**
165
+ * A heuristic that applies CSS to tablet
166
+ * viewports.
167
+ *
168
+ * Usage:
169
+ * @include tablet-viewport() {
170
+ * :host {
171
+ * background-color: green;
172
+ * }
173
+ * }
174
+ */
175
+ /**
176
+ * A heuristic that applies CSS to mobile
177
+ * viewports (i.e. phones, not tablets).
178
+ *
179
+ * Usage:
180
+ * @include mobile-viewport() {
181
+ * :host {
182
+ * background-color: blue;
183
+ * }
184
+ * }
185
+ */
186
+ /**
187
+ * Cap slotted children so they can't stretch the option
188
+ * row out of proportion, keeping rows visually uniform
189
+ * regardless of the content.
190
+ */
191
+ .select-option-start > ion-avatar,
192
+ .select-option-start > ion-img,
193
+ .select-option-start > ion-thumbnail,
194
+ .select-option-start > img,
195
+ .select-option-start > svg,
196
+ .select-option-end > ion-avatar,
197
+ .select-option-end > ion-img,
198
+ .select-option-end > ion-thumbnail,
199
+ .select-option-end > img,
200
+ .select-option-end > svg {
201
+ width: 44px;
202
+ height: 44px;
203
+ }
204
+
205
+ .select-option-start > ion-icon,
206
+ .select-option-end > ion-icon {
207
+ width: 28px;
208
+ height: 28px;
209
+ }
210
+
211
+ .action-sheet-button-label-text {
212
+ justify-content: center;
213
+ }
214
+
215
+ .select-option-has-rich-content {
216
+ -webkit-padding-end: 16px;
217
+ padding-inline-end: 16px;
218
+ }
219
+
1
220
  /**
2
221
  * Convert a font size to a dynamic font size.
3
222
  * Fonts that participate in Dynamic Type should use
@@ -242,6 +461,39 @@
242
461
  min-height: inherit;
243
462
  }
244
463
 
464
+ /**
465
+ * Label is on the right of the radio in LTR and
466
+ * on the left in RTL.
467
+ */
468
+ .radio-label-placement-start,
469
+ .checkbox-label-placement-start {
470
+ flex-direction: row-reverse;
471
+ }
472
+
473
+ /**
474
+ * Label is on the left of the radio in LTR and
475
+ * on the right in RTL.
476
+ */
477
+ .radio-label-placement-end,
478
+ .checkbox-label-placement-end {
479
+ flex-direction: row;
480
+ }
481
+
482
+ .radio-justify-start,
483
+ .checkbox-justify-start {
484
+ justify-content: start;
485
+ }
486
+
487
+ .radio-justify-end,
488
+ .checkbox-justify-end {
489
+ justify-content: end;
490
+ }
491
+
492
+ .radio-justify-space-between,
493
+ .checkbox-justify-space-between {
494
+ justify-content: space-between;
495
+ }
496
+
245
497
  .alert-input-disabled,
246
498
  .alert-checkbox-button-disabled .alert-button-inner,
247
499
  .alert-radio-button-disabled .alert-button-inner {
@@ -529,8 +781,6 @@ textarea.alert-input {
529
781
  padding-inline-end: 13px;
530
782
  padding-top: 13px;
531
783
  padding-bottom: 13px;
532
- flex: 1;
533
- order: 0;
534
784
  color: var(--ion-text-color, #000);
535
785
  }
536
786
 
@@ -540,7 +790,7 @@ textarea.alert-input {
540
790
 
541
791
  .alert-radio-icon {
542
792
  position: relative;
543
- order: 1;
793
+ flex-shrink: 0;
544
794
  min-width: 30px;
545
795
  }
546
796
 
@@ -556,7 +806,12 @@ textarea.alert-input {
556
806
  border-style: solid;
557
807
  border-color: var(--ion-color-primary, #0054e9);
558
808
  }
559
- [aria-checked=true] .alert-radio-inner {
809
+
810
+ [aria-checked=true] .radio-label-placement-end .alert-radio-inner {
811
+ inset-inline-end: 7px;
812
+ }
813
+
814
+ [aria-checked=true] .radio-label-placement-start .alert-radio-inner {
560
815
  inset-inline-start: 7px;
561
816
  }
562
817
 
@@ -567,19 +822,15 @@ textarea.alert-input {
567
822
  padding-inline-end: 13px;
568
823
  padding-top: 13px;
569
824
  padding-bottom: 13px;
570
- flex: 1;
571
825
  color: var(--ion-text-color, #000);
572
826
  }
573
827
 
574
828
  .alert-checkbox-icon {
575
829
  border-radius: 50%;
576
- -webkit-margin-start: 16px;
577
- margin-inline-start: 16px;
578
- -webkit-margin-end: 6px;
579
- margin-inline-end: 6px;
580
830
  margin-top: 10px;
581
831
  margin-bottom: 10px;
582
832
  position: relative;
833
+ flex-shrink: 0;
583
834
  width: min(1.375rem, 55.836px);
584
835
  height: min(1.375rem, 55.836px);
585
836
  border-width: 0.125rem;
@@ -589,6 +840,20 @@ textarea.alert-input {
589
840
  contain: strict;
590
841
  }
591
842
 
843
+ .checkbox-label-placement-end .alert-checkbox-icon {
844
+ -webkit-margin-start: 16px;
845
+ margin-inline-start: 16px;
846
+ -webkit-margin-end: 6px;
847
+ margin-inline-end: 6px;
848
+ }
849
+
850
+ .checkbox-label-placement-start .alert-checkbox-icon {
851
+ -webkit-margin-start: 6px;
852
+ margin-inline-start: 6px;
853
+ -webkit-margin-end: 16px;
854
+ margin-inline-end: 16px;
855
+ }
856
+
592
857
  [aria-checked=true] .alert-checkbox-icon {
593
858
  border-color: var(--ion-color-primary, #0054e9);
594
859
  background-color: var(--ion-color-primary, #0054e9);
@@ -606,10 +871,15 @@ textarea.alert-input {
606
871
  border-style: solid;
607
872
  border-color: var(--ion-background-color, #fff);
608
873
  }
609
- [aria-checked=true] .alert-checkbox-inner {
874
+
875
+ [aria-checked=true] .checkbox-label-placement-end .alert-checkbox-inner {
610
876
  inset-inline-start: calc(min(1.375rem, 55.836px) / 3);
611
877
  }
612
878
 
879
+ [aria-checked=true] .checkbox-label-placement-start .alert-checkbox-inner {
880
+ inset-inline-end: calc(min(1.375rem, 55.836px) / 3);
881
+ }
882
+
613
883
  .alert-button-group {
614
884
  -webkit-margin-end: -0.55px;
615
885
  margin-inline-end: -0.55px;
@@ -7,8 +7,10 @@ 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 { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
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";
11
12
  import { sanitizeDOMString } from "../../utils/sanitization/index";
13
+ import { renderOptionLabel } from "../../utils/select-option-render";
12
14
  import { getClassMap } from "../../utils/theme";
13
15
  import { config } from "../../global/config";
14
16
  import { getIonMode } from "../../global/ionic-global";
@@ -179,22 +181,7 @@ export class Alert {
179
181
  this.inputType = inputTypes.values().next().value;
180
182
  this.processedInputs = inputs.map((i, index) => {
181
183
  var _a;
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
- });
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 });
198
185
  });
199
186
  }
200
187
  connectedCallback() {
@@ -222,6 +209,10 @@ export class Alert {
222
209
  this.gesture.destroy();
223
210
  this.gesture = undefined;
224
211
  }
212
+ // Clean up aria-hidden if removed without dismiss() being called
213
+ if (this.presented) {
214
+ cleanupRootFocusTrapAccessibility();
215
+ }
225
216
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
226
217
  this.buttonGroupResizeObserver = undefined;
227
218
  }
@@ -392,14 +383,61 @@ export class Alert {
392
383
  if (inputs.length === 0) {
393
384
  return null;
394
385
  }
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))))));
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
+ })));
396
410
  }
397
411
  renderRadio() {
398
412
  const inputs = this.processedInputs;
413
+ const mode = getIonMode(this);
399
414
  if (inputs.length === 0) {
400
415
  return null;
401
416
  }
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)))))));
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
+ })));
403
441
  }
404
442
  renderInput() {
405
443
  const inputs = this.processedInputs;
@@ -502,9 +540,9 @@ export class Alert {
502
540
  * If neither are defined, do not set aria-labelledby.
503
541
  */
504
542
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
505
- return (h(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
543
+ return (h(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
506
544
  zIndex: `${20000 + overlayIndex}`,
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" })));
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" })));
508
546
  }
509
547
  static get is() { return "ion-alert"; }
510
548
  static get encapsulation() { return "scoped"; }