voyager-ionic-core 8.8.12 → 9.0.1

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 (812) 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-B4lxwJ8N.js +4 -0
  102. package/components/{p-rCa2eL0j.js → p-BF48Oc0v.js} +1 -1
  103. package/components/p-BJr2B5hZ.js +4 -0
  104. package/components/p-BMPN55of.js +4 -0
  105. package/components/p-BNBnVi_1.js +4 -0
  106. package/components/{p-C4t5ymfq.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-BWoa-cki.js +4 -0
  110. package/components/p-BYJRZKHa.js +4 -0
  111. package/components/p-B_gJaBk0.js +4 -0
  112. package/components/p-BgkOsq-d.js +4 -0
  113. package/components/p-BhamHSw3.js +4 -0
  114. package/components/p-Bi-it1EH.js +4 -0
  115. package/components/p-C-NbvXu4.js +4 -0
  116. package/components/p-C0493tbX.js +4 -0
  117. package/components/p-C09TXohi.js +4 -0
  118. package/components/p-C4VpVfrJ.js +4 -0
  119. package/components/p-CEW4RXZO.js +4 -0
  120. package/components/p-CG_zZq_I.js +4 -0
  121. package/components/{p-B9jFTlwE.js → p-CJgnoKcN.js} +1 -1
  122. package/components/p-CMRYD_yR.js +4 -0
  123. package/components/{p-lE_JGpHD.js → p-CNLioZ3B.js} +1 -1
  124. package/components/{p--JUspHvy.js → p-COO0eJOA.js} +1 -1
  125. package/components/p-CWAks_S_.js +4 -0
  126. package/{dist/ionic/p-KjNvRoEp.js → components/p-Cd1WaN-0.js} +1 -1
  127. package/components/p-CqbGBmqb.js +4 -0
  128. package/components/p-CrAKlX71.js +4 -0
  129. package/components/p-Cw6WocLJ.js +4 -0
  130. package/components/p-D0YpjgON.js +4 -0
  131. package/components/{p-BirPFsRD.js → p-D5w_FlVa.js} +1 -1
  132. package/components/p-D7-vHX0A.js +4 -0
  133. package/components/p-D7wDJdFn.js +4 -0
  134. package/components/p-DFLJvuRK.js +4 -0
  135. package/components/p-DGPjJNOU.js +4 -0
  136. package/components/p-DJR0R0e1.js +4 -0
  137. package/components/p-DL13ieTa.js +4 -0
  138. package/components/{p-DqLB8yFQ.js → p-DM1gJSMP.js} +1 -1
  139. package/components/p-DMBiAyOR.js +4 -0
  140. package/components/p-DWCzVL3Y.js +4 -0
  141. package/components/p-DZRZic9C.js +4 -0
  142. package/components/{p-DNQI6d-L.js → p-DhNuxvJH.js} +1 -1
  143. package/components/p-DiuOa1vw.js +4 -0
  144. package/components/p-Dj40C8gm.js +4 -0
  145. package/components/p-Djmz-ssp.js +4 -0
  146. package/components/p-DnBNYc7u.js +4 -0
  147. package/components/p-DngGb-NV.js +4 -0
  148. package/components/p-Dojwmvde.js +4 -0
  149. package/components/p-DwSXbQSz.js +4 -0
  150. package/components/p-DxhHlJln.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/{data-DLTUw-KF.js → format-bHU8N1g5.js} +48 -562
  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-BbqUBe2T.js +429 -0
  171. package/dist/cjs/{index-D81eLYUM.js → index-C74Q3t6a.js} +3 -2
  172. package/dist/cjs/{index-BERfRao3.js → index-CQfEIyLK.js} +5 -5
  173. package/dist/cjs/{index-aC4x3Fk3.js → index-DFNrCX7M.js} +6 -7
  174. package/dist/cjs/{index-CAvQ7Tka.js → index-DRPqwSvU.js} +13 -30
  175. package/dist/cjs/{index-Ct7gcRif.js → index-DXoo08JC.js} +321 -26
  176. package/dist/cjs/{index-CIrkNXqJ.js → index-DtvKGwdh.js} +34 -2
  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 +18 -10
  190. package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +25 -12
  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 +29 -30
  195. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +773 -796
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +93 -14
  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 +117 -33
  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 +307 -159
  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 +24 -14
  214. package/dist/cjs/ion-range.cjs.entry.js +30 -25
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +61 -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 -125
  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 +26 -19
  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 +36 -15
  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-Dv6qrMhm.js +38 -0
  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-TbKsuC-K.js → overlays-BR21NUIG.js} +120 -57
  244. package/dist/cjs/select-option-render-CrbLc-1j.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 +11 -4
  261. package/dist/collection/components/card/card.js +1 -1
  262. package/dist/collection/components/checkbox/checkbox.ios.css +18 -0
  263. package/dist/collection/components/checkbox/checkbox.js +19 -8
  264. package/dist/collection/components/checkbox/checkbox.md.css +18 -0
  265. package/dist/collection/components/col/col.js +7 -3
  266. package/dist/collection/components/content/content.js +56 -6
  267. package/dist/collection/components/datetime/datetime.ios.css +42 -2
  268. package/dist/collection/components/datetime/datetime.js +193 -79
  269. package/dist/collection/components/datetime/datetime.md.css +42 -1
  270. package/dist/collection/components/datetime/utils/data.js +13 -14
  271. package/dist/collection/components/datetime/utils/format.js +21 -11
  272. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  273. package/dist/collection/components/datetime/utils/parse.js +10 -10
  274. package/dist/collection/components/datetime/utils/state.js +8 -2
  275. package/dist/collection/components/datetime/utils/validate.js +4 -5
  276. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
  277. package/dist/collection/components/datetime-button/datetime-button.js +21 -25
  278. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
  279. package/dist/collection/components/fab-button/fab-button.js +114 -10
  280. package/dist/collection/components/footer/footer.js +1 -1
  281. package/dist/collection/components/header/header.js +2 -2
  282. package/dist/collection/components/img/img.js +6 -1
  283. package/dist/collection/components/input/input.ios.css +57 -26
  284. package/dist/collection/components/input/input.js +51 -64
  285. package/dist/collection/components/input/input.md.css +79 -43
  286. package/dist/collection/components/input-otp/input-otp.js +15 -24
  287. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -6
  288. package/dist/collection/components/item/item.ios.css +11 -0
  289. package/dist/collection/components/item/item.js +99 -15
  290. package/dist/collection/components/item/item.md.css +11 -0
  291. package/dist/collection/components/item-divider/item-divider.js +2 -2
  292. package/dist/collection/components/item-group/item-group.js +1 -1
  293. package/dist/collection/components/item-option/item-option.js +2 -2
  294. package/dist/collection/components/item-options/item-options.js +1 -1
  295. package/dist/collection/components/item-sliding/item-sliding.js +12 -16
  296. package/dist/collection/components/label/label.js +2 -2
  297. package/dist/collection/components/list/list.js +2 -2
  298. package/dist/collection/components/list-header/list-header.js +2 -2
  299. package/dist/collection/components/loading/loading.js +17 -5
  300. package/dist/collection/components/menu/menu.js +6 -8
  301. package/dist/collection/components/menu-button/menu-button.js +2 -2
  302. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  303. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  304. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  305. package/dist/collection/components/modal/gestures/sheet.js +47 -32
  306. package/dist/collection/components/modal/gestures/swipe-to-close.js +23 -33
  307. package/dist/collection/components/modal/gestures/utils.js +17 -0
  308. package/dist/collection/components/modal/modal.ios.css +8 -0
  309. package/dist/collection/components/modal/modal.js +158 -65
  310. package/dist/collection/components/modal/modal.md.css +8 -0
  311. package/dist/collection/components/modal/safe-area-utils.js +39 -5
  312. package/dist/collection/components/nav/nav.js +24 -235
  313. package/dist/collection/components/nav-link/nav-link.js +1 -1
  314. package/dist/collection/components/note/note.js +2 -2
  315. package/dist/collection/components/picker/picker.js +1 -2
  316. package/dist/collection/components/picker-column/picker-column.css +3 -0
  317. package/dist/collection/components/picker-column/picker-column.js +212 -58
  318. package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
  319. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  320. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  321. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  322. package/dist/collection/components/popover/popover.ios.css +15 -0
  323. package/dist/collection/components/popover/popover.js +32 -9
  324. package/dist/collection/components/popover/popover.md.css +15 -0
  325. package/dist/collection/components/popover/utils.js +4 -6
  326. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  327. package/dist/collection/components/radio/radio.ios.css +11 -15
  328. package/dist/collection/components/radio/radio.js +17 -9
  329. package/dist/collection/components/radio/radio.md.css +11 -11
  330. package/dist/collection/components/radio-group/radio-group.js +2 -2
  331. package/dist/collection/components/range/range.js +24 -19
  332. package/dist/collection/components/refresher/refresher.js +49 -16
  333. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  334. package/dist/collection/components/reorder/reorder.js +1 -1
  335. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  336. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  337. package/dist/collection/components/route/route.js +1 -1
  338. package/dist/collection/components/router/router.js +2 -6
  339. package/dist/collection/components/router/utils/dom.js +25 -7
  340. package/dist/collection/components/router/utils/matching.js +6 -9
  341. package/dist/collection/components/router/utils/parser.js +1 -1
  342. package/dist/collection/components/router/utils/path.js +0 -1
  343. package/dist/collection/components/router-link/router-link.js +2 -2
  344. package/dist/collection/components/router-outlet/router-outlet.js +49 -10
  345. package/dist/collection/components/row/row.js +1 -1
  346. package/dist/collection/components/searchbar/searchbar.js +25 -20
  347. package/dist/collection/components/segment/segment.js +9 -11
  348. package/dist/collection/components/segment-button/segment-button.js +15 -9
  349. package/dist/collection/components/segment-content/segment-content.js +1 -1
  350. package/dist/collection/components/segment-view/segment-view.js +3 -4
  351. package/dist/collection/components/select/select.ios.css +96 -69
  352. package/dist/collection/components/select/select.js +405 -91
  353. package/dist/collection/components/select/select.md.css +118 -85
  354. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  355. package/dist/collection/components/select-modal/select-modal.js +80 -27
  356. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  357. package/dist/collection/components/select-option/select-option.js +67 -3
  358. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  359. package/dist/collection/components/select-popover/select-popover.js +78 -26
  360. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  361. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  362. package/dist/collection/components/spinner/spinner.js +2 -3
  363. package/dist/collection/components/split-pane/split-pane.js +2 -2
  364. package/dist/collection/components/tab/tab.js +20 -13
  365. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  366. package/dist/collection/components/tab-button/tab-button.js +6 -4
  367. package/dist/collection/components/tabs/tabs.js +2 -3
  368. package/dist/collection/components/text/text.js +2 -2
  369. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  370. package/dist/collection/components/textarea/textarea.js +47 -57
  371. package/dist/collection/components/textarea/textarea.md.css +103 -77
  372. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  373. package/dist/collection/components/title/title.js +2 -2
  374. package/dist/collection/components/toast/toast.js +12 -9
  375. package/dist/collection/components/toggle/toggle.ios.css +12 -4
  376. package/dist/collection/components/toggle/toggle.js +27 -7
  377. package/dist/collection/components/toggle/toggle.md.css +42 -5
  378. package/dist/collection/components/toolbar/toolbar.js +7 -4
  379. package/dist/collection/global/config.js +3 -3
  380. package/dist/collection/global/ionic-global.js +8 -2
  381. package/dist/collection/index.js +1 -1
  382. package/dist/collection/utils/animation/animation.js +3 -3
  383. package/dist/collection/utils/config.js +5 -4
  384. package/dist/collection/utils/content/index.js +30 -0
  385. package/dist/collection/utils/focus-controller/index.js +1 -1
  386. package/dist/collection/utils/focus-trap.js +3 -3
  387. package/dist/collection/utils/forms/index.js +2 -0
  388. package/dist/collection/utils/forms/item-multiple-inputs.js +33 -0
  389. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  390. package/dist/collection/utils/framework-delegate.js +4 -6
  391. package/dist/collection/utils/gesture/gesture-controller.js +1 -2
  392. package/dist/collection/utils/gesture/index.js +10 -2
  393. package/dist/collection/utils/gesture/listener.js +4 -27
  394. package/dist/collection/utils/hardware-back-button.js +3 -3
  395. package/dist/collection/utils/helpers.js +14 -10
  396. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  397. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  398. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  399. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  400. package/dist/collection/utils/logging/index.js +23 -4
  401. package/dist/collection/utils/menu-controller/index.js +1 -2
  402. package/dist/collection/utils/native/haptic.js +2 -3
  403. package/dist/collection/utils/native/keyboard.js +2 -2
  404. package/dist/collection/utils/native/status-bar.js +1 -1
  405. package/dist/collection/utils/overlay-control-label.js +45 -0
  406. package/dist/collection/utils/overlays.js +109 -47
  407. package/dist/collection/utils/platform.js +4 -5
  408. package/dist/collection/utils/rtl/dir.js +17 -7
  409. package/dist/collection/utils/sanitization/index.js +275 -20
  410. package/dist/collection/utils/select-option-render.js +118 -0
  411. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  412. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  413. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +25 -0
  414. package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
  415. package/dist/collection/utils/test/playwright/drag-element.js +14 -0
  416. package/dist/collection/utils/test/playwright/generator.js +3 -4
  417. package/dist/collection/utils/test/playwright/index.js +2 -0
  418. package/dist/collection/utils/test/playwright/page/event-spy.js +2 -4
  419. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  420. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  421. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  422. package/dist/collection/utils/test/press-keys.js +6 -16
  423. package/dist/collection/utils/theme.js +6 -1
  424. package/dist/collection/utils/transition/ios.transition.js +9 -13
  425. package/dist/collection/utils/transition/md.transition.js +3 -4
  426. package/dist/docs.json +972 -1402
  427. package/dist/esm/{animation-DLJpuoEz.js → animation-BFNVlYum.js} +4 -4
  428. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-BgX0BGL1.js} +1 -1
  429. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BfOvDr3b.js} +3 -3
  430. package/dist/esm/config-DWCzVL3Y.js +32 -0
  431. package/dist/esm/dir-Dojwmvde.js +28 -0
  432. package/dist/esm/{data-DZI70dKr.js → format-DDFE9jM5.js} +41 -554
  433. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BwNhx9NR.js} +5 -7
  434. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-B_gJaBk0.js} +1 -2
  435. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  436. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DmkiRgOT.js} +4 -4
  437. package/dist/esm/{helpers-HEqiOzXb.js → helpers-BSmc0nst.js} +15 -11
  438. package/dist/esm/{index-CfgBF1SE.js → index-BmLuEdV7.js} +13 -30
  439. package/dist/esm/{index-Q6UPU0Ay.js → index-BuPaALjU.js} +6 -7
  440. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  441. package/dist/esm/{index-MEDq2S8l.js → index-C1b9CLFg.js} +33 -3
  442. package/dist/esm/{index-tcQvqkiX.js → index-C23AVPx9.js} +303 -26
  443. package/dist/esm/{index-BRHzoo00.js → index-CJln0gS3.js} +3 -2
  444. package/dist/esm/index-CqoUoxgG.js +423 -0
  445. package/dist/esm/{index-B_dQk_WE.js → index-DnA_7Bnx.js} +5 -5
  446. package/dist/esm/index.js +17 -15
  447. package/dist/esm/{input-shims-D10mwcw1.js → input-shims-Dqk-Ou25.js} +10 -11
  448. package/dist/esm/input.utils-rqoH22pW.js +33 -0
  449. package/dist/esm/ion-accordion_2.entry.js +12 -12
  450. package/dist/esm/ion-action-sheet.entry.js +92 -44
  451. package/dist/esm/ion-alert.entry.js +143 -64
  452. package/dist/esm/ion-app_8.entry.js +112 -40
  453. package/dist/esm/ion-avatar_3.entry.js +4 -4
  454. package/dist/esm/ion-back-button.entry.js +6 -5
  455. package/dist/esm/ion-backdrop.entry.js +2 -2
  456. package/dist/esm/ion-breadcrumb_2.entry.js +8 -7
  457. package/dist/esm/ion-button_2.entry.js +18 -10
  458. package/dist/esm/ion-card_5.entry.js +6 -5
  459. package/dist/esm/ion-checkbox.entry.js +25 -12
  460. package/dist/esm/ion-chip.entry.js +3 -3
  461. package/dist/esm/ion-col_3.entry.js +10 -6
  462. package/dist/esm/ion-datetime-button.entry.js +28 -29
  463. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +712 -733
  464. package/dist/esm/ion-fab_3.entry.js +93 -14
  465. package/dist/esm/ion-img.entry.js +7 -4
  466. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -5
  467. package/dist/esm/ion-input-otp.entry.js +20 -29
  468. package/dist/esm/ion-input-password-toggle.entry.js +9 -10
  469. package/dist/esm/ion-input.entry.js +56 -68
  470. package/dist/esm/ion-item-option_3.entry.js +21 -24
  471. package/dist/esm/ion-item_8.entry.js +117 -33
  472. package/dist/esm/ion-loading.entry.js +28 -14
  473. package/dist/esm/ion-menu_3.entry.js +23 -24
  474. package/dist/esm/ion-modal.entry.js +295 -147
  475. package/dist/esm/ion-nav_2.entry.js +30 -138
  476. package/dist/esm/ion-picker-column-option.entry.js +8 -13
  477. package/dist/esm/ion-picker-column.entry.js +218 -62
  478. package/dist/esm/ion-picker.entry.js +4 -4
  479. package/dist/esm/ion-popover.entry.js +50 -30
  480. package/dist/esm/ion-progress-bar.entry.js +6 -5
  481. package/dist/esm/ion-radio_2.entry.js +24 -14
  482. package/dist/esm/ion-range.entry.js +30 -25
  483. package/dist/esm/ion-refresher_2.entry.js +59 -24
  484. package/dist/esm/ion-reorder_2.entry.js +10 -9
  485. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  486. package/dist/esm/ion-route_4.entry.js +36 -30
  487. package/dist/esm/ion-searchbar.entry.js +27 -22
  488. package/dist/esm/ion-segment-content.entry.js +2 -2
  489. package/dist/esm/ion-segment-view.entry.js +5 -6
  490. package/dist/esm/ion-segment_2.entry.js +30 -26
  491. package/dist/esm/ion-select-modal.entry.js +93 -38
  492. package/dist/esm/ion-select_3.entry.js +495 -125
  493. package/dist/esm/ion-spinner.entry.js +5 -6
  494. package/dist/esm/ion-split-pane.entry.js +4 -4
  495. package/dist/esm/ion-tab-bar_2.entry.js +15 -12
  496. package/dist/esm/ion-tab_2.entry.js +26 -19
  497. package/dist/esm/ion-text.entry.js +5 -5
  498. package/dist/esm/ion-textarea.entry.js +55 -64
  499. package/dist/esm/ion-toast.entry.js +25 -20
  500. package/dist/esm/ion-toggle.entry.js +36 -15
  501. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-ZXjCXKH0.js} +13 -8
  502. package/dist/esm/ionic.js +6 -6
  503. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CWAgfQ1r.js} +14 -17
  504. package/dist/esm/item-multiple-inputs-DZnIiOO_.js +36 -0
  505. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  506. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  507. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  508. package/dist/esm/loader.js +5 -5
  509. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-ZuqDDdDW.js} +8 -8
  510. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  511. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DKE0DgvE.js} +119 -57
  512. package/dist/esm/select-option-render-1W6W9pbC.js +121 -0
  513. package/dist/esm/slot-mutation-controller-B5NpUZ-N.js +393 -0
  514. package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-Cv9gb3ja.js} +4 -3
  515. package/dist/esm/{swipe-back-ZUWwA-KF.js → swipe-back-De5HlmeM.js} +5 -5
  516. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  517. package/dist/html.html-data.json +58 -82
  518. package/dist/ionic/index.esm.js +1 -1
  519. package/dist/ionic/ionic.esm.js +1 -1
  520. package/dist/ionic/p-06c6b540.entry.js +4 -0
  521. package/dist/ionic/p-099b7f9f.entry.js +4 -0
  522. package/dist/ionic/p-0dcb7bb6.entry.js +4 -0
  523. package/dist/ionic/p-1347880c.entry.js +4 -0
  524. package/dist/ionic/p-191a651e.entry.js +4 -0
  525. package/dist/ionic/p-1f24cb24.entry.js +4 -0
  526. package/dist/ionic/p-271c3640.entry.js +4 -0
  527. package/dist/ionic/p-2c52fe3e.entry.js +4 -0
  528. package/dist/ionic/p-2ea4bb36.entry.js +4 -0
  529. package/dist/ionic/p-338a02e0.entry.js +4 -0
  530. package/dist/ionic/p-38b9375b.entry.js +4 -0
  531. package/dist/ionic/p-3bba83ee.entry.js +4 -0
  532. package/dist/ionic/p-4712a8a9.entry.js +4 -0
  533. package/dist/ionic/p-4c3e50f8.entry.js +4 -0
  534. package/dist/ionic/p-4e2fef42.entry.js +4 -0
  535. package/dist/ionic/p-54cbb0a7.entry.js +4 -0
  536. package/dist/ionic/{p-2bb2cb18.entry.js → p-561af487.entry.js} +1 -1
  537. package/dist/ionic/p-5906ea6f.entry.js +4 -0
  538. package/dist/ionic/p-5cc09b40.entry.js +4 -0
  539. package/dist/ionic/p-5d9094ac.entry.js +4 -0
  540. package/dist/ionic/p-612ea3b1.entry.js +4 -0
  541. package/dist/ionic/p-66f150ec.entry.js +4 -0
  542. package/dist/ionic/p-68cc89a6.entry.js +4 -0
  543. package/dist/ionic/{p-dfa8d673.entry.js → p-6e386853.entry.js} +1 -1
  544. package/dist/ionic/p-77c96e08.entry.js +4 -0
  545. package/dist/ionic/p-7bfeccb3.entry.js +4 -0
  546. package/dist/ionic/p-7e394cc3.entry.js +4 -0
  547. package/dist/ionic/{p-0fa9c382.entry.js → p-7fbb3319.entry.js} +1 -1
  548. package/dist/ionic/p-837db1b9.entry.js +4 -0
  549. package/dist/ionic/p-85599fe3.entry.js +4 -0
  550. package/dist/ionic/p-8b80d9f9.entry.js +4 -0
  551. package/dist/ionic/p-90f50a65.entry.js +4 -0
  552. package/dist/ionic/p-9595e305.entry.js +4 -0
  553. package/dist/ionic/p-9c5f2691.entry.js +4 -0
  554. package/dist/ionic/p-BMPN55of.js +4 -0
  555. package/dist/ionic/p-BSQPZ79H.js +4 -0
  556. package/dist/ionic/p-BY6BzzPF.js +4 -0
  557. package/dist/ionic/p-B_gJaBk0.js +4 -0
  558. package/dist/ionic/p-BaeKWZ-a.js +4 -0
  559. package/dist/ionic/p-Bd72UYI2.js +4 -0
  560. package/dist/ionic/p-BgOvhHy_.js +4 -0
  561. package/dist/ionic/p-BhamHSw3.js +4 -0
  562. package/dist/ionic/p-BijjLYjT.js +4 -0
  563. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  564. package/dist/ionic/p-C23AVPx9.js +6 -0
  565. package/dist/ionic/p-C8XilMh0.js +4 -0
  566. package/dist/ionic/p-CER8qW8Y.js +4 -0
  567. package/dist/ionic/p-CFuOr1Tu.js +4 -0
  568. package/dist/ionic/p-CM5OBjTW.js +4 -0
  569. package/dist/ionic/p-CMZYmFb4.js +4 -0
  570. package/dist/ionic/p-CkxVYPtX.js +4 -0
  571. package/dist/ionic/p-CmXuiRT6.js +4 -0
  572. package/dist/ionic/p-D0YpjgON.js +4 -0
  573. package/dist/ionic/p-D4OrdtJf.js +4 -0
  574. package/dist/ionic/p-D5t_-oMk.js +4 -0
  575. package/dist/ionic/p-D6rHcCvc.js +4 -0
  576. package/dist/ionic/p-DLM95R4x.js +4 -0
  577. package/dist/ionic/p-DTxBioUO.js +4 -0
  578. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  579. package/dist/ionic/p-DYUjHcuH.js +4 -0
  580. package/dist/ionic/p-DZ6Hmc-8.js +4 -0
  581. package/dist/ionic/p-D_gb-kdd.js +4 -0
  582. package/dist/ionic/p-DajLgJ4d.js +4 -0
  583. package/dist/ionic/p-Do3zTvCA.js +4 -0
  584. package/dist/ionic/p-Dojwmvde.js +4 -0
  585. package/dist/ionic/p-T71k3C35.js +4 -0
  586. package/dist/ionic/p-a1cc2861.entry.js +4 -0
  587. package/dist/ionic/p-a20a2ebe.entry.js +4 -0
  588. package/dist/ionic/p-a8ff2489.entry.js +4 -0
  589. package/dist/ionic/p-b3532b8d.entry.js +4 -0
  590. package/dist/ionic/p-b80c86c4.entry.js +4 -0
  591. package/dist/ionic/p-b9b4e85d.entry.js +4 -0
  592. package/dist/ionic/p-byZM6qHV.js +4 -0
  593. package/dist/ionic/p-c57fc396.entry.js +4 -0
  594. package/dist/ionic/{p-c6e49f3f.entry.js → p-ca1b8865.entry.js} +1 -1
  595. package/dist/ionic/p-cc4320d3.entry.js +4 -0
  596. package/dist/ionic/p-d6755739.entry.js +4 -0
  597. package/dist/ionic/p-d8c138d9.entry.js +4 -0
  598. package/dist/ionic/p-db449915.entry.js +4 -0
  599. package/dist/ionic/p-dd01be0a.entry.js +4 -0
  600. package/dist/ionic/p-ec00fd0d.entry.js +4 -0
  601. package/dist/ionic/p-ee09ac9d.entry.js +4 -0
  602. package/dist/ionic/{p-37e720da.entry.js → p-efc0cf82.entry.js} +1 -1
  603. package/dist/ionic/p-f0fb23c1.entry.js +4 -0
  604. package/dist/ionic/p-f83b3e0c.entry.js +4 -0
  605. package/dist/ionic/p-fU3rOYad.js +4 -0
  606. package/dist/ionic/p-zWf7R2xV.js +4 -0
  607. package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
  608. package/dist/types/components/alert/alert.d.ts +7 -0
  609. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  610. package/dist/types/components/content/content.d.ts +12 -0
  611. package/dist/types/components/datetime/datetime.d.ts +13 -1
  612. package/dist/types/components/fab-button/fab-button.d.ts +15 -0
  613. package/dist/types/components/img/img.d.ts +2 -0
  614. package/dist/types/components/input/input.d.ts +12 -6
  615. package/dist/types/components/item/item.d.ts +19 -0
  616. package/dist/types/components/modal/gestures/sheet.d.ts +1 -0
  617. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  618. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  619. package/dist/types/components/modal/modal.d.ts +25 -7
  620. package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
  621. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  622. package/dist/types/components/nav/nav.d.ts +2 -22
  623. package/dist/types/components/picker-column/picker-column.d.ts +42 -0
  624. package/dist/types/components/radio/radio.d.ts +1 -0
  625. package/dist/types/components/range/range.d.ts +4 -1
  626. package/dist/types/components/refresher/refresher.d.ts +7 -0
  627. package/dist/types/components/route/route.d.ts +1 -1
  628. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  629. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  630. package/dist/types/components/select/select-interface.d.ts +31 -0
  631. package/dist/types/components/select/select.d.ts +30 -6
  632. package/dist/types/components/select-option/select-option.d.ts +42 -1
  633. package/dist/types/components/tab/tab.d.ts +1 -1
  634. package/dist/types/components/textarea/textarea.d.ts +12 -5
  635. package/dist/types/components/toggle/toggle.d.ts +1 -0
  636. package/dist/types/components.d.ts +94 -318
  637. package/dist/types/index.d.ts +1 -1
  638. package/dist/types/interface.d.ts +0 -1
  639. package/dist/types/stencil-public-runtime.d.ts +12 -0
  640. package/dist/types/utils/config.d.ts +1 -8
  641. package/dist/types/utils/content/index.d.ts +12 -0
  642. package/dist/types/utils/forms/index.d.ts +2 -0
  643. package/dist/types/utils/forms/item-multiple-inputs.d.ts +13 -0
  644. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  645. package/dist/types/utils/helpers.d.ts +8 -5
  646. package/dist/types/utils/logging/index.d.ts +2 -1
  647. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  648. package/dist/types/utils/overlays.d.ts +20 -9
  649. package/dist/types/utils/rtl/dir.d.ts +10 -4
  650. package/dist/types/utils/sanitization/index.d.ts +58 -2
  651. package/dist/types/utils/select-option-render.d.ts +53 -0
  652. package/dist/types/utils/test/playwright/apply-keyboard-focus.d.ts +16 -0
  653. package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
  654. package/dist/types/utils/test/playwright/index.d.ts +2 -0
  655. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  656. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  657. package/hydrate/index.js +3341 -2197
  658. package/hydrate/index.mjs +3341 -2197
  659. package/loader/index.d.ts +1 -1
  660. package/package.json +61 -17
  661. package/components/ion-picker-legacy-column.d.ts +0 -11
  662. package/components/ion-picker-legacy-column.js +0 -4
  663. package/components/ion-picker-legacy.d.ts +0 -11
  664. package/components/ion-picker-legacy.js +0 -4
  665. package/components/p-0NRupjzW.js +0 -4
  666. package/components/p-5bE_Wz4Y.js +0 -4
  667. package/components/p-B60hm8Qv.js +0 -4
  668. package/components/p-BAYYcg3o.js +0 -4
  669. package/components/p-BLmJ0zRm.js +0 -4
  670. package/components/p-BSEgsdFI.js +0 -4
  671. package/components/p-BTEOs1at.js +0 -4
  672. package/components/p-BTPfOxsU.js +0 -4
  673. package/components/p-BT_5jSqG.js +0 -4
  674. package/components/p-Baq1XyAy.js +0 -4
  675. package/components/p-BjfgFSSR.js +0 -4
  676. package/components/p-BjoEPDW5.js +0 -4
  677. package/components/p-BnqQlm7c.js +0 -4
  678. package/components/p-BsPelv04.js +0 -4
  679. package/components/p-Bth-EzJ0.js +0 -4
  680. package/components/p-Bz0dSlXZ.js +0 -4
  681. package/components/p-C1aScSTo.js +0 -4
  682. package/components/p-C2lKgrXx.js +0 -4
  683. package/components/p-C53feagD.js +0 -4
  684. package/components/p-CHqRYvYm.js +0 -4
  685. package/components/p-CI3ncNZm.js +0 -4
  686. package/components/p-CSZf8_j0.js +0 -4
  687. package/components/p-CU5rbWAW.js +0 -4
  688. package/components/p-C_xFdyXe.js +0 -4
  689. package/components/p-Ciz1-FuE.js +0 -4
  690. package/components/p-Cl0B-RWe.js +0 -4
  691. package/components/p-CmR5uXej.js +0 -4
  692. package/components/p-CtWGkNnJ.js +0 -4
  693. package/components/p-CtukzcyX.js +0 -4
  694. package/components/p-D13Eaw-8.js +0 -4
  695. package/components/p-D5Ubpm7D.js +0 -4
  696. package/components/p-D6Ynv7Xh.js +0 -4
  697. package/components/p-D7bSXQD3.js +0 -4
  698. package/components/p-DDWp95gH.js +0 -4
  699. package/components/p-DIE4pXMl.js +0 -4
  700. package/components/p-DOFCbuQR.js +0 -4
  701. package/components/p-DiVJyqlX.js +0 -4
  702. package/components/p-DnL1c9_X.js +0 -4
  703. package/components/p-W5nO8mX_.js +0 -4
  704. package/components/p-W9CZ2mWX.js +0 -4
  705. package/components/p-XlSIJDJ-.js +0 -4
  706. package/components/p-cyNmxje6.js +0 -4
  707. package/components/p-dhLYXa7A.js +0 -4
  708. package/components/p-ijF0iCrA.js +0 -4
  709. package/components/p-k_E4tX5Z.js +0 -4
  710. package/components/p-nQi4oKcG.js +0 -4
  711. package/components/p-ryqmO0B-.js +0 -4
  712. package/dist/cjs/config-xninhj0J.js +0 -201
  713. package/dist/cjs/dir-Cn0z1rJH.js +0 -20
  714. package/dist/cjs/input.utils-DetjmtH2.js +0 -150
  715. package/dist/cjs/notch-controller-18PzRGXd.js +0 -155
  716. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  717. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  718. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  719. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  720. package/dist/collection/components/picker-legacy/picker.js +0 -890
  721. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  722. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  723. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  724. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  725. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  726. package/dist/esm/config-DQCONYYp.js +0 -195
  727. package/dist/esm/dir-C53feagD.js +0 -18
  728. package/dist/esm/input.utils-Y6NgW8bw.js +0 -147
  729. package/dist/esm/notch-controller-DKDjU_O7.js +0 -153
  730. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  731. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  732. package/dist/ionic/p-06c232a4.entry.js +0 -4
  733. package/dist/ionic/p-0d005398.entry.js +0 -4
  734. package/dist/ionic/p-1ae21e4c.entry.js +0 -4
  735. package/dist/ionic/p-20b1a044.entry.js +0 -4
  736. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  737. package/dist/ionic/p-2394a9a6.entry.js +0 -4
  738. package/dist/ionic/p-27d30585.entry.js +0 -4
  739. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  740. package/dist/ionic/p-30bf9737.entry.js +0 -4
  741. package/dist/ionic/p-3353c229.entry.js +0 -4
  742. package/dist/ionic/p-33704f20.entry.js +0 -4
  743. package/dist/ionic/p-390ca786.entry.js +0 -4
  744. package/dist/ionic/p-3a126bca.entry.js +0 -4
  745. package/dist/ionic/p-3a541154.entry.js +0 -4
  746. package/dist/ionic/p-3a7d1e91.entry.js +0 -4
  747. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  748. package/dist/ionic/p-4745f534.entry.js +0 -4
  749. package/dist/ionic/p-4858af1f.entry.js +0 -4
  750. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  751. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  752. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  753. package/dist/ionic/p-50e1194a.entry.js +0 -4
  754. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  755. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  756. package/dist/ionic/p-81ea5652.entry.js +0 -4
  757. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  758. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  759. package/dist/ionic/p-8c8eee7d.entry.js +0 -4
  760. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  761. package/dist/ionic/p-8fce95d5.entry.js +0 -4
  762. package/dist/ionic/p-94f2a736.entry.js +0 -4
  763. package/dist/ionic/p-9a65ac7f.entry.js +0 -4
  764. package/dist/ionic/p-9eeaBrnk.js +0 -4
  765. package/dist/ionic/p-9f1103ce.entry.js +0 -4
  766. package/dist/ionic/p-BGqMS-oh.js +0 -4
  767. package/dist/ionic/p-BTEOs1at.js +0 -4
  768. package/dist/ionic/p-BUFIpxKM.js +0 -4
  769. package/dist/ionic/p-C53feagD.js +0 -4
  770. package/dist/ionic/p-CFlfIb2g.js +0 -4
  771. package/dist/ionic/p-CKvCXMs9.js +0 -4
  772. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  773. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  774. package/dist/ionic/p-CwdymDLH.js +0 -4
  775. package/dist/ionic/p-Cx3IXROA.js +0 -4
  776. package/dist/ionic/p-D13Eaw-8.js +0 -4
  777. package/dist/ionic/p-DAAFkPFT.js +0 -4
  778. package/dist/ionic/p-DC3RagnA.js +0 -4
  779. package/dist/ionic/p-DIuEbVLu.js +0 -4
  780. package/dist/ionic/p-DSG2s2Eb.js +0 -4
  781. package/dist/ionic/p-Dfbt-q2k.js +0 -4
  782. package/dist/ionic/p-DiVJyqlX.js +0 -4
  783. package/dist/ionic/p-DoJvtrbw.js +0 -4
  784. package/dist/ionic/p-DzWaWHGc.js +0 -4
  785. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  786. package/dist/ionic/p-SNAkTDfm.js +0 -4
  787. package/dist/ionic/p-VAemlbDS.js +0 -4
  788. package/dist/ionic/p-Wk5HzclC.js +0 -4
  789. package/dist/ionic/p-a21add2f.entry.js +0 -4
  790. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  791. package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
  792. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  793. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  794. package/dist/ionic/p-e0be05c5.entry.js +0 -4
  795. package/dist/ionic/p-e847a888.entry.js +0 -4
  796. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  797. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  798. package/dist/ionic/p-fabcce6c.entry.js +0 -4
  799. package/dist/ionic/p-facfde02.entry.js +0 -4
  800. package/dist/ionic/p-fd7eebc4.entry.js +0 -4
  801. package/dist/ionic/p-mjKAFv89.js +0 -4
  802. package/dist/ionic/p-tcQvqkiX.js +0 -5
  803. package/dist/ionic/p-viFHDgRs.js +0 -4
  804. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  805. package/dist/ionic/p-xWb6fgfq.js +0 -4
  806. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  807. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  808. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  809. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  810. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  811. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  812. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -314,10 +314,9 @@ const focusItem = (item) => {
314
314
  export const isTriggerElement = (el) => el.hasAttribute('data-ion-popover-trigger');
315
315
  export const configureKeyboardInteraction = (popoverEl) => {
316
316
  const callback = async (ev) => {
317
- var _a;
318
317
  const activeElement = document.activeElement;
319
318
  let items = [];
320
- const targetTagName = (_a = ev.target) === null || _a === void 0 ? void 0 : _a.tagName;
319
+ const targetTagName = ev.target?.tagName;
321
320
  /**
322
321
  * Only handle custom keyboard interactions for the host popover element
323
322
  * and children ion-item elements.
@@ -338,7 +337,7 @@ export const configureKeyboardInteraction = (popoverEl) => {
338
337
  items = Array.from(popoverEl.querySelectorAll('ion-item:not(ion-popover ion-popover *):not([disabled])'));
339
338
  /* eslint-disable-next-line */
340
339
  }
341
- catch (_b) { }
340
+ catch { }
342
341
  switch (ev.key) {
343
342
  /**
344
343
  * If we are in a child popover
@@ -421,7 +420,6 @@ export const configureKeyboardInteraction = (popoverEl) => {
421
420
  * and viewport dimensions.
422
421
  */
423
422
  export const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {
424
- var _a;
425
423
  let referenceCoordinates = {
426
424
  top: 0,
427
425
  left: 0,
@@ -466,8 +464,8 @@ export const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidt
466
464
  * as a whole.
467
465
  */
468
466
  const actualTriggerEl = (triggerEl ||
469
- ((_a = customEv === null || customEv === void 0 ? void 0 : customEv.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) ||
470
- (customEv === null || customEv === void 0 ? void 0 : customEv.target));
467
+ customEv?.detail?.ionShadowTarget ||
468
+ customEv?.target);
471
469
  if (!actualTriggerEl) {
472
470
  return defaultPosition;
473
471
  }
@@ -43,7 +43,7 @@ export class ProgressBar {
43
43
  const mode = getIonMode(this);
44
44
  // If the progress is displayed as a solid bar.
45
45
  const progressSolid = buffer === 1;
46
- return (h(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
46
+ return (h(Host, { key: 'd53d39a3e2c0198164a9face62d3775f357b6914', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
47
47
  [mode]: true,
48
48
  [`progress-bar-${type}`]: true,
49
49
  'progress-paused': paused,
@@ -130,6 +130,17 @@ input {
130
130
  width: auto;
131
131
  }
132
132
 
133
+ :host(.ion-focused) .radio-icon::after {
134
+ border-radius: var(--inner-border-radius);
135
+ display: block;
136
+ position: absolute;
137
+ width: 36px;
138
+ height: 36px;
139
+ background: var(--ion-color-primary-tint, #1a65eb);
140
+ content: "";
141
+ opacity: 0.2;
142
+ }
143
+
133
144
  .radio-wrapper {
134
145
  display: flex;
135
146
  position: relative;
@@ -456,21 +467,6 @@ input {
456
467
  opacity: 0.3;
457
468
  }
458
469
 
459
- :host(.ion-focused) .radio-icon::after {
460
- border-radius: var(--inner-border-radius);
461
- top: -8px;
462
- display: block;
463
- position: absolute;
464
- width: 36px;
465
- height: 36px;
466
- background: var(--ion-color-primary-tint, #1a65eb);
467
- content: "";
468
- opacity: 0.2;
469
- }
470
- :host(.ion-focused) .radio-icon::after {
471
- inset-inline-start: -9px;
472
- }
473
-
474
470
  .native-wrapper .radio-icon {
475
471
  width: 0.9375rem;
476
472
  height: 1.5rem;
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Host, h } from "@stencil/core";
5
- import { isOptionSelected } from "../../utils/forms/index";
4
+ import { Host, forceUpdate, h } from "@stencil/core";
5
+ import { createItemMultipleInputsObserver, isOptionSelected } from "../../utils/forms/index";
6
6
  import { addEventListener, removeEventListener } from "../../utils/helpers";
7
7
  import { createColorClasses, hostContext } from "../../utils/theme";
8
8
  import { getIonMode } from "../../global/ionic-global";
@@ -64,7 +64,7 @@ export class Radio {
64
64
  * Otherwise, the checked state should always be set
65
65
  * to true because the checked state cannot be toggled.
66
66
  */
67
- if (checked && (radioGroup === null || radioGroup === void 0 ? void 0 : radioGroup.allowEmptySelection)) {
67
+ if (checked && radioGroup?.allowEmptySelection) {
68
68
  this.checked = false;
69
69
  }
70
70
  else {
@@ -118,6 +118,7 @@ export class Radio {
118
118
  this.updateState();
119
119
  addEventListener(radioGroup, 'ionValueChange', this.updateState);
120
120
  }
121
+ this.itemFocusObserver = createItemMultipleInputsObserver(this.el, () => forceUpdate(this));
121
122
  }
122
123
  disconnectedCallback() {
123
124
  const radioGroup = this.radioGroup;
@@ -125,6 +126,10 @@ export class Radio {
125
126
  removeEventListener(radioGroup, 'ionValueChange', this.updateState);
126
127
  this.radioGroup = null;
127
128
  }
129
+ if (this.itemFocusObserver) {
130
+ this.itemFocusObserver.disconnect();
131
+ this.itemFocusObserver = undefined;
132
+ }
128
133
  }
129
134
  get hasLabel() {
130
135
  return this.el.textContent !== '';
@@ -136,7 +141,8 @@ export class Radio {
136
141
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
137
142
  const mode = getIonMode(this);
138
143
  const inItem = hostContext('ion-item', el);
139
- return (h(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
144
+ const inMultipleInputsItem = hostContext('ion-item.item-multiple-inputs', el);
145
+ return (h(Host, { key: 'ad7ac0bdc4d3216ecc19402e5b8d6f9e4d09334b', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
140
146
  [mode]: true,
141
147
  'in-item': inItem,
142
148
  'radio-checked': checked,
@@ -144,13 +150,15 @@ export class Radio {
144
150
  [`radio-justify-${justify}`]: justify !== undefined,
145
151
  [`radio-alignment-${alignment}`]: alignment !== undefined,
146
152
  [`radio-label-placement-${labelPlacement}`]: true,
147
- // Focus and active styling should not apply when the radio is in an item
153
+ // A single-input item has the input cover and draws the indicator itself.
154
+ // A multi-input item has no cover, so each control draws its own. Active
155
+ // styling stays suppressed either way.
148
156
  'ion-activatable': !inItem,
149
- 'ion-focusable': !inItem,
150
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, h("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
157
+ 'ion-focusable': !inItem || inMultipleInputsItem,
158
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '59c09125633120e2000447b8a3bc24c54490aa85', class: "radio-wrapper" }, h("div", { key: '1a98f3e0027deeac52647ba37aa9a99be0231966', class: {
151
159
  'label-text-wrapper': true,
152
160
  'label-text-wrapper-hidden': !hasLabel,
153
- }, part: "label" }, h("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), h("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
161
+ }, part: "label" }, h("slot", { key: '6a48e76ac8793d2aacebd3a8f193e3537272e5c2' })), h("div", { key: '68e4350bac8dad29c6b7a180560de2bb4dfc8c41', class: "native-wrapper" }, this.renderRadioControl()))));
154
162
  }
155
163
  static get is() { return "ion-radio"; }
156
164
  static get encapsulation() { return "shadow"; }
@@ -250,7 +258,7 @@ export class Radio {
250
258
  },
251
259
  "getter": false,
252
260
  "setter": false,
253
- "reflect": false,
261
+ "reflect": true,
254
262
  "attribute": "value"
255
263
  },
256
264
  "labelPlacement": {
@@ -130,6 +130,17 @@ input {
130
130
  width: auto;
131
131
  }
132
132
 
133
+ :host(.ion-focused) .radio-icon::after {
134
+ border-radius: var(--inner-border-radius);
135
+ display: block;
136
+ position: absolute;
137
+ width: 36px;
138
+ height: 36px;
139
+ background: var(--ion-color-primary-tint, #1a65eb);
140
+ content: "";
141
+ opacity: 0.2;
142
+ }
143
+
133
144
  .radio-wrapper {
134
145
  display: flex;
135
146
  position: relative;
@@ -477,17 +488,6 @@ input {
477
488
  opacity: 0.63;
478
489
  }
479
490
 
480
- :host(.ion-focused) .radio-icon::after {
481
- border-radius: var(--inner-border-radius);
482
- display: block;
483
- position: absolute;
484
- width: 36px;
485
- height: 36px;
486
- background: var(--ion-color-primary-tint, #1a65eb);
487
- content: "";
488
- opacity: 0.2;
489
- }
490
-
491
491
  .native-wrapper .radio-icon {
492
492
  width: 1.25rem;
493
493
  height: 1.25rem;
@@ -223,7 +223,7 @@ export class RadioGroup {
223
223
  /** @internal */
224
224
  async setFocus() {
225
225
  const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
226
- radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
226
+ radioToFocus?.setFocus();
227
227
  }
228
228
  /**
229
229
  * Renders the helper text or error text values
@@ -250,7 +250,7 @@ export class RadioGroup {
250
250
  const { label, labelId, el, name, value } = this;
251
251
  const mode = getIonMode(this);
252
252
  renderHiddenInput(true, el, name, value, false);
253
- return (h(Host, { key: '377e4aa3a656cc84b742f9d7a7d4be65d20c69f5', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: 'c3187a2497773b4f15cea3b413b036502bcec8c0' })));
253
+ return (h(Host, { key: '8d926a17e800adf0184274215c9689c96a8d6dfd', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: '2ff891123d5971a581b70d0886d23a074358c2dc' })));
254
254
  }
255
255
  static get is() { return "ion-radio-group"; }
256
256
  static get originalStyleUrls() {
@@ -64,7 +64,9 @@ export class Range {
64
64
  */
65
65
  this.name = this.rangeId;
66
66
  /**
67
- * Show two knobs.
67
+ * If `true`, the range shows two knobs and `value` is an object with `lower`
68
+ * and `upper` properties. If `false`, the range shows one knob and `value` is
69
+ * a number.
68
70
  */
69
71
  this.dualKnobs = false;
70
72
  /**
@@ -175,9 +177,9 @@ export class Range {
175
177
  const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
176
178
  const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
177
179
  const syncActivated = () => {
178
- this.activatedKnob = (knobHandleA === null || knobHandleA === void 0 ? void 0 : knobHandleA.classList.contains('ion-activated'))
180
+ this.activatedKnob = knobHandleA?.classList.contains('ion-activated')
179
181
  ? 'A'
180
- : (knobHandleB === null || knobHandleB === void 0 ? void 0 : knobHandleB.classList.contains('ion-activated'))
182
+ : knobHandleB?.classList.contains('ion-activated')
181
183
  ? 'B'
182
184
  : undefined;
183
185
  };
@@ -243,8 +245,7 @@ export class Range {
243
245
  // Check if focus is moving to another knob within the same range
244
246
  // by delaying the reset to allow the new focus to register
245
247
  setTimeout(() => {
246
- var _a;
247
- const activeElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;
248
+ const activeElement = this.el.shadowRoot?.activeElement;
248
249
  const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');
249
250
  if (!isStillFocusedOnKnob) {
250
251
  if (this.hasFocus) {
@@ -268,7 +269,12 @@ export class Range {
268
269
  * If debounce is undefined, we have to manually revert the ionInput emitter in case
269
270
  * debounce used to be set to a number. Otherwise, the event would stay debounced.
270
271
  */
271
- this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
272
+ this.ionInput = debounce === undefined ? originalIonInput ?? ionInput : debounceEvent(ionInput, debounce);
273
+ }
274
+ dualKnobsChanged() {
275
+ if (!this.noUpdate) {
276
+ this.updateRatio();
277
+ }
272
278
  }
273
279
  minChanged(newValue) {
274
280
  if (!isSafeNumber(newValue)) {
@@ -341,7 +347,6 @@ export class Range {
341
347
  this.didLoad = true;
342
348
  }
343
349
  connectedCallback() {
344
- var _a;
345
350
  this.updateRatio();
346
351
  this.debounceChanged();
347
352
  this.disabledChanged();
@@ -357,7 +362,7 @@ export class Range {
357
362
  this.setupActivatedObserver();
358
363
  }
359
364
  const ionContent = findClosestIonContent(this.el);
360
- this.contentEl = (_a = ionContent === null || ionContent === void 0 ? void 0 : ionContent.querySelector('.ion-content-scroll-host')) !== null && _a !== void 0 ? _a : ionContent;
365
+ this.contentEl = ionContent?.querySelector('.ion-content-scroll-host') ?? ionContent;
361
366
  }
362
367
  disconnectedCallback() {
363
368
  if (this.gesture) {
@@ -370,8 +375,7 @@ export class Range {
370
375
  }
371
376
  }
372
377
  getValue() {
373
- var _a;
374
- const value = (_a = this.value) !== null && _a !== void 0 ? _a : 0;
378
+ const value = this.value ?? 0;
375
379
  if (this.dualKnobs) {
376
380
  if (typeof value === 'object') {
377
381
  return value;
@@ -457,9 +461,8 @@ export class Range {
457
461
  * @param detail The details of the gesture or mouse event.
458
462
  */
459
463
  onEnd(detail) {
460
- var _a;
461
464
  const { contentEl, initialContentScrollY } = this;
462
- const currentX = (_a = detail.currentX) !== null && _a !== void 0 ? _a : detail.clientX;
465
+ const currentX = detail.currentX ?? detail.clientX;
463
466
  /**
464
467
  * The `pressedKnob` can be undefined if the user never
465
468
  * dragged the knob. They just tapped on the bar.
@@ -595,7 +598,6 @@ export class Range {
595
598
  return this.label !== undefined || this.el.querySelector('[slot="label"]') !== null;
596
599
  }
597
600
  renderRangeSlider() {
598
- var _a;
599
601
  const { min, max, step, handleKeyboard, activatedKnob, focusedKnob, hoveredKnob, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
600
602
  let barStart = `${ratioLower * 100}%`;
601
603
  let barEnd = `${100 - ratioUpper * 100}%`;
@@ -612,7 +614,7 @@ export class Range {
612
614
  * When the value is less than the activeBarStart or the min value,
613
615
  * the knob will display at the start of the active bar.
614
616
  */
615
- if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {
617
+ if (this.valA < (this.activeBarStart ?? this.min)) {
616
618
  /**
617
619
  * Sets the bar positions relative to the upper and lower limits.
618
620
  * Converts the ratio values into percentages, used as offsets for left/right styles.
@@ -760,7 +762,7 @@ export class Range {
760
762
  * Determine the name and position of the pressed knob to apply
761
763
  * Host classes for styling.
762
764
  */
763
- const pressedKnobName = dualKnobs ? pressedKnob === null || pressedKnob === void 0 ? void 0 : pressedKnob.toLowerCase() : undefined;
765
+ const pressedKnobName = dualKnobs ? pressedKnob?.toLowerCase() : undefined;
764
766
  const pressedKnobPosition = dualKnobs && pressedKnob ? getKnobPosition(pressedKnob, this.ratioA, this.ratioB, dualKnobs) : undefined;
765
767
  /**
766
768
  * Determine if any knob is at the min or max value to
@@ -769,7 +771,7 @@ export class Range {
769
771
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
770
772
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
771
773
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
772
- return (h(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
774
+ return (h(Host, { key: '72f253ee1514b4c5874a6720c2f954fae7a7c4d4', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
773
775
  [mode]: true,
774
776
  'in-item': inItem,
775
777
  'range-disabled': disabled,
@@ -783,10 +785,10 @@ export class Range {
783
785
  'range-item-end-adjustment': needsEndAdjustment,
784
786
  'range-value-min': valueAtMin,
785
787
  'range-value-max': valueAtMax,
786
- }) }, h("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, h("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
788
+ }) }, h("label", { key: '9b96b83a6118ee2a79d8adbb0a58197470308179', class: "range-wrapper", id: "range-label" }, h("div", { key: 'c7b31a7c87c20857a26624bd94501df6420fceec', class: {
787
789
  'label-text-wrapper': true,
788
790
  'label-text-wrapper-hidden': !hasLabel,
789
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, h("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), h("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
791
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '4ca15b9370097e140550489ff24979f3a959e65b', class: "native-wrapper" }, h("slot", { key: 'f110896c68741bad92239f98b6028cbe0ad5122f', name: "start" }), this.renderRangeSlider(), h("slot", { key: '5c4031c4403fa643ee2e11637b2420ddd8cbc4ce', name: "end" })))));
790
792
  }
791
793
  static get is() { return "ion-range"; }
792
794
  static get encapsulation() { return "shadow"; }
@@ -900,7 +902,7 @@ export class Range {
900
902
  "optional": false,
901
903
  "docs": {
902
904
  "tags": [],
903
- "text": "Show two knobs."
905
+ "text": "If `true`, the range shows two knobs and `value` is an object with `lower`\nand `upper` properties. If `false`, the range shows one knob and `value` is\na number."
904
906
  },
905
907
  "getter": false,
906
908
  "setter": false,
@@ -1277,6 +1279,9 @@ export class Range {
1277
1279
  return [{
1278
1280
  "propName": "debounce",
1279
1281
  "methodName": "debounceChanged"
1282
+ }, {
1283
+ "propName": "dualKnobs",
1284
+ "methodName": "dualKnobsChanged"
1280
1285
  }, {
1281
1286
  "propName": "min",
1282
1287
  "methodName": "minChanged"
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Host, h, readTask, writeTask } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
- import { getScrollElement, ION_CONTENT_CLASS_SELECTOR, ION_CONTENT_ELEMENT_SELECTOR, printIonContentErrorMsg, } from "../../utils/content/index";
6
+ import { findRefresherScrollHost, getScrollElement, ION_CONTENT_CLASS_SELECTOR, ION_CONTENT_ELEMENT_SELECTOR, printIonContentErrorMsg, } from "../../utils/content/index";
7
7
  import { clamp, componentOnReady, getElementRoot, raf, transitionEndAsync } from "../../utils/helpers";
8
8
  import { printIonError } from "../../utils/logging/index";
9
9
  import { ImpactStyle, hapticImpact } from "../../utils/native/haptic";
@@ -184,7 +184,7 @@ export class Refresher {
184
184
  * when the refresh completes
185
185
  */
186
186
  const activeElement = document.activeElement;
187
- if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {
187
+ if (activeElement?.blur !== undefined) {
188
188
  activeElement.blur();
189
189
  }
190
190
  /**
@@ -203,7 +203,16 @@ export class Refresher {
203
203
  });
204
204
  };
205
205
  this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);
206
- this.gesture = (await import('../../utils/gesture')).createGesture({
206
+ const { createGesture } = await import('../../utils/gesture');
207
+ /**
208
+ * Awaiting the dynamic import yields to the event loop, so the component can
209
+ * disconnect before it resolves. disconnectedCallback clears scrollEl, so a
210
+ * missing scrollEl here means there is nothing left to attach a gesture to.
211
+ */
212
+ if (!this.scrollEl) {
213
+ return;
214
+ }
215
+ this.gesture = createGesture({
207
216
  el: this.scrollEl,
208
217
  gestureName: 'refresher',
209
218
  gesturePriority: 31,
@@ -263,7 +272,16 @@ export class Refresher {
263
272
  refreshingCircle.style.setProperty('animation-delay', '-655ms');
264
273
  });
265
274
  }
266
- this.gesture = (await import('../../utils/gesture')).createGesture({
275
+ const { createGesture } = await import('../../utils/gesture');
276
+ /**
277
+ * Awaiting the dynamic import yields to the event loop, so the component can
278
+ * disconnect before it resolves. disconnectedCallback clears scrollEl, so a
279
+ * missing scrollEl here means there is nothing left to attach a gesture to.
280
+ */
281
+ if (!this.scrollEl) {
282
+ return;
283
+ }
284
+ this.gesture = createGesture({
267
285
  el: this.scrollEl,
268
286
  gestureName: 'refresher',
269
287
  gesturePriority: 31,
@@ -360,11 +378,18 @@ export class Refresher {
360
378
  componentDidUpdate() {
361
379
  this.checkNativeRefresher();
362
380
  }
363
- async connectedCallback() {
381
+ /**
382
+ * Validate the slot attribute before rendering, while the host still reflects the
383
+ * developer's original markup. `connectedCallback` is too early: in the custom
384
+ * elements build it runs during insertion, before frameworks such as React assign
385
+ * the slot.
386
+ */
387
+ componentWillLoad() {
364
388
  if (this.el.getAttribute('slot') !== 'fixed') {
365
389
  printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
366
- return;
367
390
  }
391
+ }
392
+ async connectedCallback() {
368
393
  const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
369
394
  if (!contentEl) {
370
395
  printIonContentErrorMsg(this.el);
@@ -375,14 +400,14 @@ export class Refresher {
375
400
  * or the background content element.
376
401
  */
377
402
  componentOnReady(contentEl, async () => {
378
- const customScrollTarget = contentEl.querySelector(ION_CONTENT_CLASS_SELECTOR);
403
+ const customScrollTarget = findRefresherScrollHost(contentEl);
379
404
  /**
380
405
  * Query the custom scroll target (if available), first. In refresher implementations,
381
406
  * the ion-refresher element will always be a direct child of ion-content (slot="fixed"). By
382
407
  * querying the custom scroll target first and falling back to the ion-content element,
383
408
  * the correct scroll element will be returned by the implementation.
384
409
  */
385
- this.scrollEl = await getScrollElement(customScrollTarget !== null && customScrollTarget !== void 0 ? customScrollTarget : contentEl);
410
+ this.scrollEl = await getScrollElement(customScrollTarget ?? contentEl);
386
411
  /**
387
412
  * Query the background content element from the host ion-content element directly.
388
413
  */
@@ -397,7 +422,16 @@ export class Refresher {
397
422
  this.setupNativeRefresher(contentEl);
398
423
  }
399
424
  else {
400
- this.gesture = (await import('../../utils/gesture')).createGesture({
425
+ const { createGesture } = await import('../../utils/gesture');
426
+ /**
427
+ * Awaiting the dynamic import yields to the event loop, so the component can
428
+ * disconnect before it resolves. A disconnected contentEl means there is
429
+ * nothing left to attach a gesture to.
430
+ */
431
+ if (!contentEl.isConnected) {
432
+ return;
433
+ }
434
+ this.gesture = createGesture({
401
435
  el: contentEl,
402
436
  gestureName: 'refresher',
403
437
  gesturePriority: 31,
@@ -628,7 +662,7 @@ export class Refresher {
628
662
  * This ensures the view stays at the top after refresh completes.
629
663
  */
630
664
  const activeElement = document.activeElement;
631
- if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {
665
+ if (activeElement?.blur !== undefined) {
632
666
  activeElement.blur();
633
667
  }
634
668
  // emit "refresh" because it was pulled down far enough
@@ -640,7 +674,6 @@ export class Refresher {
640
674
  close(state, delay) {
641
675
  // create fallback timer incase something goes wrong with transitionEnd event
642
676
  setTimeout(() => {
643
- var _a;
644
677
  this.state = 1 /* RefresherState.Inactive */;
645
678
  this.progress = 0;
646
679
  this.didStart = false;
@@ -658,7 +691,7 @@ export class Refresher {
658
691
  * does not change when refreshing is complete.
659
692
  */
660
693
  if (this.contentFullscreen && this.backgroundContentEl) {
661
- (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
694
+ this.backgroundContentEl?.style.removeProperty('--offset-top');
662
695
  }
663
696
  this.ionPullEnd.emit({
664
697
  reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
@@ -699,9 +732,9 @@ export class Refresher {
699
732
  if (this.scrollEl) {
700
733
  const { overflow, overflowX, overflowY } = this.scrollEl.style;
701
734
  this.overflowStyles = {
702
- overflow: overflow !== null && overflow !== void 0 ? overflow : '',
703
- overflowX: overflowX !== null && overflowX !== void 0 ? overflowX : '',
704
- overflowY: overflowY !== null && overflowY !== void 0 ? overflowY : '',
735
+ overflow: overflow ?? '',
736
+ overflowX: overflowX ?? '',
737
+ overflowY: overflowY ?? '',
705
738
  };
706
739
  }
707
740
  }
@@ -716,7 +749,7 @@ export class Refresher {
716
749
  }
717
750
  render() {
718
751
  const mode = getIonMode(this);
719
- return (h(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
752
+ return (h(Host, { key: 'fd9c8e51155d56f12148e8eb547e45c05807b4b5', slot: "fixed", class: {
720
753
  [mode]: true,
721
754
  // Used internally for styling
722
755
  [`refresher-${mode}`]: true,
@@ -48,7 +48,7 @@ export class RefresherContent {
48
48
  const pullingIcon = this.pullingIcon;
49
49
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
50
50
  const mode = getIonMode(this);
51
- return (h(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, h("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, h("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, h("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
51
+ return (h(Host, { key: 'a1546008813bbcfa70f97e9b9025846ee0aed722', class: mode }, h("div", { key: '5422771d67fe201e22d4f9d7db6b685f3db5d99d', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '5c2b6dfc3f01b42586ea83380548d454b220a7ca', class: "refresher-pulling-icon" }, h("div", { key: '2c3799ca3f66960d7081c63c5a0840951f694baf', class: "spinner-arrow-container" }, h("ion-spinner", { key: '03f766a9b9354dcb8f6975757a9b882c2eb5cf4a', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'e5f4ba7c6a70adb71f8985af0e23aca07d7b005a', class: "arrow-container" }, h("ion-icon", { key: 'ddccbd9164ae8daa97178fc53b52f74f1fd298ef', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '6fb742f47f9149fa6dc3daefe5aaa77f925da4bd', class: "refresher-pulling-icon" }, h("ion-icon", { key: '907657135eeac4c394be1eae4a659664a7bfacb0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'fb3094b3ed7e100ab9641c3221770889088e27f3', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'bc8078f94e7cea3cb6f03a09e98540f0e0b38721', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '8f39524f073aa828e941bcdd4d48e4d5dfc759c6', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
52
52
  }
53
53
  static get is() { return "ion-refresher-content"; }
54
54
  static get properties() {
@@ -20,7 +20,7 @@ export class Reorder {
20
20
  render() {
21
21
  const mode = getIonMode(this);
22
22
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
23
- return (h(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, h("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, h("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
23
+ return (h(Host, { key: 'f278c473b4695a6a93565100e4fcaa7f9e3e9ff5', class: mode }, h("slot", { key: 'cc26b5ed297f68a0bea82e27e34a7fe945186f4e' }, h("ion-icon", { key: '696f5e4c2b09e64bd08abf0d0818b1554cd29737', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
24
24
  }
25
25
  static get is() { return "ion-reorder"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -253,7 +253,7 @@ export class ReorderGroup {
253
253
  }
254
254
  render() {
255
255
  const mode = getIonMode(this);
256
- return (h(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
256
+ return (h(Host, { key: '779332508f44409696b6bab80eda72f9b1d7869d', class: {
257
257
  [mode]: true,
258
258
  'reorder-enabled': !this.disabled,
259
259
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -68,7 +68,7 @@ export class RippleEffect {
68
68
  }
69
69
  render() {
70
70
  const mode = getIonMode(this);
71
- return (h(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
71
+ return (h(Host, { key: '371350cb76e98338ef7467191aaaf817b1298b3f', role: "presentation", class: {
72
72
  [mode]: true,
73
73
  unbounded: this.unbounded,
74
74
  } }));
@@ -67,7 +67,7 @@ export class Route {
67
67
  "optional": false,
68
68
  "docs": {
69
69
  "tags": [],
70
- "text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-nav`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select."
70
+ "text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-router-outlet`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select."
71
71
  },
72
72
  "getter": false,
73
73
  "setter": false,
@@ -103,9 +103,8 @@ export class Router {
103
103
  * @param animation A custom animation to use for the transition.
104
104
  */
105
105
  async push(path, direction = 'forward', animation) {
106
- var _a;
107
106
  if (path.startsWith('.')) {
108
- const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
107
+ const currentPath = this.previousPath ?? '/';
109
108
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
110
109
  const url = new URL(path, `https://host/${currentPath}`);
111
110
  path = url.pathname + url.search + url.hash;
@@ -176,11 +175,10 @@ export class Router {
176
175
  return this.writeNavStateRoot(this.getSegments(), ROUTER_INTENT_NONE);
177
176
  }
178
177
  historyDirection() {
179
- var _a;
180
178
  const win = window;
181
179
  if (win.history.state === null) {
182
180
  this.state++;
183
- win.history.replaceState(this.state, win.document.title, (_a = win.document.location) === null || _a === void 0 ? void 0 : _a.href);
181
+ win.history.replaceState(this.state, win.document.title, win.document.location?.href);
184
182
  }
185
183
  const state = win.history.state;
186
184
  const lastState = this.lastState;
@@ -254,14 +252,12 @@ export class Router {
254
252
  }
255
253
  const routes = readRoutes(this.el);
256
254
  const fromChain = findChainForSegments(from, routes);
257
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
258
255
  const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;
259
256
  const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;
260
257
  if (canLeave === false || typeof canLeave === 'object') {
261
258
  return canLeave;
262
259
  }
263
260
  const toChain = findChainForSegments(to, routes);
264
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
265
261
  const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;
266
262
  return beforeEnterHook ? beforeEnterHook() : true;
267
263
  }