@ionic/core 8.8.19-dev.11787076261.138d5922 → 8.8.19-dev.11787084784.17cf25cf

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 (802) 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-legacy-column.d.ts +11 -0
  59. package/components/ion-picker-legacy-column.js +4 -0
  60. package/components/ion-picker-legacy.d.ts +11 -0
  61. package/components/ion-picker-legacy.js +4 -0
  62. package/components/ion-picker.js +1 -1
  63. package/components/ion-popover.js +1 -1
  64. package/components/ion-progress-bar.js +1 -1
  65. package/components/ion-radio-group.js +1 -1
  66. package/components/ion-radio.js +1 -1
  67. package/components/ion-range.js +1 -1
  68. package/components/ion-refresher-content.js +1 -1
  69. package/components/ion-refresher.js +1 -1
  70. package/components/ion-reorder-group.js +1 -1
  71. package/components/ion-reorder.js +1 -1
  72. package/components/ion-ripple-effect.js +1 -1
  73. package/components/ion-route-redirect.js +1 -1
  74. package/components/ion-route.js +1 -1
  75. package/components/ion-router-link.js +1 -1
  76. package/components/ion-router-outlet.js +1 -1
  77. package/components/ion-router.js +1 -1
  78. package/components/ion-row.js +1 -1
  79. package/components/ion-searchbar.js +1 -1
  80. package/components/ion-segment-button.js +1 -1
  81. package/components/ion-segment-content.js +1 -1
  82. package/components/ion-segment-view.js +1 -1
  83. package/components/ion-segment.js +1 -1
  84. package/components/ion-select-modal.js +1 -1
  85. package/components/ion-select-option.js +1 -1
  86. package/components/ion-select-popover.js +1 -1
  87. package/components/ion-select.js +1 -1
  88. package/components/ion-skeleton-text.js +1 -1
  89. package/components/ion-spinner.js +1 -1
  90. package/components/ion-split-pane.js +1 -1
  91. package/components/ion-tab-bar.js +1 -1
  92. package/components/ion-tab-button.js +1 -1
  93. package/components/ion-tab.js +1 -1
  94. package/components/ion-tabs.js +1 -1
  95. package/components/ion-text.js +1 -1
  96. package/components/ion-textarea.js +1 -1
  97. package/components/ion-thumbnail.js +1 -1
  98. package/components/ion-title.js +1 -1
  99. package/components/ion-toast.js +1 -1
  100. package/components/ion-toggle.js +1 -1
  101. package/components/ion-toolbar.js +1 -1
  102. package/components/{p-DV85C0e0.js → p--JUspHvy.js} +1 -1
  103. package/components/p-A3O24YmY.js +4 -0
  104. package/components/p-ABkNVeU9.js +4 -0
  105. package/components/p-B-JJgYSG.js +4 -0
  106. package/components/p-B9jFTlwE.js +4 -0
  107. package/components/p-BLmJ0zRm.js +4 -0
  108. package/components/p-BMI53wYL.js +4 -0
  109. package/components/p-BSEgsdFI.js +4 -0
  110. package/components/p-BTEOs1at.js +4 -0
  111. package/components/{p-DwpKZ6rl.js → p-BkKAANMJ.js} +1 -1
  112. package/components/p-BlIAuGv2.js +4 -0
  113. package/components/p-Bnsn6KaP.js +4 -0
  114. package/components/p-BsBCoGa-.js +4 -0
  115. package/components/p-Bz0dSlXZ.js +4 -0
  116. package/components/p-C53feagD.js +4 -0
  117. package/components/p-CHqRYvYm.js +4 -0
  118. package/components/p-CQGnMY3n.js +4 -0
  119. package/components/p-CSZf8_j0.js +4 -0
  120. package/components/{p-30_sZS2V.js → p-C_hpsif8.js} +1 -1
  121. package/components/p-C_xFdyXe.js +4 -0
  122. package/components/p-Cf2jSDS8.js +4 -0
  123. package/components/p-Cfx4M1Bn.js +4 -0
  124. package/components/{p-J-p0EtHR.js → p-ChIZKXUu.js} +1 -1
  125. package/components/p-CkMSOsFF.js +4 -0
  126. package/components/p-Cl0B-RWe.js +4 -0
  127. package/components/p-CmR5uXej.js +4 -0
  128. package/components/p-Cp4GRDqq.js +4 -0
  129. package/components/p-CsNJ1ULL.js +4 -0
  130. package/components/p-CtWGkNnJ.js +4 -0
  131. package/components/p-CzCbeKys.js +4 -0
  132. package/components/p-D-aHdMxW.js +4 -0
  133. package/components/p-D0d8qTwj.js +4 -0
  134. package/components/p-D13Eaw-8.js +4 -0
  135. package/components/{p-BpG8kBfD.js → p-D3xo7hqU.js} +1 -1
  136. package/components/p-D6Ynv7Xh.js +4 -0
  137. package/components/{p-_0JhwClE.js → p-D7uN07a3.js} +1 -1
  138. package/components/p-DCnGU1fF.js +4 -0
  139. package/components/p-DGvrK8dD.js +4 -0
  140. package/components/p-DOFCbuQR.js +4 -0
  141. package/components/p-DRxvM2Ic.js +4 -0
  142. package/components/p-DV5mPYQS.js +4 -0
  143. package/components/p-DWkAgceV.js +4 -0
  144. package/components/p-DiVJyqlX.js +4 -0
  145. package/components/{p-ryyf_ItD.js → p-DqLB8yFQ.js} +1 -1
  146. package/components/p-DqZAXv2t.js +4 -0
  147. package/components/p-Osve4qkc.js +4 -0
  148. package/components/p-R8zmRi4c.js +4 -0
  149. package/components/p-SLS1rDZM.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/components/p-cyNmxje6.js +4 -0
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-gYiraiT_.js +4 -0
  154. package/components/p-j5IxBIan.js +4 -0
  155. package/components/p-k_E4tX5Z.js +4 -0
  156. package/components/p-oD4kcBRX.js +4 -0
  157. package/components/p-rCa2eL0j.js +4 -0
  158. package/components/p-vRBNsYbs.js +4 -0
  159. package/components/p-yEQxMl70.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/dist/cjs/{animation-C0mOHzej.js → animation-Ch16T-Nb.js} +4 -4
  162. package/dist/cjs/{app-globals-BREG4twP.js → app-globals-Dd89e0MR.js} +1 -1
  163. package/dist/cjs/{button-active-BKj1rdFx.js → button-active-COnxOe4X.js} +3 -3
  164. package/dist/cjs/config-D6C-KlA9.js +201 -0
  165. package/dist/cjs/{dir-Brx7VkvP.js → dir-Cn0z1rJH.js} +1 -1
  166. package/dist/cjs/{format-pp0Du3K-.js → format-BUFWn4Bn.js} +30 -40
  167. package/dist/cjs/{framework-delegate-NTLQ5YzV.js → framework-delegate-BgU6U9Ez.js} +7 -5
  168. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
  169. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-ClPPQ_PS.js} +3 -2
  170. package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-CXmUnTJC.js} +4 -4
  171. package/dist/cjs/{helpers-CaLhEmTE.js → helpers-gntk8bfm.js} +3 -3
  172. package/dist/cjs/{index-Ck9advCT.js → index-BS2uhvhT.js} +5 -5
  173. package/dist/cjs/{index-uvry__L4.js → index-BfaXsATC.js} +14 -31
  174. package/dist/cjs/{index-BlshL9ib.js → index-BhhuJ1Yx.js} +2 -2
  175. package/dist/cjs/{index-D48vawBq.js → index-BiRrzGDi.js} +2 -2
  176. package/dist/cjs/{index-P1nQxrpZ.js → index-CAvQ7Tka.js} +4 -10
  177. package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
  178. package/dist/cjs/{index-D2X6b92x.js → index-ooS8B4p9.js} +7 -6
  179. package/dist/cjs/index.cjs.js +18 -18
  180. package/dist/cjs/{input-shims-DvHAFqiP.js → input-shims-Bn1cXfCM.js} +11 -9
  181. package/dist/cjs/input.utils-BwhxZooW.js +150 -0
  182. package/dist/cjs/ion-accordion_2.cjs.entry.js +340 -368
  183. package/dist/cjs/ion-action-sheet.cjs.entry.js +76 -187
  184. package/dist/cjs/ion-alert.cjs.entry.js +111 -273
  185. package/dist/cjs/ion-app_8.cjs.entry.js +190 -307
  186. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
  187. package/dist/cjs/ion-back-button.cjs.entry.js +23 -47
  188. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  189. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +121 -199
  190. package/dist/cjs/ion-button_2.cjs.entry.js +66 -138
  191. package/dist/cjs/ion-card_5.cjs.entry.js +30 -82
  192. package/dist/cjs/ion-checkbox.cjs.entry.js +101 -152
  193. package/dist/cjs/ion-chip.cjs.entry.js +11 -17
  194. package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
  195. package/dist/cjs/ion-datetime-button.cjs.entry.js +241 -253
  196. package/dist/cjs/ion-datetime_3.cjs.entry.js +3167 -0
  197. package/dist/cjs/ion-fab_3.cjs.entry.js +81 -139
  198. package/dist/cjs/ion-img.cjs.entry.js +12 -34
  199. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +72 -100
  200. package/dist/cjs/ion-input-otp.cjs.entry.js +372 -435
  201. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +22 -36
  202. package/dist/cjs/ion-input.cjs.entry.js +211 -343
  203. package/dist/cjs/ion-item-option_3.cjs.entry.js +54 -94
  204. package/dist/cjs/ion-item_8.cjs.entry.js +92 -191
  205. package/dist/cjs/ion-loading.cjs.entry.js +60 -146
  206. package/dist/cjs/ion-menu_3.cjs.entry.js +106 -168
  207. package/dist/cjs/ion-modal.cjs.entry.js +261 -455
  208. package/dist/cjs/ion-nav_2.cjs.entry.js +158 -101
  209. package/dist/cjs/ion-picker-column-option.cjs.entry.js +33 -37
  210. package/dist/cjs/ion-picker-column.cjs.entry.js +405 -417
  211. package/dist/cjs/ion-picker.cjs.entry.js +392 -401
  212. package/dist/cjs/ion-popover.cjs.entry.js +205 -319
  213. package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -31
  214. package/dist/cjs/ion-radio_2.cjs.entry.js +134 -207
  215. package/dist/cjs/ion-range.cjs.entry.js +245 -302
  216. package/dist/cjs/ion-refresher_2.cjs.entry.js +93 -165
  217. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -53
  218. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  219. package/dist/cjs/ion-route_4.cjs.entry.js +71 -175
  220. package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
  221. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  222. package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
  223. package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
  224. package/dist/cjs/ion-select-modal.cjs.entry.js +48 -104
  225. package/dist/cjs/ion-select_3.cjs.entry.js +260 -787
  226. package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
  227. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
  228. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +41 -100
  229. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -53
  230. package/dist/cjs/ion-text.cjs.entry.js +5 -11
  231. package/dist/cjs/ion-textarea.cjs.entry.js +188 -296
  232. package/dist/cjs/ion-toast.cjs.entry.js +117 -236
  233. package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
  234. package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-BerQGEpE.js} +8 -13
  235. package/dist/cjs/ionic.cjs.js +4 -4
  236. package/dist/cjs/{ios.transition-KvuRAe2W.js → ios.transition-IMJRwn29.js} +17 -13
  237. package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
  238. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-UuAS4D_9.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-GXBiBRKS.js} +6 -6
  240. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-hHzlEQpk.js} +2 -2
  241. package/dist/cjs/loader.cjs.js +4 -4
  242. package/dist/cjs/{md.transition-Bjl5Ozph.js → md.transition-CgQZxcoT.js} +8 -7
  243. package/dist/cjs/notch-controller-_SwR025y.js +155 -0
  244. package/dist/cjs/{overlays-IlP4H2Gn.js → overlays-DuSEMhIW.js} +33 -48
  245. package/dist/cjs/{status-tap-BR_ujYHg.js → status-tap-CSvBT7FV.js} +3 -3
  246. package/dist/cjs/{swipe-back-DzQKEl5g.js → swipe-back-CuIiziaa.js} +5 -5
  247. package/dist/cjs/{theme-Bw0rpaNN.js → theme-CeDs6Hcv.js} +1 -6
  248. package/dist/collection/collection-manifest.json +10 -6
  249. package/dist/collection/components/accordion/accordion.js +312 -315
  250. package/dist/collection/components/accordion-group/accordion-group.js +25 -48
  251. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -228
  252. package/dist/collection/components/action-sheet/action-sheet.js +64 -173
  253. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -174
  254. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  255. package/dist/collection/components/alert/alert.ios.css +10 -279
  256. package/dist/collection/components/alert/alert.js +97 -257
  257. package/dist/collection/components/alert/alert.md.css +20 -268
  258. package/dist/collection/components/app/app.js +0 -3
  259. package/dist/collection/components/back-button/back-button.js +19 -42
  260. package/dist/collection/components/backdrop/backdrop.js +14 -16
  261. package/dist/collection/components/badge/badge.js +0 -6
  262. package/dist/collection/components/breadcrumb/breadcrumb.js +30 -91
  263. package/dist/collection/components/breadcrumbs/breadcrumbs.js +88 -103
  264. package/dist/collection/components/button/button.js +61 -132
  265. package/dist/collection/components/buttons/buttons.js +15 -13
  266. package/dist/collection/components/card/card.js +21 -54
  267. package/dist/collection/components/card-header/card-header.js +8 -12
  268. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  269. package/dist/collection/components/card-title/card-title.js +0 -6
  270. package/dist/collection/components/checkbox/checkbox.js +97 -147
  271. package/dist/collection/components/chip/chip.js +10 -14
  272. package/dist/collection/components/col/col.js +3 -127
  273. package/dist/collection/components/content/content.js +64 -93
  274. package/dist/collection/components/datetime/datetime.ios.css +2 -42
  275. package/dist/collection/components/datetime/datetime.js +816 -1051
  276. package/dist/collection/components/datetime/datetime.md.css +1 -42
  277. package/dist/collection/components/datetime/utils/data.js +14 -13
  278. package/dist/collection/components/datetime/utils/format.js +11 -21
  279. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  280. package/dist/collection/components/datetime/utils/parse.js +10 -10
  281. package/dist/collection/components/datetime/utils/state.js +2 -8
  282. package/dist/collection/components/datetime/utils/validate.js +5 -4
  283. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -5
  284. package/dist/collection/components/datetime-button/datetime-button.js +237 -247
  285. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -5
  286. package/dist/collection/components/fab/fab.js +13 -20
  287. package/dist/collection/components/fab-button/fab-button.js +55 -104
  288. package/dist/collection/components/fab-list/fab-list.js +11 -10
  289. package/dist/collection/components/footer/footer.js +44 -50
  290. package/dist/collection/components/grid/grid.js +6 -4
  291. package/dist/collection/components/header/header.js +25 -35
  292. package/dist/collection/components/img/img.js +10 -34
  293. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  294. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  295. package/dist/collection/components/input/input.ios.css +26 -57
  296. package/dist/collection/components/input/input.js +206 -336
  297. package/dist/collection/components/input/input.md.css +43 -79
  298. package/dist/collection/components/input-otp/input-otp.js +368 -430
  299. package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -32
  300. package/dist/collection/components/item/item.js +53 -99
  301. package/dist/collection/components/item-divider/item-divider.js +12 -17
  302. package/dist/collection/components/item-group/item-group.js +1 -1
  303. package/dist/collection/components/item-option/item-option.js +22 -50
  304. package/dist/collection/components/item-options/item-options.js +8 -11
  305. package/dist/collection/components/item-sliding/item-sliding.js +21 -27
  306. package/dist/collection/components/label/label.js +6 -26
  307. package/dist/collection/components/list/list.js +8 -11
  308. package/dist/collection/components/list-header/list-header.js +2 -12
  309. package/dist/collection/components/loading/loading.js +51 -135
  310. package/dist/collection/components/menu/menu.js +61 -103
  311. package/dist/collection/components/menu-button/menu-button.js +21 -30
  312. package/dist/collection/components/menu-toggle/menu-toggle.js +15 -22
  313. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  314. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  315. package/dist/collection/components/modal/gestures/sheet.js +10 -22
  316. package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -15
  317. package/dist/collection/components/modal/modal.js +228 -398
  318. package/dist/collection/components/modal/safe-area-utils.js +7 -6
  319. package/dist/collection/components/modal/test/fixtures.js +0 -3
  320. package/dist/collection/components/nav/nav.js +247 -69
  321. package/dist/collection/components/nav/view-controller.js +1 -7
  322. package/dist/collection/components/nav-link/nav-link.js +10 -21
  323. package/dist/collection/components/note/note.js +2 -8
  324. package/dist/collection/components/picker/picker.js +390 -398
  325. package/dist/collection/components/picker-column/picker-column.css +0 -3
  326. package/dist/collection/components/picker-column/picker-column.js +404 -414
  327. package/dist/collection/components/picker-column-option/picker-column-option.js +31 -33
  328. package/dist/collection/components/picker-column-option/picker-column-option.md.css +1 -6
  329. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  330. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  331. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  332. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  333. package/dist/collection/components/picker-legacy/picker.js +890 -0
  334. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  335. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  336. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  337. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  338. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  339. package/dist/collection/components/popover/animations/ios.enter.js +2 -1
  340. package/dist/collection/components/popover/animations/md.enter.js +2 -1
  341. package/dist/collection/components/popover/popover.ios.css +0 -15
  342. package/dist/collection/components/popover/popover.js +185 -302
  343. package/dist/collection/components/popover/popover.md.css +0 -15
  344. package/dist/collection/components/popover/test/fixture.js +0 -1
  345. package/dist/collection/components/popover/utils.js +6 -4
  346. package/dist/collection/components/progress-bar/progress-bar.js +23 -27
  347. package/dist/collection/components/radio/radio.js +66 -102
  348. package/dist/collection/components/radio-group/radio-group.js +66 -101
  349. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  350. package/dist/collection/components/range/range.js +240 -296
  351. package/dist/collection/components/refresher/refresher.js +78 -110
  352. package/dist/collection/components/refresher-content/refresher-content.js +4 -41
  353. package/dist/collection/components/reorder/reorder.js +1 -2
  354. package/dist/collection/components/reorder-group/reorder-group.js +15 -44
  355. package/dist/collection/components/ripple-effect/ripple-effect.js +13 -12
  356. package/dist/collection/components/route/route.js +10 -39
  357. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  358. package/dist/collection/components/router/router.js +33 -37
  359. package/dist/collection/components/router/utils/dom.js +7 -25
  360. package/dist/collection/components/router/utils/matching.js +9 -7
  361. package/dist/collection/components/router/utils/parser.js +1 -1
  362. package/dist/collection/components/router/utils/path.js +1 -0
  363. package/dist/collection/components/router-link/router-link.js +12 -37
  364. package/dist/collection/components/router-outlet/router-outlet.js +21 -82
  365. package/dist/collection/components/row/row.js +1 -1
  366. package/dist/collection/components/searchbar/searchbar.js +199 -289
  367. package/dist/collection/components/segment/segment.js +85 -120
  368. package/dist/collection/components/segment-button/segment-button.js +37 -43
  369. package/dist/collection/components/segment-content/segment-content.js +1 -1
  370. package/dist/collection/components/segment-view/segment-view.js +16 -26
  371. package/dist/collection/components/select/select.ios.css +69 -96
  372. package/dist/collection/components/select/select.js +213 -629
  373. package/dist/collection/components/select/select.md.css +85 -118
  374. package/dist/collection/components/select-modal/select-modal.ios.css +0 -218
  375. package/dist/collection/components/select-modal/select-modal.js +38 -92
  376. package/dist/collection/components/select-modal/select-modal.md.css +0 -164
  377. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  378. package/dist/collection/components/select-option/select-option.js +9 -110
  379. package/dist/collection/components/select-popover/select-popover.ios.css +0 -218
  380. package/dist/collection/components/select-popover/select-popover.js +36 -103
  381. package/dist/collection/components/select-popover/select-popover.md.css +0 -164
  382. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  383. package/dist/collection/components/skeleton-text/skeleton-text.js +8 -12
  384. package/dist/collection/components/spinner/spinner.js +9 -21
  385. package/dist/collection/components/split-pane/split-pane.js +15 -27
  386. package/dist/collection/components/tab/tab.js +6 -17
  387. package/dist/collection/components/tab-bar/tab-bar.js +14 -32
  388. package/dist/collection/components/tab-button/tab-button.js +23 -62
  389. package/dist/collection/components/tabs/tabs.js +20 -33
  390. package/dist/collection/components/text/text.js +2 -8
  391. package/dist/collection/components/textarea/textarea.ios.css +62 -94
  392. package/dist/collection/components/textarea/textarea.js +181 -287
  393. package/dist/collection/components/textarea/textarea.md.css +77 -103
  394. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  395. package/dist/collection/components/title/title.js +2 -18
  396. package/dist/collection/components/toast/toast.js +106 -223
  397. package/dist/collection/components/toggle/toggle.js +115 -167
  398. package/dist/collection/components/toolbar/toolbar.js +7 -15
  399. package/dist/collection/global/config.js +6 -4
  400. package/dist/collection/global/ionic-global.js +2 -8
  401. package/dist/collection/index.js +1 -1
  402. package/dist/collection/utils/animation/animation.js +3 -3
  403. package/dist/collection/utils/config.js +4 -5
  404. package/dist/collection/utils/focus-controller/index.js +1 -1
  405. package/dist/collection/utils/focus-trap.js +3 -3
  406. package/dist/collection/utils/forms/index.js +0 -1
  407. package/dist/collection/utils/framework-delegate.js +6 -4
  408. package/dist/collection/utils/gesture/gesture-controller.js +8 -15
  409. package/dist/collection/utils/gesture/index.js +2 -10
  410. package/dist/collection/utils/gesture/listener.js +1 -1
  411. package/dist/collection/utils/hardware-back-button.js +3 -3
  412. package/dist/collection/utils/helpers.js +2 -2
  413. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -4
  414. package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
  415. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  416. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  417. package/dist/collection/utils/logging/index.js +4 -23
  418. package/dist/collection/utils/menu-controller/index.js +2 -1
  419. package/dist/collection/utils/native/haptic.js +3 -2
  420. package/dist/collection/utils/native/keyboard.js +2 -2
  421. package/dist/collection/utils/native/status-bar.js +1 -1
  422. package/dist/collection/utils/overlays.js +23 -38
  423. package/dist/collection/utils/platform.js +5 -4
  424. package/dist/collection/utils/rtl/dir.js +1 -1
  425. package/dist/collection/utils/sanitization/index.js +20 -276
  426. package/dist/collection/utils/slot-mutation-controller.js +2 -1
  427. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  428. package/dist/collection/utils/test/playwright/drag-element.js +3 -2
  429. package/dist/collection/utils/test/playwright/generator.js +4 -3
  430. package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
  431. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
  432. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  433. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +3 -2
  434. package/dist/collection/utils/test/press-keys.js +17 -10
  435. package/dist/collection/utils/theme.js +1 -6
  436. package/dist/collection/utils/transition/ios.transition.js +13 -9
  437. package/dist/collection/utils/transition/md.transition.js +4 -3
  438. package/dist/docs.json +1256 -556
  439. package/dist/esm/{animation-CGFdmGk9.js → animation-DLJpuoEz.js} +4 -4
  440. package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-D0C5S4hU.js} +1 -1
  441. package/dist/esm/{button-active--80YqSHA.js → button-active-BSpTQmS9.js} +3 -3
  442. package/dist/esm/config-DQCONYYp.js +195 -0
  443. package/dist/esm/{dir-B-FxiyeI.js → dir-C53feagD.js} +1 -1
  444. package/dist/esm/{format-Dcwga61t.js → format-CAmvpAez.js} +31 -41
  445. package/dist/esm/{framework-delegate--ajhSeKH.js → framework-delegate-FnPGymXL.js} +7 -5
  446. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
  447. package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
  448. package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-B93Gru0Y.js} +4 -4
  449. package/dist/esm/{helpers-DexiPLIC.js → helpers-HEqiOzXb.js} +3 -3
  450. package/dist/esm/{index-BCgUwrV0.js → index-BRHzoo00.js} +2 -2
  451. package/dist/esm/{index-8s8kZKJ7.js → index-B_dQk_WE.js} +5 -5
  452. package/dist/esm/{index-DppOcPFQ.js → index-CfgBF1SE.js} +4 -10
  453. package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
  454. package/dist/esm/{index-_Za5VB9w.js → index-Dw-wN0Ja.js} +2 -2
  455. package/dist/esm/{index-CumkqGQF.js → index-Q6UPU0Ay.js} +7 -6
  456. package/dist/esm/{index-ChhhtsGZ.js → index-tcQvqkiX.js} +15 -32
  457. package/dist/esm/index.js +15 -16
  458. package/dist/esm/{input-shims-BB0AKb_k.js → input-shims-LXhI7LEx.js} +11 -9
  459. package/dist/esm/input.utils-Y6NgW8bw.js +147 -0
  460. package/dist/esm/ion-accordion_2.entry.js +340 -368
  461. package/dist/esm/ion-action-sheet.entry.js +76 -187
  462. package/dist/esm/ion-alert.entry.js +110 -272
  463. package/dist/esm/ion-app_8.entry.js +190 -307
  464. package/dist/esm/ion-avatar_3.entry.js +4 -10
  465. package/dist/esm/ion-back-button.entry.js +23 -47
  466. package/dist/esm/ion-backdrop.entry.js +14 -18
  467. package/dist/esm/ion-breadcrumb_2.entry.js +121 -199
  468. package/dist/esm/ion-button_2.entry.js +66 -138
  469. package/dist/esm/ion-card_5.entry.js +30 -82
  470. package/dist/esm/ion-checkbox.entry.js +101 -152
  471. package/dist/esm/ion-chip.entry.js +11 -17
  472. package/dist/esm/ion-col_3.entry.js +10 -134
  473. package/dist/esm/ion-datetime-button.entry.js +241 -253
  474. package/dist/esm/ion-datetime_3.entry.js +3163 -0
  475. package/dist/esm/ion-fab_3.entry.js +81 -139
  476. package/dist/esm/ion-img.entry.js +12 -34
  477. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -99
  478. package/dist/esm/ion-input-otp.entry.js +372 -435
  479. package/dist/esm/ion-input-password-toggle.entry.js +22 -36
  480. package/dist/esm/ion-input.entry.js +209 -341
  481. package/dist/esm/ion-item-option_3.entry.js +54 -94
  482. package/dist/esm/ion-item_8.entry.js +92 -191
  483. package/dist/esm/ion-loading.entry.js +59 -145
  484. package/dist/esm/ion-menu_3.entry.js +106 -168
  485. package/dist/esm/ion-modal.entry.js +261 -455
  486. package/dist/esm/ion-nav_2.entry.js +158 -101
  487. package/dist/esm/ion-picker-column-option.entry.js +33 -37
  488. package/dist/esm/ion-picker-column.entry.js +405 -417
  489. package/dist/esm/ion-picker.entry.js +392 -401
  490. package/dist/esm/ion-popover.entry.js +205 -319
  491. package/dist/esm/ion-progress-bar.entry.js +25 -31
  492. package/dist/esm/ion-radio_2.entry.js +134 -207
  493. package/dist/esm/ion-range.entry.js +245 -302
  494. package/dist/esm/ion-refresher_2.entry.js +91 -163
  495. package/dist/esm/ion-reorder_2.entry.js +23 -53
  496. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  497. package/dist/esm/ion-route_4.entry.js +71 -175
  498. package/dist/esm/ion-searchbar.entry.js +200 -291
  499. package/dist/esm/ion-segment-content.entry.js +2 -2
  500. package/dist/esm/ion-segment-view.entry.js +17 -28
  501. package/dist/esm/ion-segment_2.entry.js +126 -169
  502. package/dist/esm/ion-select-modal.entry.js +48 -104
  503. package/dist/esm/ion-select_3.entry.js +260 -787
  504. package/dist/esm/ion-spinner.entry.js +10 -24
  505. package/dist/esm/ion-split-pane.entry.js +16 -29
  506. package/dist/esm/ion-tab-bar_2.entry.js +41 -100
  507. package/dist/esm/ion-tab_2.entry.js +27 -53
  508. package/dist/esm/ion-text.entry.js +5 -11
  509. package/dist/esm/ion-textarea.entry.js +187 -295
  510. package/dist/esm/ion-toast.entry.js +116 -235
  511. package/dist/esm/ion-toggle.entry.js +122 -175
  512. package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-Cp_eT4sZ.js} +8 -13
  513. package/dist/esm/ionic.js +5 -5
  514. package/dist/esm/{ios.transition-BdhybwLl.js → ios.transition-ClFrsIrS.js} +17 -13
  515. package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  516. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
  517. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
  518. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
  519. package/dist/esm/loader.js +5 -5
  520. package/dist/esm/{md.transition-B5lqKGCs.js → md.transition-D0msQmzI.js} +8 -7
  521. package/dist/esm/notch-controller-DKDjU_O7.js +153 -0
  522. package/dist/esm/{overlays-CjWwtvf1.js → overlays-Dg0q2_tJ.js} +33 -48
  523. package/dist/esm/{status-tap-DpLhkDWs.js → status-tap-vO-6s4Yp.js} +3 -3
  524. package/dist/esm/{swipe-back-cz4-lyG3.js → swipe-back-DQ1q5MgD.js} +5 -5
  525. package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
  526. package/dist/html.html-data.json +80 -52
  527. package/dist/ionic/index.esm.js +1 -1
  528. package/dist/ionic/ionic.esm.js +1 -1
  529. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  530. package/dist/ionic/p-06c232a4.entry.js +4 -0
  531. package/dist/ionic/p-0caa922c.entry.js +4 -0
  532. package/dist/ionic/p-0dc33652.entry.js +4 -0
  533. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  534. package/dist/ionic/p-10e833ef.entry.js +4 -0
  535. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  536. package/dist/ionic/p-27d30585.entry.js +4 -0
  537. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  538. package/dist/ionic/p-2b204c59.entry.js +4 -0
  539. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  540. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  541. package/dist/ionic/p-3353c229.entry.js +4 -0
  542. package/dist/ionic/p-34586ead.entry.js +4 -0
  543. package/dist/ionic/p-37e720da.entry.js +4 -0
  544. package/dist/ionic/p-390ca786.entry.js +4 -0
  545. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  546. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  547. package/dist/ionic/p-4745f534.entry.js +4 -0
  548. package/dist/ionic/p-4858af1f.entry.js +4 -0
  549. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  550. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  551. package/dist/ionic/p-50e1194a.entry.js +4 -0
  552. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  553. package/dist/ionic/p-5e2f73ee.entry.js +4 -0
  554. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  555. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  556. package/dist/ionic/p-696bdcf6.entry.js +4 -0
  557. package/dist/ionic/p-746fa988.entry.js +4 -0
  558. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  559. package/dist/ionic/p-7c319341.entry.js +4 -0
  560. package/dist/ionic/p-829367ed.entry.js +4 -0
  561. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  562. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  563. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  564. package/dist/ionic/p-9eeaBrnk.js +4 -0
  565. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  566. package/dist/ionic/p-9fa3c405.entry.js +4 -0
  567. package/dist/ionic/p-BGqMS-oh.js +4 -0
  568. package/dist/ionic/p-BTEOs1at.js +4 -0
  569. package/dist/ionic/p-BUFIpxKM.js +4 -0
  570. package/dist/ionic/p-C0eMdTCW.js +4 -0
  571. package/dist/ionic/p-C53feagD.js +4 -0
  572. package/dist/ionic/p-CFlfIb2g.js +4 -0
  573. package/dist/ionic/p-CKvCXMs9.js +4 -0
  574. package/dist/ionic/p-Cl0B-RWe.js +4 -0
  575. package/dist/ionic/p-CmcFnK-B.js +4 -0
  576. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  577. package/dist/ionic/p-Cx3IXROA.js +4 -0
  578. package/dist/ionic/p-D-3ycHmd.js +4 -0
  579. package/dist/ionic/p-D13Eaw-8.js +4 -0
  580. package/dist/ionic/p-D4uTWt4-.js +4 -0
  581. package/dist/ionic/p-DC3RagnA.js +4 -0
  582. package/dist/ionic/{p-CKUuSnDR.js → p-DIuEbVLu.js} +1 -1
  583. package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
  584. package/dist/ionic/p-DiVJyqlX.js +4 -0
  585. package/dist/ionic/p-DoJvtrbw.js +4 -0
  586. package/dist/ionic/p-DqN5EA2O.js +4 -0
  587. package/dist/ionic/p-DzWaWHGc.js +4 -0
  588. package/dist/ionic/{p-I3In7hMC.js → p-KjNvRoEp.js} +1 -1
  589. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  590. package/dist/ionic/p-SNAkTDfm.js +4 -0
  591. package/dist/ionic/p-VAemlbDS.js +4 -0
  592. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  593. package/dist/ionic/p-aaeedb6b.entry.js +4 -0
  594. package/dist/ionic/p-af55a72f.entry.js +4 -0
  595. package/dist/ionic/p-b2020591.entry.js +4 -0
  596. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  597. package/dist/ionic/{p-CQ_4TirR.js → p-biz8zWmJ.js} +1 -1
  598. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  599. package/dist/ionic/p-c38b648e.entry.js +4 -0
  600. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  601. package/dist/ionic/{p-40424a88.entry.js → p-c6e49f3f.entry.js} +1 -1
  602. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  603. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  604. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  605. package/dist/ionic/p-ea56626d.entry.js +4 -0
  606. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  607. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  608. package/dist/ionic/p-mjKAFv89.js +4 -0
  609. package/dist/ionic/p-tcQvqkiX.js +5 -0
  610. package/dist/ionic/p-uWtqTrG8.js +4 -0
  611. package/dist/ionic/p-viFHDgRs.js +4 -0
  612. package/dist/ionic/p-xWb6fgfq.js +4 -0
  613. package/dist/types/components/img/img.d.ts +0 -2
  614. package/dist/types/components/input/input.d.ts +6 -12
  615. package/dist/types/components/modal/modal-interface.d.ts +0 -9
  616. package/dist/types/components/modal/modal.d.ts +4 -11
  617. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  618. package/dist/types/components/nav/nav.d.ts +22 -2
  619. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  620. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  621. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  622. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  623. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  624. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  625. package/dist/types/components/range/range.d.ts +1 -0
  626. package/dist/types/components/route/route.d.ts +1 -1
  627. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  628. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  629. package/dist/types/components/select/select-interface.d.ts +0 -31
  630. package/dist/types/components/select/select.d.ts +6 -30
  631. package/dist/types/components/select-option/select-option.d.ts +1 -42
  632. package/dist/types/components/textarea/textarea.d.ts +5 -12
  633. package/dist/types/components.d.ts +311 -74
  634. package/dist/types/index.d.ts +1 -1
  635. package/dist/types/interface.d.ts +1 -0
  636. package/dist/types/utils/config.d.ts +8 -1
  637. package/dist/types/utils/forms/index.d.ts +0 -1
  638. package/dist/types/utils/logging/index.d.ts +1 -2
  639. package/dist/types/utils/overlays.d.ts +9 -11
  640. package/dist/types/utils/sanitization/index.d.ts +2 -58
  641. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  642. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  643. package/hydrate/index.js +7322 -10670
  644. package/hydrate/index.mjs +7322 -10670
  645. package/package.json +12 -55
  646. package/components/p--m5cCjbK.js +0 -4
  647. package/components/p-8FN7p701.js +0 -4
  648. package/components/p-B-FxiyeI.js +0 -4
  649. package/components/p-B4uHHhPK.js +0 -4
  650. package/components/p-BMPN55of.js +0 -4
  651. package/components/p-BMS4t-kJ.js +0 -4
  652. package/components/p-BOvLNVKq.js +0 -4
  653. package/components/p-BSQPZ79H.js +0 -4
  654. package/components/p-BWBigMsI.js +0 -4
  655. package/components/p-BZ4-QTes.js +0 -4
  656. package/components/p-BhamHSw3.js +0 -4
  657. package/components/p-BjluhQMI.js +0 -4
  658. package/components/p-BlsIikdZ.js +0 -4
  659. package/components/p-Blug1Vxu.js +0 -4
  660. package/components/p-BqPNzJf6.js +0 -4
  661. package/components/p-C5KYjZWD.js +0 -4
  662. package/components/p-C91npEel.js +0 -4
  663. package/components/p-C9BGR5fy.js +0 -4
  664. package/components/p-CD4fmpem.js +0 -4
  665. package/components/p-CEW4RXZO.js +0 -4
  666. package/components/p-CKhiNOEg.js +0 -4
  667. package/components/p-CO2zzh3W.js +0 -4
  668. package/components/p-CVb3x_r3.js +0 -4
  669. package/components/p-CWLrHG8Y.js +0 -4
  670. package/components/p-CbhUdtjf.js +0 -4
  671. package/components/p-CejmQs3h.js +0 -4
  672. package/components/p-CfnNZz_d.js +0 -4
  673. package/components/p-CmKf4pgI.js +0 -4
  674. package/components/p-Cs5f-uOS.js +0 -4
  675. package/components/p-D7-vHX0A.js +0 -4
  676. package/components/p-DKrhJJV0.js +0 -4
  677. package/components/p-DRfgH82D.js +0 -4
  678. package/components/p-DSzSbVP2.js +0 -4
  679. package/components/p-DVKS-ovH.js +0 -4
  680. package/components/p-DWCzVL3Y.js +0 -4
  681. package/components/p-Dd8ajo9a.js +0 -4
  682. package/components/p-DdnhY_oj.js +0 -4
  683. package/components/p-DgZOZQjJ.js +0 -4
  684. package/components/p-Dmd2xqCe.js +0 -4
  685. package/components/p-G0TxqHfe.js +0 -4
  686. package/components/p-GG5GhznE.js +0 -4
  687. package/components/p-LXu5-6Ti.js +0 -4
  688. package/components/p-TXPDHL13.js +0 -4
  689. package/components/p-UQSiXX2Z.js +0 -4
  690. package/components/p-UuPYCOZE.js +0 -4
  691. package/components/p-WeeS7GvC.js +0 -4
  692. package/components/p-_IKFD3ID.js +0 -4
  693. package/components/p-byZM6qHV.js +0 -4
  694. package/components/p-hh7qIC-X.js +0 -4
  695. package/components/p-idq4JFo2.js +0 -4
  696. package/components/p-qT1szVjw.js +0 -4
  697. package/components/p-wzAhIh03.js +0 -4
  698. package/components/p-ypuYdSDB.js +0 -4
  699. package/components/p-yuj4Nkm_.js +0 -4
  700. package/dist/cjs/config-CjUbvdPW.js +0 -36
  701. package/dist/cjs/index-B7zJsYWS.js +0 -429
  702. package/dist/cjs/input.utils-BZdMWVrt.js +0 -35
  703. package/dist/cjs/ion-datetime.cjs.entry.js +0 -2770
  704. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  705. package/dist/cjs/select-option-render-pULCGldr.js +0 -123
  706. package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +0 -397
  707. package/dist/collection/utils/forms/start-container-controller.js +0 -132
  708. package/dist/collection/utils/overlay-control-label.js +0 -45
  709. package/dist/collection/utils/select-option-render.js +0 -118
  710. package/dist/esm/config-DWCzVL3Y.js +0 -32
  711. package/dist/esm/index-CKM1DdGm.js +0 -424
  712. package/dist/esm/input.utils-B1ValN_N.js +0 -33
  713. package/dist/esm/ion-datetime.entry.js +0 -2768
  714. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  715. package/dist/esm/select-option-render-C4m76VGH.js +0 -121
  716. package/dist/esm/slot-mutation-controller-u741eD3Z.js +0 -393
  717. package/dist/ionic/p-06533d51.entry.js +0 -4
  718. package/dist/ionic/p-08443c08.entry.js +0 -4
  719. package/dist/ionic/p-0FNc80PN.js +0 -4
  720. package/dist/ionic/p-141f5b47.entry.js +0 -4
  721. package/dist/ionic/p-14a5e8f5.entry.js +0 -4
  722. package/dist/ionic/p-19269e04.entry.js +0 -4
  723. package/dist/ionic/p-19abbc33.entry.js +0 -4
  724. package/dist/ionic/p-1edf0573.entry.js +0 -4
  725. package/dist/ionic/p-4204184c.entry.js +0 -4
  726. package/dist/ionic/p-4bc3ecdb.entry.js +0 -4
  727. package/dist/ionic/p-4eOQC00Z.js +0 -4
  728. package/dist/ionic/p-4eed9ca1.entry.js +0 -4
  729. package/dist/ionic/p-53bac1c9.entry.js +0 -4
  730. package/dist/ionic/p-5506caeb.entry.js +0 -4
  731. package/dist/ionic/p-5521dc1f.entry.js +0 -4
  732. package/dist/ionic/p-5993a77f.entry.js +0 -4
  733. package/dist/ionic/p-5c3626de.entry.js +0 -4
  734. package/dist/ionic/p-5d3b411c.entry.js +0 -4
  735. package/dist/ionic/p-60576951.entry.js +0 -4
  736. package/dist/ionic/p-7116e558.entry.js +0 -4
  737. package/dist/ionic/p-711a8319.entry.js +0 -4
  738. package/dist/ionic/p-71419a55.entry.js +0 -4
  739. package/dist/ionic/p-79325ffe.entry.js +0 -4
  740. package/dist/ionic/p-7bb3e957.entry.js +0 -4
  741. package/dist/ionic/p-82525fb0.entry.js +0 -4
  742. package/dist/ionic/p-84a38904.entry.js +0 -4
  743. package/dist/ionic/p-865fa114.entry.js +0 -4
  744. package/dist/ionic/p-8e1d9e3a.entry.js +0 -4
  745. package/dist/ionic/p-8f204f1e.entry.js +0 -4
  746. package/dist/ionic/p-9055e897.entry.js +0 -4
  747. package/dist/ionic/p-9658e083.entry.js +0 -4
  748. package/dist/ionic/p-988baee1.entry.js +0 -4
  749. package/dist/ionic/p-9nmHvEvw.js +0 -4
  750. package/dist/ionic/p-B-FxiyeI.js +0 -4
  751. package/dist/ionic/p-BB0LlG4y.js +0 -4
  752. package/dist/ionic/p-BMPN55of.js +0 -4
  753. package/dist/ionic/p-BQ8oNV0v.js +0 -4
  754. package/dist/ionic/p-BSQPZ79H.js +0 -4
  755. package/dist/ionic/p-BhamHSw3.js +0 -4
  756. package/dist/ionic/p-BjvtSsVI.js +0 -4
  757. package/dist/ionic/p-BkfAWuv6.js +0 -4
  758. package/dist/ionic/p-BwIp10KV.js +0 -4
  759. package/dist/ionic/p-C-94tAim.js +0 -4
  760. package/dist/ionic/p-C6eME8Ey.js +0 -4
  761. package/dist/ionic/p-CMRtMbJc.js +0 -4
  762. package/dist/ionic/p-CPcPmkGv.js +0 -4
  763. package/dist/ionic/p-CaRuIadB.js +0 -4
  764. package/dist/ionic/p-Cdjxf_yg.js +0 -4
  765. package/dist/ionic/p-ChhhtsGZ.js +0 -5
  766. package/dist/ionic/p-CmKf4pgI.js +0 -4
  767. package/dist/ionic/p-D5t_-oMk.js +0 -4
  768. package/dist/ionic/p-D94b61er.js +0 -4
  769. package/dist/ionic/p-DAztxQR0.js +0 -4
  770. package/dist/ionic/p-DCI3rXQo.js +0 -4
  771. package/dist/ionic/p-DDhtUaaA.js +0 -4
  772. package/dist/ionic/p-DWCzVL3Y.js +0 -4
  773. package/dist/ionic/p-DkUB-ROc.js +0 -4
  774. package/dist/ionic/p-Dn0mqQ_R.js +0 -4
  775. package/dist/ionic/p-T71k3C35.js +0 -4
  776. package/dist/ionic/p-TXPDHL13.js +0 -4
  777. package/dist/ionic/p-a71232d6.entry.js +0 -4
  778. package/dist/ionic/p-a73d8742.entry.js +0 -4
  779. package/dist/ionic/p-a8421d18.entry.js +0 -4
  780. package/dist/ionic/p-a8c2c343.entry.js +0 -4
  781. package/dist/ionic/p-acf0a6af.entry.js +0 -4
  782. package/dist/ionic/p-ad98e3ff.entry.js +0 -4
  783. package/dist/ionic/p-af5166f5.entry.js +0 -4
  784. package/dist/ionic/p-bc2bad5f.entry.js +0 -4
  785. package/dist/ionic/p-be08d500.entry.js +0 -4
  786. package/dist/ionic/p-be9a4f51.entry.js +0 -4
  787. package/dist/ionic/p-byZM6qHV.js +0 -4
  788. package/dist/ionic/p-ccc5044d.entry.js +0 -4
  789. package/dist/ionic/p-ce32912b.entry.js +0 -4
  790. package/dist/ionic/p-ded69ceb.entry.js +0 -4
  791. package/dist/ionic/p-e0c6e31e.entry.js +0 -4
  792. package/dist/ionic/p-e1e5b507.entry.js +0 -4
  793. package/dist/ionic/p-e8c3e08a.entry.js +0 -4
  794. package/dist/ionic/p-ed5d540d.entry.js +0 -4
  795. package/dist/ionic/p-f046aa37.entry.js +0 -4
  796. package/dist/ionic/p-f2802440.entry.js +0 -4
  797. package/dist/ionic/p-f402f5a4.entry.js +0 -4
  798. package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
  799. package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
  800. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  801. package/dist/types/utils/select-option-render.d.ts +0 -53
  802. /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
@@ -3,10 +3,10 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-uvry__L4.js');
7
- var helpers = require('./helpers-CaLhEmTE.js');
8
- var index$1 = require('./index-wOmugbdg.js');
9
- var ionicGlobal = require('./ionic-global-k6hOWWpn.js');
6
+ var index = require('./index-BfaXsATC.js');
7
+ var helpers = require('./helpers-gntk8bfm.js');
8
+ var index$1 = require('./index-DqmRDbxg.js');
9
+ var ionicGlobal = require('./ionic-global-BerQGEpE.js');
10
10
 
11
11
  const accordionIosCss = () => `:host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}`;
12
12
 
@@ -15,94 +15,329 @@ const accordionMdCss = () => `:host{display:block;position:relative;width:100%;b
15
15
  const Accordion = class {
16
16
  constructor(hostRef) {
17
17
  index.registerInstance(this, hostRef);
18
- }
19
- accordionGroupEl;
20
- accordionGroupUpdateHandler = () => {
18
+ this.accordionGroupUpdateHandler = () => {
19
+ /**
20
+ * Determine if this update will cause an actual state change.
21
+ * We only want to mark as "interacted" if the state is changing.
22
+ */
23
+ const accordionGroup = this.accordionGroupEl;
24
+ if (accordionGroup) {
25
+ const value = accordionGroup.value;
26
+ const accordionValue = this.value;
27
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
28
+ const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
29
+ const stateWillChange = shouldExpand !== isExpanded;
30
+ /**
31
+ * Only mark as interacted if:
32
+ * 1. This is not the first update we've received with a defined value
33
+ * 2. The state is actually changing (prevents redundant updates from enabling animations)
34
+ */
35
+ if (this.hasReceivedFirstUpdate && stateWillChange) {
36
+ this.hasInteracted = true;
37
+ }
38
+ /**
39
+ * Only count this as the first update if the group value is defined.
40
+ * This prevents the initial undefined value from the group's componentDidLoad
41
+ * from being treated as the first real update.
42
+ */
43
+ if (value !== undefined) {
44
+ this.hasReceivedFirstUpdate = true;
45
+ }
46
+ }
47
+ this.updateState();
48
+ };
49
+ this.state = 1 /* AccordionState.Collapsed */;
50
+ this.isNext = false;
51
+ this.isPrevious = false;
21
52
  /**
22
- * Determine if this update will cause an actual state change.
23
- * We only want to mark as "interacted" if the state is changing.
53
+ * Tracks whether a user-initiated interaction has occurred.
54
+ * Animations are disabled until the first interaction happens.
55
+ * This prevents the accordion from animating when it's programmatically
56
+ * set to an expanded or collapsed state on initial load.
24
57
  */
25
- const accordionGroup = this.accordionGroupEl;
26
- if (accordionGroup) {
27
- const value = accordionGroup.value;
28
- const accordionValue = this.value;
29
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
30
- const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
31
- const stateWillChange = shouldExpand !== isExpanded;
58
+ this.hasInteracted = false;
59
+ /**
60
+ * Tracks if this accordion has ever been expanded.
61
+ * Used to prevent the first expansion from animating.
62
+ */
63
+ this.hasEverBeenExpanded = false;
64
+ /**
65
+ * Tracks if this accordion has received its first update from the group.
66
+ * Used to distinguish initial programmatic sets from user interactions.
67
+ */
68
+ this.hasReceivedFirstUpdate = false;
69
+ /**
70
+ * The value of the accordion. Defaults to an autogenerated
71
+ * value.
72
+ */
73
+ this.value = `ion-accordion-${accordionIds++}`;
74
+ /**
75
+ * If `true`, the accordion cannot be interacted with.
76
+ */
77
+ this.disabled = false;
78
+ /**
79
+ * If `true`, the accordion cannot be interacted with,
80
+ * but does not alter the opacity.
81
+ */
82
+ this.readonly = false;
83
+ /**
84
+ * The toggle icon to use. This icon will be
85
+ * rotated when the accordion is expanded
86
+ * or collapsed.
87
+ */
88
+ this.toggleIcon = index$1.chevronDown;
89
+ /**
90
+ * The slot inside of `ion-item` to
91
+ * place the toggle icon. Defaults to `"end"`.
92
+ */
93
+ this.toggleIconSlot = 'end';
94
+ this.setItemDefaults = () => {
95
+ const ionItem = this.getSlottedHeaderIonItem();
96
+ if (!ionItem) {
97
+ return;
98
+ }
99
+ /**
100
+ * For a11y purposes, we make
101
+ * the ion-item a button so users
102
+ * can tab to it and use keyboard
103
+ * navigation to get around.
104
+ */
105
+ ionItem.button = true;
106
+ ionItem.detail = false;
32
107
  /**
33
- * Only mark as interacted if:
34
- * 1. This is not the first update we've received with a defined value
35
- * 2. The state is actually changing (prevents redundant updates from enabling animations)
108
+ * By default, the lines in an
109
+ * item should be full here, but
110
+ * only do that if a user has
111
+ * not explicitly overridden them
36
112
  */
37
- if (this.hasReceivedFirstUpdate && stateWillChange) {
38
- this.hasInteracted = true;
113
+ if (ionItem.lines === undefined) {
114
+ ionItem.lines = 'full';
115
+ }
116
+ };
117
+ this.getSlottedHeaderIonItem = () => {
118
+ const { headerEl } = this;
119
+ if (!headerEl) {
120
+ return;
39
121
  }
40
122
  /**
41
- * Only count this as the first update if the group value is defined.
42
- * This prevents the initial undefined value from the group's componentDidLoad
43
- * from being treated as the first real update.
123
+ * Get the first ion-item
124
+ * slotted in the header slot
44
125
  */
45
- if (value !== undefined) {
46
- this.hasReceivedFirstUpdate = true;
126
+ const slot = headerEl.querySelector('slot');
127
+ if (!slot) {
128
+ return;
47
129
  }
48
- }
49
- this.updateState();
50
- };
51
- contentEl;
52
- contentElWrapper;
53
- headerEl;
54
- currentRaf;
55
- get el() { return index.getElement(this); }
56
- state = 1 /* AccordionState.Collapsed */;
57
- isNext = false;
58
- isPrevious = false;
59
- /**
60
- * Tracks whether a user-initiated interaction has occurred.
61
- * Animations are disabled until the first interaction happens.
62
- * This prevents the accordion from animating when it's programmatically
63
- * set to an expanded or collapsed state on initial load.
64
- */
65
- hasInteracted = false;
66
- /**
67
- * Tracks if this accordion has ever been expanded.
68
- * Used to prevent the first expansion from animating.
69
- */
70
- hasEverBeenExpanded = false;
71
- /**
72
- * Tracks if this accordion has received its first update from the group.
73
- * Used to distinguish initial programmatic sets from user interactions.
74
- */
75
- hasReceivedFirstUpdate = false;
76
- /**
77
- * The value of the accordion. Defaults to an autogenerated
78
- * value.
79
- */
80
- value = `ion-accordion-${accordionIds++}`;
130
+ // This is not defined in unit tests
131
+ if (slot.assignedElements === undefined)
132
+ return;
133
+ return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
134
+ };
135
+ this.setAria = (expanded = false) => {
136
+ const ionItem = this.getSlottedHeaderIonItem();
137
+ if (!ionItem) {
138
+ return;
139
+ }
140
+ /**
141
+ * Get the native <button> element inside of
142
+ * ion-item because that is what will be focused
143
+ */
144
+ const root = helpers.getElementRoot(ionItem);
145
+ const button = root.querySelector('button');
146
+ if (!button) {
147
+ return;
148
+ }
149
+ button.setAttribute('aria-expanded', `${expanded}`);
150
+ };
151
+ this.slotToggleIcon = () => {
152
+ const ionItem = this.getSlottedHeaderIonItem();
153
+ if (!ionItem) {
154
+ return;
155
+ }
156
+ const { toggleIconSlot, toggleIcon } = this;
157
+ /**
158
+ * Check if there already is a toggle icon.
159
+ * If so, do not add another one.
160
+ */
161
+ const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
162
+ if (existingToggleIcon) {
163
+ return;
164
+ }
165
+ const iconEl = document.createElement('ion-icon');
166
+ iconEl.slot = toggleIconSlot;
167
+ iconEl.lazy = false;
168
+ iconEl.classList.add('ion-accordion-toggle-icon');
169
+ iconEl.icon = toggleIcon;
170
+ iconEl.setAttribute('aria-hidden', 'true');
171
+ ionItem.appendChild(iconEl);
172
+ };
173
+ this.expandAccordion = () => {
174
+ const { contentEl, contentElWrapper } = this;
175
+ /**
176
+ * If the content elements aren't available yet, just set the state.
177
+ * This happens on initial render before the DOM is ready.
178
+ */
179
+ if (contentEl === undefined || contentElWrapper === undefined) {
180
+ this.state = 4 /* AccordionState.Expanded */;
181
+ this.hasEverBeenExpanded = true;
182
+ return;
183
+ }
184
+ if (this.state === 4 /* AccordionState.Expanded */) {
185
+ return;
186
+ }
187
+ if (this.currentRaf !== undefined) {
188
+ cancelAnimationFrame(this.currentRaf);
189
+ }
190
+ /**
191
+ * Mark that this accordion has been expanded at least once.
192
+ * This allows subsequent expansions to animate.
193
+ */
194
+ this.hasEverBeenExpanded = true;
195
+ if (this.shouldAnimate()) {
196
+ helpers.raf(() => {
197
+ this.state = 8 /* AccordionState.Expanding */;
198
+ this.currentRaf = helpers.raf(async () => {
199
+ const contentHeight = contentElWrapper.offsetHeight;
200
+ const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
201
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
202
+ await waitForTransition;
203
+ this.state = 4 /* AccordionState.Expanded */;
204
+ contentEl.style.removeProperty('max-height');
205
+ });
206
+ });
207
+ }
208
+ else {
209
+ this.state = 4 /* AccordionState.Expanded */;
210
+ }
211
+ };
212
+ this.collapseAccordion = () => {
213
+ const { contentEl } = this;
214
+ /**
215
+ * If the content element isn't available yet, just set the state.
216
+ * This happens on initial render before the DOM is ready.
217
+ */
218
+ if (contentEl === undefined) {
219
+ this.state = 1 /* AccordionState.Collapsed */;
220
+ return;
221
+ }
222
+ if (this.state === 1 /* AccordionState.Collapsed */) {
223
+ return;
224
+ }
225
+ if (this.currentRaf !== undefined) {
226
+ cancelAnimationFrame(this.currentRaf);
227
+ }
228
+ if (this.shouldAnimate()) {
229
+ this.currentRaf = helpers.raf(async () => {
230
+ const contentHeight = contentEl.offsetHeight;
231
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
232
+ helpers.raf(async () => {
233
+ const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
234
+ this.state = 2 /* AccordionState.Collapsing */;
235
+ await waitForTransition;
236
+ this.state = 1 /* AccordionState.Collapsed */;
237
+ contentEl.style.removeProperty('max-height');
238
+ });
239
+ });
240
+ }
241
+ else {
242
+ this.state = 1 /* AccordionState.Collapsed */;
243
+ }
244
+ };
245
+ /**
246
+ * Helper function to determine if
247
+ * something should animate.
248
+ * If prefers-reduced-motion is set
249
+ * then we should not animate, regardless
250
+ * of what is set in the config.
251
+ */
252
+ this.shouldAnimate = () => {
253
+ /**
254
+ * Don't animate until after the first user interaction.
255
+ * This prevents animations on initial load when accordions
256
+ * start in an expanded or collapsed state programmatically.
257
+ *
258
+ * Additionally, don't animate the very first expansion even if
259
+ * hasInteracted is true. This handles edge cases like React StrictMode
260
+ * where effects run twice and might incorrectly mark as interacted.
261
+ */
262
+ if (!this.hasInteracted || !this.hasEverBeenExpanded) {
263
+ return false;
264
+ }
265
+ if (typeof window === 'undefined') {
266
+ return false;
267
+ }
268
+ const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
269
+ if (prefersReducedMotion) {
270
+ return false;
271
+ }
272
+ const animated = index.config.get('animated', true);
273
+ if (!animated) {
274
+ return false;
275
+ }
276
+ if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
277
+ return false;
278
+ }
279
+ return true;
280
+ };
281
+ this.updateState = async () => {
282
+ const accordionGroup = this.accordionGroupEl;
283
+ const accordionValue = this.value;
284
+ if (!accordionGroup) {
285
+ return;
286
+ }
287
+ const value = accordionGroup.value;
288
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
289
+ if (shouldExpand) {
290
+ this.expandAccordion();
291
+ this.isNext = this.isPrevious = false;
292
+ }
293
+ else {
294
+ this.collapseAccordion();
295
+ /**
296
+ * When using popout or inset,
297
+ * the collapsed accordion items
298
+ * may need additional border radius
299
+ * applied. Check to see if the
300
+ * next or previous accordion is selected.
301
+ */
302
+ const nextAccordion = this.getNextSibling();
303
+ const nextAccordionValue = nextAccordion === null || nextAccordion === void 0 ? void 0 : nextAccordion.value;
304
+ if (nextAccordionValue !== undefined) {
305
+ this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
306
+ }
307
+ const previousAccordion = this.getPreviousSibling();
308
+ const previousAccordionValue = previousAccordion === null || previousAccordion === void 0 ? void 0 : previousAccordion.value;
309
+ if (previousAccordionValue !== undefined) {
310
+ this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
311
+ }
312
+ }
313
+ };
314
+ this.getNextSibling = () => {
315
+ if (!this.el) {
316
+ return;
317
+ }
318
+ const nextSibling = this.el.nextElementSibling;
319
+ if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) !== 'ION-ACCORDION') {
320
+ return;
321
+ }
322
+ return nextSibling;
323
+ };
324
+ this.getPreviousSibling = () => {
325
+ if (!this.el) {
326
+ return;
327
+ }
328
+ const previousSibling = this.el.previousElementSibling;
329
+ if ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.tagName) !== 'ION-ACCORDION') {
330
+ return;
331
+ }
332
+ return previousSibling;
333
+ };
334
+ }
81
335
  valueChanged() {
82
336
  this.updateState();
83
337
  }
84
- /**
85
- * If `true`, the accordion cannot be interacted with.
86
- */
87
- disabled = false;
88
- /**
89
- * If `true`, the accordion cannot be interacted with,
90
- * but does not alter the opacity.
91
- */
92
- readonly = false;
93
- /**
94
- * The toggle icon to use. This icon will be
95
- * rotated when the accordion is expanded
96
- * or collapsed.
97
- */
98
- toggleIcon = index$1.chevronDown;
99
- /**
100
- * The slot inside of `ion-item` to
101
- * place the toggle icon. Defaults to `"end"`.
102
- */
103
- toggleIconSlot = 'end';
104
338
  connectedCallback() {
105
- const accordionGroupEl = (this.accordionGroupEl = this.el?.closest('ion-accordion-group'));
339
+ var _a;
340
+ const accordionGroupEl = (this.accordionGroupEl = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('ion-accordion-group'));
106
341
  if (accordionGroupEl) {
107
342
  this.updateState();
108
343
  helpers.addEventListener(accordionGroupEl, 'ionValueChange', this.accordionGroupUpdateHandler);
@@ -131,246 +366,6 @@ const Accordion = class {
131
366
  this.setAria(expanded);
132
367
  });
133
368
  }
134
- setItemDefaults = () => {
135
- const ionItem = this.getSlottedHeaderIonItem();
136
- if (!ionItem) {
137
- return;
138
- }
139
- /**
140
- * For a11y purposes, we make
141
- * the ion-item a button so users
142
- * can tab to it and use keyboard
143
- * navigation to get around.
144
- */
145
- ionItem.button = true;
146
- ionItem.detail = false;
147
- /**
148
- * By default, the lines in an
149
- * item should be full here, but
150
- * only do that if a user has
151
- * not explicitly overridden them
152
- */
153
- if (ionItem.lines === undefined) {
154
- ionItem.lines = 'full';
155
- }
156
- };
157
- getSlottedHeaderIonItem = () => {
158
- const { headerEl } = this;
159
- if (!headerEl) {
160
- return;
161
- }
162
- /**
163
- * Get the first ion-item
164
- * slotted in the header slot
165
- */
166
- const slot = headerEl.querySelector('slot');
167
- if (!slot) {
168
- return;
169
- }
170
- // This is not defined in unit tests
171
- if (slot.assignedElements === undefined)
172
- return;
173
- return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
174
- };
175
- setAria = (expanded = false) => {
176
- const ionItem = this.getSlottedHeaderIonItem();
177
- if (!ionItem) {
178
- return;
179
- }
180
- /**
181
- * Get the native <button> element inside of
182
- * ion-item because that is what will be focused
183
- */
184
- const root = helpers.getElementRoot(ionItem);
185
- const button = root.querySelector('button');
186
- if (!button) {
187
- return;
188
- }
189
- button.setAttribute('aria-expanded', `${expanded}`);
190
- };
191
- slotToggleIcon = () => {
192
- const ionItem = this.getSlottedHeaderIonItem();
193
- if (!ionItem) {
194
- return;
195
- }
196
- const { toggleIconSlot, toggleIcon } = this;
197
- /**
198
- * Check if there already is a toggle icon.
199
- * If so, do not add another one.
200
- */
201
- const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
202
- if (existingToggleIcon) {
203
- return;
204
- }
205
- const iconEl = document.createElement('ion-icon');
206
- iconEl.slot = toggleIconSlot;
207
- iconEl.lazy = false;
208
- iconEl.classList.add('ion-accordion-toggle-icon');
209
- iconEl.icon = toggleIcon;
210
- iconEl.setAttribute('aria-hidden', 'true');
211
- ionItem.appendChild(iconEl);
212
- };
213
- expandAccordion = () => {
214
- const { contentEl, contentElWrapper } = this;
215
- /**
216
- * If the content elements aren't available yet, just set the state.
217
- * This happens on initial render before the DOM is ready.
218
- */
219
- if (contentEl === undefined || contentElWrapper === undefined) {
220
- this.state = 4 /* AccordionState.Expanded */;
221
- this.hasEverBeenExpanded = true;
222
- return;
223
- }
224
- if (this.state === 4 /* AccordionState.Expanded */) {
225
- return;
226
- }
227
- if (this.currentRaf !== undefined) {
228
- cancelAnimationFrame(this.currentRaf);
229
- }
230
- /**
231
- * Mark that this accordion has been expanded at least once.
232
- * This allows subsequent expansions to animate.
233
- */
234
- this.hasEverBeenExpanded = true;
235
- if (this.shouldAnimate()) {
236
- helpers.raf(() => {
237
- this.state = 8 /* AccordionState.Expanding */;
238
- this.currentRaf = helpers.raf(async () => {
239
- const contentHeight = contentElWrapper.offsetHeight;
240
- const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
241
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
242
- await waitForTransition;
243
- this.state = 4 /* AccordionState.Expanded */;
244
- contentEl.style.removeProperty('max-height');
245
- });
246
- });
247
- }
248
- else {
249
- this.state = 4 /* AccordionState.Expanded */;
250
- }
251
- };
252
- collapseAccordion = () => {
253
- const { contentEl } = this;
254
- /**
255
- * If the content element isn't available yet, just set the state.
256
- * This happens on initial render before the DOM is ready.
257
- */
258
- if (contentEl === undefined) {
259
- this.state = 1 /* AccordionState.Collapsed */;
260
- return;
261
- }
262
- if (this.state === 1 /* AccordionState.Collapsed */) {
263
- return;
264
- }
265
- if (this.currentRaf !== undefined) {
266
- cancelAnimationFrame(this.currentRaf);
267
- }
268
- if (this.shouldAnimate()) {
269
- this.currentRaf = helpers.raf(async () => {
270
- const contentHeight = contentEl.offsetHeight;
271
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
272
- helpers.raf(async () => {
273
- const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
274
- this.state = 2 /* AccordionState.Collapsing */;
275
- await waitForTransition;
276
- this.state = 1 /* AccordionState.Collapsed */;
277
- contentEl.style.removeProperty('max-height');
278
- });
279
- });
280
- }
281
- else {
282
- this.state = 1 /* AccordionState.Collapsed */;
283
- }
284
- };
285
- /**
286
- * Helper function to determine if
287
- * something should animate.
288
- * If prefers-reduced-motion is set
289
- * then we should not animate, regardless
290
- * of what is set in the config.
291
- */
292
- shouldAnimate = () => {
293
- /**
294
- * Don't animate until after the first user interaction.
295
- * This prevents animations on initial load when accordions
296
- * start in an expanded or collapsed state programmatically.
297
- *
298
- * Additionally, don't animate the very first expansion even if
299
- * hasInteracted is true. This handles edge cases like React StrictMode
300
- * where effects run twice and might incorrectly mark as interacted.
301
- */
302
- if (!this.hasInteracted || !this.hasEverBeenExpanded) {
303
- return false;
304
- }
305
- if (typeof window === 'undefined') {
306
- return false;
307
- }
308
- const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
309
- if (prefersReducedMotion) {
310
- return false;
311
- }
312
- const animated = index.config.get('animated', true);
313
- if (!animated) {
314
- return false;
315
- }
316
- if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
317
- return false;
318
- }
319
- return true;
320
- };
321
- updateState = async () => {
322
- const accordionGroup = this.accordionGroupEl;
323
- const accordionValue = this.value;
324
- if (!accordionGroup) {
325
- return;
326
- }
327
- const value = accordionGroup.value;
328
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
329
- if (shouldExpand) {
330
- this.expandAccordion();
331
- this.isNext = this.isPrevious = false;
332
- }
333
- else {
334
- this.collapseAccordion();
335
- /**
336
- * When using popout or inset,
337
- * the collapsed accordion items
338
- * may need additional border radius
339
- * applied. Check to see if the
340
- * next or previous accordion is selected.
341
- */
342
- const nextAccordion = this.getNextSibling();
343
- const nextAccordionValue = nextAccordion?.value;
344
- if (nextAccordionValue !== undefined) {
345
- this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
346
- }
347
- const previousAccordion = this.getPreviousSibling();
348
- const previousAccordionValue = previousAccordion?.value;
349
- if (previousAccordionValue !== undefined) {
350
- this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
351
- }
352
- }
353
- };
354
- getNextSibling = () => {
355
- if (!this.el) {
356
- return;
357
- }
358
- const nextSibling = this.el.nextElementSibling;
359
- if (nextSibling?.tagName !== 'ION-ACCORDION') {
360
- return;
361
- }
362
- return nextSibling;
363
- };
364
- getPreviousSibling = () => {
365
- if (!this.el) {
366
- return;
367
- }
368
- const previousSibling = this.el.previousElementSibling;
369
- if (previousSibling?.tagName !== 'ION-ACCORDION') {
370
- return;
371
- }
372
- return previousSibling;
373
- };
374
369
  toggleExpanded() {
375
370
  const { accordionGroupEl, disabled, readonly, value, state } = this;
376
371
  if (disabled || readonly)
@@ -414,6 +409,7 @@ const Accordion = class {
414
409
  }, tabindex: disabled ? '-1' : undefined }, index.h("div", { key: 'f76bc02347639b41c9a5be8a9488a8be8559cba7', onClick: () => this.toggleExpanded(), id: "header", part: headerPart, "aria-controls": "content", ref: (headerEl) => (this.headerEl = headerEl) }, index.h("slot", { key: 'e01744bf0af3200239e82c60c632ed36295db2da', name: "header" })), index.h("div", { key: 'c613345a7e244ee361f76ff4ebed139d2a1b9572', id: "content", part: contentPart, role: "region", "aria-labelledby": "header", ref: (contentEl) => (this.contentEl = contentEl) }, index.h("div", { key: '943b65d9a129759b4c213974ae5ed777b5f6166e', id: "content-wrapper", ref: (contentElWrapper) => (this.contentElWrapper = contentElWrapper) }, index.h("slot", { key: 'b0df520dad9d5557df63a35f8206ada4a765d238', name: "content" })))));
415
410
  }
416
411
  static get delegatesFocus() { return true; }
412
+ get el() { return index.getElement(this); }
417
413
  static get watchers() { return {
418
414
  "value": [{
419
415
  "valueChanged": 0
@@ -435,53 +431,28 @@ const AccordionGroup = class {
435
431
  index.registerInstance(this, hostRef);
436
432
  this.ionChange = index.createEvent(this, "ionChange", 7);
437
433
  this.ionValueChange = index.createEvent(this, "ionValueChange", 7);
434
+ /**
435
+ * If `true`, all accordions inside of the
436
+ * accordion group will animate when expanding
437
+ * or collapsing.
438
+ */
439
+ this.animated = true;
440
+ /**
441
+ * If `true`, the accordion group cannot be interacted with.
442
+ */
443
+ this.disabled = false;
444
+ /**
445
+ * If `true`, the accordion group cannot be interacted with,
446
+ * but does not alter the opacity.
447
+ */
448
+ this.readonly = false;
449
+ /**
450
+ * Describes the expansion behavior for each accordion.
451
+ * Possible values are `"compact"` and `"inset"`.
452
+ * Defaults to `"compact"`.
453
+ */
454
+ this.expand = 'compact';
438
455
  }
439
- get el() { return index.getElement(this); }
440
- /**
441
- * If `true`, all accordions inside of the
442
- * accordion group will animate when expanding
443
- * or collapsing.
444
- */
445
- animated = true;
446
- /**
447
- * If `true`, the accordion group can have multiple
448
- * accordion components expanded at the same time.
449
- */
450
- multiple;
451
- /**
452
- * The value of the accordion group. This controls which
453
- * accordions are expanded.
454
- * This should be an array of strings only when `multiple="true"`
455
- */
456
- value;
457
- /**
458
- * If `true`, the accordion group cannot be interacted with.
459
- */
460
- disabled = false;
461
- /**
462
- * If `true`, the accordion group cannot be interacted with,
463
- * but does not alter the opacity.
464
- */
465
- readonly = false;
466
- /**
467
- * Describes the expansion behavior for each accordion.
468
- * Possible values are `"compact"` and `"inset"`.
469
- * Defaults to `"compact"`.
470
- */
471
- expand = 'compact';
472
- /**
473
- * Emitted when the value property has changed as a result of a user action such as a click.
474
- *
475
- * This event will not emit when programmatically setting the `value` property.
476
- */
477
- ionChange;
478
- /**
479
- * Emitted when the value property has changed.
480
- * This is used to ensure that ion-accordion can respond
481
- * to any value property changes.
482
- * @internal
483
- */
484
- ionValueChange;
485
456
  valueChanged() {
486
457
  const { value, multiple } = this;
487
458
  if (!multiple && Array.isArray(value)) {
@@ -614,7 +585,7 @@ const AccordionGroup = class {
614
585
  * to the array.
615
586
  */
616
587
  if (multiple) {
617
- const groupValue = value ?? [];
588
+ const groupValue = value !== null && value !== void 0 ? value : [];
618
589
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
619
590
  const valueExists = processedValue.find((v) => v === accordionValue);
620
591
  if (valueExists === undefined && accordionValue !== undefined) {
@@ -631,7 +602,7 @@ const AccordionGroup = class {
631
602
  * out of the values array or unset the value.
632
603
  */
633
604
  if (multiple) {
634
- const groupValue = value ?? [];
605
+ const groupValue = value !== null && value !== void 0 ? value : [];
635
606
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
636
607
  this.setValue(processedValue.filter((v) => v !== accordionValue));
637
608
  }
@@ -670,6 +641,7 @@ const AccordionGroup = class {
670
641
  [`accordion-group-expand-${expand}`]: true,
671
642
  }, role: "presentation" }, index.h("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
672
643
  }
644
+ get el() { return index.getElement(this); }
673
645
  static get watchers() { return {
674
646
  "value": [{
675
647
  "valueChanged": 0