voyager-ionic-core 8.8.17 → 9.0.3

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 (794) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/p-1sJ0ZDPe.js +4 -0
  99. package/components/p-5ldEpNdG.js +4 -0
  100. package/components/p-6ZLn6K5e.js +4 -0
  101. package/components/p-B1_TL6RQ.js +4 -0
  102. package/components/p-B4lxwJ8N.js +4 -0
  103. package/components/{p-rCa2eL0j.js → p-BF48Oc0v.js} +1 -1
  104. package/components/p-BJr2B5hZ.js +4 -0
  105. package/components/p-BMPN55of.js +4 -0
  106. package/components/{p-ChIZKXUu.js → p-BQyuFxYc.js} +1 -1
  107. package/components/p-BSQPZ79H.js +4 -0
  108. package/components/p-BT9-hMMz.js +4 -0
  109. package/components/p-BU8a2IhR.js +4 -0
  110. package/components/p-BW_SlU2D.js +4 -0
  111. package/components/p-BWoa-cki.js +4 -0
  112. package/components/p-BYJRZKHa.js +4 -0
  113. package/components/p-B_gJaBk0.js +4 -0
  114. package/components/p-BgkOsq-d.js +4 -0
  115. package/components/p-BhamHSw3.js +4 -0
  116. package/components/p-Bi-it1EH.js +4 -0
  117. package/components/p-C-NbvXu4.js +4 -0
  118. package/components/p-C09TXohi.js +4 -0
  119. package/components/p-C4VpVfrJ.js +4 -0
  120. package/components/p-C8Ck7_Eo.js +4 -0
  121. package/components/p-CEW4RXZO.js +4 -0
  122. package/components/p-CG_zZq_I.js +4 -0
  123. package/components/{p-B9jFTlwE.js → p-CJgnoKcN.js} +1 -1
  124. package/components/p-CMRYD_yR.js +4 -0
  125. package/components/{p-BMI53wYL.js → p-CNLioZ3B.js} +1 -1
  126. package/components/{p--JUspHvy.js → p-COO0eJOA.js} +1 -1
  127. package/components/p-CWAks_S_.js +4 -0
  128. package/{dist/ionic/p-KjNvRoEp.js → components/p-Cd1WaN-0.js} +1 -1
  129. package/components/p-CqbGBmqb.js +4 -0
  130. package/components/p-CrAKlX71.js +4 -0
  131. package/components/p-Ctop2IWW.js +4 -0
  132. package/components/p-Cw6WocLJ.js +4 -0
  133. package/components/p-D0YpjgON.js +4 -0
  134. package/components/{p-DJZp0KTQ.js → p-D5w_FlVa.js} +1 -1
  135. package/components/p-D7-vHX0A.js +4 -0
  136. package/components/p-D7wDJdFn.js +4 -0
  137. package/components/p-DFLJvuRK.js +4 -0
  138. package/components/p-DL13ieTa.js +4 -0
  139. package/components/{p-DqLB8yFQ.js → p-DM1gJSMP.js} +1 -1
  140. package/components/p-DMBiAyOR.js +4 -0
  141. package/components/p-DWCzVL3Y.js +4 -0
  142. package/components/p-DZRZic9C.js +4 -0
  143. package/components/{p-C_hpsif8.js → p-DhNuxvJH.js} +1 -1
  144. package/components/p-DiuOa1vw.js +4 -0
  145. package/components/p-Djmz-ssp.js +4 -0
  146. package/components/p-DnBNYc7u.js +4 -0
  147. package/components/p-Dojwmvde.js +4 -0
  148. package/components/p-DwSXbQSz.js +4 -0
  149. package/components/p-DxhHlJln.js +4 -0
  150. package/components/p-Fl7ZFU74.js +4 -0
  151. package/components/{p-DqZAXv2t.js → p-GGbIHyEF.js} +1 -1
  152. package/components/{p-j5IxBIan.js → p-Hp8t4RMX.js} +1 -1
  153. package/components/p-M34T2gyX.js +4 -0
  154. package/components/p-TWw4e4sO.js +4 -0
  155. package/components/{p-Cfx4M1Bn.js → p-YjMkHuvH.js} +1 -1
  156. package/components/p-byZM6qHV.js +4 -0
  157. package/components/p-cEN43Ahr.js +4 -0
  158. package/components/p-qAXsfUff.js +4 -0
  159. package/dist/cjs/{animation-BJq0kcy2.js → animation-Kd1N7WTN.js} +4 -4
  160. package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-b1G4t26O.js} +1 -1
  161. package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CQCFubJJ.js} +3 -3
  162. package/dist/cjs/config-CjUbvdPW.js +36 -0
  163. package/dist/cjs/dir-zwDPRE5K.js +30 -0
  164. package/dist/cjs/{format-PxvGiOik.js → format-bHU8N1g5.js} +40 -30
  165. package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-d-fWfeI6.js} +5 -7
  166. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-CeJslptU.js} +1 -2
  167. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
  168. package/dist/cjs/{hardware-back-button-iUuF_76h.js → hardware-back-button-Bu4Dzw8l.js} +4 -4
  169. package/dist/cjs/{helpers-Cv23MFHM.js → helpers-7wzdhdeg.js} +15 -11
  170. package/dist/cjs/{index-D81eLYUM.js → index-C74Q3t6a.js} +3 -2
  171. package/dist/cjs/{index-BERfRao3.js → index-CQfEIyLK.js} +5 -5
  172. package/dist/cjs/{index-aC4x3Fk3.js → index-DFNrCX7M.js} +6 -7
  173. package/dist/cjs/{index-CAvQ7Tka.js → index-DRPqwSvU.js} +13 -30
  174. package/dist/cjs/{index-Ct7gcRif.js → index-DXoo08JC.js} +321 -26
  175. package/dist/cjs/{index-CIrkNXqJ.js → index-DtvKGwdh.js} +34 -2
  176. package/dist/cjs/index-KiSZqhYS.js +431 -0
  177. package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
  178. package/dist/cjs/index.cjs.js +19 -18
  179. package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-VJIiKBKv.js} +10 -11
  180. package/dist/cjs/input.utils-EHVE2RK_.js +35 -0
  181. package/dist/cjs/ion-accordion_2.cjs.entry.js +12 -12
  182. package/dist/cjs/ion-action-sheet.cjs.entry.js +92 -44
  183. package/dist/cjs/ion-alert.cjs.entry.js +144 -65
  184. package/dist/cjs/ion-app_8.cjs.entry.js +112 -40
  185. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  186. package/dist/cjs/ion-back-button.cjs.entry.js +6 -5
  187. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  188. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -7
  189. package/dist/cjs/ion-button_2.cjs.entry.js +12 -8
  190. package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +10 -7
  192. package/dist/cjs/ion-chip.cjs.entry.js +3 -3
  193. package/dist/cjs/ion-col_3.cjs.entry.js +10 -6
  194. package/dist/cjs/ion-datetime-button.cjs.entry.js +22 -25
  195. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +182 -746
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +7 -6
  197. package/dist/cjs/ion-img.cjs.entry.js +7 -4
  198. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -6
  199. package/dist/cjs/ion-input-otp.cjs.entry.js +20 -29
  200. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -10
  201. package/dist/cjs/ion-input.cjs.entry.js +58 -70
  202. package/dist/cjs/ion-item-option_3.cjs.entry.js +21 -24
  203. package/dist/cjs/ion-item_8.cjs.entry.js +38 -34
  204. package/dist/cjs/ion-loading.cjs.entry.js +29 -15
  205. package/dist/cjs/ion-menu_3.cjs.entry.js +23 -24
  206. package/dist/cjs/ion-modal.cjs.entry.js +283 -161
  207. package/dist/cjs/ion-nav_2.cjs.entry.js +30 -138
  208. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -13
  209. package/dist/cjs/ion-picker-column.cjs.entry.js +218 -62
  210. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  211. package/dist/cjs/ion-popover.cjs.entry.js +50 -30
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -5
  213. package/dist/cjs/ion-radio_2.cjs.entry.js +12 -11
  214. package/dist/cjs/ion-range.cjs.entry.js +30 -25
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +34 -26
  216. package/dist/cjs/ion-reorder_2.cjs.entry.js +10 -9
  217. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  218. package/dist/cjs/ion-route_4.cjs.entry.js +36 -30
  219. package/dist/cjs/ion-searchbar.cjs.entry.js +27 -22
  220. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -6
  222. package/dist/cjs/ion-segment_2.cjs.entry.js +30 -26
  223. package/dist/cjs/ion-select-modal.cjs.entry.js +93 -38
  224. package/dist/cjs/ion-select_3.cjs.entry.js +495 -126
  225. package/dist/cjs/ion-spinner.cjs.entry.js +5 -6
  226. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  227. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -12
  228. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -8
  229. package/dist/cjs/ion-text.cjs.entry.js +5 -5
  230. package/dist/cjs/ion-textarea.cjs.entry.js +56 -65
  231. package/dist/cjs/ion-toast.cjs.entry.js +26 -21
  232. package/dist/cjs/ion-toggle.cjs.entry.js +15 -13
  233. package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-CYJNT-2P.js} +13 -8
  234. package/dist/cjs/ionic.cjs.js +5 -5
  235. package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DYGiD6gM.js} +14 -17
  236. package/dist/cjs/{item-multiple-inputs-D-gyg57c.js → item-multiple-inputs-Dv6qrMhm.js} +1 -1
  237. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
  238. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
  240. package/dist/cjs/loader.cjs.js +4 -4
  241. package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-CrSkaoz6.js} +8 -8
  242. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  243. package/dist/cjs/{overlays-DdtIYQUH.js → overlays-BR21NUIG.js} +98 -58
  244. package/dist/cjs/select-option-render-D8ZEjYji.js +123 -0
  245. package/dist/cjs/slot-mutation-controller-D6IjSEIh.js +397 -0
  246. package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CNP5eD1R.js} +4 -3
  247. package/dist/cjs/{swipe-back-CCMaNiP2.js → swipe-back-CSIJQfu5.js} +5 -5
  248. package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
  249. package/dist/collection/collection-manifest.json +7 -11
  250. package/dist/collection/components/accordion/accordion.js +5 -6
  251. package/dist/collection/components/accordion-group/accordion-group.js +2 -2
  252. package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
  253. package/dist/collection/components/action-sheet/action-sheet.js +77 -31
  254. package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
  255. package/dist/collection/components/alert/alert.ios.css +279 -10
  256. package/dist/collection/components/alert/alert.js +127 -50
  257. package/dist/collection/components/alert/alert.md.css +268 -20
  258. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  259. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  260. package/dist/collection/components/button/button.js +5 -2
  261. package/dist/collection/components/card/card.js +1 -1
  262. package/dist/collection/components/checkbox/checkbox.js +4 -2
  263. package/dist/collection/components/col/col.js +7 -3
  264. package/dist/collection/components/content/content.js +56 -6
  265. package/dist/collection/components/datetime/datetime.ios.css +42 -2
  266. package/dist/collection/components/datetime/datetime.js +146 -77
  267. package/dist/collection/components/datetime/datetime.md.css +42 -1
  268. package/dist/collection/components/datetime/utils/data.js +13 -14
  269. package/dist/collection/components/datetime/utils/format.js +21 -11
  270. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  271. package/dist/collection/components/datetime/utils/parse.js +10 -10
  272. package/dist/collection/components/datetime/utils/state.js +8 -2
  273. package/dist/collection/components/datetime/utils/validate.js +4 -5
  274. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
  275. package/dist/collection/components/datetime-button/datetime-button.js +15 -20
  276. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
  277. package/dist/collection/components/fab-button/fab-button.js +1 -1
  278. package/dist/collection/components/footer/footer.js +1 -1
  279. package/dist/collection/components/header/header.js +2 -2
  280. package/dist/collection/components/img/img.js +6 -1
  281. package/dist/collection/components/input/input.ios.css +57 -26
  282. package/dist/collection/components/input/input.js +51 -64
  283. package/dist/collection/components/input/input.md.css +79 -43
  284. package/dist/collection/components/input-otp/input-otp.js +15 -24
  285. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -6
  286. package/dist/collection/components/item/item.js +19 -16
  287. package/dist/collection/components/item-divider/item-divider.js +2 -2
  288. package/dist/collection/components/item-group/item-group.js +1 -1
  289. package/dist/collection/components/item-option/item-option.js +2 -2
  290. package/dist/collection/components/item-options/item-options.js +1 -1
  291. package/dist/collection/components/item-sliding/item-sliding.js +12 -16
  292. package/dist/collection/components/label/label.js +2 -2
  293. package/dist/collection/components/list/list.js +2 -2
  294. package/dist/collection/components/list-header/list-header.js +2 -2
  295. package/dist/collection/components/loading/loading.js +17 -5
  296. package/dist/collection/components/menu/menu.js +6 -8
  297. package/dist/collection/components/menu-button/menu-button.js +2 -2
  298. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  299. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  300. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  301. package/dist/collection/components/modal/gestures/sheet.js +42 -34
  302. package/dist/collection/components/modal/gestures/swipe-to-close.js +18 -35
  303. package/dist/collection/components/modal/gestures/utils.js +17 -0
  304. package/dist/collection/components/modal/modal.js +146 -65
  305. package/dist/collection/components/modal/safe-area-utils.js +39 -5
  306. package/dist/collection/components/nav/nav.js +24 -235
  307. package/dist/collection/components/nav-link/nav-link.js +1 -1
  308. package/dist/collection/components/note/note.js +2 -2
  309. package/dist/collection/components/picker/picker.js +1 -2
  310. package/dist/collection/components/picker-column/picker-column.css +3 -0
  311. package/dist/collection/components/picker-column/picker-column.js +212 -58
  312. package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
  313. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  314. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  315. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  316. package/dist/collection/components/popover/popover.ios.css +15 -0
  317. package/dist/collection/components/popover/popover.js +32 -9
  318. package/dist/collection/components/popover/popover.md.css +15 -0
  319. package/dist/collection/components/popover/utils.js +4 -6
  320. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  321. package/dist/collection/components/radio/radio.js +5 -5
  322. package/dist/collection/components/radio-group/radio-group.js +2 -2
  323. package/dist/collection/components/range/range.js +24 -19
  324. package/dist/collection/components/refresher/refresher.js +19 -13
  325. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  326. package/dist/collection/components/reorder/reorder.js +1 -1
  327. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  328. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  329. package/dist/collection/components/route/route.js +1 -1
  330. package/dist/collection/components/router/router.js +2 -6
  331. package/dist/collection/components/router/utils/dom.js +25 -7
  332. package/dist/collection/components/router/utils/matching.js +6 -9
  333. package/dist/collection/components/router/utils/parser.js +1 -1
  334. package/dist/collection/components/router/utils/path.js +0 -1
  335. package/dist/collection/components/router-link/router-link.js +2 -2
  336. package/dist/collection/components/router-outlet/router-outlet.js +49 -10
  337. package/dist/collection/components/row/row.js +1 -1
  338. package/dist/collection/components/searchbar/searchbar.js +25 -20
  339. package/dist/collection/components/segment/segment.js +9 -11
  340. package/dist/collection/components/segment-button/segment-button.js +15 -9
  341. package/dist/collection/components/segment-content/segment-content.js +1 -1
  342. package/dist/collection/components/segment-view/segment-view.js +3 -4
  343. package/dist/collection/components/select/select.ios.css +96 -69
  344. package/dist/collection/components/select/select.js +405 -92
  345. package/dist/collection/components/select/select.md.css +118 -85
  346. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  347. package/dist/collection/components/select-modal/select-modal.js +80 -27
  348. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  349. package/dist/collection/components/select-option/select-option.js +67 -3
  350. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  351. package/dist/collection/components/select-popover/select-popover.js +78 -26
  352. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  353. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  354. package/dist/collection/components/spinner/spinner.js +2 -3
  355. package/dist/collection/components/split-pane/split-pane.js +2 -2
  356. package/dist/collection/components/tab/tab.js +2 -2
  357. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  358. package/dist/collection/components/tab-button/tab-button.js +6 -4
  359. package/dist/collection/components/tabs/tabs.js +2 -3
  360. package/dist/collection/components/text/text.js +2 -2
  361. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  362. package/dist/collection/components/textarea/textarea.js +47 -57
  363. package/dist/collection/components/textarea/textarea.md.css +103 -77
  364. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  365. package/dist/collection/components/title/title.js +2 -2
  366. package/dist/collection/components/toast/toast.js +12 -9
  367. package/dist/collection/components/toggle/toggle.js +6 -4
  368. package/dist/collection/components/toolbar/toolbar.js +7 -4
  369. package/dist/collection/global/config.js +3 -3
  370. package/dist/collection/global/ionic-global.js +8 -2
  371. package/dist/collection/index.js +1 -1
  372. package/dist/collection/utils/animation/animation.js +3 -3
  373. package/dist/collection/utils/config.js +5 -4
  374. package/dist/collection/utils/content/index.js +30 -0
  375. package/dist/collection/utils/focus-controller/index.js +1 -1
  376. package/dist/collection/utils/focus-trap.js +3 -3
  377. package/dist/collection/utils/forms/index.js +1 -0
  378. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  379. package/dist/collection/utils/framework-delegate.js +4 -6
  380. package/dist/collection/utils/gesture/gesture-controller.js +1 -2
  381. package/dist/collection/utils/gesture/index.js +10 -2
  382. package/dist/collection/utils/gesture/listener.js +4 -27
  383. package/dist/collection/utils/hardware-back-button.js +3 -3
  384. package/dist/collection/utils/helpers.js +14 -10
  385. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  386. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  387. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  388. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  389. package/dist/collection/utils/logging/index.js +23 -4
  390. package/dist/collection/utils/menu-controller/index.js +1 -2
  391. package/dist/collection/utils/native/haptic.js +2 -3
  392. package/dist/collection/utils/native/keyboard.js +2 -2
  393. package/dist/collection/utils/native/status-bar.js +1 -1
  394. package/dist/collection/utils/overlay-control-label.js +45 -0
  395. package/dist/collection/utils/overlays.js +87 -48
  396. package/dist/collection/utils/platform.js +4 -5
  397. package/dist/collection/utils/rtl/dir.js +17 -7
  398. package/dist/collection/utils/sanitization/index.js +283 -26
  399. package/dist/collection/utils/select-option-render.js +118 -0
  400. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  401. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  402. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  403. package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
  404. package/dist/collection/utils/test/playwright/drag-element.js +2 -3
  405. package/dist/collection/utils/test/playwright/generator.js +3 -4
  406. package/dist/collection/utils/test/playwright/index.js +1 -0
  407. package/dist/collection/utils/test/playwright/page/event-spy.js +2 -4
  408. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  409. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  410. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  411. package/dist/collection/utils/test/press-keys.js +6 -16
  412. package/dist/collection/utils/theme.js +6 -1
  413. package/dist/collection/utils/transition/ios.transition.js +9 -13
  414. package/dist/collection/utils/transition/md.transition.js +3 -4
  415. package/dist/docs.json +933 -1402
  416. package/dist/esm/{animation-DLJpuoEz.js → animation-BFNVlYum.js} +4 -4
  417. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-BgX0BGL1.js} +1 -1
  418. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BfOvDr3b.js} +3 -3
  419. package/dist/esm/config-DWCzVL3Y.js +32 -0
  420. package/dist/esm/dir-Dojwmvde.js +28 -0
  421. package/dist/esm/{format-CAmvpAez.js → format-DDFE9jM5.js} +41 -31
  422. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BwNhx9NR.js} +5 -7
  423. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-B_gJaBk0.js} +1 -2
  424. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  425. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DmkiRgOT.js} +4 -4
  426. package/dist/esm/{helpers-HEqiOzXb.js → helpers-BSmc0nst.js} +15 -11
  427. package/dist/esm/{index-CfgBF1SE.js → index-BmLuEdV7.js} +13 -30
  428. package/dist/esm/{index-Q6UPU0Ay.js → index-BuPaALjU.js} +6 -7
  429. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  430. package/dist/esm/{index-MEDq2S8l.js → index-C1b9CLFg.js} +33 -3
  431. package/dist/esm/{index-tcQvqkiX.js → index-C23AVPx9.js} +303 -26
  432. package/dist/esm/{index-BRHzoo00.js → index-CJln0gS3.js} +3 -2
  433. package/dist/esm/index-D76bbuoi.js +425 -0
  434. package/dist/esm/{index-B_dQk_WE.js → index-DnA_7Bnx.js} +5 -5
  435. package/dist/esm/index.js +17 -15
  436. package/dist/esm/{input-shims-D10mwcw1.js → input-shims-Dqk-Ou25.js} +10 -11
  437. package/dist/esm/input.utils-rqoH22pW.js +33 -0
  438. package/dist/esm/ion-accordion_2.entry.js +12 -12
  439. package/dist/esm/ion-action-sheet.entry.js +92 -44
  440. package/dist/esm/ion-alert.entry.js +143 -64
  441. package/dist/esm/ion-app_8.entry.js +112 -40
  442. package/dist/esm/ion-avatar_3.entry.js +4 -4
  443. package/dist/esm/ion-back-button.entry.js +6 -5
  444. package/dist/esm/ion-backdrop.entry.js +2 -2
  445. package/dist/esm/ion-breadcrumb_2.entry.js +8 -7
  446. package/dist/esm/ion-button_2.entry.js +12 -8
  447. package/dist/esm/ion-card_5.entry.js +6 -5
  448. package/dist/esm/ion-checkbox.entry.js +10 -7
  449. package/dist/esm/ion-chip.entry.js +3 -3
  450. package/dist/esm/ion-col_3.entry.js +10 -6
  451. package/dist/esm/ion-datetime-button.entry.js +22 -25
  452. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +183 -745
  453. package/dist/esm/ion-fab_3.entry.js +7 -6
  454. package/dist/esm/ion-img.entry.js +7 -4
  455. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -5
  456. package/dist/esm/ion-input-otp.entry.js +20 -29
  457. package/dist/esm/ion-input-password-toggle.entry.js +9 -10
  458. package/dist/esm/ion-input.entry.js +56 -68
  459. package/dist/esm/ion-item-option_3.entry.js +21 -24
  460. package/dist/esm/ion-item_8.entry.js +38 -34
  461. package/dist/esm/ion-loading.entry.js +28 -14
  462. package/dist/esm/ion-menu_3.entry.js +23 -24
  463. package/dist/esm/ion-modal.entry.js +271 -149
  464. package/dist/esm/ion-nav_2.entry.js +30 -138
  465. package/dist/esm/ion-picker-column-option.entry.js +8 -13
  466. package/dist/esm/ion-picker-column.entry.js +218 -62
  467. package/dist/esm/ion-picker.entry.js +4 -4
  468. package/dist/esm/ion-popover.entry.js +50 -30
  469. package/dist/esm/ion-progress-bar.entry.js +6 -5
  470. package/dist/esm/ion-radio_2.entry.js +12 -11
  471. package/dist/esm/ion-range.entry.js +30 -25
  472. package/dist/esm/ion-refresher_2.entry.js +32 -24
  473. package/dist/esm/ion-reorder_2.entry.js +10 -9
  474. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  475. package/dist/esm/ion-route_4.entry.js +36 -30
  476. package/dist/esm/ion-searchbar.entry.js +27 -22
  477. package/dist/esm/ion-segment-content.entry.js +2 -2
  478. package/dist/esm/ion-segment-view.entry.js +5 -6
  479. package/dist/esm/ion-segment_2.entry.js +30 -26
  480. package/dist/esm/ion-select-modal.entry.js +93 -38
  481. package/dist/esm/ion-select_3.entry.js +495 -126
  482. package/dist/esm/ion-spinner.entry.js +5 -6
  483. package/dist/esm/ion-split-pane.entry.js +4 -4
  484. package/dist/esm/ion-tab-bar_2.entry.js +15 -12
  485. package/dist/esm/ion-tab_2.entry.js +8 -8
  486. package/dist/esm/ion-text.entry.js +5 -5
  487. package/dist/esm/ion-textarea.entry.js +55 -64
  488. package/dist/esm/ion-toast.entry.js +25 -20
  489. package/dist/esm/ion-toggle.entry.js +15 -13
  490. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-ZXjCXKH0.js} +13 -8
  491. package/dist/esm/ionic.js +6 -6
  492. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CWAgfQ1r.js} +14 -17
  493. package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-DZnIiOO_.js} +1 -1
  494. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  495. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  496. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  497. package/dist/esm/loader.js +5 -5
  498. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-ZuqDDdDW.js} +8 -8
  499. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  500. package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DKE0DgvE.js} +97 -58
  501. package/dist/esm/select-option-render-CRP_teb1.js +121 -0
  502. package/dist/esm/slot-mutation-controller-B5NpUZ-N.js +393 -0
  503. package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-Cv9gb3ja.js} +4 -3
  504. package/dist/esm/{swipe-back-ZUWwA-KF.js → swipe-back-De5HlmeM.js} +5 -5
  505. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  506. package/dist/html.html-data.json +54 -82
  507. package/dist/ionic/index.esm.js +1 -1
  508. package/dist/ionic/ionic.esm.js +1 -1
  509. package/dist/ionic/p-099b7f9f.entry.js +4 -0
  510. package/dist/ionic/p-0dcb7bb6.entry.js +4 -0
  511. package/dist/ionic/p-1347880c.entry.js +4 -0
  512. package/dist/ionic/p-191a651e.entry.js +4 -0
  513. package/dist/ionic/p-1f24cb24.entry.js +4 -0
  514. package/dist/ionic/p-271c3640.entry.js +4 -0
  515. package/dist/ionic/p-2ea4bb36.entry.js +4 -0
  516. package/dist/ionic/p-338a02e0.entry.js +4 -0
  517. package/dist/ionic/p-38b9375b.entry.js +4 -0
  518. package/dist/ionic/p-3bba83ee.entry.js +4 -0
  519. package/dist/ionic/p-3e01c744.entry.js +4 -0
  520. package/dist/ionic/p-458715a9.entry.js +4 -0
  521. package/dist/ionic/p-4712a8a9.entry.js +4 -0
  522. package/dist/ionic/p-4c3e50f8.entry.js +4 -0
  523. package/dist/ionic/p-54cbb0a7.entry.js +4 -0
  524. package/dist/ionic/{p-2bb2cb18.entry.js → p-561af487.entry.js} +1 -1
  525. package/dist/ionic/p-5906ea6f.entry.js +4 -0
  526. package/dist/ionic/p-5cc09b40.entry.js +4 -0
  527. package/dist/ionic/p-5d9094ac.entry.js +4 -0
  528. package/dist/ionic/p-612ea3b1.entry.js +4 -0
  529. package/dist/ionic/p-68cc89a6.entry.js +4 -0
  530. package/dist/ionic/{p-dfa8d673.entry.js → p-6e386853.entry.js} +1 -1
  531. package/dist/ionic/p-77c96e08.entry.js +4 -0
  532. package/dist/ionic/p-7bfeccb3.entry.js +4 -0
  533. package/dist/ionic/p-7e394cc3.entry.js +4 -0
  534. package/dist/ionic/{p-0fa9c382.entry.js → p-7fbb3319.entry.js} +1 -1
  535. package/dist/ionic/p-803059b6.entry.js +4 -0
  536. package/dist/ionic/p-837db1b9.entry.js +4 -0
  537. package/dist/ionic/p-85599fe3.entry.js +4 -0
  538. package/dist/ionic/p-8b80d9f9.entry.js +4 -0
  539. package/dist/ionic/p-90f50a65.entry.js +4 -0
  540. package/dist/ionic/p-9595e305.entry.js +4 -0
  541. package/dist/ionic/p-9c5f2691.entry.js +4 -0
  542. package/dist/ionic/p-9ee9c5b6.entry.js +4 -0
  543. package/dist/ionic/p-BMPN55of.js +4 -0
  544. package/dist/ionic/p-BMiZX1LT.js +4 -0
  545. package/dist/ionic/p-BSQPZ79H.js +4 -0
  546. package/dist/ionic/p-BY6BzzPF.js +4 -0
  547. package/dist/ionic/p-B_gJaBk0.js +4 -0
  548. package/dist/ionic/p-BaeKWZ-a.js +4 -0
  549. package/dist/ionic/p-Bd72UYI2.js +4 -0
  550. package/dist/ionic/p-BgOvhHy_.js +4 -0
  551. package/dist/ionic/p-BhamHSw3.js +4 -0
  552. package/dist/ionic/p-BijjLYjT.js +4 -0
  553. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  554. package/dist/ionic/p-C23AVPx9.js +6 -0
  555. package/dist/ionic/p-C8XilMh0.js +4 -0
  556. package/dist/ionic/p-CER8qW8Y.js +4 -0
  557. package/dist/ionic/p-CFuOr1Tu.js +4 -0
  558. package/dist/ionic/p-CM5OBjTW.js +4 -0
  559. package/dist/ionic/p-CMZYmFb4.js +4 -0
  560. package/dist/ionic/p-CkxVYPtX.js +4 -0
  561. package/dist/ionic/p-CmXuiRT6.js +4 -0
  562. package/dist/ionic/p-D0YpjgON.js +4 -0
  563. package/dist/ionic/p-D5t_-oMk.js +4 -0
  564. package/dist/ionic/p-D6rHcCvc.js +4 -0
  565. package/dist/ionic/p-D7jHfs0Y.js +4 -0
  566. package/dist/ionic/p-DLM95R4x.js +4 -0
  567. package/dist/ionic/p-DTxBioUO.js +4 -0
  568. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  569. package/dist/ionic/p-DYUjHcuH.js +4 -0
  570. package/{components/p-BkKAANMJ.js → dist/ionic/p-DZ6Hmc-8.js} +1 -1
  571. package/dist/ionic/p-D_gb-kdd.js +4 -0
  572. package/dist/ionic/p-DajLgJ4d.js +4 -0
  573. package/dist/ionic/p-Do3zTvCA.js +4 -0
  574. package/dist/ionic/p-Dojwmvde.js +4 -0
  575. package/dist/ionic/p-T71k3C35.js +4 -0
  576. package/dist/ionic/p-a8df96c8.entry.js +4 -0
  577. package/dist/ionic/p-a8ff2489.entry.js +4 -0
  578. package/dist/ionic/p-aff52029.entry.js +4 -0
  579. package/dist/ionic/p-b3532b8d.entry.js +4 -0
  580. package/dist/ionic/p-b9b4e85d.entry.js +4 -0
  581. package/dist/ionic/p-byZM6qHV.js +4 -0
  582. package/dist/ionic/{p-c6e49f3f.entry.js → p-ca1b8865.entry.js} +1 -1
  583. package/dist/ionic/p-cc4320d3.entry.js +4 -0
  584. package/dist/ionic/p-d526798a.entry.js +4 -0
  585. package/dist/ionic/p-d6755739.entry.js +4 -0
  586. package/dist/ionic/p-d8c138d9.entry.js +4 -0
  587. package/dist/ionic/p-db449915.entry.js +4 -0
  588. package/dist/ionic/p-dd01be0a.entry.js +4 -0
  589. package/dist/ionic/p-ec00fd0d.entry.js +4 -0
  590. package/dist/ionic/p-ee09ac9d.entry.js +4 -0
  591. package/dist/ionic/{p-37e720da.entry.js → p-efc0cf82.entry.js} +1 -1
  592. package/dist/ionic/p-f0fb23c1.entry.js +4 -0
  593. package/dist/ionic/p-f83b3e0c.entry.js +4 -0
  594. package/dist/ionic/p-fa50d493.entry.js +4 -0
  595. package/dist/ionic/p-zWf7R2xV.js +4 -0
  596. package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
  597. package/dist/types/components/alert/alert.d.ts +7 -0
  598. package/dist/types/components/content/content.d.ts +12 -0
  599. package/dist/types/components/datetime/datetime.d.ts +5 -1
  600. package/dist/types/components/img/img.d.ts +2 -0
  601. package/dist/types/components/input/input.d.ts +12 -6
  602. package/dist/types/components/modal/gestures/sheet.d.ts +1 -0
  603. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  604. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  605. package/dist/types/components/modal/modal.d.ts +25 -7
  606. package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
  607. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  608. package/dist/types/components/nav/nav.d.ts +2 -22
  609. package/dist/types/components/picker-column/picker-column.d.ts +42 -0
  610. package/dist/types/components/range/range.d.ts +4 -1
  611. package/dist/types/components/refresher/refresher.d.ts +7 -0
  612. package/dist/types/components/route/route.d.ts +1 -1
  613. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  614. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  615. package/dist/types/components/select/select-interface.d.ts +31 -0
  616. package/dist/types/components/select/select.d.ts +30 -6
  617. package/dist/types/components/select-option/select-option.d.ts +42 -1
  618. package/dist/types/components/textarea/textarea.d.ts +12 -5
  619. package/dist/types/components.d.ts +79 -316
  620. package/dist/types/index.d.ts +1 -1
  621. package/dist/types/interface.d.ts +0 -1
  622. package/dist/types/stencil-public-runtime.d.ts +12 -0
  623. package/dist/types/utils/config.d.ts +1 -8
  624. package/dist/types/utils/content/index.d.ts +12 -0
  625. package/dist/types/utils/forms/index.d.ts +1 -0
  626. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  627. package/dist/types/utils/helpers.d.ts +8 -5
  628. package/dist/types/utils/logging/index.d.ts +2 -1
  629. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  630. package/dist/types/utils/overlays.d.ts +20 -9
  631. package/dist/types/utils/rtl/dir.d.ts +10 -4
  632. package/dist/types/utils/sanitization/index.d.ts +58 -2
  633. package/dist/types/utils/select-option-render.d.ts +53 -0
  634. package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
  635. package/dist/types/utils/test/playwright/index.d.ts +1 -0
  636. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  637. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  638. package/hydrate/index.js +2998 -2155
  639. package/hydrate/index.mjs +2998 -2155
  640. package/loader/index.d.ts +1 -1
  641. package/package.json +58 -14
  642. package/components/ion-picker-legacy-column.d.ts +0 -11
  643. package/components/ion-picker-legacy-column.js +0 -4
  644. package/components/ion-picker-legacy.d.ts +0 -11
  645. package/components/ion-picker-legacy.js +0 -4
  646. package/components/p-A3O24YmY.js +0 -4
  647. package/components/p-ABkNVeU9.js +0 -4
  648. package/components/p-B-JJgYSG.js +0 -4
  649. package/components/p-BB42Mlnr.js +0 -4
  650. package/components/p-BLmJ0zRm.js +0 -4
  651. package/components/p-BSEgsdFI.js +0 -4
  652. package/components/p-BTEOs1at.js +0 -4
  653. package/components/p-BlIAuGv2.js +0 -4
  654. package/components/p-Bnsn6KaP.js +0 -4
  655. package/components/p-BsBCoGa-.js +0 -4
  656. package/components/p-Bz0dSlXZ.js +0 -4
  657. package/components/p-C53feagD.js +0 -4
  658. package/components/p-CHqRYvYm.js +0 -4
  659. package/components/p-CQGnMY3n.js +0 -4
  660. package/components/p-CSZf8_j0.js +0 -4
  661. package/components/p-C_xFdyXe.js +0 -4
  662. package/components/p-Cf2jSDS8.js +0 -4
  663. package/components/p-CkMSOsFF.js +0 -4
  664. package/components/p-Cl0B-RWe.js +0 -4
  665. package/components/p-CmR5uXej.js +0 -4
  666. package/components/p-CsNJ1ULL.js +0 -4
  667. package/components/p-CtWGkNnJ.js +0 -4
  668. package/components/p-CzCbeKys.js +0 -4
  669. package/components/p-D-aHdMxW.js +0 -4
  670. package/components/p-D0d8qTwj.js +0 -4
  671. package/components/p-D13Eaw-8.js +0 -4
  672. package/components/p-D3xo7hqU.js +0 -4
  673. package/components/p-D6Ynv7Xh.js +0 -4
  674. package/components/p-DCnGU1fF.js +0 -4
  675. package/components/p-DGZpx6KJ.js +0 -4
  676. package/components/p-DGvrK8dD.js +0 -4
  677. package/components/p-DHTSTb52.js +0 -4
  678. package/components/p-DOFCbuQR.js +0 -4
  679. package/components/p-DRugphUN.js +0 -4
  680. package/components/p-DV5mPYQS.js +0 -4
  681. package/components/p-DWkAgceV.js +0 -4
  682. package/components/p-DiVJyqlX.js +0 -4
  683. package/components/p-KEFO0w3i.js +0 -4
  684. package/components/p-Osve4qkc.js +0 -4
  685. package/components/p-SLS1rDZM.js +0 -4
  686. package/components/p-VWbRkLT7.js +0 -4
  687. package/components/p-aJ6PBUvj.js +0 -4
  688. package/components/p-cyNmxje6.js +0 -4
  689. package/components/p-k_E4tX5Z.js +0 -4
  690. package/components/p-oD4kcBRX.js +0 -4
  691. package/components/p-scxfI1Dd.js +0 -4
  692. package/components/p-yzCsOZE2.js +0 -4
  693. package/dist/cjs/config-xninhj0J.js +0 -201
  694. package/dist/cjs/dir-Cn0z1rJH.js +0 -20
  695. package/dist/cjs/input.utils-DetjmtH2.js +0 -150
  696. package/dist/cjs/notch-controller-18PzRGXd.js +0 -155
  697. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  698. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  699. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  700. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  701. package/dist/collection/components/picker-legacy/picker.js +0 -890
  702. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  703. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  704. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  705. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  706. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  707. package/dist/esm/config-DQCONYYp.js +0 -195
  708. package/dist/esm/dir-C53feagD.js +0 -18
  709. package/dist/esm/input.utils-Y6NgW8bw.js +0 -147
  710. package/dist/esm/notch-controller-DKDjU_O7.js +0 -153
  711. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  712. package/dist/ionic/p-06c232a4.entry.js +0 -4
  713. package/dist/ionic/p-0dc33652.entry.js +0 -4
  714. package/dist/ionic/p-10e833ef.entry.js +0 -4
  715. package/dist/ionic/p-20b1a044.entry.js +0 -4
  716. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  717. package/dist/ionic/p-2394a9a6.entry.js +0 -4
  718. package/dist/ionic/p-27d30585.entry.js +0 -4
  719. package/dist/ionic/p-2a05aa64.entry.js +0 -4
  720. package/dist/ionic/p-2b204c59.entry.js +0 -4
  721. package/dist/ionic/p-2fa58e80.entry.js +0 -4
  722. package/dist/ionic/p-3353c229.entry.js +0 -4
  723. package/dist/ionic/p-33704f20.entry.js +0 -4
  724. package/dist/ionic/p-34586ead.entry.js +0 -4
  725. package/dist/ionic/p-390ca786.entry.js +0 -4
  726. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  727. package/dist/ionic/p-4654ae1c.entry.js +0 -4
  728. package/dist/ionic/p-4745f534.entry.js +0 -4
  729. package/dist/ionic/p-4858af1f.entry.js +0 -4
  730. package/dist/ionic/p-4ac4f3d6.entry.js +0 -4
  731. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  732. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  733. package/dist/ionic/p-5018dfc8.entry.js +0 -4
  734. package/dist/ionic/p-50e1194a.entry.js +0 -4
  735. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  736. package/dist/ionic/p-5eb8e86d.entry.js +0 -4
  737. package/dist/ionic/p-65ebdf1b.entry.js +0 -4
  738. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  739. package/dist/ionic/p-7c319341.entry.js +0 -4
  740. package/dist/ionic/p-829367ed.entry.js +0 -4
  741. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  742. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  743. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  744. package/dist/ionic/p-8fce95d5.entry.js +0 -4
  745. package/dist/ionic/p-9eeaBrnk.js +0 -4
  746. package/dist/ionic/p-9f1103ce.entry.js +0 -4
  747. package/dist/ionic/p-9f9db3a2.entry.js +0 -4
  748. package/dist/ionic/p-BGqMS-oh.js +0 -4
  749. package/dist/ionic/p-BTEOs1at.js +0 -4
  750. package/dist/ionic/p-BUFIpxKM.js +0 -4
  751. package/dist/ionic/p-C0eMdTCW.js +0 -4
  752. package/dist/ionic/p-C53feagD.js +0 -4
  753. package/dist/ionic/p-CFlfIb2g.js +0 -4
  754. package/dist/ionic/p-CKvCXMs9.js +0 -4
  755. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  756. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  757. package/dist/ionic/p-CwdymDLH.js +0 -4
  758. package/dist/ionic/p-Cx3IXROA.js +0 -4
  759. package/dist/ionic/p-D-3ycHmd.js +0 -4
  760. package/dist/ionic/p-D13Eaw-8.js +0 -4
  761. package/dist/ionic/p-DC3RagnA.js +0 -4
  762. package/dist/ionic/p-DIuEbVLu.js +0 -4
  763. package/dist/ionic/p-DSG2s2Eb.js +0 -4
  764. package/dist/ionic/p-Dfbt-q2k.js +0 -4
  765. package/dist/ionic/p-DiVJyqlX.js +0 -4
  766. package/dist/ionic/p-DoJvtrbw.js +0 -4
  767. package/dist/ionic/p-DqN5EA2O.js +0 -4
  768. package/dist/ionic/p-DzWaWHGc.js +0 -4
  769. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  770. package/dist/ionic/p-SNAkTDfm.js +0 -4
  771. package/dist/ionic/p-VAemlbDS.js +0 -4
  772. package/dist/ionic/p-Wk5HzclC.js +0 -4
  773. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  774. package/dist/ionic/p-aaeedb6b.entry.js +0 -4
  775. package/dist/ionic/p-bfc9bb0f.entry.js +0 -4
  776. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  777. package/dist/ionic/p-c38b648e.entry.js +0 -4
  778. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  779. package/dist/ionic/p-ca2ab74d.entry.js +0 -4
  780. package/dist/ionic/p-d889ff6d.entry.js +0 -4
  781. package/dist/ionic/p-e0be05c5.entry.js +0 -4
  782. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  783. package/dist/ionic/p-fd7eebc4.entry.js +0 -4
  784. package/dist/ionic/p-mjKAFv89.js +0 -4
  785. package/dist/ionic/p-tcQvqkiX.js +0 -5
  786. package/dist/ionic/p-viFHDgRs.js +0 -4
  787. package/dist/ionic/p-xWb6fgfq.js +0 -4
  788. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  789. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  790. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  791. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  792. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  793. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  794. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -27,7 +27,7 @@ export const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden
27
27
  */
28
28
  export const focusFirstDescendant = (ref, fallbackElement) => {
29
29
  const firstInput = ref.querySelector(focusableQueryString);
30
- focusElementInContext(firstInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
30
+ focusElementInContext(firstInput, fallbackElement ?? ref);
31
31
  };
32
32
  /**
33
33
  * Focuses the last descendant in a context
@@ -42,7 +42,7 @@ export const focusFirstDescendant = (ref, fallbackElement) => {
42
42
  export const focusLastDescendant = (ref, fallbackElement) => {
43
43
  const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
44
44
  const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
45
- focusElementInContext(lastInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
45
+ focusElementInContext(lastInput, fallbackElement ?? ref);
46
46
  };
47
47
  /**
48
48
  * Focuses a particular element in a context. If the element
@@ -63,7 +63,7 @@ export const focusLastDescendant = (ref, fallbackElement) => {
63
63
  */
64
64
  const focusElementInContext = (hostToFocus, fallbackElement) => {
65
65
  let elementToFocus = hostToFocus;
66
- const shadowRoot = hostToFocus === null || hostToFocus === void 0 ? void 0 : hostToFocus.shadowRoot;
66
+ const shadowRoot = hostToFocus?.shadowRoot;
67
67
  if (shadowRoot) {
68
68
  // If there are no inner focusable elements, just focus the host element.
69
69
  elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  export * from './notch-controller';
5
+ export * from './start-container-controller';
5
6
  export * from './compare-with-utils';
6
7
  export * from './item-multiple-inputs';
7
8
  export * from './validity';
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { raf } from "../helpers";
5
+ import { isRTL } from "../rtl/index";
6
+ /**
7
+ * Applied to the host while the label is being repositioned. The
8
+ * component stylesheets style this class, so it must stay in sync with
9
+ * the `skip-label-transition` selector in those files. Renaming it here
10
+ * requires renaming it there too.
11
+ */
12
+ export const SKIP_LABEL_TRANSITION_CLASS = 'skip-label-transition';
13
+ /**
14
+ * Set on the host as an inline style. The component stylesheets declare
15
+ * this property and read it with `var()`, so it must stay in sync with
16
+ * the `--internal-start-container-adjustment` references in those files.
17
+ * Renaming it here requires renaming it there too.
18
+ */
19
+ export const START_CONTAINER_ADJUSTMENT_VAR = '--internal-start-container-adjustment';
20
+ /**
21
+ * A utility to measure and update the start container width adjustment
22
+ * for form components (input, textarea, select) with `fill="outline"`.
23
+ * This adjustment compensates for the start container width when
24
+ * positioning floating/stacked labels within the outline border.
25
+ *
26
+ * Measurement is deferred with raf() to avoid forcing layout during
27
+ * component updates, and a ResizeObserver watches for dynamic width
28
+ * changes (e.g., when web fonts load or async content changes).
29
+ *
30
+ * @internal
31
+ * @param el - The host element (ion-input, ion-textarea, or ion-select).
32
+ * @param getStartContainer - A callback that returns the start container element.
33
+ * @param shouldApplyAdjustment - A callback that determines whether the adjustment should be applied.
34
+ */
35
+ export const createStartContainerController = (el, getStartContainer, shouldApplyAdjustment) => {
36
+ let resizeObserver;
37
+ let observedContainer;
38
+ let measurementRaf;
39
+ let transitionRaf;
40
+ let appliedAdjustment;
41
+ const calculateAdjustment = () => {
42
+ const startSlot = getStartContainer();
43
+ if (!startSlot || !shouldApplyAdjustment()) {
44
+ return '';
45
+ }
46
+ /*
47
+ * Round to one decimal place so fractional widths produce a stable
48
+ * label offset when the start container is added, removed, or resized.
49
+ */
50
+ const startContainerWidth = startSlot.getBoundingClientRect().width;
51
+ const roundedWidth = Math.round(startContainerWidth * 10) / 10;
52
+ const sign = isRTL(el) ? '' : '-';
53
+ return roundedWidth ? `${sign}${roundedWidth}px` : '0px';
54
+ };
55
+ const scheduleAdjustmentUpdate = () => {
56
+ // Return if there is already a measurement queued to avoid a flicker
57
+ if (measurementRaf !== undefined) {
58
+ return;
59
+ }
60
+ /*
61
+ * Defer the measurement until the next animation frame so layout
62
+ * is measured after the current update has been applied.
63
+ */
64
+ measurementRaf = raf(() => {
65
+ measurementRaf = undefined;
66
+ const adjustment = calculateAdjustment();
67
+ // Only suppress the label transition when the label has to move
68
+ if (adjustment !== appliedAdjustment) {
69
+ // Discard a removal queued by an earlier change
70
+ if (transitionRaf !== undefined) {
71
+ cancelAnimationFrame(transitionRaf);
72
+ }
73
+ el.classList.add(SKIP_LABEL_TRANSITION_CLASS);
74
+ el.style.setProperty(START_CONTAINER_ADJUSTMENT_VAR, adjustment);
75
+ appliedAdjustment = adjustment;
76
+ // Re-enable the transition once the new offset has been painted
77
+ transitionRaf = raf(() => {
78
+ transitionRaf = undefined;
79
+ el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
80
+ });
81
+ }
82
+ setupResizeObserver();
83
+ });
84
+ };
85
+ const disconnectResizeObserver = () => {
86
+ if (resizeObserver) {
87
+ resizeObserver.disconnect();
88
+ resizeObserver = undefined;
89
+ observedContainer = undefined;
90
+ }
91
+ };
92
+ const setupResizeObserver = () => {
93
+ const startSlot = getStartContainer();
94
+ // Stop watching once the adjustment no longer applies
95
+ if (!startSlot || !shouldApplyAdjustment()) {
96
+ disconnectResizeObserver();
97
+ return;
98
+ }
99
+ // Return when prerendering or already watching this container
100
+ if (typeof ResizeObserver !== 'function' || (resizeObserver && observedContainer === startSlot)) {
101
+ return;
102
+ }
103
+ disconnectResizeObserver();
104
+ resizeObserver = new ResizeObserver(() => {
105
+ scheduleAdjustmentUpdate();
106
+ });
107
+ observedContainer = startSlot;
108
+ resizeObserver.observe(startSlot);
109
+ };
110
+ const calculateStartContainerWidth = () => {
111
+ scheduleAdjustmentUpdate();
112
+ };
113
+ const destroy = () => {
114
+ disconnectResizeObserver();
115
+ if (measurementRaf !== undefined) {
116
+ cancelAnimationFrame(measurementRaf);
117
+ measurementRaf = undefined;
118
+ }
119
+ // Tearing down mid-toggle would leave the transition disabled
120
+ if (transitionRaf !== undefined) {
121
+ cancelAnimationFrame(transitionRaf);
122
+ transitionRaf = undefined;
123
+ el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
124
+ }
125
+ // Re-apply from scratch if the element is connected again
126
+ appliedAdjustment = undefined;
127
+ };
128
+ return {
129
+ calculateStartContainerWidth,
130
+ destroy,
131
+ };
132
+ };
@@ -4,14 +4,13 @@
4
4
  import { componentOnReady } from "./helpers";
5
5
  // TODO(FW-2832): types
6
6
  export const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
7
- var _a;
8
7
  if (delegate) {
9
8
  return delegate.attachViewToDom(container, component, componentProps, cssClasses);
10
9
  }
11
10
  if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {
12
11
  throw new Error('framework delegate is missing');
13
12
  }
14
- const el = typeof component === 'string' ? (_a = container.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(component) : component;
13
+ const el = typeof component === 'string' ? container.ownerDocument?.createElement(component) : component;
15
14
  if (cssClasses) {
16
15
  cssClasses.forEach((c) => el.classList.add(c));
17
16
  }
@@ -36,7 +35,6 @@ export const CoreDelegate = () => {
36
35
  let BaseComponent;
37
36
  let Reference;
38
37
  const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {
39
- var _a, _b;
40
38
  BaseComponent = parentElement;
41
39
  let ChildComponent;
42
40
  /**
@@ -49,7 +47,7 @@ export const CoreDelegate = () => {
49
47
  * the element otherwise just get a reference
50
48
  * to the component.
51
49
  */
52
- const el = typeof userComponent === 'string' ? (_a = BaseComponent.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(userComponent) : userComponent;
50
+ const el = typeof userComponent === 'string' ? BaseComponent.ownerDocument?.createElement(userComponent) : userComponent;
53
51
  /**
54
52
  * Add any css classes passed in
55
53
  * via the cssClasses prop on the overlay.
@@ -81,7 +79,7 @@ export const CoreDelegate = () => {
81
79
  * that the overlay has not been presented yet and we need
82
80
  * to create the containing element with the specified classes.
83
81
  */
84
- const el = (_b = BaseComponent.ownerDocument) === null || _b === void 0 ? void 0 : _b.createElement('div');
82
+ const el = BaseComponent.ownerDocument?.createElement('div');
85
83
  // Add a class to track if the root element was created by the delegate.
86
84
  el.classList.add('ion-delegate-host');
87
85
  cssClasses.forEach((c) => el.classList.add(c));
@@ -121,7 +119,7 @@ export const CoreDelegate = () => {
121
119
  * in the event that a modal or popover is presented
122
120
  * with no child content.
123
121
  */
124
- return ChildComponent !== null && ChildComponent !== void 0 ? ChildComponent : BaseComponent;
122
+ return ChildComponent ?? BaseComponent;
125
123
  };
126
124
  const removeViewFromDom = () => {
127
125
  /**
@@ -12,8 +12,7 @@ class GestureController {
12
12
  * Creates a gesture delegate based on the GestureConfig passed
13
13
  */
14
14
  createGesture(config) {
15
- var _a;
16
- return new GestureDelegate(this, this.newID(), config.name, (_a = config.priority) !== null && _a !== void 0 ? _a : 0, !!config.disableScroll);
15
+ return new GestureDelegate(this, this.newID(), config.name, config.priority ?? 0, !!config.disableScroll);
17
16
  }
18
17
  /**
19
18
  * Creates a blocker that will block any other gesture events from firing. Set in the ion-gesture component.
@@ -10,7 +10,15 @@ export const createGesture = (config) => {
10
10
  let hasStartedPan = false;
11
11
  let hasFiredStart = true;
12
12
  let isMoveQueued = false;
13
- const finalConfig = Object.assign({ disableScroll: false, direction: 'x', gesturePriority: 0, passive: true, maxAngle: 40, threshold: 10 }, config);
13
+ const finalConfig = {
14
+ disableScroll: false,
15
+ direction: 'x',
16
+ gesturePriority: 0,
17
+ passive: true,
18
+ maxAngle: 40,
19
+ threshold: 10,
20
+ ...config,
21
+ };
14
22
  const canStart = finalConfig.canStart;
15
23
  const onWillStart = finalConfig.onWillStart;
16
24
  const onStart = finalConfig.onStart;
@@ -125,7 +133,7 @@ export const createGesture = (config) => {
125
133
  const blurActiveElement = () => {
126
134
  if (typeof document !== 'undefined') {
127
135
  const activeElement = document.activeElement;
128
- if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) {
136
+ if (activeElement?.blur) {
129
137
  activeElement.blur();
130
138
  }
131
139
  }
@@ -3,14 +3,10 @@
3
3
  */
4
4
  export const addEventListener = (el, // TODO(FW-2832): type
5
5
  eventName, callback, opts) => {
6
- // use event listener options when supported
7
- // otherwise it's just a boolean for the "capture" arg
8
- const listenerOpts = supportsPassive(el)
9
- ? {
10
- capture: !!opts.capture,
11
- passive: !!opts.passive,
12
- }
13
- : !!opts.capture;
6
+ const listenerOpts = {
7
+ capture: !!opts.capture,
8
+ passive: !!opts.passive,
9
+ };
14
10
  let add;
15
11
  let remove;
16
12
  if (el['__zone_symbol__addEventListener']) {
@@ -26,22 +22,3 @@ eventName, callback, opts) => {
26
22
  el[remove](eventName, callback, listenerOpts);
27
23
  };
28
24
  };
29
- const supportsPassive = (node) => {
30
- if (_sPassive === undefined) {
31
- try {
32
- const opts = Object.defineProperty({}, 'passive', {
33
- get: () => {
34
- _sPassive = true;
35
- },
36
- });
37
- node.addEventListener('optsTest', () => {
38
- return;
39
- }, opts);
40
- }
41
- catch (e) {
42
- _sPassive = false;
43
- }
44
- }
45
- return !!_sPassive;
46
- };
47
- let _sPassive;
@@ -28,7 +28,7 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
28
28
  * will still happen.
29
29
  */
30
30
  export const blockHardwareBackButton = () => {
31
- document.addEventListener('backbutton', () => { }); // eslint-disable-line
31
+ document.addEventListener('backbutton', () => { });
32
32
  };
33
33
  export const startHardwareBackButton = () => {
34
34
  const doc = document;
@@ -50,7 +50,7 @@ export const startHardwareBackButton = () => {
50
50
  doc.dispatchEvent(ev);
51
51
  const executeAction = async (handlerRegister) => {
52
52
  try {
53
- if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {
53
+ if (handlerRegister?.handler) {
54
54
  const result = handlerRegister.handler(processHandlers);
55
55
  if (result != null) {
56
56
  await result;
@@ -89,7 +89,7 @@ export const startHardwareBackButton = () => {
89
89
  if (shouldUseCloseWatcher()) {
90
90
  let watcher;
91
91
  const configureWatcher = () => {
92
- watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
92
+ watcher?.destroy();
93
93
  watcher = new win.CloseWatcher();
94
94
  /**
95
95
  * Once a close request happens
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { printIonError } from "./logging/index";
5
+ import { isRTL } from "./rtl/index";
5
6
  export const transitionEndAsync = (el, expectedDuration = 0) => {
6
7
  return new Promise((resolve) => {
7
8
  transitionEnd(el, expectedDuration, resolve);
@@ -277,18 +278,21 @@ export const pointerCoord = (ev) => {
277
278
  };
278
279
  /**
279
280
  * @hidden
280
- * Given a side, return if it should be on the end
281
- * based on the value of dir
282
- * @param side the side
283
- * @param isRTL whether the application dir is rtl
281
+ * Given a side, returns whether it resolves to the end side for the current
282
+ * direction. In RTL `start` is the end side, and in LTR `end` is.
283
+ *
284
+ * @param side The current side before being redefined based on the direction.
285
+ * @param hostEl The component's host element. The direction is resolved from
286
+ * it or its nearest ancestor that declares one. When omitted, the direction
287
+ * is resolved from the document.
284
288
  */
285
- export const isEndSide = (side) => {
286
- const isRTL = document.dir === 'rtl';
289
+ export const isEndSide = (side, hostEl) => {
290
+ const rtl = isRTL(hostEl);
287
291
  switch (side) {
288
292
  case 'start':
289
- return isRTL;
293
+ return rtl;
290
294
  case 'end':
291
- return !isRTL;
295
+ return !rtl;
292
296
  default:
293
297
  throw new Error(`"${side}" is not a valid value for [side]. Use "start" or "end" instead.`);
294
298
  }
@@ -318,8 +322,8 @@ export const debounce = (func, wait = 0) => {
318
322
  * @returns whether the keys are the same and the values are shallow equal.
319
323
  */
320
324
  export const shallowEqualStringMap = (map1, map2) => {
321
- map1 !== null && map1 !== void 0 ? map1 : (map1 = {});
322
- map2 !== null && map2 !== void 0 ? map2 : (map2 = {});
325
+ map1 ??= {};
326
+ map2 ??= {};
323
327
  if (map1 === map2) {
324
328
  return true;
325
329
  }
@@ -94,7 +94,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
94
94
  */
95
95
  const focusOut = () => {
96
96
  hasKeyboardBeenPresentedForTextField = false;
97
- win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
97
+ win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
98
98
  componentEl.removeEventListener('focusout', focusOut);
99
99
  };
100
100
  /**
@@ -114,13 +114,13 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
114
114
  return;
115
115
  }
116
116
  jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
117
- win === null || win === void 0 ? void 0 : win.addEventListener('ionKeyboardDidShow', keyboardShow);
117
+ win?.addEventListener('ionKeyboardDidShow', keyboardShow);
118
118
  componentEl.addEventListener('focusout', focusOut);
119
119
  };
120
120
  componentEl.addEventListener('focusin', focusIn);
121
121
  return () => {
122
122
  componentEl.removeEventListener('focusin', focusIn);
123
- win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
123
+ win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
124
124
  componentEl.removeEventListener('focusout', focusOut);
125
125
  };
126
126
  };
@@ -129,7 +129,6 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
129
129
  * focus an input but not have scroll assist run again.
130
130
  */
131
131
  const setManualFocus = (el) => {
132
- var _a;
133
132
  /**
134
133
  * If element is already focused then
135
134
  * a new focusin event will not be dispatched
@@ -154,7 +153,7 @@ const setManualFocus = (el) => {
154
153
  */
155
154
  const inputId = el.getAttribute('id');
156
155
  const label = el.closest(`label[for="${inputId}"]`);
157
- const activeElLabel = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest(`label[for="${inputId}"]`);
156
+ const activeElLabel = document.activeElement?.closest(`label[for="${inputId}"]`);
158
157
  if (label !== null && label === activeElLabel) {
159
158
  // If the label is the same as the active element label, then
160
159
  // we don't need to set the `SKIP_SCROLL_ASSIST` and reset focus.
@@ -4,8 +4,7 @@
4
4
  import { SCROLL_AMOUNT_PADDING } from "./common";
5
5
  const SCROLL_ASSIST_SPEED = 0.3;
6
6
  export const getScrollData = (componentEl, contentEl, keyboardHeight, platformHeight) => {
7
- var _a;
8
- const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
7
+ const itemEl = componentEl.closest('ion-item,[ion-item]') ?? componentEl;
9
8
  return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, platformHeight);
10
9
  };
11
10
  const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
@@ -26,7 +26,7 @@ const getResizeContainer = (resizeMode) => {
26
26
  * we can fall back to `body`.
27
27
  */
28
28
  const ionApp = doc.querySelector('ion-app');
29
- return ionApp !== null && ionApp !== void 0 ? ionApp : doc.body;
29
+ return ionApp ?? doc.body;
30
30
  };
31
31
  /**
32
32
  * Get the height of ion-app or body.
@@ -74,8 +74,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
74
74
  keyboardVisible = false;
75
75
  fireChangeCallback(keyboardVisible, resizeMode);
76
76
  };
77
- win === null || win === void 0 ? void 0 : win.addEventListener('keyboardWillShow', keyboardWillShowHandler);
78
- win === null || win === void 0 ? void 0 : win.addEventListener('keyboardWillHide', keyboardWillHideHandler);
77
+ win?.addEventListener('keyboardWillShow', keyboardWillShowHandler);
78
+ win?.addEventListener('keyboardWillHide', keyboardWillHideHandler);
79
79
  };
80
80
  const fireChangeCallback = (state, resizeMode) => {
81
81
  if (keyboardChangeCallback) {
@@ -152,8 +152,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
152
152
  });
153
153
  };
154
154
  const destroy = () => {
155
- win === null || win === void 0 ? void 0 : win.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
156
- win === null || win === void 0 ? void 0 : win.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
155
+ win?.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
156
+ win?.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
157
157
  keyboardWillShowHandler = keyboardWillHideHandler = undefined;
158
158
  };
159
159
  const isKeyboardVisible = () => keyboardVisible;
@@ -121,7 +121,7 @@ const fireKeyboardCloseEvent = (win) => {
121
121
  * layout viewport states
122
122
  */
123
123
  export const trackViewportChanges = (win) => {
124
- previousVisualViewport = Object.assign({}, currentVisualViewport);
124
+ previousVisualViewport = { ...currentVisualViewport };
125
125
  currentVisualViewport = copyVisualViewport(win.visualViewport);
126
126
  };
127
127
  /**
@@ -7,7 +7,28 @@ export var LogLevel;
7
7
  LogLevel["OFF"] = "OFF";
8
8
  LogLevel["ERROR"] = "ERROR";
9
9
  LogLevel["WARN"] = "WARN";
10
+ LogLevel["DEBUG"] = "DEBUG";
10
11
  })(LogLevel || (LogLevel = {}));
12
+ /**
13
+ * Ranks each level so an enabled check is a numeric comparison. A configured
14
+ * level logs anything whose rank is less than or equal to its own: `OFF` (0)
15
+ * logs nothing, `ERROR` (1) logs errors, `WARN` (2) logs errors and warnings,
16
+ * `DEBUG` (3) logs all of the above plus internal diagnostics.
17
+ */
18
+ const LOG_LEVEL_RANK = {
19
+ [LogLevel.OFF]: 0,
20
+ [LogLevel.ERROR]: 1,
21
+ [LogLevel.WARN]: 2,
22
+ [LogLevel.DEBUG]: 3,
23
+ };
24
+ /**
25
+ * Whether the configured level is verbose enough to log `minimum`. Levels set
26
+ * through a query parameter arrive as raw strings, hence the uppercasing.
27
+ */
28
+ const isLogLevelEnabled = (minimum) => {
29
+ const configured = String(config.get('logLevel', LogLevel.WARN)).toUpperCase();
30
+ return LOG_LEVEL_RANK[configured] >= LOG_LEVEL_RANK[minimum];
31
+ };
11
32
  /**
12
33
  * Logs a warning to the console with an Ionic prefix
13
34
  * to indicate the library that is warning the developer.
@@ -15,8 +36,7 @@ export var LogLevel;
15
36
  * @param message - The string message to be logged to the console.
16
37
  */
17
38
  export const printIonWarning = (message, ...params) => {
18
- const logLevel = config.get('logLevel', LogLevel.WARN);
19
- if ([LogLevel.WARN].includes(logLevel)) {
39
+ if (isLogLevelEnabled(LogLevel.WARN)) {
20
40
  return console.warn(`[Ionic Warning]: ${message}`, ...params);
21
41
  }
22
42
  };
@@ -28,8 +48,7 @@ export const printIonWarning = (message, ...params) => {
28
48
  * @param params - Additional arguments to supply to the console.error.
29
49
  */
30
50
  export const printIonError = (message, ...params) => {
31
- const logLevel = config.get('logLevel', LogLevel.ERROR);
32
- if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
51
+ if (isLogLevelEnabled(LogLevel.ERROR)) {
33
52
  return console.error(`[Ionic Error]: ${message}`, ...params);
34
53
  }
35
54
  };
@@ -49,7 +49,6 @@ const createMenuController = () => {
49
49
  const isOpen = async (menu) => {
50
50
  if (menu != null) {
51
51
  const menuEl = await get(menu);
52
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
53
52
  return menuEl !== undefined && menuEl.isOpen();
54
53
  }
55
54
  else {
@@ -185,7 +184,7 @@ const createMenuController = () => {
185
184
  registerAnimation('reveal', menuRevealAnimation);
186
185
  registerAnimation('push', menuPushAnimation);
187
186
  registerAnimation('overlay', menuOverlayAnimation);
188
- doc === null || doc === void 0 ? void 0 : doc.addEventListener('ionBackButton', (ev) => {
187
+ doc?.addEventListener('ionBackButton', (ev) => {
189
188
  const openMenu = _getOpenSync();
190
189
  if (openMenu) {
191
190
  ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
@@ -47,7 +47,7 @@ export var NotificationType;
47
47
  const HapticEngine = {
48
48
  getEngine() {
49
49
  const capacitor = getCapacitor();
50
- if (capacitor === null || capacitor === void 0 ? void 0 : capacitor.isPluginAvailable('Haptics')) {
50
+ if (capacitor?.isPluginAvailable('Haptics')) {
51
51
  // Capacitor
52
52
  return capacitor.Plugins.Haptics;
53
53
  }
@@ -68,8 +68,7 @@ const HapticEngine = {
68
68
  * the Vibrate API. This check avoids that error
69
69
  * if the browser does not support the Vibrate API.
70
70
  */
71
- if ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.getPlatform()) === 'web') {
72
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
71
+ if (capacitor?.getPlatform() === 'web') {
73
72
  return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
74
73
  }
75
74
  return true;
@@ -36,14 +36,14 @@ export var KeyboardResize;
36
36
  export const Keyboard = {
37
37
  getEngine() {
38
38
  const capacitor = getCapacitor();
39
- if (capacitor === null || capacitor === void 0 ? void 0 : capacitor.isPluginAvailable('Keyboard')) {
39
+ if (capacitor?.isPluginAvailable('Keyboard')) {
40
40
  return capacitor.Plugins.Keyboard;
41
41
  }
42
42
  return undefined;
43
43
  },
44
44
  getResizeMode() {
45
45
  const engine = this.getEngine();
46
- if (!(engine === null || engine === void 0 ? void 0 : engine.getResizeMode)) {
46
+ if (!engine?.getResizeMode) {
47
47
  return Promise.resolve(undefined);
48
48
  }
49
49
  return engine.getResizeMode().catch((e) => {
@@ -11,7 +11,7 @@ export var Style;
11
11
  export const StatusBar = {
12
12
  getEngine() {
13
13
  const capacitor = getCapacitor();
14
- if (capacitor === null || capacitor === void 0 ? void 0 : capacitor.isPluginAvailable('StatusBar')) {
14
+ if (capacitor?.isPluginAvailable('StatusBar')) {
15
15
  return capacitor.Plugins.StatusBar;
16
16
  }
17
17
  return undefined;
@@ -0,0 +1,45 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ // TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
5
+ /**
6
+ * Returns the default `labelPlacement` for a radio or checkbox option
7
+ * rendered inside an overlay. Defaults follow each mode's established
8
+ * option-row layout:
9
+ * - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
10
+ * interface flips iOS radio back to `"end"`. Checkbox is always
11
+ * `"end"` on iOS.
12
+ * - everything else (e.g. `md`): `"end"`.
13
+ *
14
+ * `interfaceType` is optional; only `"modal"` changes the result, so
15
+ * callers that aren't a modal can omit it.
16
+ *
17
+ * Used by `select-popover` and `select-modal` as the fallback when an
18
+ * option doesn't explicitly set `labelPlacement`.
19
+ */
20
+ export const getOverlayLabelPlacement = (mode, control, interfaceType) => {
21
+ if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
22
+ return 'start';
23
+ }
24
+ return 'end';
25
+ };
26
+ /**
27
+ * Returns the default `justify` for a radio or checkbox option rendered
28
+ * inside an overlay. Defaults follow each mode's option-row layout:
29
+ * - `ios`: `"space-between"` for radio in `alert` and `popover`. The
30
+ * `modal` interface falls back to `"start"`. Checkbox is always `"start"`
31
+ * on iOS.
32
+ * - everything else (e.g. `md`): `"start"`.
33
+ *
34
+ * `interfaceType` is optional; only `"modal"` changes the result, so
35
+ * callers that aren't a modal can omit it.
36
+ *
37
+ * Used by `select-popover` and `select-modal` as the fallback when an
38
+ * option doesn't explicitly set `justify`.
39
+ */
40
+ export const getOverlayLabelJustify = (mode, control, interfaceType) => {
41
+ if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
42
+ return 'space-between';
43
+ }
44
+ return 'start';
45
+ };