@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
@@ -3,10 +3,11 @@
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-DdZyl6WL.js');
8
+ var index$1 = require('./index-DqmRDbxg.js');
9
+ var ionicGlobal = require('./ionic-global-BerQGEpE.js');
10
+ require('./dir-DD0jPVH3.js');
10
11
 
11
12
  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
13
 
@@ -15,94 +16,329 @@ const accordionMdCss = () => `:host{display:block;position:relative;width:100%;b
15
16
  const Accordion = class {
16
17
  constructor(hostRef) {
17
18
  index.registerInstance(this, hostRef);
18
- }
19
- accordionGroupEl;
20
- accordionGroupUpdateHandler = () => {
19
+ this.accordionGroupUpdateHandler = () => {
20
+ /**
21
+ * Determine if this update will cause an actual state change.
22
+ * We only want to mark as "interacted" if the state is changing.
23
+ */
24
+ const accordionGroup = this.accordionGroupEl;
25
+ if (accordionGroup) {
26
+ const value = accordionGroup.value;
27
+ const accordionValue = this.value;
28
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
29
+ const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
30
+ const stateWillChange = shouldExpand !== isExpanded;
31
+ /**
32
+ * Only mark as interacted if:
33
+ * 1. This is not the first update we've received with a defined value
34
+ * 2. The state is actually changing (prevents redundant updates from enabling animations)
35
+ */
36
+ if (this.hasReceivedFirstUpdate && stateWillChange) {
37
+ this.hasInteracted = true;
38
+ }
39
+ /**
40
+ * Only count this as the first update if the group value is defined.
41
+ * This prevents the initial undefined value from the group's componentDidLoad
42
+ * from being treated as the first real update.
43
+ */
44
+ if (value !== undefined) {
45
+ this.hasReceivedFirstUpdate = true;
46
+ }
47
+ }
48
+ this.updateState();
49
+ };
50
+ this.state = 1 /* AccordionState.Collapsed */;
51
+ this.isNext = false;
52
+ this.isPrevious = false;
21
53
  /**
22
- * Determine if this update will cause an actual state change.
23
- * We only want to mark as "interacted" if the state is changing.
54
+ * Tracks whether a user-initiated interaction has occurred.
55
+ * Animations are disabled until the first interaction happens.
56
+ * This prevents the accordion from animating when it's programmatically
57
+ * set to an expanded or collapsed state on initial load.
24
58
  */
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;
59
+ this.hasInteracted = false;
60
+ /**
61
+ * Tracks if this accordion has ever been expanded.
62
+ * Used to prevent the first expansion from animating.
63
+ */
64
+ this.hasEverBeenExpanded = false;
65
+ /**
66
+ * Tracks if this accordion has received its first update from the group.
67
+ * Used to distinguish initial programmatic sets from user interactions.
68
+ */
69
+ this.hasReceivedFirstUpdate = false;
70
+ /**
71
+ * The value of the accordion. Defaults to an autogenerated
72
+ * value.
73
+ */
74
+ this.value = `ion-accordion-${accordionIds++}`;
75
+ /**
76
+ * If `true`, the accordion cannot be interacted with.
77
+ */
78
+ this.disabled = false;
79
+ /**
80
+ * If `true`, the accordion cannot be interacted with,
81
+ * but does not alter the opacity.
82
+ */
83
+ this.readonly = false;
84
+ /**
85
+ * The toggle icon to use. This icon will be
86
+ * rotated when the accordion is expanded
87
+ * or collapsed.
88
+ */
89
+ this.toggleIcon = index$1.chevronDown;
90
+ /**
91
+ * The slot inside of `ion-item` to
92
+ * place the toggle icon. Defaults to `"end"`.
93
+ */
94
+ this.toggleIconSlot = 'end';
95
+ this.setItemDefaults = () => {
96
+ const ionItem = this.getSlottedHeaderIonItem();
97
+ if (!ionItem) {
98
+ return;
99
+ }
100
+ /**
101
+ * For a11y purposes, we make
102
+ * the ion-item a button so users
103
+ * can tab to it and use keyboard
104
+ * navigation to get around.
105
+ */
106
+ ionItem.button = true;
107
+ ionItem.detail = false;
32
108
  /**
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)
109
+ * By default, the lines in an
110
+ * item should be full here, but
111
+ * only do that if a user has
112
+ * not explicitly overridden them
36
113
  */
37
- if (this.hasReceivedFirstUpdate && stateWillChange) {
38
- this.hasInteracted = true;
114
+ if (ionItem.lines === undefined) {
115
+ ionItem.lines = 'full';
116
+ }
117
+ };
118
+ this.getSlottedHeaderIonItem = () => {
119
+ const { headerEl } = this;
120
+ if (!headerEl) {
121
+ return;
39
122
  }
40
123
  /**
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.
124
+ * Get the first ion-item
125
+ * slotted in the header slot
44
126
  */
45
- if (value !== undefined) {
46
- this.hasReceivedFirstUpdate = true;
127
+ const slot = headerEl.querySelector('slot');
128
+ if (!slot) {
129
+ return;
47
130
  }
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++}`;
131
+ // This is not defined in unit tests
132
+ if (slot.assignedElements === undefined)
133
+ return;
134
+ return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
135
+ };
136
+ this.setAria = (expanded = false) => {
137
+ const ionItem = this.getSlottedHeaderIonItem();
138
+ if (!ionItem) {
139
+ return;
140
+ }
141
+ /**
142
+ * Get the native <button> element inside of
143
+ * ion-item because that is what will be focused
144
+ */
145
+ const root = helpers.getElementRoot(ionItem);
146
+ const button = root.querySelector('button');
147
+ if (!button) {
148
+ return;
149
+ }
150
+ button.setAttribute('aria-expanded', `${expanded}`);
151
+ };
152
+ this.slotToggleIcon = () => {
153
+ const ionItem = this.getSlottedHeaderIonItem();
154
+ if (!ionItem) {
155
+ return;
156
+ }
157
+ const { toggleIconSlot, toggleIcon } = this;
158
+ /**
159
+ * Check if there already is a toggle icon.
160
+ * If so, do not add another one.
161
+ */
162
+ const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
163
+ if (existingToggleIcon) {
164
+ return;
165
+ }
166
+ const iconEl = document.createElement('ion-icon');
167
+ iconEl.slot = toggleIconSlot;
168
+ iconEl.lazy = false;
169
+ iconEl.classList.add('ion-accordion-toggle-icon');
170
+ iconEl.icon = toggleIcon;
171
+ iconEl.setAttribute('aria-hidden', 'true');
172
+ ionItem.appendChild(iconEl);
173
+ };
174
+ this.expandAccordion = () => {
175
+ const { contentEl, contentElWrapper } = this;
176
+ /**
177
+ * If the content elements aren't available yet, just set the state.
178
+ * This happens on initial render before the DOM is ready.
179
+ */
180
+ if (contentEl === undefined || contentElWrapper === undefined) {
181
+ this.state = 4 /* AccordionState.Expanded */;
182
+ this.hasEverBeenExpanded = true;
183
+ return;
184
+ }
185
+ if (this.state === 4 /* AccordionState.Expanded */) {
186
+ return;
187
+ }
188
+ if (this.currentRaf !== undefined) {
189
+ cancelAnimationFrame(this.currentRaf);
190
+ }
191
+ /**
192
+ * Mark that this accordion has been expanded at least once.
193
+ * This allows subsequent expansions to animate.
194
+ */
195
+ this.hasEverBeenExpanded = true;
196
+ if (this.shouldAnimate()) {
197
+ helpers.raf(() => {
198
+ this.state = 8 /* AccordionState.Expanding */;
199
+ this.currentRaf = helpers.raf(async () => {
200
+ const contentHeight = contentElWrapper.offsetHeight;
201
+ const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
202
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
203
+ await waitForTransition;
204
+ this.state = 4 /* AccordionState.Expanded */;
205
+ contentEl.style.removeProperty('max-height');
206
+ });
207
+ });
208
+ }
209
+ else {
210
+ this.state = 4 /* AccordionState.Expanded */;
211
+ }
212
+ };
213
+ this.collapseAccordion = () => {
214
+ const { contentEl } = this;
215
+ /**
216
+ * If the content element isn't available yet, just set the state.
217
+ * This happens on initial render before the DOM is ready.
218
+ */
219
+ if (contentEl === undefined) {
220
+ this.state = 1 /* AccordionState.Collapsed */;
221
+ return;
222
+ }
223
+ if (this.state === 1 /* AccordionState.Collapsed */) {
224
+ return;
225
+ }
226
+ if (this.currentRaf !== undefined) {
227
+ cancelAnimationFrame(this.currentRaf);
228
+ }
229
+ if (this.shouldAnimate()) {
230
+ this.currentRaf = helpers.raf(async () => {
231
+ const contentHeight = contentEl.offsetHeight;
232
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
233
+ helpers.raf(async () => {
234
+ const waitForTransition = helpers.transitionEndAsync(contentEl, 2000);
235
+ this.state = 2 /* AccordionState.Collapsing */;
236
+ await waitForTransition;
237
+ this.state = 1 /* AccordionState.Collapsed */;
238
+ contentEl.style.removeProperty('max-height');
239
+ });
240
+ });
241
+ }
242
+ else {
243
+ this.state = 1 /* AccordionState.Collapsed */;
244
+ }
245
+ };
246
+ /**
247
+ * Helper function to determine if
248
+ * something should animate.
249
+ * If prefers-reduced-motion is set
250
+ * then we should not animate, regardless
251
+ * of what is set in the config.
252
+ */
253
+ this.shouldAnimate = () => {
254
+ /**
255
+ * Don't animate until after the first user interaction.
256
+ * This prevents animations on initial load when accordions
257
+ * start in an expanded or collapsed state programmatically.
258
+ *
259
+ * Additionally, don't animate the very first expansion even if
260
+ * hasInteracted is true. This handles edge cases like React StrictMode
261
+ * where effects run twice and might incorrectly mark as interacted.
262
+ */
263
+ if (!this.hasInteracted || !this.hasEverBeenExpanded) {
264
+ return false;
265
+ }
266
+ if (typeof window === 'undefined') {
267
+ return false;
268
+ }
269
+ const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
270
+ if (prefersReducedMotion) {
271
+ return false;
272
+ }
273
+ const animated = index.config.get('animated', true);
274
+ if (!animated) {
275
+ return false;
276
+ }
277
+ if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
278
+ return false;
279
+ }
280
+ return true;
281
+ };
282
+ this.updateState = async () => {
283
+ const accordionGroup = this.accordionGroupEl;
284
+ const accordionValue = this.value;
285
+ if (!accordionGroup) {
286
+ return;
287
+ }
288
+ const value = accordionGroup.value;
289
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
290
+ if (shouldExpand) {
291
+ this.expandAccordion();
292
+ this.isNext = this.isPrevious = false;
293
+ }
294
+ else {
295
+ this.collapseAccordion();
296
+ /**
297
+ * When using popout or inset,
298
+ * the collapsed accordion items
299
+ * may need additional border radius
300
+ * applied. Check to see if the
301
+ * next or previous accordion is selected.
302
+ */
303
+ const nextAccordion = this.getNextSibling();
304
+ const nextAccordionValue = nextAccordion === null || nextAccordion === void 0 ? void 0 : nextAccordion.value;
305
+ if (nextAccordionValue !== undefined) {
306
+ this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
307
+ }
308
+ const previousAccordion = this.getPreviousSibling();
309
+ const previousAccordionValue = previousAccordion === null || previousAccordion === void 0 ? void 0 : previousAccordion.value;
310
+ if (previousAccordionValue !== undefined) {
311
+ this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
312
+ }
313
+ }
314
+ };
315
+ this.getNextSibling = () => {
316
+ if (!this.el) {
317
+ return;
318
+ }
319
+ const nextSibling = this.el.nextElementSibling;
320
+ if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) !== 'ION-ACCORDION') {
321
+ return;
322
+ }
323
+ return nextSibling;
324
+ };
325
+ this.getPreviousSibling = () => {
326
+ if (!this.el) {
327
+ return;
328
+ }
329
+ const previousSibling = this.el.previousElementSibling;
330
+ if ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.tagName) !== 'ION-ACCORDION') {
331
+ return;
332
+ }
333
+ return previousSibling;
334
+ };
335
+ }
81
336
  valueChanged() {
82
337
  this.updateState();
83
338
  }
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
339
  connectedCallback() {
105
- const accordionGroupEl = (this.accordionGroupEl = this.el?.closest('ion-accordion-group'));
340
+ var _a;
341
+ const accordionGroupEl = (this.accordionGroupEl = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('ion-accordion-group'));
106
342
  if (accordionGroupEl) {
107
343
  this.updateState();
108
344
  helpers.addEventListener(accordionGroupEl, 'ionValueChange', this.accordionGroupUpdateHandler);
@@ -131,246 +367,6 @@ const Accordion = class {
131
367
  this.setAria(expanded);
132
368
  });
133
369
  }
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
370
  toggleExpanded() {
375
371
  const { accordionGroupEl, disabled, readonly, value, state } = this;
376
372
  if (disabled || readonly)
@@ -414,6 +410,7 @@ const Accordion = class {
414
410
  }, 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
411
  }
416
412
  static get delegatesFocus() { return true; }
413
+ get el() { return index.getElement(this); }
417
414
  static get watchers() { return {
418
415
  "value": [{
419
416
  "valueChanged": 0
@@ -435,53 +432,28 @@ const AccordionGroup = class {
435
432
  index.registerInstance(this, hostRef);
436
433
  this.ionChange = index.createEvent(this, "ionChange", 7);
437
434
  this.ionValueChange = index.createEvent(this, "ionValueChange", 7);
435
+ /**
436
+ * If `true`, all accordions inside of the
437
+ * accordion group will animate when expanding
438
+ * or collapsing.
439
+ */
440
+ this.animated = true;
441
+ /**
442
+ * If `true`, the accordion group cannot be interacted with.
443
+ */
444
+ this.disabled = false;
445
+ /**
446
+ * If `true`, the accordion group cannot be interacted with,
447
+ * but does not alter the opacity.
448
+ */
449
+ this.readonly = false;
450
+ /**
451
+ * Describes the expansion behavior for each accordion.
452
+ * Possible values are `"compact"` and `"inset"`.
453
+ * Defaults to `"compact"`.
454
+ */
455
+ this.expand = 'compact';
438
456
  }
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
457
  valueChanged() {
486
458
  const { value, multiple } = this;
487
459
  if (!multiple && Array.isArray(value)) {
@@ -614,7 +586,7 @@ const AccordionGroup = class {
614
586
  * to the array.
615
587
  */
616
588
  if (multiple) {
617
- const groupValue = value ?? [];
589
+ const groupValue = value !== null && value !== void 0 ? value : [];
618
590
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
619
591
  const valueExists = processedValue.find((v) => v === accordionValue);
620
592
  if (valueExists === undefined && accordionValue !== undefined) {
@@ -631,7 +603,7 @@ const AccordionGroup = class {
631
603
  * out of the values array or unset the value.
632
604
  */
633
605
  if (multiple) {
634
- const groupValue = value ?? [];
606
+ const groupValue = value !== null && value !== void 0 ? value : [];
635
607
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
636
608
  this.setValue(processedValue.filter((v) => v !== accordionValue));
637
609
  }
@@ -670,6 +642,7 @@ const AccordionGroup = class {
670
642
  [`accordion-group-expand-${expand}`]: true,
671
643
  }, role: "presentation" }, index.h("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
672
644
  }
645
+ get el() { return index.getElement(this); }
673
646
  static get watchers() { return {
674
647
  "value": [{
675
648
  "valueChanged": 0