@ionic/core 8.8.19-dev.11787007863.1976a30e → 8.8.19-dev.11787083540.1511caf2

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 (806) 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-0LM2oPMC.js +4 -0
  104. package/components/{p-_0JhwClE.js → p-6J0vc7Z8.js} +1 -1
  105. package/components/p-9GFIh9p1.js +4 -0
  106. package/components/p-B21528L5.js +4 -0
  107. package/components/p-B2nSfLHH.js +4 -0
  108. package/components/p-B3qf4bEn.js +4 -0
  109. package/components/p-B9jFTlwE.js +4 -0
  110. package/components/p-BDd9Zrb9.js +4 -0
  111. package/components/p-BLmJ0zRm.js +4 -0
  112. package/components/p-BMYNBJgf.js +4 -0
  113. package/components/p-BRYd8D-I.js +4 -0
  114. package/components/p-BSEgsdFI.js +4 -0
  115. package/components/p-BTEOs1at.js +4 -0
  116. package/components/p-BTJrYwxN.js +4 -0
  117. package/components/p-BV-zKay-.js +4 -0
  118. package/components/p-BYRVyMu9.js +4 -0
  119. package/components/{p-DwpKZ6rl.js → p-BkKAANMJ.js} +1 -1
  120. package/components/p-Bmq8qlkW.js +4 -0
  121. package/components/p-BuxQcfHK.js +4 -0
  122. package/components/p-Bz0dSlXZ.js +4 -0
  123. package/components/p-C7II1iDj.js +4 -0
  124. package/components/p-CHqRYvYm.js +4 -0
  125. package/components/p-CSZf8_j0.js +4 -0
  126. package/components/p-CTdRooFV.js +4 -0
  127. package/components/p-Cf2jSDS8.js +4 -0
  128. package/components/p-Cfx4M1Bn.js +4 -0
  129. package/components/p-CgkrslTX.js +4 -0
  130. package/components/p-CiCzYG2V.js +4 -0
  131. package/{dist/ionic/p-BkfAWuv6.js → components/p-Ck0lEczL.js} +1 -1
  132. package/components/p-CmR5uXej.js +4 -0
  133. package/components/p-CniZht3v.js +4 -0
  134. package/components/p-CsaojgEs.js +4 -0
  135. package/components/p-CtWGkNnJ.js +4 -0
  136. package/components/p-D13Eaw-8.js +4 -0
  137. package/components/p-D4FYu-4R.js +4 -0
  138. package/components/p-D6Ynv7Xh.js +4 -0
  139. package/components/p-DARjq3GM.js +4 -0
  140. package/components/p-DEZ2myA3.js +4 -0
  141. package/components/p-DOFCbuQR.js +4 -0
  142. package/components/p-DVe41iHI.js +4 -0
  143. package/components/p-DX5m9g56.js +4 -0
  144. package/components/p-DboHi2CL.js +4 -0
  145. package/components/p-DiVJyqlX.js +4 -0
  146. package/components/p-DmzFY5IC.js +4 -0
  147. package/components/{p-ryyf_ItD.js → p-DqLB8yFQ.js} +1 -1
  148. package/components/p-DqZAXv2t.js +4 -0
  149. package/components/p-Dv8w0kqz.js +4 -0
  150. package/components/p-Dw7GNDKq.js +4 -0
  151. package/components/p-Dww01PNs.js +4 -0
  152. package/components/p-Gy276IJk.js +4 -0
  153. package/components/p-ZzLXTvyt.js +4 -0
  154. package/components/p-cyNmxje6.js +4 -0
  155. package/components/p-j5IxBIan.js +4 -0
  156. package/components/p-k_E4tX5Z.js +4 -0
  157. package/components/p-lVAbdiAu.js +4 -0
  158. package/components/p-o8OKV5aD.js +4 -0
  159. package/components/{p-30_sZS2V.js → p-qMmFisyx.js} +1 -1
  160. package/components/p-rCa2eL0j.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-AWp_ygDP.js} +3 -3
  164. package/dist/cjs/config-D6C-KlA9.js +201 -0
  165. package/dist/cjs/dir-DD0jPVH3.js +31 -0
  166. package/dist/cjs/{format-pp0Du3K-.js → format-BUFWn4Bn.js} +30 -40
  167. package/dist/cjs/{framework-delegate-NTLQ5YzV.js → framework-delegate-CEzl4MEA.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-DdZyl6WL.js} +15 -11
  172. package/dist/cjs/{index-P1nQxrpZ.js → index-BJ2-LydH.js} +7 -36
  173. package/dist/cjs/{index-uvry__L4.js → index-BfaXsATC.js} +14 -31
  174. package/dist/cjs/{index-D48vawBq.js → index-CD92bI7B.js} +2 -2
  175. package/dist/cjs/{index-Ck9advCT.js → index-CukZnH1U.js} +5 -5
  176. package/dist/cjs/{index-D2X6b92x.js → index-DOiZqxWZ.js} +7 -6
  177. package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
  178. package/dist/cjs/{index-BlshL9ib.js → index-MWAIyVLl.js} +3 -2
  179. package/dist/cjs/index.cjs.js +19 -18
  180. package/dist/cjs/{input-shims-DvHAFqiP.js → input-shims-CPKgrIe3.js} +12 -9
  181. package/dist/cjs/input.utils-DQaUGGed.js +150 -0
  182. package/dist/cjs/ion-accordion_2.cjs.entry.js +341 -368
  183. package/dist/cjs/ion-action-sheet.cjs.entry.js +77 -187
  184. package/dist/cjs/ion-alert.cjs.entry.js +112 -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 +24 -47
  188. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  189. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +122 -199
  190. package/dist/cjs/ion-button_2.cjs.entry.js +67 -138
  191. package/dist/cjs/ion-card_5.cjs.entry.js +31 -82
  192. package/dist/cjs/ion-checkbox.cjs.entry.js +102 -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 +242 -253
  196. package/dist/cjs/ion-datetime_3.cjs.entry.js +3167 -0
  197. package/dist/cjs/ion-fab_3.cjs.entry.js +82 -139
  198. package/dist/cjs/ion-img.cjs.entry.js +13 -34
  199. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +73 -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 +212 -343
  203. package/dist/cjs/ion-item-option_3.cjs.entry.js +55 -94
  204. package/dist/cjs/ion-item_8.cjs.entry.js +93 -191
  205. package/dist/cjs/ion-loading.cjs.entry.js +61 -146
  206. package/dist/cjs/ion-menu_3.cjs.entry.js +109 -170
  207. package/dist/cjs/ion-modal.cjs.entry.js +262 -455
  208. package/dist/cjs/ion-nav_2.cjs.entry.js +159 -101
  209. package/dist/cjs/ion-picker-column-option.cjs.entry.js +34 -37
  210. package/dist/cjs/ion-picker-column.cjs.entry.js +406 -417
  211. package/dist/cjs/ion-picker.cjs.entry.js +393 -401
  212. package/dist/cjs/ion-popover.cjs.entry.js +206 -319
  213. package/dist/cjs/ion-progress-bar.cjs.entry.js +26 -31
  214. package/dist/cjs/ion-radio_2.cjs.entry.js +135 -207
  215. package/dist/cjs/ion-range.cjs.entry.js +237 -302
  216. package/dist/cjs/ion-refresher_2.cjs.entry.js +94 -165
  217. package/dist/cjs/ion-reorder_2.cjs.entry.js +24 -53
  218. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  219. package/dist/cjs/ion-route_4.cjs.entry.js +72 -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 +49 -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 +42 -100
  229. package/dist/cjs/ion-tab_2.cjs.entry.js +28 -53
  230. package/dist/cjs/ion-text.cjs.entry.js +5 -11
  231. package/dist/cjs/ion-textarea.cjs.entry.js +189 -296
  232. package/dist/cjs/ion-toast.cjs.entry.js +118 -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-CTiTDh3m.js} +18 -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-BpiTAaqF.js} +9 -7
  243. package/dist/cjs/notch-controller-aiy8aQb-.js +155 -0
  244. package/dist/cjs/{overlays-IlP4H2Gn.js → overlays-CQ_c1fko.js} +33 -48
  245. package/dist/cjs/{status-tap-BR_ujYHg.js → status-tap-7FzRlXNr.js} +4 -3
  246. package/dist/cjs/{swipe-back-DzQKEl5g.js → swipe-back-DwTZiAc9.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 +63 -105
  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 +232 -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 +4 -27
  411. package/dist/collection/utils/hardware-back-button.js +3 -3
  412. package/dist/collection/utils/helpers.js +14 -10
  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 +18 -7
  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-CXXy0FIE.js} +3 -3
  442. package/dist/esm/config-DQCONYYp.js +195 -0
  443. package/dist/esm/dir-o8OKV5aD.js +29 -0
  444. package/dist/esm/{format-Dcwga61t.js → format-CAmvpAez.js} +31 -41
  445. package/dist/esm/{framework-delegate--ajhSeKH.js → framework-delegate-B9yvYzqV.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-DkCLSLI9.js} +15 -11
  450. package/dist/esm/{index-_Za5VB9w.js → index-B_8X7INq.js} +2 -2
  451. package/dist/esm/{index-DppOcPFQ.js → index-Bck1OwMs.js} +7 -36
  452. package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
  453. package/dist/esm/{index-CumkqGQF.js → index-DdeElWma.js} +7 -6
  454. package/dist/esm/{index-8s8kZKJ7.js → index-Dsz7OTeL.js} +5 -5
  455. package/dist/esm/{index-BCgUwrV0.js → index-DwNKJodj.js} +3 -2
  456. package/dist/esm/{index-ChhhtsGZ.js → index-tcQvqkiX.js} +15 -32
  457. package/dist/esm/index.js +16 -16
  458. package/dist/esm/{input-shims-BB0AKb_k.js → input-shims-d-hDv86G.js} +12 -9
  459. package/dist/esm/input.utils-Cd23Gdd1.js +147 -0
  460. package/dist/esm/ion-accordion_2.entry.js +341 -368
  461. package/dist/esm/ion-action-sheet.entry.js +77 -187
  462. package/dist/esm/ion-alert.entry.js +111 -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 +24 -47
  466. package/dist/esm/ion-backdrop.entry.js +14 -18
  467. package/dist/esm/ion-breadcrumb_2.entry.js +122 -199
  468. package/dist/esm/ion-button_2.entry.js +67 -138
  469. package/dist/esm/ion-card_5.entry.js +31 -82
  470. package/dist/esm/ion-checkbox.entry.js +102 -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 +242 -253
  474. package/dist/esm/ion-datetime_3.entry.js +3163 -0
  475. package/dist/esm/ion-fab_3.entry.js +82 -139
  476. package/dist/esm/ion-img.entry.js +13 -34
  477. package/dist/esm/ion-infinite-scroll_2.entry.js +72 -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 +210 -341
  481. package/dist/esm/ion-item-option_3.entry.js +55 -94
  482. package/dist/esm/ion-item_8.entry.js +93 -191
  483. package/dist/esm/ion-loading.entry.js +60 -145
  484. package/dist/esm/ion-menu_3.entry.js +109 -170
  485. package/dist/esm/ion-modal.entry.js +262 -455
  486. package/dist/esm/ion-nav_2.entry.js +159 -101
  487. package/dist/esm/ion-picker-column-option.entry.js +34 -37
  488. package/dist/esm/ion-picker-column.entry.js +406 -417
  489. package/dist/esm/ion-picker.entry.js +393 -401
  490. package/dist/esm/ion-popover.entry.js +206 -319
  491. package/dist/esm/ion-progress-bar.entry.js +26 -31
  492. package/dist/esm/ion-radio_2.entry.js +135 -207
  493. package/dist/esm/ion-range.entry.js +237 -302
  494. package/dist/esm/ion-refresher_2.entry.js +92 -163
  495. package/dist/esm/ion-reorder_2.entry.js +24 -53
  496. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  497. package/dist/esm/ion-route_4.entry.js +72 -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 +49 -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 +42 -100
  507. package/dist/esm/ion-tab_2.entry.js +28 -53
  508. package/dist/esm/ion-text.entry.js +5 -11
  509. package/dist/esm/ion-textarea.entry.js +188 -295
  510. package/dist/esm/ion-toast.entry.js +117 -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-CxNhMt4a.js} +18 -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-IE4mC3kp.js} +9 -7
  521. package/dist/esm/notch-controller-Doqis1td.js +153 -0
  522. package/dist/esm/{overlays-CjWwtvf1.js → overlays-COCl_nm9.js} +33 -48
  523. package/dist/esm/{status-tap-DpLhkDWs.js → status-tap-HhO5eQI9.js} +4 -3
  524. package/dist/esm/{swipe-back-cz4-lyG3.js → swipe-back-DK6afpuO.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-0283ea73.entry.js +4 -0
  531. package/dist/ionic/p-02ecae65.entry.js +4 -0
  532. package/dist/ionic/p-0672f677.entry.js +4 -0
  533. package/dist/ionic/p-0c06fe60.entry.js +4 -0
  534. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  535. package/dist/ionic/p-1af4d74c.entry.js +4 -0
  536. package/dist/ionic/p-1d7ef0d2.entry.js +4 -0
  537. package/dist/ionic/p-26f05d3a.entry.js +4 -0
  538. package/dist/ionic/p-27d30585.entry.js +4 -0
  539. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  540. package/dist/ionic/p-31e7bd05.entry.js +4 -0
  541. package/dist/ionic/p-32f53010.entry.js +4 -0
  542. package/dist/ionic/p-35eb8b5c.entry.js +4 -0
  543. package/dist/ionic/p-37e720da.entry.js +4 -0
  544. package/dist/ionic/p-3efa137b.entry.js +4 -0
  545. package/dist/ionic/p-432bd72c.entry.js +4 -0
  546. package/dist/ionic/p-47214c72.entry.js +4 -0
  547. package/dist/ionic/p-4e172429.entry.js +4 -0
  548. package/dist/ionic/p-5c3da84e.entry.js +4 -0
  549. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  550. package/dist/ionic/p-5d8082fe.entry.js +4 -0
  551. package/dist/ionic/p-613d3c43.entry.js +4 -0
  552. package/dist/ionic/p-616e4d4f.entry.js +4 -0
  553. package/dist/ionic/p-65d611b2.entry.js +4 -0
  554. package/dist/ionic/p-67806e3f.entry.js +4 -0
  555. package/dist/ionic/p-68307fbf.entry.js +4 -0
  556. package/dist/ionic/p-68cbb2fc.entry.js +4 -0
  557. package/dist/ionic/p-737ae9eb.entry.js +4 -0
  558. package/dist/ionic/p-7b0d6248.entry.js +4 -0
  559. package/dist/ionic/p-7e71e470.entry.js +4 -0
  560. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  561. package/dist/ionic/p-85d49987.entry.js +4 -0
  562. package/dist/ionic/p-8945088b.entry.js +4 -0
  563. package/dist/ionic/p-8b155568.entry.js +4 -0
  564. package/dist/ionic/p-90267c4b.entry.js +4 -0
  565. package/dist/ionic/p-92ad8a67.entry.js +4 -0
  566. package/dist/ionic/p-9a97d4e0.entry.js +4 -0
  567. package/dist/ionic/p-9e4b0894.entry.js +4 -0
  568. package/dist/ionic/p-9eeaBrnk.js +4 -0
  569. package/dist/ionic/p-B2kaj8sx.js +4 -0
  570. package/dist/ionic/p-B4y7nxsg.js +4 -0
  571. package/dist/ionic/p-B8t9Ro6f.js +4 -0
  572. package/dist/ionic/p-BEOxsxBw.js +4 -0
  573. package/dist/ionic/p-BJ2NxSHp.js +4 -0
  574. package/dist/ionic/p-BLiL8g0v.js +4 -0
  575. package/dist/ionic/p-BTEOs1at.js +4 -0
  576. package/dist/ionic/p-BUFIpxKM.js +4 -0
  577. package/dist/ionic/p-BYRVyMu9.js +4 -0
  578. package/dist/ionic/p-C0eMdTCW.js +4 -0
  579. package/dist/ionic/p-CKvCXMs9.js +4 -0
  580. package/dist/ionic/p-CPTv7G9B.js +4 -0
  581. package/dist/ionic/{p-CQ_4TirR.js → p-Cd4H8ft-.js} +1 -1
  582. package/dist/ionic/{p-I3In7hMC.js → p-ClM02LPk.js} +1 -1
  583. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  584. package/dist/ionic/p-CxMyXUtt.js +4 -0
  585. package/dist/ionic/p-D13Eaw-8.js +4 -0
  586. package/dist/ionic/p-DCoy2elM.js +4 -0
  587. package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
  588. package/dist/ionic/p-DZaO33Mw.js +4 -0
  589. package/dist/ionic/p-DiVJyqlX.js +4 -0
  590. package/dist/ionic/p-DipZFfzN.js +4 -0
  591. package/dist/ionic/p-DqN5EA2O.js +4 -0
  592. package/dist/ionic/p-Dr9fTCb1.js +4 -0
  593. package/dist/ionic/p-DzWaWHGc.js +4 -0
  594. package/dist/ionic/p-EkpneKVM.js +4 -0
  595. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  596. package/dist/ionic/p-SNAkTDfm.js +4 -0
  597. package/dist/ionic/p-ab00b0d8.entry.js +4 -0
  598. package/dist/ionic/p-c2175309.entry.js +4 -0
  599. package/dist/ionic/p-c4b69d9b.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-ce637936.entry.js +4 -0
  603. package/dist/ionic/{p-08443c08.entry.js → p-da85e958.entry.js} +1 -1
  604. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  605. package/dist/ionic/p-e139357c.entry.js +4 -0
  606. package/dist/ionic/p-f37ca594.entry.js +4 -0
  607. package/dist/ionic/p-f8dd336e.entry.js +4 -0
  608. package/dist/ionic/p-f9de757b.entry.js +4 -0
  609. package/dist/ionic/p-fe11cf51.entry.js +4 -0
  610. package/dist/ionic/p-mjKAFv89.js +4 -0
  611. package/dist/ionic/p-o8OKV5aD.js +4 -0
  612. package/dist/ionic/p-tcQvqkiX.js +5 -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/route/route.d.ts +1 -1
  626. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  627. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  628. package/dist/types/components/select/select-interface.d.ts +0 -31
  629. package/dist/types/components/select/select.d.ts +6 -30
  630. package/dist/types/components/select-option/select-option.d.ts +1 -42
  631. package/dist/types/components/textarea/textarea.d.ts +5 -12
  632. package/dist/types/components.d.ts +311 -74
  633. package/dist/types/index.d.ts +1 -1
  634. package/dist/types/interface.d.ts +1 -0
  635. package/dist/types/utils/config.d.ts +8 -1
  636. package/dist/types/utils/forms/index.d.ts +0 -1
  637. package/dist/types/utils/helpers.d.ts +8 -5
  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/rtl/dir.d.ts +10 -4
  641. package/dist/types/utils/sanitization/index.d.ts +2 -58
  642. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  643. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  644. package/hydrate/index.js +7265 -10630
  645. package/hydrate/index.mjs +7265 -10630
  646. package/package.json +12 -55
  647. package/components/p--m5cCjbK.js +0 -4
  648. package/components/p-8FN7p701.js +0 -4
  649. package/components/p-B-FxiyeI.js +0 -4
  650. package/components/p-B4uHHhPK.js +0 -4
  651. package/components/p-BMPN55of.js +0 -4
  652. package/components/p-BMS4t-kJ.js +0 -4
  653. package/components/p-BOvLNVKq.js +0 -4
  654. package/components/p-BSQPZ79H.js +0 -4
  655. package/components/p-BWBigMsI.js +0 -4
  656. package/components/p-BZ4-QTes.js +0 -4
  657. package/components/p-BhamHSw3.js +0 -4
  658. package/components/p-BjluhQMI.js +0 -4
  659. package/components/p-BlsIikdZ.js +0 -4
  660. package/components/p-Blug1Vxu.js +0 -4
  661. package/components/p-BpG8kBfD.js +0 -4
  662. package/components/p-BqPNzJf6.js +0 -4
  663. package/components/p-C5KYjZWD.js +0 -4
  664. package/components/p-C91npEel.js +0 -4
  665. package/components/p-C9BGR5fy.js +0 -4
  666. package/components/p-CD4fmpem.js +0 -4
  667. package/components/p-CEW4RXZO.js +0 -4
  668. package/components/p-CKhiNOEg.js +0 -4
  669. package/components/p-CO2zzh3W.js +0 -4
  670. package/components/p-CVb3x_r3.js +0 -4
  671. package/components/p-CWLrHG8Y.js +0 -4
  672. package/components/p-CbhUdtjf.js +0 -4
  673. package/components/p-CejmQs3h.js +0 -4
  674. package/components/p-CfnNZz_d.js +0 -4
  675. package/components/p-CmKf4pgI.js +0 -4
  676. package/components/p-Cs5f-uOS.js +0 -4
  677. package/components/p-D7-vHX0A.js +0 -4
  678. package/components/p-DKrhJJV0.js +0 -4
  679. package/components/p-DRfgH82D.js +0 -4
  680. package/components/p-DSzSbVP2.js +0 -4
  681. package/components/p-DVKS-ovH.js +0 -4
  682. package/components/p-DWCzVL3Y.js +0 -4
  683. package/components/p-Dd8ajo9a.js +0 -4
  684. package/components/p-DdnhY_oj.js +0 -4
  685. package/components/p-DgZOZQjJ.js +0 -4
  686. package/components/p-Dmd2xqCe.js +0 -4
  687. package/components/p-G0TxqHfe.js +0 -4
  688. package/components/p-GG5GhznE.js +0 -4
  689. package/components/p-J-p0EtHR.js +0 -4
  690. package/components/p-LXu5-6Ti.js +0 -4
  691. package/components/p-TXPDHL13.js +0 -4
  692. package/components/p-UQSiXX2Z.js +0 -4
  693. package/components/p-UuPYCOZE.js +0 -4
  694. package/components/p-WeeS7GvC.js +0 -4
  695. package/components/p-_IKFD3ID.js +0 -4
  696. package/components/p-byZM6qHV.js +0 -4
  697. package/components/p-hh7qIC-X.js +0 -4
  698. package/components/p-idq4JFo2.js +0 -4
  699. package/components/p-qT1szVjw.js +0 -4
  700. package/components/p-wzAhIh03.js +0 -4
  701. package/components/p-ypuYdSDB.js +0 -4
  702. package/components/p-yuj4Nkm_.js +0 -4
  703. package/dist/cjs/config-CjUbvdPW.js +0 -36
  704. package/dist/cjs/dir-Brx7VkvP.js +0 -20
  705. package/dist/cjs/index-B7zJsYWS.js +0 -429
  706. package/dist/cjs/input.utils-BZdMWVrt.js +0 -35
  707. package/dist/cjs/ion-datetime.cjs.entry.js +0 -2770
  708. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  709. package/dist/cjs/select-option-render-pULCGldr.js +0 -123
  710. package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +0 -397
  711. package/dist/collection/utils/forms/start-container-controller.js +0 -132
  712. package/dist/collection/utils/overlay-control-label.js +0 -45
  713. package/dist/collection/utils/select-option-render.js +0 -118
  714. package/dist/esm/config-DWCzVL3Y.js +0 -32
  715. package/dist/esm/dir-B-FxiyeI.js +0 -18
  716. package/dist/esm/index-CKM1DdGm.js +0 -424
  717. package/dist/esm/input.utils-B1ValN_N.js +0 -33
  718. package/dist/esm/ion-datetime.entry.js +0 -2768
  719. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  720. package/dist/esm/select-option-render-C4m76VGH.js +0 -121
  721. package/dist/esm/slot-mutation-controller-u741eD3Z.js +0 -393
  722. package/dist/ionic/p-06533d51.entry.js +0 -4
  723. package/dist/ionic/p-0FNc80PN.js +0 -4
  724. package/dist/ionic/p-141f5b47.entry.js +0 -4
  725. package/dist/ionic/p-14a5e8f5.entry.js +0 -4
  726. package/dist/ionic/p-19269e04.entry.js +0 -4
  727. package/dist/ionic/p-19abbc33.entry.js +0 -4
  728. package/dist/ionic/p-1edf0573.entry.js +0 -4
  729. package/dist/ionic/p-4204184c.entry.js +0 -4
  730. package/dist/ionic/p-4bc3ecdb.entry.js +0 -4
  731. package/dist/ionic/p-4eOQC00Z.js +0 -4
  732. package/dist/ionic/p-4eed9ca1.entry.js +0 -4
  733. package/dist/ionic/p-53bac1c9.entry.js +0 -4
  734. package/dist/ionic/p-5506caeb.entry.js +0 -4
  735. package/dist/ionic/p-5521dc1f.entry.js +0 -4
  736. package/dist/ionic/p-5993a77f.entry.js +0 -4
  737. package/dist/ionic/p-5c3626de.entry.js +0 -4
  738. package/dist/ionic/p-5d3b411c.entry.js +0 -4
  739. package/dist/ionic/p-60576951.entry.js +0 -4
  740. package/dist/ionic/p-7116e558.entry.js +0 -4
  741. package/dist/ionic/p-711a8319.entry.js +0 -4
  742. package/dist/ionic/p-71419a55.entry.js +0 -4
  743. package/dist/ionic/p-79325ffe.entry.js +0 -4
  744. package/dist/ionic/p-7bb3e957.entry.js +0 -4
  745. package/dist/ionic/p-82525fb0.entry.js +0 -4
  746. package/dist/ionic/p-84a38904.entry.js +0 -4
  747. package/dist/ionic/p-865fa114.entry.js +0 -4
  748. package/dist/ionic/p-8e1d9e3a.entry.js +0 -4
  749. package/dist/ionic/p-8f204f1e.entry.js +0 -4
  750. package/dist/ionic/p-9055e897.entry.js +0 -4
  751. package/dist/ionic/p-9658e083.entry.js +0 -4
  752. package/dist/ionic/p-988baee1.entry.js +0 -4
  753. package/dist/ionic/p-9nmHvEvw.js +0 -4
  754. package/dist/ionic/p-B-FxiyeI.js +0 -4
  755. package/dist/ionic/p-BB0LlG4y.js +0 -4
  756. package/dist/ionic/p-BMPN55of.js +0 -4
  757. package/dist/ionic/p-BQ8oNV0v.js +0 -4
  758. package/dist/ionic/p-BSQPZ79H.js +0 -4
  759. package/dist/ionic/p-BhamHSw3.js +0 -4
  760. package/dist/ionic/p-BjvtSsVI.js +0 -4
  761. package/dist/ionic/p-BwIp10KV.js +0 -4
  762. package/dist/ionic/p-C-94tAim.js +0 -4
  763. package/dist/ionic/p-C6eME8Ey.js +0 -4
  764. package/dist/ionic/p-CKUuSnDR.js +0 -4
  765. package/dist/ionic/p-CMRtMbJc.js +0 -4
  766. package/dist/ionic/p-CPcPmkGv.js +0 -4
  767. package/dist/ionic/p-CaRuIadB.js +0 -4
  768. package/dist/ionic/p-Cdjxf_yg.js +0 -4
  769. package/dist/ionic/p-ChhhtsGZ.js +0 -5
  770. package/dist/ionic/p-CmKf4pgI.js +0 -4
  771. package/dist/ionic/p-D5t_-oMk.js +0 -4
  772. package/dist/ionic/p-D94b61er.js +0 -4
  773. package/dist/ionic/p-DAztxQR0.js +0 -4
  774. package/dist/ionic/p-DCI3rXQo.js +0 -4
  775. package/dist/ionic/p-DDhtUaaA.js +0 -4
  776. package/dist/ionic/p-DWCzVL3Y.js +0 -4
  777. package/dist/ionic/p-DkUB-ROc.js +0 -4
  778. package/dist/ionic/p-Dn0mqQ_R.js +0 -4
  779. package/dist/ionic/p-T71k3C35.js +0 -4
  780. package/dist/ionic/p-TXPDHL13.js +0 -4
  781. package/dist/ionic/p-a71232d6.entry.js +0 -4
  782. package/dist/ionic/p-a73d8742.entry.js +0 -4
  783. package/dist/ionic/p-a8421d18.entry.js +0 -4
  784. package/dist/ionic/p-a8c2c343.entry.js +0 -4
  785. package/dist/ionic/p-acf0a6af.entry.js +0 -4
  786. package/dist/ionic/p-ad98e3ff.entry.js +0 -4
  787. package/dist/ionic/p-af5166f5.entry.js +0 -4
  788. package/dist/ionic/p-bc2bad5f.entry.js +0 -4
  789. package/dist/ionic/p-be08d500.entry.js +0 -4
  790. package/dist/ionic/p-be9a4f51.entry.js +0 -4
  791. package/dist/ionic/p-byZM6qHV.js +0 -4
  792. package/dist/ionic/p-ccc5044d.entry.js +0 -4
  793. package/dist/ionic/p-ce32912b.entry.js +0 -4
  794. package/dist/ionic/p-ded69ceb.entry.js +0 -4
  795. package/dist/ionic/p-e0c6e31e.entry.js +0 -4
  796. package/dist/ionic/p-e1e5b507.entry.js +0 -4
  797. package/dist/ionic/p-e8c3e08a.entry.js +0 -4
  798. package/dist/ionic/p-ed5d540d.entry.js +0 -4
  799. package/dist/ionic/p-f046aa37.entry.js +0 -4
  800. package/dist/ionic/p-f2802440.entry.js +0 -4
  801. package/dist/ionic/p-f402f5a4.entry.js +0 -4
  802. package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
  803. package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
  804. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  805. package/dist/types/utils/select-option-render.d.ts +0 -53
  806. /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
@@ -1,10 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, g as getElement, e as config, h, d as Host, c as createEvent, f as printIonWarning } from './index-ChhhtsGZ.js';
5
- import { f as addEventListener, m as removeEventListener, r as raf, g as getElementRoot, t as transitionEndAsync } from './helpers-DexiPLIC.js';
6
- import { b as chevronDown } from './index-BvabGprD.js';
7
- import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
4
+ import { r as registerInstance, e as config, h, d as Host, g as getElement, c as createEvent, f as printIonWarning } from './index-tcQvqkiX.js';
5
+ import { g as getElementRoot, r as raf, f as addEventListener, m as removeEventListener, t as transitionEndAsync } from './helpers-DkCLSLI9.js';
6
+ import { l as chevronDown } from './index-DV3sJJW8.js';
7
+ import { b as getIonMode } from './ionic-global-Cp_eT4sZ.js';
8
+ import './dir-o8OKV5aD.js';
8
9
 
9
10
  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}`;
10
11
 
@@ -13,94 +14,329 @@ const accordionMdCss = () => `:host{display:block;position:relative;width:100%;b
13
14
  const Accordion = class {
14
15
  constructor(hostRef) {
15
16
  registerInstance(this, hostRef);
16
- }
17
- accordionGroupEl;
18
- accordionGroupUpdateHandler = () => {
17
+ this.accordionGroupUpdateHandler = () => {
18
+ /**
19
+ * Determine if this update will cause an actual state change.
20
+ * We only want to mark as "interacted" if the state is changing.
21
+ */
22
+ const accordionGroup = this.accordionGroupEl;
23
+ if (accordionGroup) {
24
+ const value = accordionGroup.value;
25
+ const accordionValue = this.value;
26
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
27
+ const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
28
+ const stateWillChange = shouldExpand !== isExpanded;
29
+ /**
30
+ * Only mark as interacted if:
31
+ * 1. This is not the first update we've received with a defined value
32
+ * 2. The state is actually changing (prevents redundant updates from enabling animations)
33
+ */
34
+ if (this.hasReceivedFirstUpdate && stateWillChange) {
35
+ this.hasInteracted = true;
36
+ }
37
+ /**
38
+ * Only count this as the first update if the group value is defined.
39
+ * This prevents the initial undefined value from the group's componentDidLoad
40
+ * from being treated as the first real update.
41
+ */
42
+ if (value !== undefined) {
43
+ this.hasReceivedFirstUpdate = true;
44
+ }
45
+ }
46
+ this.updateState();
47
+ };
48
+ this.state = 1 /* AccordionState.Collapsed */;
49
+ this.isNext = false;
50
+ this.isPrevious = false;
19
51
  /**
20
- * Determine if this update will cause an actual state change.
21
- * We only want to mark as "interacted" if the state is changing.
52
+ * Tracks whether a user-initiated interaction has occurred.
53
+ * Animations are disabled until the first interaction happens.
54
+ * This prevents the accordion from animating when it's programmatically
55
+ * set to an expanded or collapsed state on initial load.
22
56
  */
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;
57
+ this.hasInteracted = false;
58
+ /**
59
+ * Tracks if this accordion has ever been expanded.
60
+ * Used to prevent the first expansion from animating.
61
+ */
62
+ this.hasEverBeenExpanded = false;
63
+ /**
64
+ * Tracks if this accordion has received its first update from the group.
65
+ * Used to distinguish initial programmatic sets from user interactions.
66
+ */
67
+ this.hasReceivedFirstUpdate = false;
68
+ /**
69
+ * The value of the accordion. Defaults to an autogenerated
70
+ * value.
71
+ */
72
+ this.value = `ion-accordion-${accordionIds++}`;
73
+ /**
74
+ * If `true`, the accordion cannot be interacted with.
75
+ */
76
+ this.disabled = false;
77
+ /**
78
+ * If `true`, the accordion cannot be interacted with,
79
+ * but does not alter the opacity.
80
+ */
81
+ this.readonly = false;
82
+ /**
83
+ * The toggle icon to use. This icon will be
84
+ * rotated when the accordion is expanded
85
+ * or collapsed.
86
+ */
87
+ this.toggleIcon = chevronDown;
88
+ /**
89
+ * The slot inside of `ion-item` to
90
+ * place the toggle icon. Defaults to `"end"`.
91
+ */
92
+ this.toggleIconSlot = 'end';
93
+ this.setItemDefaults = () => {
94
+ const ionItem = this.getSlottedHeaderIonItem();
95
+ if (!ionItem) {
96
+ return;
97
+ }
98
+ /**
99
+ * For a11y purposes, we make
100
+ * the ion-item a button so users
101
+ * can tab to it and use keyboard
102
+ * navigation to get around.
103
+ */
104
+ ionItem.button = true;
105
+ ionItem.detail = false;
30
106
  /**
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)
107
+ * By default, the lines in an
108
+ * item should be full here, but
109
+ * only do that if a user has
110
+ * not explicitly overridden them
34
111
  */
35
- if (this.hasReceivedFirstUpdate && stateWillChange) {
36
- this.hasInteracted = true;
112
+ if (ionItem.lines === undefined) {
113
+ ionItem.lines = 'full';
114
+ }
115
+ };
116
+ this.getSlottedHeaderIonItem = () => {
117
+ const { headerEl } = this;
118
+ if (!headerEl) {
119
+ return;
37
120
  }
38
121
  /**
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.
122
+ * Get the first ion-item
123
+ * slotted in the header slot
42
124
  */
43
- if (value !== undefined) {
44
- this.hasReceivedFirstUpdate = true;
125
+ const slot = headerEl.querySelector('slot');
126
+ if (!slot) {
127
+ return;
45
128
  }
46
- }
47
- this.updateState();
48
- };
49
- contentEl;
50
- contentElWrapper;
51
- headerEl;
52
- currentRaf;
53
- get el() { return getElement(this); }
54
- state = 1 /* AccordionState.Collapsed */;
55
- isNext = false;
56
- isPrevious = false;
57
- /**
58
- * Tracks whether a user-initiated interaction has occurred.
59
- * Animations are disabled until the first interaction happens.
60
- * This prevents the accordion from animating when it's programmatically
61
- * set to an expanded or collapsed state on initial load.
62
- */
63
- hasInteracted = false;
64
- /**
65
- * Tracks if this accordion has ever been expanded.
66
- * Used to prevent the first expansion from animating.
67
- */
68
- hasEverBeenExpanded = false;
69
- /**
70
- * Tracks if this accordion has received its first update from the group.
71
- * Used to distinguish initial programmatic sets from user interactions.
72
- */
73
- hasReceivedFirstUpdate = false;
74
- /**
75
- * The value of the accordion. Defaults to an autogenerated
76
- * value.
77
- */
78
- value = `ion-accordion-${accordionIds++}`;
129
+ // This is not defined in unit tests
130
+ if (slot.assignedElements === undefined)
131
+ return;
132
+ return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
133
+ };
134
+ this.setAria = (expanded = false) => {
135
+ const ionItem = this.getSlottedHeaderIonItem();
136
+ if (!ionItem) {
137
+ return;
138
+ }
139
+ /**
140
+ * Get the native <button> element inside of
141
+ * ion-item because that is what will be focused
142
+ */
143
+ const root = getElementRoot(ionItem);
144
+ const button = root.querySelector('button');
145
+ if (!button) {
146
+ return;
147
+ }
148
+ button.setAttribute('aria-expanded', `${expanded}`);
149
+ };
150
+ this.slotToggleIcon = () => {
151
+ const ionItem = this.getSlottedHeaderIonItem();
152
+ if (!ionItem) {
153
+ return;
154
+ }
155
+ const { toggleIconSlot, toggleIcon } = this;
156
+ /**
157
+ * Check if there already is a toggle icon.
158
+ * If so, do not add another one.
159
+ */
160
+ const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
161
+ if (existingToggleIcon) {
162
+ return;
163
+ }
164
+ const iconEl = document.createElement('ion-icon');
165
+ iconEl.slot = toggleIconSlot;
166
+ iconEl.lazy = false;
167
+ iconEl.classList.add('ion-accordion-toggle-icon');
168
+ iconEl.icon = toggleIcon;
169
+ iconEl.setAttribute('aria-hidden', 'true');
170
+ ionItem.appendChild(iconEl);
171
+ };
172
+ this.expandAccordion = () => {
173
+ const { contentEl, contentElWrapper } = this;
174
+ /**
175
+ * If the content elements aren't available yet, just set the state.
176
+ * This happens on initial render before the DOM is ready.
177
+ */
178
+ if (contentEl === undefined || contentElWrapper === undefined) {
179
+ this.state = 4 /* AccordionState.Expanded */;
180
+ this.hasEverBeenExpanded = true;
181
+ return;
182
+ }
183
+ if (this.state === 4 /* AccordionState.Expanded */) {
184
+ return;
185
+ }
186
+ if (this.currentRaf !== undefined) {
187
+ cancelAnimationFrame(this.currentRaf);
188
+ }
189
+ /**
190
+ * Mark that this accordion has been expanded at least once.
191
+ * This allows subsequent expansions to animate.
192
+ */
193
+ this.hasEverBeenExpanded = true;
194
+ if (this.shouldAnimate()) {
195
+ raf(() => {
196
+ this.state = 8 /* AccordionState.Expanding */;
197
+ this.currentRaf = raf(async () => {
198
+ const contentHeight = contentElWrapper.offsetHeight;
199
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
200
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
201
+ await waitForTransition;
202
+ this.state = 4 /* AccordionState.Expanded */;
203
+ contentEl.style.removeProperty('max-height');
204
+ });
205
+ });
206
+ }
207
+ else {
208
+ this.state = 4 /* AccordionState.Expanded */;
209
+ }
210
+ };
211
+ this.collapseAccordion = () => {
212
+ const { contentEl } = this;
213
+ /**
214
+ * If the content element isn't available yet, just set the state.
215
+ * This happens on initial render before the DOM is ready.
216
+ */
217
+ if (contentEl === undefined) {
218
+ this.state = 1 /* AccordionState.Collapsed */;
219
+ return;
220
+ }
221
+ if (this.state === 1 /* AccordionState.Collapsed */) {
222
+ return;
223
+ }
224
+ if (this.currentRaf !== undefined) {
225
+ cancelAnimationFrame(this.currentRaf);
226
+ }
227
+ if (this.shouldAnimate()) {
228
+ this.currentRaf = raf(async () => {
229
+ const contentHeight = contentEl.offsetHeight;
230
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
231
+ raf(async () => {
232
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
233
+ this.state = 2 /* AccordionState.Collapsing */;
234
+ await waitForTransition;
235
+ this.state = 1 /* AccordionState.Collapsed */;
236
+ contentEl.style.removeProperty('max-height');
237
+ });
238
+ });
239
+ }
240
+ else {
241
+ this.state = 1 /* AccordionState.Collapsed */;
242
+ }
243
+ };
244
+ /**
245
+ * Helper function to determine if
246
+ * something should animate.
247
+ * If prefers-reduced-motion is set
248
+ * then we should not animate, regardless
249
+ * of what is set in the config.
250
+ */
251
+ this.shouldAnimate = () => {
252
+ /**
253
+ * Don't animate until after the first user interaction.
254
+ * This prevents animations on initial load when accordions
255
+ * start in an expanded or collapsed state programmatically.
256
+ *
257
+ * Additionally, don't animate the very first expansion even if
258
+ * hasInteracted is true. This handles edge cases like React StrictMode
259
+ * where effects run twice and might incorrectly mark as interacted.
260
+ */
261
+ if (!this.hasInteracted || !this.hasEverBeenExpanded) {
262
+ return false;
263
+ }
264
+ if (typeof window === 'undefined') {
265
+ return false;
266
+ }
267
+ const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
268
+ if (prefersReducedMotion) {
269
+ return false;
270
+ }
271
+ const animated = config.get('animated', true);
272
+ if (!animated) {
273
+ return false;
274
+ }
275
+ if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
276
+ return false;
277
+ }
278
+ return true;
279
+ };
280
+ this.updateState = async () => {
281
+ const accordionGroup = this.accordionGroupEl;
282
+ const accordionValue = this.value;
283
+ if (!accordionGroup) {
284
+ return;
285
+ }
286
+ const value = accordionGroup.value;
287
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
288
+ if (shouldExpand) {
289
+ this.expandAccordion();
290
+ this.isNext = this.isPrevious = false;
291
+ }
292
+ else {
293
+ this.collapseAccordion();
294
+ /**
295
+ * When using popout or inset,
296
+ * the collapsed accordion items
297
+ * may need additional border radius
298
+ * applied. Check to see if the
299
+ * next or previous accordion is selected.
300
+ */
301
+ const nextAccordion = this.getNextSibling();
302
+ const nextAccordionValue = nextAccordion === null || nextAccordion === void 0 ? void 0 : nextAccordion.value;
303
+ if (nextAccordionValue !== undefined) {
304
+ this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
305
+ }
306
+ const previousAccordion = this.getPreviousSibling();
307
+ const previousAccordionValue = previousAccordion === null || previousAccordion === void 0 ? void 0 : previousAccordion.value;
308
+ if (previousAccordionValue !== undefined) {
309
+ this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
310
+ }
311
+ }
312
+ };
313
+ this.getNextSibling = () => {
314
+ if (!this.el) {
315
+ return;
316
+ }
317
+ const nextSibling = this.el.nextElementSibling;
318
+ if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) !== 'ION-ACCORDION') {
319
+ return;
320
+ }
321
+ return nextSibling;
322
+ };
323
+ this.getPreviousSibling = () => {
324
+ if (!this.el) {
325
+ return;
326
+ }
327
+ const previousSibling = this.el.previousElementSibling;
328
+ if ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.tagName) !== 'ION-ACCORDION') {
329
+ return;
330
+ }
331
+ return previousSibling;
332
+ };
333
+ }
79
334
  valueChanged() {
80
335
  this.updateState();
81
336
  }
82
- /**
83
- * If `true`, the accordion cannot be interacted with.
84
- */
85
- disabled = false;
86
- /**
87
- * If `true`, the accordion cannot be interacted with,
88
- * but does not alter the opacity.
89
- */
90
- readonly = false;
91
- /**
92
- * The toggle icon to use. This icon will be
93
- * rotated when the accordion is expanded
94
- * or collapsed.
95
- */
96
- toggleIcon = chevronDown;
97
- /**
98
- * The slot inside of `ion-item` to
99
- * place the toggle icon. Defaults to `"end"`.
100
- */
101
- toggleIconSlot = 'end';
102
337
  connectedCallback() {
103
- const accordionGroupEl = (this.accordionGroupEl = this.el?.closest('ion-accordion-group'));
338
+ var _a;
339
+ const accordionGroupEl = (this.accordionGroupEl = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('ion-accordion-group'));
104
340
  if (accordionGroupEl) {
105
341
  this.updateState();
106
342
  addEventListener(accordionGroupEl, 'ionValueChange', this.accordionGroupUpdateHandler);
@@ -129,246 +365,6 @@ const Accordion = class {
129
365
  this.setAria(expanded);
130
366
  });
131
367
  }
132
- setItemDefaults = () => {
133
- const ionItem = this.getSlottedHeaderIonItem();
134
- if (!ionItem) {
135
- return;
136
- }
137
- /**
138
- * For a11y purposes, we make
139
- * the ion-item a button so users
140
- * can tab to it and use keyboard
141
- * navigation to get around.
142
- */
143
- ionItem.button = true;
144
- ionItem.detail = false;
145
- /**
146
- * By default, the lines in an
147
- * item should be full here, but
148
- * only do that if a user has
149
- * not explicitly overridden them
150
- */
151
- if (ionItem.lines === undefined) {
152
- ionItem.lines = 'full';
153
- }
154
- };
155
- getSlottedHeaderIonItem = () => {
156
- const { headerEl } = this;
157
- if (!headerEl) {
158
- return;
159
- }
160
- /**
161
- * Get the first ion-item
162
- * slotted in the header slot
163
- */
164
- const slot = headerEl.querySelector('slot');
165
- if (!slot) {
166
- return;
167
- }
168
- // This is not defined in unit tests
169
- if (slot.assignedElements === undefined)
170
- return;
171
- return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
172
- };
173
- setAria = (expanded = false) => {
174
- const ionItem = this.getSlottedHeaderIonItem();
175
- if (!ionItem) {
176
- return;
177
- }
178
- /**
179
- * Get the native <button> element inside of
180
- * ion-item because that is what will be focused
181
- */
182
- const root = getElementRoot(ionItem);
183
- const button = root.querySelector('button');
184
- if (!button) {
185
- return;
186
- }
187
- button.setAttribute('aria-expanded', `${expanded}`);
188
- };
189
- slotToggleIcon = () => {
190
- const ionItem = this.getSlottedHeaderIonItem();
191
- if (!ionItem) {
192
- return;
193
- }
194
- const { toggleIconSlot, toggleIcon } = this;
195
- /**
196
- * Check if there already is a toggle icon.
197
- * If so, do not add another one.
198
- */
199
- const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
200
- if (existingToggleIcon) {
201
- return;
202
- }
203
- const iconEl = document.createElement('ion-icon');
204
- iconEl.slot = toggleIconSlot;
205
- iconEl.lazy = false;
206
- iconEl.classList.add('ion-accordion-toggle-icon');
207
- iconEl.icon = toggleIcon;
208
- iconEl.setAttribute('aria-hidden', 'true');
209
- ionItem.appendChild(iconEl);
210
- };
211
- expandAccordion = () => {
212
- const { contentEl, contentElWrapper } = this;
213
- /**
214
- * If the content elements aren't available yet, just set the state.
215
- * This happens on initial render before the DOM is ready.
216
- */
217
- if (contentEl === undefined || contentElWrapper === undefined) {
218
- this.state = 4 /* AccordionState.Expanded */;
219
- this.hasEverBeenExpanded = true;
220
- return;
221
- }
222
- if (this.state === 4 /* AccordionState.Expanded */) {
223
- return;
224
- }
225
- if (this.currentRaf !== undefined) {
226
- cancelAnimationFrame(this.currentRaf);
227
- }
228
- /**
229
- * Mark that this accordion has been expanded at least once.
230
- * This allows subsequent expansions to animate.
231
- */
232
- this.hasEverBeenExpanded = true;
233
- if (this.shouldAnimate()) {
234
- raf(() => {
235
- this.state = 8 /* AccordionState.Expanding */;
236
- this.currentRaf = raf(async () => {
237
- const contentHeight = contentElWrapper.offsetHeight;
238
- const waitForTransition = transitionEndAsync(contentEl, 2000);
239
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
240
- await waitForTransition;
241
- this.state = 4 /* AccordionState.Expanded */;
242
- contentEl.style.removeProperty('max-height');
243
- });
244
- });
245
- }
246
- else {
247
- this.state = 4 /* AccordionState.Expanded */;
248
- }
249
- };
250
- collapseAccordion = () => {
251
- const { contentEl } = this;
252
- /**
253
- * If the content element isn't available yet, just set the state.
254
- * This happens on initial render before the DOM is ready.
255
- */
256
- if (contentEl === undefined) {
257
- this.state = 1 /* AccordionState.Collapsed */;
258
- return;
259
- }
260
- if (this.state === 1 /* AccordionState.Collapsed */) {
261
- return;
262
- }
263
- if (this.currentRaf !== undefined) {
264
- cancelAnimationFrame(this.currentRaf);
265
- }
266
- if (this.shouldAnimate()) {
267
- this.currentRaf = raf(async () => {
268
- const contentHeight = contentEl.offsetHeight;
269
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
270
- raf(async () => {
271
- const waitForTransition = transitionEndAsync(contentEl, 2000);
272
- this.state = 2 /* AccordionState.Collapsing */;
273
- await waitForTransition;
274
- this.state = 1 /* AccordionState.Collapsed */;
275
- contentEl.style.removeProperty('max-height');
276
- });
277
- });
278
- }
279
- else {
280
- this.state = 1 /* AccordionState.Collapsed */;
281
- }
282
- };
283
- /**
284
- * Helper function to determine if
285
- * something should animate.
286
- * If prefers-reduced-motion is set
287
- * then we should not animate, regardless
288
- * of what is set in the config.
289
- */
290
- shouldAnimate = () => {
291
- /**
292
- * Don't animate until after the first user interaction.
293
- * This prevents animations on initial load when accordions
294
- * start in an expanded or collapsed state programmatically.
295
- *
296
- * Additionally, don't animate the very first expansion even if
297
- * hasInteracted is true. This handles edge cases like React StrictMode
298
- * where effects run twice and might incorrectly mark as interacted.
299
- */
300
- if (!this.hasInteracted || !this.hasEverBeenExpanded) {
301
- return false;
302
- }
303
- if (typeof window === 'undefined') {
304
- return false;
305
- }
306
- const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
307
- if (prefersReducedMotion) {
308
- return false;
309
- }
310
- const animated = config.get('animated', true);
311
- if (!animated) {
312
- return false;
313
- }
314
- if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
315
- return false;
316
- }
317
- return true;
318
- };
319
- updateState = async () => {
320
- const accordionGroup = this.accordionGroupEl;
321
- const accordionValue = this.value;
322
- if (!accordionGroup) {
323
- return;
324
- }
325
- const value = accordionGroup.value;
326
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
327
- if (shouldExpand) {
328
- this.expandAccordion();
329
- this.isNext = this.isPrevious = false;
330
- }
331
- else {
332
- this.collapseAccordion();
333
- /**
334
- * When using popout or inset,
335
- * the collapsed accordion items
336
- * may need additional border radius
337
- * applied. Check to see if the
338
- * next or previous accordion is selected.
339
- */
340
- const nextAccordion = this.getNextSibling();
341
- const nextAccordionValue = nextAccordion?.value;
342
- if (nextAccordionValue !== undefined) {
343
- this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
344
- }
345
- const previousAccordion = this.getPreviousSibling();
346
- const previousAccordionValue = previousAccordion?.value;
347
- if (previousAccordionValue !== undefined) {
348
- this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
349
- }
350
- }
351
- };
352
- getNextSibling = () => {
353
- if (!this.el) {
354
- return;
355
- }
356
- const nextSibling = this.el.nextElementSibling;
357
- if (nextSibling?.tagName !== 'ION-ACCORDION') {
358
- return;
359
- }
360
- return nextSibling;
361
- };
362
- getPreviousSibling = () => {
363
- if (!this.el) {
364
- return;
365
- }
366
- const previousSibling = this.el.previousElementSibling;
367
- if (previousSibling?.tagName !== 'ION-ACCORDION') {
368
- return;
369
- }
370
- return previousSibling;
371
- };
372
368
  toggleExpanded() {
373
369
  const { accordionGroupEl, disabled, readonly, value, state } = this;
374
370
  if (disabled || readonly)
@@ -412,6 +408,7 @@ const Accordion = class {
412
408
  }, tabindex: disabled ? '-1' : undefined }, h("div", { key: 'f76bc02347639b41c9a5be8a9488a8be8559cba7', onClick: () => this.toggleExpanded(), id: "header", part: headerPart, "aria-controls": "content", ref: (headerEl) => (this.headerEl = headerEl) }, h("slot", { key: 'e01744bf0af3200239e82c60c632ed36295db2da', name: "header" })), h("div", { key: 'c613345a7e244ee361f76ff4ebed139d2a1b9572', id: "content", part: contentPart, role: "region", "aria-labelledby": "header", ref: (contentEl) => (this.contentEl = contentEl) }, h("div", { key: '943b65d9a129759b4c213974ae5ed777b5f6166e', id: "content-wrapper", ref: (contentElWrapper) => (this.contentElWrapper = contentElWrapper) }, h("slot", { key: 'b0df520dad9d5557df63a35f8206ada4a765d238', name: "content" })))));
413
409
  }
414
410
  static get delegatesFocus() { return true; }
411
+ get el() { return getElement(this); }
415
412
  static get watchers() { return {
416
413
  "value": [{
417
414
  "valueChanged": 0
@@ -433,53 +430,28 @@ const AccordionGroup = class {
433
430
  registerInstance(this, hostRef);
434
431
  this.ionChange = createEvent(this, "ionChange", 7);
435
432
  this.ionValueChange = createEvent(this, "ionValueChange", 7);
433
+ /**
434
+ * If `true`, all accordions inside of the
435
+ * accordion group will animate when expanding
436
+ * or collapsing.
437
+ */
438
+ this.animated = true;
439
+ /**
440
+ * If `true`, the accordion group cannot be interacted with.
441
+ */
442
+ this.disabled = false;
443
+ /**
444
+ * If `true`, the accordion group cannot be interacted with,
445
+ * but does not alter the opacity.
446
+ */
447
+ this.readonly = false;
448
+ /**
449
+ * Describes the expansion behavior for each accordion.
450
+ * Possible values are `"compact"` and `"inset"`.
451
+ * Defaults to `"compact"`.
452
+ */
453
+ this.expand = 'compact';
436
454
  }
437
- get el() { return getElement(this); }
438
- /**
439
- * If `true`, all accordions inside of the
440
- * accordion group will animate when expanding
441
- * or collapsing.
442
- */
443
- animated = true;
444
- /**
445
- * If `true`, the accordion group can have multiple
446
- * accordion components expanded at the same time.
447
- */
448
- multiple;
449
- /**
450
- * The value of the accordion group. This controls which
451
- * accordions are expanded.
452
- * This should be an array of strings only when `multiple="true"`
453
- */
454
- value;
455
- /**
456
- * If `true`, the accordion group cannot be interacted with.
457
- */
458
- disabled = false;
459
- /**
460
- * If `true`, the accordion group cannot be interacted with,
461
- * but does not alter the opacity.
462
- */
463
- readonly = false;
464
- /**
465
- * Describes the expansion behavior for each accordion.
466
- * Possible values are `"compact"` and `"inset"`.
467
- * Defaults to `"compact"`.
468
- */
469
- expand = 'compact';
470
- /**
471
- * Emitted when the value property has changed as a result of a user action such as a click.
472
- *
473
- * This event will not emit when programmatically setting the `value` property.
474
- */
475
- ionChange;
476
- /**
477
- * Emitted when the value property has changed.
478
- * This is used to ensure that ion-accordion can respond
479
- * to any value property changes.
480
- * @internal
481
- */
482
- ionValueChange;
483
455
  valueChanged() {
484
456
  const { value, multiple } = this;
485
457
  if (!multiple && Array.isArray(value)) {
@@ -612,7 +584,7 @@ const AccordionGroup = class {
612
584
  * to the array.
613
585
  */
614
586
  if (multiple) {
615
- const groupValue = value ?? [];
587
+ const groupValue = value !== null && value !== void 0 ? value : [];
616
588
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
617
589
  const valueExists = processedValue.find((v) => v === accordionValue);
618
590
  if (valueExists === undefined && accordionValue !== undefined) {
@@ -629,7 +601,7 @@ const AccordionGroup = class {
629
601
  * out of the values array or unset the value.
630
602
  */
631
603
  if (multiple) {
632
- const groupValue = value ?? [];
604
+ const groupValue = value !== null && value !== void 0 ? value : [];
633
605
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
634
606
  this.setValue(processedValue.filter((v) => v !== accordionValue));
635
607
  }
@@ -668,6 +640,7 @@ const AccordionGroup = class {
668
640
  [`accordion-group-expand-${expand}`]: true,
669
641
  }, role: "presentation" }, h("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
670
642
  }
643
+ get el() { return getElement(this); }
671
644
  static get watchers() { return {
672
645
  "value": [{
673
646
  "valueChanged": 0