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
@@ -14,5 +14,5 @@ export { IonicConfig, getMode, setupConfig } from './utils/config';
14
14
  export { openURL } from './utils/theme';
15
15
  export { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_UNLOAD, } from './components/nav/constants';
16
16
  export { menuController } from './utils/menu-controller';
17
- export { alertController, actionSheetController, modalController, loadingController, pickerController, popoverController, toastController, } from './utils/overlays';
17
+ export { alertController, actionSheetController, modalController, loadingController, popoverController, toastController, } from './utils/overlays';
18
18
  export { IonicSlides } from './components/slides/IonicSlides';
@@ -19,7 +19,6 @@ export { LoadingOptions } from './components/loading/loading-interface';
19
19
  export { MenuCustomEvent, MenuI, MenuControllerI } from './components/menu/menu-interface';
20
20
  export { ModalOptions, ModalCustomEvent, ModalDragEventDetail } from './components/modal/modal-interface';
21
21
  export { NavDirection, NavCustomEvent } from './components/nav/nav-interface';
22
- export { PickerOptions, PickerColumnOption } from './components/picker-legacy/picker-interface';
23
22
  export { PopoverOptions } from './components/popover/popover-interface';
24
23
  export { RadioGroupCustomEvent } from './components/radio-group/radio-group-interface';
25
24
  export { RangeCustomEvent, PinFormatter } from './components/range/range-interface';
@@ -1008,6 +1008,7 @@ export declare namespace JSXBase {
1008
1008
  onClose?: (event: Event) => void;
1009
1009
  open?: boolean;
1010
1010
  returnValue?: string;
1011
+ closedby?: 'any' | 'closerequest' | 'none';
1011
1012
  }
1012
1013
  interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
1013
1014
  height?: number | string;
@@ -1045,6 +1046,8 @@ export declare namespace JSXBase {
1045
1046
  allowtransparency?: string | boolean;
1046
1047
  frameBorder?: number | string;
1047
1048
  frameborder?: number | string;
1049
+ fetchPriority?: 'high' | 'low' | 'auto';
1050
+ fetchpriority?: 'high' | 'low' | 'auto';
1048
1051
  importance?: 'low' | 'auto' | 'high';
1049
1052
  height?: number | string;
1050
1053
  loading?: 'lazy' | 'auto' | 'eager';
@@ -1067,6 +1070,8 @@ export declare namespace JSXBase {
1067
1070
  crossOrigin?: string;
1068
1071
  crossorigin?: string;
1069
1072
  decoding?: 'async' | 'auto' | 'sync';
1073
+ fetchPriority?: 'high' | 'low' | 'auto';
1074
+ fetchpriority?: 'high' | 'low' | 'auto';
1070
1075
  importance?: 'low' | 'auto' | 'high';
1071
1076
  height?: number | string;
1072
1077
  loading?: 'lazy' | 'auto' | 'eager';
@@ -1166,6 +1171,8 @@ export declare namespace JSXBase {
1166
1171
  }
1167
1172
  interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
1168
1173
  as?: string;
1174
+ fetchPriority?: 'high' | 'low' | 'auto';
1175
+ fetchpriority?: 'high' | 'low' | 'auto';
1169
1176
  href?: string;
1170
1177
  hrefLang?: string;
1171
1178
  hreflang?: string;
@@ -1289,6 +1296,8 @@ export declare namespace JSXBase {
1289
1296
  crossOrigin?: string;
1290
1297
  crossorigin?: string;
1291
1298
  defer?: boolean;
1299
+ fetchPriority?: 'high' | 'low' | 'auto';
1300
+ fetchpriority?: 'high' | 'low' | 'auto';
1292
1301
  importance?: 'low' | 'auto' | 'high';
1293
1302
  integrity?: string;
1294
1303
  nonce?: string;
@@ -1404,7 +1413,10 @@ export declare namespace JSXBase {
1404
1413
  tabIndex?: number;
1405
1414
  tabindex?: number | string;
1406
1415
  title?: string;
1416
+ translate?: 'yes' | 'no' | (string & {});
1407
1417
  popover?: string | null;
1418
+ focusgroup?: string;
1419
+ focusgroupstart?: boolean;
1408
1420
  inputMode?: string;
1409
1421
  inputmode?: string;
1410
1422
  enterKeyHint?: string;
@@ -117,10 +117,6 @@ export interface IonicConfig {
117
117
  * Provides a custom enter animation for all `ion-toast`, overriding the default "animation".
118
118
  */
119
119
  toastEnter?: AnimationBuilder;
120
- /**
121
- * Provides a custom enter animation for all `ion-picker-legacy`, overriding the default "animation".
122
- */
123
- pickerEnter?: AnimationBuilder;
124
120
  /**
125
121
  * Provides a custom leave animation for all `ion-action-sheet`, overriding the default "animation".
126
122
  */
@@ -145,10 +141,6 @@ export interface IonicConfig {
145
141
  * Provides a custom leave animation for all `ion-toast`, overriding the default "animation".
146
142
  */
147
143
  toastLeave?: AnimationBuilder;
148
- /**
149
- * Provides a custom leave animation for all `ion-picker-legacy`, overriding the default "animation".
150
- */
151
- pickerLeave?: AnimationBuilder;
152
144
  /**
153
145
  * If `true`, Ionic will enable a basic DOM sanitizer on component properties that accept custom HTML.
154
146
  */
@@ -186,6 +178,7 @@ export interface IonicConfig {
186
178
  * - `'OFF'`: No errors or warnings are logged.
187
179
  * - `'ERROR'`: Logs only errors.
188
180
  * - `'WARN'`: Logs errors and warnings.
181
+ * - `'DEBUG'`: Logs errors, warnings, and Ionic's internal diagnostics.
189
182
  */
190
183
  logLevel?: LogLevel;
191
184
  keyboardHeight?: number;
@@ -21,6 +21,18 @@ export declare const findIonContent: (el: Element) => HTMLElement | null;
21
21
  * Queries the closest element matching the selector for IonContent.
22
22
  */
23
23
  export declare const findClosestIonContent: (el: Element) => HTMLElement | null;
24
+ /**
25
+ * Queries the custom scroll host an `ion-refresher` scrolls with in the given
26
+ * `ion-content`. A refresher only pairs with the first host.
27
+ */
28
+ export declare const findRefresherScrollHost: (ionContent: Element) => HTMLElement | null;
29
+ /**
30
+ * Queries the `ion-refresher` that scrolls with the given content element,
31
+ * which may be an `ion-content` or a custom scroll host. A refresher is a
32
+ * `slot="fixed"` child of `ion-content`, so it is a sibling of a scroll host
33
+ * rather than a descendant of it.
34
+ */
35
+ export declare const findRefresherInContent: (contentEl: Element) => HTMLIonRefresherElement | null;
24
36
  /**
25
37
  * Scrolls to the top of the element. If an `ion-content` is found, it will scroll
26
38
  * using the public API `scrollToTop` with a duration.
@@ -1,4 +1,5 @@
1
1
  export * from './notch-controller';
2
+ export * from './start-container-controller';
2
3
  export * from './compare-with-utils';
3
4
  export * from './item-multiple-inputs';
4
5
  export * from './validity';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Applied to the host while the label is being repositioned. The
3
+ * component stylesheets style this class, so it must stay in sync with
4
+ * the `skip-label-transition` selector in those files. Renaming it here
5
+ * requires renaming it there too.
6
+ */
7
+ export declare const SKIP_LABEL_TRANSITION_CLASS = "skip-label-transition";
8
+ /**
9
+ * Set on the host as an inline style. The component stylesheets declare
10
+ * this property and read it with `var()`, so it must stay in sync with
11
+ * the `--internal-start-container-adjustment` references in those files.
12
+ * Renaming it here requires renaming it there too.
13
+ */
14
+ export declare const START_CONTAINER_ADJUSTMENT_VAR = "--internal-start-container-adjustment";
15
+ /**
16
+ * A utility to measure and update the start container width adjustment
17
+ * for form components (input, textarea, select) with `fill="outline"`.
18
+ * This adjustment compensates for the start container width when
19
+ * positioning floating/stacked labels within the outline border.
20
+ *
21
+ * Measurement is deferred with raf() to avoid forcing layout during
22
+ * component updates, and a ResizeObserver watches for dynamic width
23
+ * changes (e.g., when web fonts load or async content changes).
24
+ *
25
+ * @internal
26
+ * @param el - The host element (ion-input, ion-textarea, or ion-select).
27
+ * @param getStartContainer - A callback that returns the start container element.
28
+ * @param shouldApplyAdjustment - A callback that determines whether the adjustment should be applied.
29
+ */
30
+ export declare const createStartContainerController: (el: HTMLElement, getStartContainer: () => HTMLElement | undefined, shouldApplyAdjustment: () => boolean) => StartContainerController;
31
+ export type StartContainerController = {
32
+ calculateStartContainerWidth: () => void;
33
+ destroy: () => void;
34
+ };
@@ -83,12 +83,15 @@ export declare const pointerCoord: (ev: any) => {
83
83
  };
84
84
  /**
85
85
  * @hidden
86
- * Given a side, return if it should be on the end
87
- * based on the value of dir
88
- * @param side the side
89
- * @param isRTL whether the application dir is rtl
86
+ * Given a side, returns whether it resolves to the end side for the current
87
+ * direction. In RTL `start` is the end side, and in LTR `end` is.
88
+ *
89
+ * @param side The current side before being redefined based on the direction.
90
+ * @param hostEl The component's host element. The direction is resolved from
91
+ * it or its nearest ancestor that declares one. When omitted, the direction
92
+ * is resolved from the document.
90
93
  */
91
- export declare const isEndSide: (side: Side) => boolean;
94
+ export declare const isEndSide: (side: Side, hostEl?: HTMLElement) => boolean;
92
95
  export declare const deferEvent: (event: EventEmitter) => EventEmitter;
93
96
  export declare const debounceEvent: (event: EventEmitter, wait: number) => EventEmitter;
94
97
  export declare const debounce: (func: (...args: any[]) => void, wait?: number) => (...args: any[]) => any;
@@ -1,7 +1,8 @@
1
1
  export declare enum LogLevel {
2
2
  OFF = "OFF",
3
3
  ERROR = "ERROR",
4
- WARN = "WARN"
4
+ WARN = "WARN",
5
+ DEBUG = "DEBUG"
5
6
  }
6
7
  /**
7
8
  * Logs a warning to the console with an Ionic prefix
@@ -0,0 +1,32 @@
1
+ import type { Mode } from '../interface';
2
+ /**
3
+ * Returns the default `labelPlacement` for a radio or checkbox option
4
+ * rendered inside an overlay. Defaults follow each mode's established
5
+ * option-row layout:
6
+ * - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
7
+ * interface flips iOS radio back to `"end"`. Checkbox is always
8
+ * `"end"` on iOS.
9
+ * - everything else (e.g. `md`): `"end"`.
10
+ *
11
+ * `interfaceType` is optional; only `"modal"` changes the result, so
12
+ * callers that aren't a modal can omit it.
13
+ *
14
+ * Used by `select-popover` and `select-modal` as the fallback when an
15
+ * option doesn't explicitly set `labelPlacement`.
16
+ */
17
+ export declare const getOverlayLabelPlacement: (mode: Mode, control: "radio" | "checkbox", interfaceType?: "alert" | "popover" | "modal") => "start" | "end";
18
+ /**
19
+ * Returns the default `justify` for a radio or checkbox option rendered
20
+ * inside an overlay. Defaults follow each mode's option-row layout:
21
+ * - `ios`: `"space-between"` for radio in `alert` and `popover`. The
22
+ * `modal` interface falls back to `"start"`. Checkbox is always `"start"`
23
+ * on iOS.
24
+ * - everything else (e.g. `md`): `"start"`.
25
+ *
26
+ * `interfaceType` is optional; only `"modal"` changes the result, so
27
+ * callers that aren't a modal can omit it.
28
+ *
29
+ * Used by `select-popover` and `select-modal` as the fallback when an
30
+ * option doesn't explicitly set `justify`.
31
+ */
32
+ export declare const getOverlayLabelJustify: (mode: Mode, control: "radio" | "checkbox", interfaceType?: "alert" | "popover" | "modal") => "start" | "end" | "space-between";
@@ -1,4 +1,4 @@
1
- import type { ActionSheetOptions, AlertOptions, Animation, AnimationBuilder, FrameworkDelegate, HTMLIonOverlayElement, IonicConfig, LoadingOptions, ModalOptions, OverlayInterface, PickerOptions, PopoverOptions, ToastOptions } from '../interface';
1
+ import type { ActionSheetOptions, AlertOptions, Animation, AnimationBuilder, FrameworkDelegate, HTMLIonOverlayElement, IonicConfig, LoadingOptions, ModalOptions, OverlayInterface, PopoverOptions, ToastOptions } from '../interface';
2
2
  export declare const activeAnimations: WeakMap<OverlayInterface, Animation[]>;
3
3
  export declare const alertController: {
4
4
  create(options: AlertOptions): Promise<HTMLIonAlertElement>;
@@ -20,14 +20,6 @@ export declare const modalController: {
20
20
  dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
21
21
  getTop(): Promise<HTMLIonModalElement | undefined>;
22
22
  };
23
- /**
24
- * @deprecated Use the inline ion-picker component instead.
25
- */
26
- export declare const pickerController: {
27
- create(options: PickerOptions): Promise<HTMLIonPickerLegacyElement>;
28
- dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
29
- getTop(): Promise<HTMLIonPickerLegacyElement | undefined>;
30
- };
31
23
  export declare const popoverController: {
32
24
  create(options: PopoverOptions<import("../interface").ComponentRef>): Promise<HTMLIonPopoverElement>;
33
25
  dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
@@ -86,6 +78,25 @@ export declare const getPresentedOverlay: (doc: Document, overlayTag?: string, i
86
78
  * for main content.
87
79
  */
88
80
  export declare const setRootAriaHidden: (hidden?: boolean) => void;
81
+ /**
82
+ * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
83
+ * an overlay is removed from the DOM without going through
84
+ * the `dismiss()` flow (e.g., when a framework unmounts the
85
+ * overlay during a route change).
86
+ *
87
+ * Should be called from an overlay's `disconnectedCallback`
88
+ * when the overlay was still presented at the time of removal.
89
+ */
90
+ export declare const cleanupRootFocusTrapAccessibility: () => void;
91
+ /**
92
+ * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
93
+ * Call from `connectedCallback` when the overlay is still presented.
94
+ *
95
+ * A synchronous move keeps the overlay connected, so the lock survives. A
96
+ * detach with a re-insert in a later task releases it, which is the shape a
97
+ * framework produces when it takes a subtree out and puts it back.
98
+ */
99
+ export declare const restoreRootFocusTrapAccessibility: (overlayEl: HTMLIonOverlayElement) => void;
89
100
  export declare const present: <OverlayPresentOptions>(overlay: OverlayInterface, name: keyof IonicConfig, iosEnterAnimation: AnimationBuilder, mdEnterAnimation: AnimationBuilder, opts?: OverlayPresentOptions) => Promise<void>;
90
101
  export declare const dismiss: <OverlayDismissOptions>(overlay: OverlayInterface, data: any | undefined, role: string | undefined, name: keyof IonicConfig, iosLeaveAnimation: AnimationBuilder, mdLeaveAnimation: AnimationBuilder, opts?: OverlayDismissOptions) => Promise<boolean>;
91
102
  export declare const eventMethod: <T>(element: HTMLElement, eventName: string) => Promise<T>;
@@ -1,6 +1,12 @@
1
1
  /**
2
- * Returns `true` if the document or host element
3
- * has a `dir` set to `rtl`. The host value will always
4
- * take priority over the root document value.
2
+ * Returns `true` if the direction resolves to `rtl` for the given element.
3
+ *
4
+ * The direction comes from the nearest ancestor that declares one, starting
5
+ * with `hostEl` itself, and falls back to the root document value. Setting
6
+ * `dir="auto"` or setting `dir` to an empty string are skipped rather than
7
+ * treated as `ltr`. When nothing declares a direction, including the document,
8
+ * the direction is `ltr`.
9
+ *
10
+ * @param hostEl the element to resolve the direction for.
5
11
  */
6
- export declare const isRTL: (hostEl?: Pick<HTMLElement, "dir">) => boolean;
12
+ export declare const isRTL: (hostEl?: Element | null) => boolean;
@@ -1,8 +1,64 @@
1
1
  /**
2
- * Does a simple sanitization of all elements
3
- * in an untrusted string
2
+ * Sanitize an untrusted HTML string.
3
+ *
4
+ * Parses the string into a detached DOM, removes blocked tags, strips
5
+ * attributes outside the narrow `domStringAllowedAttributes` list (refer
6
+ * `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
7
+ * HTML string.
8
+ *
9
+ * Use this when you have an HTML string from an unknown source and need to
10
+ * render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
11
+ * have a DOM tree and want to sanitize it in place without a string round
12
+ * trip. The two apply the same dangerous-vector scrubbing but different
13
+ * attribute allowlists: this path stays narrow so existing consumers
14
+ * (toast, loading, alert message, etc.) are unaffected, while
15
+ * `sanitizeDOMTree` uses the wider rich-content allowlist.
16
+ *
17
+ * @param untrustedString - The HTML string to sanitize. Pass an
18
+ * `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
19
+ * @returns The sanitized HTML string, or `undefined` if the input was
20
+ * `undefined`. Returns `''` if sanitization fails or the input appears to
21
+ * carry an inline `onload` handler.
4
22
  */
5
23
  export declare const sanitizeDOMString: (untrustedString: IonicSafeString | string | undefined) => string | undefined;
24
+ /**
25
+ * Sanitize an entire trusted DOM tree in place.
26
+ *
27
+ * Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
28
+ * then sanitizes attributes on every remaining element using the wider
29
+ * `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
30
+ * Component presentational attributes (`size`, `color`, `shape`, inline
31
+ * SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
32
+ * form/navigation-hijack attributes, script-scheme URLs, and non-image
33
+ * `data:` URLs are stripped.
34
+ *
35
+ * Use this when you have a DOM tree the developer controls (e.g.
36
+ * cloned slot content from a component) and you need to render it
37
+ * elsewhere safely.
38
+ *
39
+ * @param root - The root element whose subtree will be sanitized in
40
+ * place. No-op when the sanitizer is disabled via `Ionic.config`.
41
+ */
42
+ export declare const sanitizeDOMTree: (root: HTMLElement) => void;
43
+ /**
44
+ * Mirror known custom-element DOM properties onto attributes so they
45
+ * survive `cloneNode`. Call this on a DOM subtree before cloning it for
46
+ * rendering elsewhere (e.g. cloning slotted option content into an
47
+ * overlay).
48
+ *
49
+ * Only sets the attribute when the property holds a non-empty string
50
+ * and the attribute isn't already present, so existing attributes
51
+ * take precedence.
52
+ *
53
+ * @param root - The root element whose subtree (and itself) will be
54
+ * inspected.
55
+ */
56
+ export declare const reflectPropertiesToAttributes: (root: Element) => void;
57
+ /**
58
+ * Tags removed entirely (with their subtree) before attribute sanitization.
59
+ * Exported so tests can assert the set without hardcoding it.
60
+ */
61
+ export declare const blockedTags: string[];
6
62
  export declare class IonicSafeString {
7
63
  value: string;
8
64
  constructor(value: string);
@@ -0,0 +1,53 @@
1
+ import type { VNode } from '../stencil-public-runtime';
2
+ import type { RichContentOption as RichContentOpt } from '../components/select/select-interface';
3
+ interface RichContentOption extends RichContentOpt {
4
+ /** Unique identifier for stable virtual DOM keys across re-renders. */
5
+ id: string;
6
+ /** The main label for the option as a string or an HTMLElement. */
7
+ label?: string | HTMLElement;
8
+ }
9
+ /**
10
+ * Converts a DOM node into a Stencil VNode (or text string) so the
11
+ * resulting tree is rendered through the component's normal render
12
+ * path. Rendering through Stencil ensures that scoped CSS classes
13
+ * (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
14
+ *
15
+ * Highly recommended to pre-sanitize the source DOM (see
16
+ * `getOptionContent` in select.tsx). This function performs pure
17
+ * structural conversion — no security filtering.
18
+ *
19
+ * Preserves attributes only — properties set imperatively on the source
20
+ * element (e.g. `input.value` after a user types) won't carry through.
21
+ * In practice this isn't a concern: interactive controls shouldn't
22
+ * appear in select-option rich content since they'd nest inside the
23
+ * overlay's button/radio/checkbox wrapper, which is invalid HTML and
24
+ * an accessibility issue.
25
+ *
26
+ * @param node - The DOM node to convert. Text nodes become strings,
27
+ * element nodes become VNodes, and any other node types are skipped.
28
+ * @param keyPrefix - String prefix used to build a stable VNode key,
29
+ * so Stencil's diff can preserve elements across re-renders.
30
+ * @param index - Position of this node among its siblings. Combined
31
+ * with `keyPrefix` to form the final unique key.
32
+ * @returns The converted VNode, a text string, or `null` if the node
33
+ * type isn't supported.
34
+ *
35
+ * @internal Exported only so it can be unit tested; not part of the
36
+ * public API.
37
+ */
38
+ export declare const cloneToVNode: (node: Node, keyPrefix: string, index: number) => VNode | string | null;
39
+ /**
40
+ * Renders the label content for a select option within an overlay
41
+ * interface based on the presence of rich content.
42
+ *
43
+ * Span elements should be used when this content renders within buttons,
44
+ * depending on the select interface. Buttons can only have phrasing
45
+ * content to prevent accessibility issues.
46
+ *
47
+ * @param option - The content option data containing label, slots,
48
+ * and description.
49
+ * @param className - The base CSS class for the label element.
50
+ * @param useSpan - Whether to use a span element instead of a div for the label.
51
+ */
52
+ export declare const renderOptionLabel: (option: RichContentOption, className: string, useSpan?: boolean) => HTMLElement | string | undefined;
53
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Detaches an element and puts it back in a later task, the way a framework
4
+ * binding relocates a subtree it owns.
5
+ *
6
+ * A single `appendChild` won't do it. Custom element reactions run at the end
7
+ * of the same task, so `disconnectedCallback` fires with the element already
8
+ * back and nothing tears down. The detach has to survive a task before the
9
+ * disconnect is observable.
10
+ *
11
+ * Pass `containerSelector` to hold the element somewhere other than the body.
12
+ */
13
+ export declare const detachAndReattach: (locator: Locator, containerSelector?: string) => Promise<void>;
@@ -7,3 +7,4 @@ export * from './apply-keyboard-focus';
7
7
  export * from './matchers';
8
8
  export * from './viewports';
9
9
  export * from './generator';
10
+ export * from './detach-reattach';
@@ -13,5 +13,5 @@ type CustomFixtures = {
13
13
  * @returns The modified playwright page with extended functionality.
14
14
  */
15
15
  export declare function extendPageFixture(page: E2EPage, testInfo: TestInfo): Promise<E2EPage>;
16
- export declare const test: import("@playwright/test").TestType<PlaywrightTestArgs & PlaywrightTestOptions & CustomFixtures, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
16
+ export declare const test: import("playwright/test").TestType<PlaywrightTestArgs & PlaywrightTestOptions & CustomFixtures, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
17
17
  export {};
@@ -16,6 +16,6 @@ interface CustomMatchers<R = unknown> {
16
16
  }
17
17
 
18
18
  declare namespace PlaywrightTest {
19
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
20
20
  interface Matchers<R> extends CustomMatchers<R> {}
21
21
  }