@ionic/core 8.8.18 → 8.8.19-dev.11786730389.1a1927bf

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