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