@ionic/core 8.8.18-dev.11786108988.1fd94742 → 8.8.18-dev.11786109471.1285bcfb

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 (788) 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-AqD_wmvU.js → p--JUspHvy.js} +1 -1
  103. package/components/p-A3O24YmY.js +4 -0
  104. package/components/p-ABkNVeU9.js +4 -0
  105. package/{dist/ionic/p-CHpEzg-o.js → components/p-B-JJgYSG.js} +1 -1
  106. package/components/p-B9jFTlwE.js +4 -0
  107. package/components/p-BLmJ0zRm.js +4 -0
  108. package/components/p-BMI53wYL.js +4 -0
  109. package/components/p-BMaKgJFV.js +4 -0
  110. package/components/p-BSEgsdFI.js +4 -0
  111. package/components/p-BTEOs1at.js +4 -0
  112. package/{dist/ionic/p-aL0G45tD.js → components/p-BkKAANMJ.js} +1 -1
  113. package/components/p-BlIAuGv2.js +4 -0
  114. package/components/p-Bnsn6KaP.js +4 -0
  115. package/components/p-BsBCoGa-.js +4 -0
  116. package/components/p-Bz0dSlXZ.js +4 -0
  117. package/components/p-C53feagD.js +4 -0
  118. package/components/p-CHqRYvYm.js +4 -0
  119. package/components/p-CQGnMY3n.js +4 -0
  120. package/components/p-CSZf8_j0.js +4 -0
  121. package/components/{p-ltNYIRmI.js → p-C_hpsif8.js} +1 -1
  122. package/components/p-C_xFdyXe.js +4 -0
  123. package/components/p-Cf2jSDS8.js +4 -0
  124. package/components/p-Cfx4M1Bn.js +4 -0
  125. package/components/{p-C6JOi8wS.js → p-ChIZKXUu.js} +1 -1
  126. package/components/p-CkMSOsFF.js +4 -0
  127. package/components/p-Cl0B-RWe.js +4 -0
  128. package/components/p-CmR5uXej.js +4 -0
  129. package/components/p-Cp4GRDqq.js +4 -0
  130. package/components/p-CsNJ1ULL.js +4 -0
  131. package/components/p-CtWGkNnJ.js +4 -0
  132. package/components/p-CzCbeKys.js +4 -0
  133. package/components/p-D-aHdMxW.js +4 -0
  134. package/components/p-D0d8qTwj.js +4 -0
  135. package/components/p-D13Eaw-8.js +4 -0
  136. package/components/{p-D0pL_HuH.js → p-D3xo7hqU.js} +1 -1
  137. package/components/p-D6Ynv7Xh.js +4 -0
  138. package/components/p-D7uN07a3.js +4 -0
  139. package/components/p-DCnGU1fF.js +4 -0
  140. package/components/p-DGvrK8dD.js +4 -0
  141. package/components/p-DOFCbuQR.js +4 -0
  142. package/components/p-DV5mPYQS.js +4 -0
  143. package/components/p-DWkAgceV.js +4 -0
  144. package/components/p-DiVJyqlX.js +4 -0
  145. package/components/{p-Dcu-SAJG.js → p-DqLB8yFQ.js} +1 -1
  146. package/components/p-DqZAXv2t.js +4 -0
  147. package/components/p-Osve4qkc.js +4 -0
  148. package/components/p-R8zmRi4c.js +4 -0
  149. package/components/p-SLS1rDZM.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/components/p-cyNmxje6.js +4 -0
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-j5IxBIan.js +4 -0
  154. package/components/p-k_E4tX5Z.js +4 -0
  155. package/components/p-oD4kcBRX.js +4 -0
  156. package/components/p-rCa2eL0j.js +4 -0
  157. package/components/p-scxfI1Dd.js +4 -0
  158. package/components/p-tr4_8ZS8.js +4 -0
  159. package/components/p-vRBNsYbs.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/dist/cjs/{animation-D5WDBRvT.js → animation-BJq0kcy2.js} +4 -4
  162. package/dist/cjs/{app-globals-C2s3Cbal.js → app-globals-BlqrqKTN.js} +1 -1
  163. package/dist/cjs/{button-active-CXI2TseG.js → button-active-0mPOKmV2.js} +3 -3
  164. package/dist/cjs/config-xninhj0J.js +201 -0
  165. package/dist/cjs/{dir-Brx7VkvP.js → dir-Cn0z1rJH.js} +1 -1
  166. package/dist/cjs/{format-ZfKtcdit.js → format-PxvGiOik.js} +30 -40
  167. package/dist/cjs/{framework-delegate-Bdvk3JQO.js → framework-delegate-BtICZDHr.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-zr8zeYaH.js → hardware-back-button-iUuF_76h.js} +4 -4
  171. package/dist/cjs/{helpers-DURh1XdY.js → helpers-Cv23MFHM.js} +3 -3
  172. package/dist/cjs/{index-DsoHs7Ly.js → index-BERfRao3.js} +5 -5
  173. package/dist/cjs/{index-P1nQxrpZ.js → index-CAvQ7Tka.js} +4 -10
  174. package/dist/cjs/{index-CAThePqm.js → index-Ct7gcRif.js} +6 -4
  175. package/dist/cjs/{index-Btdix80K.js → index-D81eLYUM.js} +2 -2
  176. package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
  177. package/dist/cjs/{index-BnhnwL1o.js → index-Dqpns5vP.js} +34 -2
  178. package/dist/cjs/{index-B7sCu6vN.js → index-aC4x3Fk3.js} +7 -6
  179. package/dist/cjs/index.cjs.js +18 -18
  180. package/dist/cjs/{input-shims-CPbWb84M.js → input-shims-DpA1zUN9.js} +11 -9
  181. package/dist/cjs/{input.utils-CkASW3mE.js → input.utils-DetjmtH2.js} +4 -3
  182. package/dist/cjs/ion-accordion_2.cjs.entry.js +340 -368
  183. package/dist/cjs/ion-action-sheet.cjs.entry.js +76 -187
  184. package/dist/cjs/ion-alert.cjs.entry.js +111 -273
  185. package/dist/cjs/ion-app_8.cjs.entry.js +190 -306
  186. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
  187. package/dist/cjs/ion-back-button.cjs.entry.js +23 -47
  188. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  189. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +121 -199
  190. package/dist/cjs/ion-button_2.cjs.entry.js +66 -138
  191. package/dist/cjs/ion-card_5.cjs.entry.js +30 -82
  192. package/dist/cjs/ion-checkbox.cjs.entry.js +101 -152
  193. package/dist/cjs/ion-chip.cjs.entry.js +11 -17
  194. package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
  195. package/dist/cjs/ion-datetime-button.cjs.entry.js +241 -253
  196. package/dist/cjs/ion-datetime_3.cjs.entry.js +3164 -0
  197. package/dist/cjs/ion-fab_3.cjs.entry.js +81 -139
  198. package/dist/cjs/ion-img.cjs.entry.js +12 -34
  199. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +72 -100
  200. package/dist/cjs/ion-input-otp.cjs.entry.js +370 -433
  201. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +19 -33
  202. package/dist/cjs/ion-input.cjs.entry.js +168 -314
  203. package/dist/cjs/ion-item-option_3.cjs.entry.js +51 -91
  204. package/dist/cjs/ion-item_8.cjs.entry.js +82 -181
  205. package/dist/cjs/ion-loading.cjs.entry.js +60 -146
  206. package/dist/cjs/ion-menu_3.cjs.entry.js +101 -163
  207. package/dist/cjs/ion-modal.cjs.entry.js +283 -482
  208. package/dist/cjs/ion-nav_2.cjs.entry.js +157 -100
  209. package/dist/cjs/ion-picker-column-option.cjs.entry.js +33 -37
  210. package/dist/cjs/ion-picker-column.cjs.entry.js +405 -417
  211. package/dist/cjs/ion-picker.cjs.entry.js +392 -401
  212. package/dist/cjs/ion-popover.cjs.entry.js +205 -319
  213. package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -31
  214. package/dist/cjs/ion-radio_2.cjs.entry.js +133 -206
  215. package/dist/cjs/ion-range.cjs.entry.js +237 -302
  216. package/dist/cjs/ion-refresher_2.cjs.entry.js +94 -166
  217. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -53
  218. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  219. package/dist/cjs/ion-route_4.cjs.entry.js +71 -175
  220. package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
  221. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  222. package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
  223. package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
  224. package/dist/cjs/ion-select-modal.cjs.entry.js +48 -104
  225. package/dist/cjs/ion-select_3.cjs.entry.js +214 -759
  226. package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
  227. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
  228. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +41 -100
  229. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -53
  230. package/dist/cjs/ion-text.cjs.entry.js +5 -11
  231. package/dist/cjs/ion-textarea.cjs.entry.js +144 -263
  232. package/dist/cjs/ion-toast.cjs.entry.js +117 -236
  233. package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
  234. package/dist/cjs/{ionic-global-dMut1Czp.js → ionic-global-B-cA6LkY.js} +8 -13
  235. package/dist/cjs/ionic.cjs.js +4 -4
  236. package/dist/cjs/{ios.transition-CeaFa0y2.js → ios.transition-BOSWOaiK.js} +17 -13
  237. package/dist/cjs/{item-multiple-inputs-HQO5Iy9I.js → item-multiple-inputs-D-gyg57c.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-D4Q5jny7.js → md.transition-B8-wBZqt.js} +8 -7
  243. package/dist/cjs/{notch-controller-fMfidI-7.js → notch-controller-18PzRGXd.js} +1 -1
  244. package/dist/cjs/{overlays-C2qrqpHm.js → overlays-DdtIYQUH.js} +33 -48
  245. package/dist/cjs/{status-tap-CgjQ-6jq.js → status-tap-N1kaBbuk.js} +3 -3
  246. package/dist/cjs/{swipe-back-CmfRYdWQ.js → swipe-back-C0GCB18x.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 -92
  274. package/dist/collection/components/datetime/datetime.ios.css +2 -42
  275. package/dist/collection/components/datetime/datetime.js +812 -1047
  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 +2 -1
  296. package/dist/collection/components/input/input.js +164 -309
  297. package/dist/collection/components/input/input.md.css +2 -1
  298. package/dist/collection/components/input-otp/input-otp.js +366 -428
  299. package/dist/collection/components/input-password-toggle/input-password-toggle.js +16 -29
  300. package/dist/collection/components/item/item.js +53 -99
  301. package/dist/collection/components/item-divider/item-divider.js +10 -15
  302. package/dist/collection/components/item-option/item-option.js +21 -49
  303. package/dist/collection/components/item-options/item-options.js +7 -10
  304. package/dist/collection/components/item-sliding/item-sliding.js +20 -26
  305. package/dist/collection/components/label/label.js +4 -24
  306. package/dist/collection/components/list/list.js +7 -10
  307. package/dist/collection/components/list-header/list-header.js +0 -10
  308. package/dist/collection/components/loading/loading.js +51 -135
  309. package/dist/collection/components/menu/menu.js +59 -101
  310. package/dist/collection/components/menu-button/menu-button.js +20 -29
  311. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  312. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  313. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  314. package/dist/collection/components/modal/gestures/sheet.js +12 -29
  315. package/dist/collection/components/modal/gestures/swipe-to-close.js +5 -33
  316. package/dist/collection/components/modal/gestures/utils.js +17 -0
  317. package/dist/collection/components/modal/modal.js +224 -393
  318. package/dist/collection/components/modal/safe-area-utils.js +5 -4
  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 +9 -20
  323. package/dist/collection/components/note/note.js +0 -6
  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 +65 -100
  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 +80 -112
  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 +0 -33
  372. package/dist/collection/components/select/select.js +166 -597
  373. package/dist/collection/components/select/select.md.css +0 -33
  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.js +139 -257
  392. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  393. package/dist/collection/components/title/title.js +2 -18
  394. package/dist/collection/components/toast/toast.js +106 -223
  395. package/dist/collection/components/toggle/toggle.js +115 -167
  396. package/dist/collection/components/toolbar/toolbar.js +7 -15
  397. package/dist/collection/global/config.js +6 -4
  398. package/dist/collection/global/ionic-global.js +2 -8
  399. package/dist/collection/index.js +1 -1
  400. package/dist/collection/utils/animation/animation.js +3 -3
  401. package/dist/collection/utils/config.js +4 -5
  402. package/dist/collection/utils/content/index.js +30 -0
  403. package/dist/collection/utils/focus-controller/index.js +1 -1
  404. package/dist/collection/utils/focus-trap.js +3 -3
  405. package/dist/collection/utils/framework-delegate.js +6 -4
  406. package/dist/collection/utils/gesture/gesture-controller.js +8 -15
  407. package/dist/collection/utils/gesture/index.js +2 -10
  408. package/dist/collection/utils/gesture/listener.js +1 -1
  409. package/dist/collection/utils/hardware-back-button.js +3 -3
  410. package/dist/collection/utils/helpers.js +2 -2
  411. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -4
  412. package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
  413. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  414. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  415. package/dist/collection/utils/menu-controller/index.js +2 -1
  416. package/dist/collection/utils/native/haptic.js +3 -2
  417. package/dist/collection/utils/native/keyboard.js +2 -2
  418. package/dist/collection/utils/native/status-bar.js +1 -1
  419. package/dist/collection/utils/overlays.js +23 -38
  420. package/dist/collection/utils/platform.js +5 -4
  421. package/dist/collection/utils/rtl/dir.js +1 -1
  422. package/dist/collection/utils/sanitization/index.js +20 -276
  423. package/dist/collection/utils/slot-mutation-controller.js +2 -1
  424. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  425. package/dist/collection/utils/test/playwright/drag-element.js +3 -2
  426. package/dist/collection/utils/test/playwright/generator.js +4 -3
  427. package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
  428. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
  429. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  430. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +3 -2
  431. package/dist/collection/utils/test/press-keys.js +17 -10
  432. package/dist/collection/utils/theme.js +1 -6
  433. package/dist/collection/utils/transition/ios.transition.js +13 -9
  434. package/dist/collection/utils/transition/md.transition.js +4 -3
  435. package/dist/docs.json +1267 -551
  436. package/dist/esm/{animation-CVK55yMY.js → animation-DLJpuoEz.js} +4 -4
  437. package/dist/esm/{app-globals-Bk1_t4sH.js → app-globals-D0C5S4hU.js} +1 -1
  438. package/dist/esm/{button-active-CdCqmeT0.js → button-active-BSpTQmS9.js} +3 -3
  439. package/dist/esm/config-DQCONYYp.js +195 -0
  440. package/dist/esm/{dir-B-FxiyeI.js → dir-C53feagD.js} +1 -1
  441. package/dist/esm/{format-sMi4BZ_l.js → format-CAmvpAez.js} +31 -41
  442. package/dist/esm/{framework-delegate-BfAlKlW5.js → framework-delegate-FnPGymXL.js} +7 -5
  443. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
  444. package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
  445. package/dist/esm/{hardware-back-button-DcHMMB9j.js → hardware-back-button-B93Gru0Y.js} +4 -4
  446. package/dist/esm/{helpers-BPcITY5s.js → helpers-HEqiOzXb.js} +3 -3
  447. package/dist/esm/{index-B9GsUd2c.js → index-BRHzoo00.js} +2 -2
  448. package/dist/esm/{index-DqVqy_Cy.js → index-B_dQk_WE.js} +5 -5
  449. package/dist/esm/{index-DppOcPFQ.js → index-CfgBF1SE.js} +4 -10
  450. package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
  451. package/dist/esm/{index-DcUt1pPn.js → index-Dw-wN0Ja.js} +33 -3
  452. package/dist/esm/{index-ks-BjikL.js → index-Q6UPU0Ay.js} +7 -6
  453. package/dist/esm/{index-D1CQtpUN.js → index-tcQvqkiX.js} +7 -5
  454. package/dist/esm/index.js +15 -16
  455. package/dist/esm/{input-shims-C1dCKVMO.js → input-shims-LXhI7LEx.js} +11 -9
  456. package/dist/esm/{input.utils-Dd5xwlP6.js → input.utils-Y6NgW8bw.js} +4 -3
  457. package/dist/esm/ion-accordion_2.entry.js +340 -368
  458. package/dist/esm/ion-action-sheet.entry.js +76 -187
  459. package/dist/esm/ion-alert.entry.js +110 -272
  460. package/dist/esm/ion-app_8.entry.js +190 -306
  461. package/dist/esm/ion-avatar_3.entry.js +4 -10
  462. package/dist/esm/ion-back-button.entry.js +23 -47
  463. package/dist/esm/ion-backdrop.entry.js +14 -18
  464. package/dist/esm/ion-breadcrumb_2.entry.js +121 -199
  465. package/dist/esm/ion-button_2.entry.js +66 -138
  466. package/dist/esm/ion-card_5.entry.js +30 -82
  467. package/dist/esm/ion-checkbox.entry.js +101 -152
  468. package/dist/esm/ion-chip.entry.js +11 -17
  469. package/dist/esm/ion-col_3.entry.js +10 -134
  470. package/dist/esm/ion-datetime-button.entry.js +241 -253
  471. package/dist/esm/ion-datetime_3.entry.js +3160 -0
  472. package/dist/esm/ion-fab_3.entry.js +81 -139
  473. package/dist/esm/ion-img.entry.js +12 -34
  474. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -99
  475. package/dist/esm/ion-input-otp.entry.js +370 -433
  476. package/dist/esm/ion-input-password-toggle.entry.js +19 -33
  477. package/dist/esm/ion-input.entry.js +168 -314
  478. package/dist/esm/ion-item-option_3.entry.js +51 -91
  479. package/dist/esm/ion-item_8.entry.js +82 -181
  480. package/dist/esm/ion-loading.entry.js +59 -145
  481. package/dist/esm/ion-menu_3.entry.js +101 -163
  482. package/dist/esm/ion-modal.entry.js +271 -470
  483. package/dist/esm/ion-nav_2.entry.js +157 -100
  484. package/dist/esm/ion-picker-column-option.entry.js +33 -37
  485. package/dist/esm/ion-picker-column.entry.js +405 -417
  486. package/dist/esm/ion-picker.entry.js +392 -401
  487. package/dist/esm/ion-popover.entry.js +205 -319
  488. package/dist/esm/ion-progress-bar.entry.js +25 -31
  489. package/dist/esm/ion-radio_2.entry.js +133 -206
  490. package/dist/esm/ion-range.entry.js +237 -302
  491. package/dist/esm/ion-refresher_2.entry.js +92 -164
  492. package/dist/esm/ion-reorder_2.entry.js +23 -53
  493. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  494. package/dist/esm/ion-route_4.entry.js +71 -175
  495. package/dist/esm/ion-searchbar.entry.js +200 -291
  496. package/dist/esm/ion-segment-content.entry.js +2 -2
  497. package/dist/esm/ion-segment-view.entry.js +17 -28
  498. package/dist/esm/ion-segment_2.entry.js +126 -169
  499. package/dist/esm/ion-select-modal.entry.js +48 -104
  500. package/dist/esm/ion-select_3.entry.js +215 -760
  501. package/dist/esm/ion-spinner.entry.js +10 -24
  502. package/dist/esm/ion-split-pane.entry.js +16 -29
  503. package/dist/esm/ion-tab-bar_2.entry.js +41 -100
  504. package/dist/esm/ion-tab_2.entry.js +27 -53
  505. package/dist/esm/ion-text.entry.js +5 -11
  506. package/dist/esm/ion-textarea.entry.js +144 -263
  507. package/dist/esm/ion-toast.entry.js +116 -235
  508. package/dist/esm/ion-toggle.entry.js +122 -175
  509. package/dist/esm/{ionic-global-5bZ91kOL.js → ionic-global-Cp_eT4sZ.js} +8 -13
  510. package/dist/esm/ionic.js +5 -5
  511. package/dist/esm/{ios.transition-OcwIGkv9.js → ios.transition-ClFrsIrS.js} +17 -13
  512. package/dist/esm/{item-multiple-inputs-ifd3ZrqY.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  513. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
  514. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
  515. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
  516. package/dist/esm/loader.js +5 -5
  517. package/dist/esm/{md.transition-BetdF0bc.js → md.transition-D0msQmzI.js} +8 -7
  518. package/dist/esm/{notch-controller-DBSn-Uat.js → notch-controller-DKDjU_O7.js} +1 -1
  519. package/dist/esm/{overlays-DUzb9CQf.js → overlays-Dg0q2_tJ.js} +33 -48
  520. package/dist/esm/{status-tap-C-wNhea0.js → status-tap-vO-6s4Yp.js} +3 -3
  521. package/dist/esm/{swipe-back-D6YSgAn7.js → swipe-back-DQ1q5MgD.js} +5 -5
  522. package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
  523. package/dist/html.html-data.json +80 -52
  524. package/dist/ionic/index.esm.js +1 -1
  525. package/dist/ionic/ionic.esm.js +1 -1
  526. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  527. package/dist/ionic/p-06c232a4.entry.js +4 -0
  528. package/dist/ionic/p-0caa922c.entry.js +4 -0
  529. package/dist/ionic/p-0dc33652.entry.js +4 -0
  530. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  531. package/dist/ionic/p-10e833ef.entry.js +4 -0
  532. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  533. package/dist/ionic/p-27d30585.entry.js +4 -0
  534. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  535. package/dist/ionic/p-2b204c59.entry.js +4 -0
  536. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  537. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  538. package/dist/ionic/p-3353c229.entry.js +4 -0
  539. package/dist/ionic/p-34586ead.entry.js +4 -0
  540. package/dist/ionic/p-37e720da.entry.js +4 -0
  541. package/dist/ionic/p-390ca786.entry.js +4 -0
  542. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  543. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  544. package/dist/ionic/p-4745f534.entry.js +4 -0
  545. package/dist/ionic/p-4858af1f.entry.js +4 -0
  546. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  547. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  548. package/dist/ionic/p-5018dfc8.entry.js +4 -0
  549. package/dist/ionic/p-50e1194a.entry.js +4 -0
  550. package/dist/ionic/p-5334df12.entry.js +4 -0
  551. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  552. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  553. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  554. package/dist/ionic/p-746fa988.entry.js +4 -0
  555. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  556. package/dist/ionic/p-7c319341.entry.js +4 -0
  557. package/dist/ionic/p-8158d422.entry.js +4 -0
  558. package/dist/ionic/p-829367ed.entry.js +4 -0
  559. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  560. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  561. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  562. package/dist/ionic/p-9eeaBrnk.js +4 -0
  563. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  564. package/dist/ionic/p-BGqMS-oh.js +4 -0
  565. package/dist/ionic/p-BTEOs1at.js +4 -0
  566. package/dist/ionic/p-BUFIpxKM.js +4 -0
  567. package/dist/ionic/p-C0eMdTCW.js +4 -0
  568. package/dist/ionic/p-C53feagD.js +4 -0
  569. package/dist/ionic/p-CFlfIb2g.js +4 -0
  570. package/dist/ionic/p-CKvCXMs9.js +4 -0
  571. package/dist/ionic/p-Cl0B-RWe.js +4 -0
  572. package/dist/ionic/p-CmcFnK-B.js +4 -0
  573. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  574. package/dist/ionic/p-Cx3IXROA.js +4 -0
  575. package/dist/ionic/p-D-3ycHmd.js +4 -0
  576. package/dist/ionic/p-D13Eaw-8.js +4 -0
  577. package/dist/ionic/p-D4uTWt4-.js +4 -0
  578. package/{components/p-Cwsd9bue.js → dist/ionic/p-DC3RagnA.js} +1 -1
  579. package/dist/ionic/{p-BNKr91bi.js → p-DIuEbVLu.js} +1 -1
  580. package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
  581. package/dist/ionic/p-DiVJyqlX.js +4 -0
  582. package/dist/ionic/{p-I9ETXg5W.js → p-DoJvtrbw.js} +1 -1
  583. package/dist/ionic/p-DqN5EA2O.js +4 -0
  584. package/dist/ionic/p-DzWaWHGc.js +4 -0
  585. package/{components/p-BXQ7upSC.js → dist/ionic/p-KjNvRoEp.js} +1 -1
  586. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  587. package/dist/ionic/p-SNAkTDfm.js +4 -0
  588. package/dist/ionic/p-VAemlbDS.js +4 -0
  589. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  590. package/dist/ionic/{p-460da491.entry.js → p-aaeedb6b.entry.js} +1 -1
  591. package/dist/ionic/p-af55a72f.entry.js +4 -0
  592. package/dist/ionic/p-b2020591.entry.js +4 -0
  593. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  594. package/dist/ionic/p-biz8zWmJ.js +4 -0
  595. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  596. package/dist/ionic/p-c38b648e.entry.js +4 -0
  597. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  598. package/dist/ionic/{p-b40c9715.entry.js → p-c6e49f3f.entry.js} +1 -1
  599. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  600. package/dist/ionic/p-d1aac015.entry.js +4 -0
  601. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  602. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  603. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  604. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  605. package/dist/ionic/p-mjKAFv89.js +4 -0
  606. package/dist/ionic/p-tcQvqkiX.js +5 -0
  607. package/dist/ionic/p-uWtqTrG8.js +4 -0
  608. package/dist/ionic/p-viFHDgRs.js +4 -0
  609. package/dist/ionic/p-xWb6fgfq.js +4 -0
  610. package/dist/types/components/img/img.d.ts +0 -2
  611. package/dist/types/components/input/input.d.ts +1 -1
  612. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  613. package/dist/types/components/modal/modal.d.ts +4 -11
  614. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  615. package/dist/types/components/nav/nav.d.ts +22 -2
  616. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  617. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  618. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  619. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  620. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  621. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  622. package/dist/types/components/route/route.d.ts +1 -1
  623. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  624. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  625. package/dist/types/components/select/select-interface.d.ts +0 -31
  626. package/dist/types/components/select/select.d.ts +0 -18
  627. package/dist/types/components/select-option/select-option.d.ts +1 -42
  628. package/dist/types/components.d.ts +311 -74
  629. package/dist/types/index.d.ts +1 -1
  630. package/dist/types/interface.d.ts +1 -0
  631. package/dist/types/utils/config.d.ts +8 -0
  632. package/dist/types/utils/content/index.d.ts +12 -0
  633. package/dist/types/utils/overlays.d.ts +9 -11
  634. package/dist/types/utils/sanitization/index.d.ts +2 -58
  635. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  636. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  637. package/hydrate/index.js +7103 -10331
  638. package/hydrate/index.mjs +7103 -10331
  639. package/package.json +11 -54
  640. package/components/p-0tt0PTAe.js +0 -4
  641. package/components/p-3dKnMgX5.js +0 -4
  642. package/components/p-6e_5igwn.js +0 -4
  643. package/components/p-B-FxiyeI.js +0 -4
  644. package/components/p-B4COLbAV.js +0 -4
  645. package/components/p-B9zzUBwR.js +0 -4
  646. package/components/p-BFU7kgcj.js +0 -4
  647. package/components/p-BMPN55of.js +0 -4
  648. package/components/p-BPbRjpb2.js +0 -4
  649. package/components/p-BSQPZ79H.js +0 -4
  650. package/components/p-BhamHSw3.js +0 -4
  651. package/components/p-BrXE0XUu.js +0 -4
  652. package/components/p-Bv7Rqz3Z.js +0 -4
  653. package/components/p-Bw7MMRH7.js +0 -4
  654. package/components/p-C-X5vb8f.js +0 -4
  655. package/components/p-C117Majq.js +0 -4
  656. package/components/p-CCVPk59A.js +0 -4
  657. package/components/p-CEW4RXZO.js +0 -4
  658. package/components/p-CKMc290p.js +0 -4
  659. package/components/p-CO5nI-BZ.js +0 -4
  660. package/components/p-COQ_7Wwc.js +0 -4
  661. package/components/p-CQbh6Be_.js +0 -4
  662. package/components/p-CQtcj8t7.js +0 -4
  663. package/components/p-Cap9bvqr.js +0 -4
  664. package/components/p-CdP7ze2J.js +0 -4
  665. package/components/p-CfyJ_Ogc.js +0 -4
  666. package/components/p-ChWC4-vA.js +0 -4
  667. package/components/p-CmKf4pgI.js +0 -4
  668. package/components/p-CqYSqB9_.js +0 -4
  669. package/components/p-D0xd6h3Q.js +0 -4
  670. package/components/p-D28LaDuR.js +0 -4
  671. package/components/p-D7-vHX0A.js +0 -4
  672. package/components/p-D9KqizZs.js +0 -4
  673. package/components/p-DIZE3CVV.js +0 -4
  674. package/components/p-DL8rd5jo.js +0 -4
  675. package/components/p-DRcApg6F.js +0 -4
  676. package/components/p-DTTnwMiS.js +0 -4
  677. package/components/p-DWCzVL3Y.js +0 -4
  678. package/components/p-DYmrV1HT.js +0 -4
  679. package/components/p-DnINLmwC.js +0 -4
  680. package/components/p-DsNz6_gM.js +0 -4
  681. package/components/p-DtiuiOTk.js +0 -4
  682. package/components/p-DunYzubP.js +0 -4
  683. package/components/p-DwcSJ9u1.js +0 -4
  684. package/components/p-QCPSB1bo.js +0 -4
  685. package/components/p-RvtofbHn.js +0 -4
  686. package/components/p-TXPDHL13.js +0 -4
  687. package/components/p-WOFp6fXj.js +0 -4
  688. package/components/p-byZM6qHV.js +0 -4
  689. package/components/p-miSGCTAU.js +0 -4
  690. package/components/p-mpdX3emm.js +0 -4
  691. package/components/p-nvqVLrWC.js +0 -4
  692. package/components/p-qiWM96Sz.js +0 -4
  693. package/components/p-vlF0Bcfd.js +0 -4
  694. package/dist/cjs/config-CjUbvdPW.js +0 -36
  695. package/dist/cjs/index-DhSx3VvD.js +0 -429
  696. package/dist/cjs/ion-datetime.cjs.entry.js +0 -2767
  697. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  698. package/dist/cjs/select-option-render-Dh16lTnA.js +0 -123
  699. package/dist/collection/utils/overlay-control-label.js +0 -45
  700. package/dist/collection/utils/select-option-render.js +0 -118
  701. package/dist/esm/config-DWCzVL3Y.js +0 -32
  702. package/dist/esm/index-DDa8edAS.js +0 -424
  703. package/dist/esm/ion-datetime.entry.js +0 -2765
  704. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  705. package/dist/esm/select-option-render-DsW8svRr.js +0 -121
  706. package/dist/ionic/p-01eaee58.entry.js +0 -4
  707. package/dist/ionic/p-0c567140.entry.js +0 -4
  708. package/dist/ionic/p-105bb794.entry.js +0 -4
  709. package/dist/ionic/p-10d55bb6.entry.js +0 -4
  710. package/dist/ionic/p-173a87d8.entry.js +0 -4
  711. package/dist/ionic/p-178da672.entry.js +0 -4
  712. package/dist/ionic/p-1ead2857.entry.js +0 -4
  713. package/dist/ionic/p-224e2464.entry.js +0 -4
  714. package/dist/ionic/p-2268e718.entry.js +0 -4
  715. package/dist/ionic/p-2b5283f3.entry.js +0 -4
  716. package/dist/ionic/p-2b6decac.entry.js +0 -4
  717. package/dist/ionic/p-2da5d9c6.entry.js +0 -4
  718. package/dist/ionic/p-31890acd.entry.js +0 -4
  719. package/dist/ionic/p-34ef7425.entry.js +0 -4
  720. package/dist/ionic/p-34f7c1d8.entry.js +0 -4
  721. package/dist/ionic/p-3b1e6fa4.entry.js +0 -4
  722. package/dist/ionic/p-42fefd2c.entry.js +0 -4
  723. package/dist/ionic/p-440cd489.entry.js +0 -4
  724. package/dist/ionic/p-53f680e8.entry.js +0 -4
  725. package/dist/ionic/p-57ba508f.entry.js +0 -4
  726. package/dist/ionic/p-599e5a75.entry.js +0 -4
  727. package/dist/ionic/p-5f670a9e.entry.js +0 -4
  728. package/dist/ionic/p-63502088.entry.js +0 -4
  729. package/dist/ionic/p-6e6bf45d.entry.js +0 -4
  730. package/dist/ionic/p-6f0b6a48.entry.js +0 -4
  731. package/dist/ionic/p-7438c462.entry.js +0 -4
  732. package/dist/ionic/p-747716e7.entry.js +0 -4
  733. package/dist/ionic/p-7759fcaf.entry.js +0 -4
  734. package/dist/ionic/p-7a8338e2.entry.js +0 -4
  735. package/dist/ionic/p-80f9f1dc.entry.js +0 -4
  736. package/dist/ionic/p-83ff4dcb.entry.js +0 -4
  737. package/dist/ionic/p-86f03895.entry.js +0 -4
  738. package/dist/ionic/p-87b8d70e.entry.js +0 -4
  739. package/dist/ionic/p-888236bf.entry.js +0 -4
  740. package/dist/ionic/p-8a92ca23.entry.js +0 -4
  741. package/dist/ionic/p-8c9af4ad.entry.js +0 -4
  742. package/dist/ionic/p-9669f546.entry.js +0 -4
  743. package/dist/ionic/p-9bcd8b74.entry.js +0 -4
  744. package/dist/ionic/p-B-FxiyeI.js +0 -4
  745. package/dist/ionic/p-B2trYd8K.js +0 -4
  746. package/dist/ionic/p-BMPN55of.js +0 -4
  747. package/dist/ionic/p-BSQPZ79H.js +0 -4
  748. package/dist/ionic/p-BSzG1VcX.js +0 -4
  749. package/dist/ionic/p-BVgBHS96.js +0 -4
  750. package/dist/ionic/p-BX2IOAqC.js +0 -4
  751. package/dist/ionic/p-BhamHSw3.js +0 -4
  752. package/dist/ionic/p-BufXJ_A8.js +0 -4
  753. package/dist/ionic/p-C73UOs4m.js +0 -4
  754. package/dist/ionic/p-CUSwMljM.js +0 -4
  755. package/dist/ionic/p-CeOSrSdu.js +0 -4
  756. package/dist/ionic/p-CfkB7_FV.js +0 -4
  757. package/dist/ionic/p-CmKf4pgI.js +0 -4
  758. package/dist/ionic/p-CnM-CMw7.js +0 -4
  759. package/dist/ionic/p-D1CQtpUN.js +0 -5
  760. package/dist/ionic/p-D5t_-oMk.js +0 -4
  761. package/dist/ionic/p-DVYb1IVZ.js +0 -4
  762. package/dist/ionic/p-DWCzVL3Y.js +0 -4
  763. package/dist/ionic/p-DfJ-SVJf.js +0 -4
  764. package/dist/ionic/p-DmXrLsoD.js +0 -4
  765. package/dist/ionic/p-DtLHAMFW.js +0 -4
  766. package/dist/ionic/p-Dtlob2JL.js +0 -4
  767. package/dist/ionic/p-F7ipfyOA.js +0 -4
  768. package/dist/ionic/p-IaXd5VMv.js +0 -4
  769. package/dist/ionic/p-T71k3C35.js +0 -4
  770. package/dist/ionic/p-TXPDHL13.js +0 -4
  771. package/dist/ionic/p-acbb97c3.entry.js +0 -4
  772. package/dist/ionic/p-aeb85531.entry.js +0 -4
  773. package/dist/ionic/p-b157f80d.entry.js +0 -4
  774. package/dist/ionic/p-b158de5d.entry.js +0 -4
  775. package/dist/ionic/p-b852101e.entry.js +0 -4
  776. package/dist/ionic/p-byZM6qHV.js +0 -4
  777. package/dist/ionic/p-c0d81bee.entry.js +0 -4
  778. package/dist/ionic/p-c8a327fb.entry.js +0 -4
  779. package/dist/ionic/p-d42ae99f.entry.js +0 -4
  780. package/dist/ionic/p-d47ff529.entry.js +0 -4
  781. package/dist/ionic/p-eHi73fGE.js +0 -4
  782. package/dist/ionic/p-eeabce92.entry.js +0 -4
  783. package/dist/ionic/p-efc66d77.entry.js +0 -4
  784. package/dist/ionic/p-f6d203dc.entry.js +0 -4
  785. package/dist/ionic/p-u2a770LZ.js +0 -4
  786. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  787. package/dist/types/utils/select-option-render.d.ts +0 -53
  788. /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, g as getElement, e as config, h, d as Host, c as createEvent, f as printIonWarning } from './index-D1CQtpUN.js';
5
- import { f as addEventListener, m as removeEventListener, r as raf, g as getElementRoot, t as transitionEndAsync } from './helpers-BPcITY5s.js';
6
- import { b as chevronDown } from './index-BvabGprD.js';
7
- import { b as getIonMode } from './ionic-global-5bZ91kOL.js';
4
+ import { r as registerInstance, e as config, h, d as Host, g as getElement, c as createEvent, f as printIonWarning } from './index-tcQvqkiX.js';
5
+ import { g as getElementRoot, r as raf, f as addEventListener, m as removeEventListener, t as transitionEndAsync } from './helpers-HEqiOzXb.js';
6
+ import { l as chevronDown } from './index-DV3sJJW8.js';
7
+ import { b as getIonMode } from './ionic-global-Cp_eT4sZ.js';
8
8
 
9
9
  const accordionIosCss = () => `:host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}`;
10
10
 
@@ -13,94 +13,329 @@ const accordionMdCss = () => `:host{display:block;position:relative;width:100%;b
13
13
  const Accordion = class {
14
14
  constructor(hostRef) {
15
15
  registerInstance(this, hostRef);
16
- }
17
- accordionGroupEl;
18
- accordionGroupUpdateHandler = () => {
16
+ this.accordionGroupUpdateHandler = () => {
17
+ /**
18
+ * Determine if this update will cause an actual state change.
19
+ * We only want to mark as "interacted" if the state is changing.
20
+ */
21
+ const accordionGroup = this.accordionGroupEl;
22
+ if (accordionGroup) {
23
+ const value = accordionGroup.value;
24
+ const accordionValue = this.value;
25
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
26
+ const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
27
+ const stateWillChange = shouldExpand !== isExpanded;
28
+ /**
29
+ * Only mark as interacted if:
30
+ * 1. This is not the first update we've received with a defined value
31
+ * 2. The state is actually changing (prevents redundant updates from enabling animations)
32
+ */
33
+ if (this.hasReceivedFirstUpdate && stateWillChange) {
34
+ this.hasInteracted = true;
35
+ }
36
+ /**
37
+ * Only count this as the first update if the group value is defined.
38
+ * This prevents the initial undefined value from the group's componentDidLoad
39
+ * from being treated as the first real update.
40
+ */
41
+ if (value !== undefined) {
42
+ this.hasReceivedFirstUpdate = true;
43
+ }
44
+ }
45
+ this.updateState();
46
+ };
47
+ this.state = 1 /* AccordionState.Collapsed */;
48
+ this.isNext = false;
49
+ this.isPrevious = false;
19
50
  /**
20
- * Determine if this update will cause an actual state change.
21
- * We only want to mark as "interacted" if the state is changing.
51
+ * Tracks whether a user-initiated interaction has occurred.
52
+ * Animations are disabled until the first interaction happens.
53
+ * This prevents the accordion from animating when it's programmatically
54
+ * set to an expanded or collapsed state on initial load.
22
55
  */
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;
56
+ this.hasInteracted = false;
57
+ /**
58
+ * Tracks if this accordion has ever been expanded.
59
+ * Used to prevent the first expansion from animating.
60
+ */
61
+ this.hasEverBeenExpanded = false;
62
+ /**
63
+ * Tracks if this accordion has received its first update from the group.
64
+ * Used to distinguish initial programmatic sets from user interactions.
65
+ */
66
+ this.hasReceivedFirstUpdate = false;
67
+ /**
68
+ * The value of the accordion. Defaults to an autogenerated
69
+ * value.
70
+ */
71
+ this.value = `ion-accordion-${accordionIds++}`;
72
+ /**
73
+ * If `true`, the accordion cannot be interacted with.
74
+ */
75
+ this.disabled = false;
76
+ /**
77
+ * If `true`, the accordion cannot be interacted with,
78
+ * but does not alter the opacity.
79
+ */
80
+ this.readonly = false;
81
+ /**
82
+ * The toggle icon to use. This icon will be
83
+ * rotated when the accordion is expanded
84
+ * or collapsed.
85
+ */
86
+ this.toggleIcon = chevronDown;
87
+ /**
88
+ * The slot inside of `ion-item` to
89
+ * place the toggle icon. Defaults to `"end"`.
90
+ */
91
+ this.toggleIconSlot = 'end';
92
+ this.setItemDefaults = () => {
93
+ const ionItem = this.getSlottedHeaderIonItem();
94
+ if (!ionItem) {
95
+ return;
96
+ }
97
+ /**
98
+ * For a11y purposes, we make
99
+ * the ion-item a button so users
100
+ * can tab to it and use keyboard
101
+ * navigation to get around.
102
+ */
103
+ ionItem.button = true;
104
+ ionItem.detail = false;
30
105
  /**
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)
106
+ * By default, the lines in an
107
+ * item should be full here, but
108
+ * only do that if a user has
109
+ * not explicitly overridden them
34
110
  */
35
- if (this.hasReceivedFirstUpdate && stateWillChange) {
36
- this.hasInteracted = true;
111
+ if (ionItem.lines === undefined) {
112
+ ionItem.lines = 'full';
113
+ }
114
+ };
115
+ this.getSlottedHeaderIonItem = () => {
116
+ const { headerEl } = this;
117
+ if (!headerEl) {
118
+ return;
37
119
  }
38
120
  /**
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.
121
+ * Get the first ion-item
122
+ * slotted in the header slot
42
123
  */
43
- if (value !== undefined) {
44
- this.hasReceivedFirstUpdate = true;
124
+ const slot = headerEl.querySelector('slot');
125
+ if (!slot) {
126
+ return;
45
127
  }
46
- }
47
- this.updateState();
48
- };
49
- contentEl;
50
- contentElWrapper;
51
- headerEl;
52
- currentRaf;
53
- get el() { return getElement(this); }
54
- state = 1 /* AccordionState.Collapsed */;
55
- isNext = false;
56
- isPrevious = false;
57
- /**
58
- * Tracks whether a user-initiated interaction has occurred.
59
- * Animations are disabled until the first interaction happens.
60
- * This prevents the accordion from animating when it's programmatically
61
- * set to an expanded or collapsed state on initial load.
62
- */
63
- hasInteracted = false;
64
- /**
65
- * Tracks if this accordion has ever been expanded.
66
- * Used to prevent the first expansion from animating.
67
- */
68
- hasEverBeenExpanded = false;
69
- /**
70
- * Tracks if this accordion has received its first update from the group.
71
- * Used to distinguish initial programmatic sets from user interactions.
72
- */
73
- hasReceivedFirstUpdate = false;
74
- /**
75
- * The value of the accordion. Defaults to an autogenerated
76
- * value.
77
- */
78
- value = `ion-accordion-${accordionIds++}`;
128
+ // This is not defined in unit tests
129
+ if (slot.assignedElements === undefined)
130
+ return;
131
+ return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
132
+ };
133
+ this.setAria = (expanded = false) => {
134
+ const ionItem = this.getSlottedHeaderIonItem();
135
+ if (!ionItem) {
136
+ return;
137
+ }
138
+ /**
139
+ * Get the native <button> element inside of
140
+ * ion-item because that is what will be focused
141
+ */
142
+ const root = getElementRoot(ionItem);
143
+ const button = root.querySelector('button');
144
+ if (!button) {
145
+ return;
146
+ }
147
+ button.setAttribute('aria-expanded', `${expanded}`);
148
+ };
149
+ this.slotToggleIcon = () => {
150
+ const ionItem = this.getSlottedHeaderIonItem();
151
+ if (!ionItem) {
152
+ return;
153
+ }
154
+ const { toggleIconSlot, toggleIcon } = this;
155
+ /**
156
+ * Check if there already is a toggle icon.
157
+ * If so, do not add another one.
158
+ */
159
+ const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
160
+ if (existingToggleIcon) {
161
+ return;
162
+ }
163
+ const iconEl = document.createElement('ion-icon');
164
+ iconEl.slot = toggleIconSlot;
165
+ iconEl.lazy = false;
166
+ iconEl.classList.add('ion-accordion-toggle-icon');
167
+ iconEl.icon = toggleIcon;
168
+ iconEl.setAttribute('aria-hidden', 'true');
169
+ ionItem.appendChild(iconEl);
170
+ };
171
+ this.expandAccordion = () => {
172
+ const { contentEl, contentElWrapper } = this;
173
+ /**
174
+ * If the content elements aren't available yet, just set the state.
175
+ * This happens on initial render before the DOM is ready.
176
+ */
177
+ if (contentEl === undefined || contentElWrapper === undefined) {
178
+ this.state = 4 /* AccordionState.Expanded */;
179
+ this.hasEverBeenExpanded = true;
180
+ return;
181
+ }
182
+ if (this.state === 4 /* AccordionState.Expanded */) {
183
+ return;
184
+ }
185
+ if (this.currentRaf !== undefined) {
186
+ cancelAnimationFrame(this.currentRaf);
187
+ }
188
+ /**
189
+ * Mark that this accordion has been expanded at least once.
190
+ * This allows subsequent expansions to animate.
191
+ */
192
+ this.hasEverBeenExpanded = true;
193
+ if (this.shouldAnimate()) {
194
+ raf(() => {
195
+ this.state = 8 /* AccordionState.Expanding */;
196
+ this.currentRaf = raf(async () => {
197
+ const contentHeight = contentElWrapper.offsetHeight;
198
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
199
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
200
+ await waitForTransition;
201
+ this.state = 4 /* AccordionState.Expanded */;
202
+ contentEl.style.removeProperty('max-height');
203
+ });
204
+ });
205
+ }
206
+ else {
207
+ this.state = 4 /* AccordionState.Expanded */;
208
+ }
209
+ };
210
+ this.collapseAccordion = () => {
211
+ const { contentEl } = this;
212
+ /**
213
+ * If the content element isn't available yet, just set the state.
214
+ * This happens on initial render before the DOM is ready.
215
+ */
216
+ if (contentEl === undefined) {
217
+ this.state = 1 /* AccordionState.Collapsed */;
218
+ return;
219
+ }
220
+ if (this.state === 1 /* AccordionState.Collapsed */) {
221
+ return;
222
+ }
223
+ if (this.currentRaf !== undefined) {
224
+ cancelAnimationFrame(this.currentRaf);
225
+ }
226
+ if (this.shouldAnimate()) {
227
+ this.currentRaf = raf(async () => {
228
+ const contentHeight = contentEl.offsetHeight;
229
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
230
+ raf(async () => {
231
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
232
+ this.state = 2 /* AccordionState.Collapsing */;
233
+ await waitForTransition;
234
+ this.state = 1 /* AccordionState.Collapsed */;
235
+ contentEl.style.removeProperty('max-height');
236
+ });
237
+ });
238
+ }
239
+ else {
240
+ this.state = 1 /* AccordionState.Collapsed */;
241
+ }
242
+ };
243
+ /**
244
+ * Helper function to determine if
245
+ * something should animate.
246
+ * If prefers-reduced-motion is set
247
+ * then we should not animate, regardless
248
+ * of what is set in the config.
249
+ */
250
+ this.shouldAnimate = () => {
251
+ /**
252
+ * Don't animate until after the first user interaction.
253
+ * This prevents animations on initial load when accordions
254
+ * start in an expanded or collapsed state programmatically.
255
+ *
256
+ * Additionally, don't animate the very first expansion even if
257
+ * hasInteracted is true. This handles edge cases like React StrictMode
258
+ * where effects run twice and might incorrectly mark as interacted.
259
+ */
260
+ if (!this.hasInteracted || !this.hasEverBeenExpanded) {
261
+ return false;
262
+ }
263
+ if (typeof window === 'undefined') {
264
+ return false;
265
+ }
266
+ const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
267
+ if (prefersReducedMotion) {
268
+ return false;
269
+ }
270
+ const animated = config.get('animated', true);
271
+ if (!animated) {
272
+ return false;
273
+ }
274
+ if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
275
+ return false;
276
+ }
277
+ return true;
278
+ };
279
+ this.updateState = async () => {
280
+ const accordionGroup = this.accordionGroupEl;
281
+ const accordionValue = this.value;
282
+ if (!accordionGroup) {
283
+ return;
284
+ }
285
+ const value = accordionGroup.value;
286
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
287
+ if (shouldExpand) {
288
+ this.expandAccordion();
289
+ this.isNext = this.isPrevious = false;
290
+ }
291
+ else {
292
+ this.collapseAccordion();
293
+ /**
294
+ * When using popout or inset,
295
+ * the collapsed accordion items
296
+ * may need additional border radius
297
+ * applied. Check to see if the
298
+ * next or previous accordion is selected.
299
+ */
300
+ const nextAccordion = this.getNextSibling();
301
+ const nextAccordionValue = nextAccordion === null || nextAccordion === void 0 ? void 0 : nextAccordion.value;
302
+ if (nextAccordionValue !== undefined) {
303
+ this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
304
+ }
305
+ const previousAccordion = this.getPreviousSibling();
306
+ const previousAccordionValue = previousAccordion === null || previousAccordion === void 0 ? void 0 : previousAccordion.value;
307
+ if (previousAccordionValue !== undefined) {
308
+ this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
309
+ }
310
+ }
311
+ };
312
+ this.getNextSibling = () => {
313
+ if (!this.el) {
314
+ return;
315
+ }
316
+ const nextSibling = this.el.nextElementSibling;
317
+ if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) !== 'ION-ACCORDION') {
318
+ return;
319
+ }
320
+ return nextSibling;
321
+ };
322
+ this.getPreviousSibling = () => {
323
+ if (!this.el) {
324
+ return;
325
+ }
326
+ const previousSibling = this.el.previousElementSibling;
327
+ if ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.tagName) !== 'ION-ACCORDION') {
328
+ return;
329
+ }
330
+ return previousSibling;
331
+ };
332
+ }
79
333
  valueChanged() {
80
334
  this.updateState();
81
335
  }
82
- /**
83
- * If `true`, the accordion cannot be interacted with.
84
- */
85
- disabled = false;
86
- /**
87
- * If `true`, the accordion cannot be interacted with,
88
- * but does not alter the opacity.
89
- */
90
- readonly = false;
91
- /**
92
- * The toggle icon to use. This icon will be
93
- * rotated when the accordion is expanded
94
- * or collapsed.
95
- */
96
- toggleIcon = chevronDown;
97
- /**
98
- * The slot inside of `ion-item` to
99
- * place the toggle icon. Defaults to `"end"`.
100
- */
101
- toggleIconSlot = 'end';
102
336
  connectedCallback() {
103
- const accordionGroupEl = (this.accordionGroupEl = this.el?.closest('ion-accordion-group'));
337
+ var _a;
338
+ const accordionGroupEl = (this.accordionGroupEl = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('ion-accordion-group'));
104
339
  if (accordionGroupEl) {
105
340
  this.updateState();
106
341
  addEventListener(accordionGroupEl, 'ionValueChange', this.accordionGroupUpdateHandler);
@@ -129,246 +364,6 @@ const Accordion = class {
129
364
  this.setAria(expanded);
130
365
  });
131
366
  }
132
- setItemDefaults = () => {
133
- const ionItem = this.getSlottedHeaderIonItem();
134
- if (!ionItem) {
135
- return;
136
- }
137
- /**
138
- * For a11y purposes, we make
139
- * the ion-item a button so users
140
- * can tab to it and use keyboard
141
- * navigation to get around.
142
- */
143
- ionItem.button = true;
144
- ionItem.detail = false;
145
- /**
146
- * By default, the lines in an
147
- * item should be full here, but
148
- * only do that if a user has
149
- * not explicitly overridden them
150
- */
151
- if (ionItem.lines === undefined) {
152
- ionItem.lines = 'full';
153
- }
154
- };
155
- getSlottedHeaderIonItem = () => {
156
- const { headerEl } = this;
157
- if (!headerEl) {
158
- return;
159
- }
160
- /**
161
- * Get the first ion-item
162
- * slotted in the header slot
163
- */
164
- const slot = headerEl.querySelector('slot');
165
- if (!slot) {
166
- return;
167
- }
168
- // This is not defined in unit tests
169
- if (slot.assignedElements === undefined)
170
- return;
171
- return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
172
- };
173
- setAria = (expanded = false) => {
174
- const ionItem = this.getSlottedHeaderIonItem();
175
- if (!ionItem) {
176
- return;
177
- }
178
- /**
179
- * Get the native <button> element inside of
180
- * ion-item because that is what will be focused
181
- */
182
- const root = getElementRoot(ionItem);
183
- const button = root.querySelector('button');
184
- if (!button) {
185
- return;
186
- }
187
- button.setAttribute('aria-expanded', `${expanded}`);
188
- };
189
- slotToggleIcon = () => {
190
- const ionItem = this.getSlottedHeaderIonItem();
191
- if (!ionItem) {
192
- return;
193
- }
194
- const { toggleIconSlot, toggleIcon } = this;
195
- /**
196
- * Check if there already is a toggle icon.
197
- * If so, do not add another one.
198
- */
199
- const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
200
- if (existingToggleIcon) {
201
- return;
202
- }
203
- const iconEl = document.createElement('ion-icon');
204
- iconEl.slot = toggleIconSlot;
205
- iconEl.lazy = false;
206
- iconEl.classList.add('ion-accordion-toggle-icon');
207
- iconEl.icon = toggleIcon;
208
- iconEl.setAttribute('aria-hidden', 'true');
209
- ionItem.appendChild(iconEl);
210
- };
211
- expandAccordion = () => {
212
- const { contentEl, contentElWrapper } = this;
213
- /**
214
- * If the content elements aren't available yet, just set the state.
215
- * This happens on initial render before the DOM is ready.
216
- */
217
- if (contentEl === undefined || contentElWrapper === undefined) {
218
- this.state = 4 /* AccordionState.Expanded */;
219
- this.hasEverBeenExpanded = true;
220
- return;
221
- }
222
- if (this.state === 4 /* AccordionState.Expanded */) {
223
- return;
224
- }
225
- if (this.currentRaf !== undefined) {
226
- cancelAnimationFrame(this.currentRaf);
227
- }
228
- /**
229
- * Mark that this accordion has been expanded at least once.
230
- * This allows subsequent expansions to animate.
231
- */
232
- this.hasEverBeenExpanded = true;
233
- if (this.shouldAnimate()) {
234
- raf(() => {
235
- this.state = 8 /* AccordionState.Expanding */;
236
- this.currentRaf = raf(async () => {
237
- const contentHeight = contentElWrapper.offsetHeight;
238
- const waitForTransition = transitionEndAsync(contentEl, 2000);
239
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
240
- await waitForTransition;
241
- this.state = 4 /* AccordionState.Expanded */;
242
- contentEl.style.removeProperty('max-height');
243
- });
244
- });
245
- }
246
- else {
247
- this.state = 4 /* AccordionState.Expanded */;
248
- }
249
- };
250
- collapseAccordion = () => {
251
- const { contentEl } = this;
252
- /**
253
- * If the content element isn't available yet, just set the state.
254
- * This happens on initial render before the DOM is ready.
255
- */
256
- if (contentEl === undefined) {
257
- this.state = 1 /* AccordionState.Collapsed */;
258
- return;
259
- }
260
- if (this.state === 1 /* AccordionState.Collapsed */) {
261
- return;
262
- }
263
- if (this.currentRaf !== undefined) {
264
- cancelAnimationFrame(this.currentRaf);
265
- }
266
- if (this.shouldAnimate()) {
267
- this.currentRaf = raf(async () => {
268
- const contentHeight = contentEl.offsetHeight;
269
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
270
- raf(async () => {
271
- const waitForTransition = transitionEndAsync(contentEl, 2000);
272
- this.state = 2 /* AccordionState.Collapsing */;
273
- await waitForTransition;
274
- this.state = 1 /* AccordionState.Collapsed */;
275
- contentEl.style.removeProperty('max-height');
276
- });
277
- });
278
- }
279
- else {
280
- this.state = 1 /* AccordionState.Collapsed */;
281
- }
282
- };
283
- /**
284
- * Helper function to determine if
285
- * something should animate.
286
- * If prefers-reduced-motion is set
287
- * then we should not animate, regardless
288
- * of what is set in the config.
289
- */
290
- shouldAnimate = () => {
291
- /**
292
- * Don't animate until after the first user interaction.
293
- * This prevents animations on initial load when accordions
294
- * start in an expanded or collapsed state programmatically.
295
- *
296
- * Additionally, don't animate the very first expansion even if
297
- * hasInteracted is true. This handles edge cases like React StrictMode
298
- * where effects run twice and might incorrectly mark as interacted.
299
- */
300
- if (!this.hasInteracted || !this.hasEverBeenExpanded) {
301
- return false;
302
- }
303
- if (typeof window === 'undefined') {
304
- return false;
305
- }
306
- const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
307
- if (prefersReducedMotion) {
308
- return false;
309
- }
310
- const animated = config.get('animated', true);
311
- if (!animated) {
312
- return false;
313
- }
314
- if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
315
- return false;
316
- }
317
- return true;
318
- };
319
- updateState = async () => {
320
- const accordionGroup = this.accordionGroupEl;
321
- const accordionValue = this.value;
322
- if (!accordionGroup) {
323
- return;
324
- }
325
- const value = accordionGroup.value;
326
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
327
- if (shouldExpand) {
328
- this.expandAccordion();
329
- this.isNext = this.isPrevious = false;
330
- }
331
- else {
332
- this.collapseAccordion();
333
- /**
334
- * When using popout or inset,
335
- * the collapsed accordion items
336
- * may need additional border radius
337
- * applied. Check to see if the
338
- * next or previous accordion is selected.
339
- */
340
- const nextAccordion = this.getNextSibling();
341
- const nextAccordionValue = nextAccordion?.value;
342
- if (nextAccordionValue !== undefined) {
343
- this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
344
- }
345
- const previousAccordion = this.getPreviousSibling();
346
- const previousAccordionValue = previousAccordion?.value;
347
- if (previousAccordionValue !== undefined) {
348
- this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
349
- }
350
- }
351
- };
352
- getNextSibling = () => {
353
- if (!this.el) {
354
- return;
355
- }
356
- const nextSibling = this.el.nextElementSibling;
357
- if (nextSibling?.tagName !== 'ION-ACCORDION') {
358
- return;
359
- }
360
- return nextSibling;
361
- };
362
- getPreviousSibling = () => {
363
- if (!this.el) {
364
- return;
365
- }
366
- const previousSibling = this.el.previousElementSibling;
367
- if (previousSibling?.tagName !== 'ION-ACCORDION') {
368
- return;
369
- }
370
- return previousSibling;
371
- };
372
367
  toggleExpanded() {
373
368
  const { accordionGroupEl, disabled, readonly, value, state } = this;
374
369
  if (disabled || readonly)
@@ -412,6 +407,7 @@ const Accordion = class {
412
407
  }, tabindex: disabled ? '-1' : undefined }, h("div", { key: 'f76bc02347639b41c9a5be8a9488a8be8559cba7', onClick: () => this.toggleExpanded(), id: "header", part: headerPart, "aria-controls": "content", ref: (headerEl) => (this.headerEl = headerEl) }, h("slot", { key: 'e01744bf0af3200239e82c60c632ed36295db2da', name: "header" })), h("div", { key: 'c613345a7e244ee361f76ff4ebed139d2a1b9572', id: "content", part: contentPart, role: "region", "aria-labelledby": "header", ref: (contentEl) => (this.contentEl = contentEl) }, h("div", { key: '943b65d9a129759b4c213974ae5ed777b5f6166e', id: "content-wrapper", ref: (contentElWrapper) => (this.contentElWrapper = contentElWrapper) }, h("slot", { key: 'b0df520dad9d5557df63a35f8206ada4a765d238', name: "content" })))));
413
408
  }
414
409
  static get delegatesFocus() { return true; }
410
+ get el() { return getElement(this); }
415
411
  static get watchers() { return {
416
412
  "value": [{
417
413
  "valueChanged": 0
@@ -433,53 +429,28 @@ const AccordionGroup = class {
433
429
  registerInstance(this, hostRef);
434
430
  this.ionChange = createEvent(this, "ionChange", 7);
435
431
  this.ionValueChange = createEvent(this, "ionValueChange", 7);
432
+ /**
433
+ * If `true`, all accordions inside of the
434
+ * accordion group will animate when expanding
435
+ * or collapsing.
436
+ */
437
+ this.animated = true;
438
+ /**
439
+ * If `true`, the accordion group cannot be interacted with.
440
+ */
441
+ this.disabled = false;
442
+ /**
443
+ * If `true`, the accordion group cannot be interacted with,
444
+ * but does not alter the opacity.
445
+ */
446
+ this.readonly = false;
447
+ /**
448
+ * Describes the expansion behavior for each accordion.
449
+ * Possible values are `"compact"` and `"inset"`.
450
+ * Defaults to `"compact"`.
451
+ */
452
+ this.expand = 'compact';
436
453
  }
437
- get el() { return getElement(this); }
438
- /**
439
- * If `true`, all accordions inside of the
440
- * accordion group will animate when expanding
441
- * or collapsing.
442
- */
443
- animated = true;
444
- /**
445
- * If `true`, the accordion group can have multiple
446
- * accordion components expanded at the same time.
447
- */
448
- multiple;
449
- /**
450
- * The value of the accordion group. This controls which
451
- * accordions are expanded.
452
- * This should be an array of strings only when `multiple="true"`
453
- */
454
- value;
455
- /**
456
- * If `true`, the accordion group cannot be interacted with.
457
- */
458
- disabled = false;
459
- /**
460
- * If `true`, the accordion group cannot be interacted with,
461
- * but does not alter the opacity.
462
- */
463
- readonly = false;
464
- /**
465
- * Describes the expansion behavior for each accordion.
466
- * Possible values are `"compact"` and `"inset"`.
467
- * Defaults to `"compact"`.
468
- */
469
- expand = 'compact';
470
- /**
471
- * Emitted when the value property has changed as a result of a user action such as a click.
472
- *
473
- * This event will not emit when programmatically setting the `value` property.
474
- */
475
- ionChange;
476
- /**
477
- * Emitted when the value property has changed.
478
- * This is used to ensure that ion-accordion can respond
479
- * to any value property changes.
480
- * @internal
481
- */
482
- ionValueChange;
483
454
  valueChanged() {
484
455
  const { value, multiple } = this;
485
456
  if (!multiple && Array.isArray(value)) {
@@ -612,7 +583,7 @@ const AccordionGroup = class {
612
583
  * to the array.
613
584
  */
614
585
  if (multiple) {
615
- const groupValue = value ?? [];
586
+ const groupValue = value !== null && value !== void 0 ? value : [];
616
587
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
617
588
  const valueExists = processedValue.find((v) => v === accordionValue);
618
589
  if (valueExists === undefined && accordionValue !== undefined) {
@@ -629,7 +600,7 @@ const AccordionGroup = class {
629
600
  * out of the values array or unset the value.
630
601
  */
631
602
  if (multiple) {
632
- const groupValue = value ?? [];
603
+ const groupValue = value !== null && value !== void 0 ? value : [];
633
604
  const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
634
605
  this.setValue(processedValue.filter((v) => v !== accordionValue));
635
606
  }
@@ -668,6 +639,7 @@ const AccordionGroup = class {
668
639
  [`accordion-group-expand-${expand}`]: true,
669
640
  }, role: "presentation" }, h("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
670
641
  }
642
+ get el() { return getElement(this); }
671
643
  static get watchers() { return {
672
644
  "value": [{
673
645
  "valueChanged": 0