@ionic/core 9.0.0 → 9.0.1-dev.11787248963.10a00c73

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 (596) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/{p-63OhffQv.js → p-66ogmUZU.js} +1 -1
  99. package/components/p-6Vp915Y7.js +4 -0
  100. package/components/p-7PNwKFZi.js +4 -0
  101. package/components/{p-G0TxqHfe.js → p-A8MJRBIY.js} +1 -1
  102. package/components/p-AQcCdH2_.js +4 -0
  103. package/{dist/ionic/p-Dn0mqQ_R.js → components/p-B6x5_b9w.js} +1 -1
  104. package/components/p-B8MQjdvk.js +4 -0
  105. package/components/p-BA_4ZIEg.js +4 -0
  106. package/components/p-BFtL8t1r.js +4 -0
  107. package/components/{p-DaA_8eqt.js → p-BMfgF-Tv.js} +1 -1
  108. package/components/p-BPDxVIRr.js +4 -0
  109. package/components/p-BSARlp49.js +4 -0
  110. package/components/p-B_gJaBk0.js +4 -0
  111. package/components/p-BdwCtX8Y.js +4 -0
  112. package/components/p-Bg4OwDwb.js +4 -0
  113. package/components/{p-DV85C0e0.js → p-BgUIV8NQ.js} +1 -1
  114. package/components/p-Bnc0m4SW.js +4 -0
  115. package/components/p-BpLt_Ptn.js +4 -0
  116. package/components/p-BqBDq1Ma.js +4 -0
  117. package/components/{p-C_phlPMC.js → p-BrFaQbGY.js} +1 -1
  118. package/{dist/ionic/p-Cdjxf_yg.js → components/p-BuPAFTWI.js} +1 -1
  119. package/components/p-Bx2saTHs.js +4 -0
  120. package/components/p-BxhE2W85.js +4 -0
  121. package/components/p-CHswSpKy.js +4 -0
  122. package/components/{p-fruGqVHh.js → p-CQAjyETU.js} +1 -1
  123. package/components/{p-1jI5oW-W.js → p-CR9OgE6N.js} +1 -1
  124. package/components/p-CWETxTjE.js +4 -0
  125. package/components/p-CaZeZIL2.js +4 -0
  126. package/components/p-CaiZOhfC.js +4 -0
  127. package/components/p-CgvDC7hC.js +4 -0
  128. package/components/{p-BqPNzJf6.js → p-CqyGR9Aq.js} +1 -1
  129. package/components/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  130. package/components/p-D7ysFE2B.js +4 -0
  131. package/{dist/ionic/p-4eOQC00Z.js → components/p-DCWfzDM8.js} +1 -1
  132. package/components/{p-DwpKZ6rl.js → p-DDdkefwf.js} +1 -1
  133. package/components/{p-DzRT60Tw.js → p-DEW7CnUc.js} +1 -1
  134. package/components/p-DQ1IPvZO.js +4 -0
  135. package/components/p-DcOH6-o5.js +4 -0
  136. package/components/{p-DD5fQ4EQ.js → p-DfdYCsov.js} +1 -1
  137. package/components/{p-DSzSbVP2.js → p-DhOoEIAs.js} +1 -1
  138. package/components/{p-DM-PrAoh.js → p-Dl_7b_UJ.js} +1 -1
  139. package/components/p-DqAI6tg7.js +4 -0
  140. package/components/p-DrehWDfv.js +4 -0
  141. package/components/{p-ryyf_ItD.js → p-DysqCsJu.js} +1 -1
  142. package/components/p-H1f2qsk4.js +4 -0
  143. package/components/p-HVYBAhFx.js +4 -0
  144. package/components/{p-CbhUdtjf.js → p-Kmrg3Fed.js} +1 -1
  145. package/components/{p-Bjig0DJK.js → p-RFfE9hF6.js} +1 -1
  146. package/{dist/ionic/p-CBWAXjA5.js → components/p-SR-LLqp_.js} +1 -1
  147. package/components/p-eFI3mtEX.js +4 -0
  148. package/components/p-gFwXiYC_.js +4 -0
  149. package/components/p-tX3UxCnU.js +4 -0
  150. package/components/p-v2NpoOHp.js +4 -0
  151. package/dist/cjs/{animation-C0mOHzej.js → animation-D-OqR4a4.js} +1 -1
  152. package/dist/cjs/{app-globals-BREG4twP.js → app-globals-BzgwARwJ.js} +1 -1
  153. package/dist/cjs/{button-active-CVMevT9a.js → button-active-BlWSD7uK.js} +2 -2
  154. package/dist/cjs/{format-pp0Du3K-.js → format-D7ig6Vm0.js} +1 -1
  155. package/dist/cjs/{framework-delegate-Dfo5XsGv.js → framework-delegate-BZUx4TnE.js} +1 -1
  156. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-CeJslptU.js} +6 -14
  157. package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-JOAEFSzc.js} +1 -1
  158. package/dist/cjs/{helpers-YPQybDph.js → helpers-Dj5o76mq.js} +1 -1
  159. package/dist/cjs/{index-BLdJCcJY.js → index-2sO-zkZ2.js} +4 -4
  160. package/dist/cjs/{index-uvry__L4.js → index-BrVMoqUk.js} +3 -1
  161. package/dist/cjs/{index-zVCah4Uz.js → index-C8zH6b3d.js} +2 -2
  162. package/dist/cjs/{index-DXsPSne6.js → index-CZ6vzt_q.js} +5 -5
  163. package/dist/cjs/{index-DDg31ZF5.js → index-Csue6G3m.js} +2 -2
  164. package/dist/cjs/{index-DwlRtFZe.js → index-DRPqwSvU.js} +1 -1
  165. package/dist/cjs/{index-B7zJsYWS.js → index-EJLjthTK.js} +1 -2
  166. package/dist/cjs/index.cjs.js +14 -14
  167. package/dist/cjs/{input-shims-Cbu1fcye.js → input-shims-Bh7bnt2v.js} +3 -3
  168. package/dist/cjs/{input.utils-BZdMWVrt.js → input.utils-Cq3g9uHy.js} +1 -1
  169. package/dist/cjs/ion-accordion_2.cjs.entry.js +335 -364
  170. package/dist/cjs/ion-action-sheet.cjs.entry.js +60 -140
  171. package/dist/cjs/ion-alert.cjs.entry.js +67 -159
  172. package/dist/cjs/ion-app_8.cjs.entry.js +163 -258
  173. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -8
  174. package/dist/cjs/ion-back-button.cjs.entry.js +21 -45
  175. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  176. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +117 -195
  177. package/dist/cjs/ion-button_2.cjs.entry.js +61 -130
  178. package/dist/cjs/ion-card_5.cjs.entry.js +28 -80
  179. package/dist/cjs/ion-checkbox.cjs.entry.js +98 -147
  180. package/dist/cjs/ion-chip.cjs.entry.js +10 -16
  181. package/dist/cjs/ion-col_3.cjs.entry.js +6 -126
  182. package/dist/cjs/ion-datetime-button.cjs.entry.js +232 -248
  183. package/dist/cjs/ion-datetime.cjs.entry.js +775 -953
  184. package/dist/cjs/ion-fab_3.cjs.entry.js +78 -136
  185. package/dist/cjs/ion-img.cjs.entry.js +11 -31
  186. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +71 -98
  187. package/dist/cjs/ion-input-otp.cjs.entry.js +352 -424
  188. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -29
  189. package/dist/cjs/ion-input.cjs.entry.js +158 -302
  190. package/dist/cjs/ion-item-option_3.cjs.entry.js +54 -98
  191. package/dist/cjs/ion-item_8.cjs.entry.js +61 -157
  192. package/dist/cjs/ion-loading.cjs.entry.js +54 -131
  193. package/dist/cjs/ion-menu_3.cjs.entry.js +94 -158
  194. package/dist/cjs/ion-modal.cjs.entry.js +206 -362
  195. package/dist/cjs/ion-nav_2.cjs.entry.js +26 -78
  196. package/dist/cjs/ion-picker-column-option.cjs.entry.js +23 -33
  197. package/dist/cjs/ion-picker-column.cjs.entry.js +389 -410
  198. package/dist/cjs/ion-picker.cjs.entry.js +390 -400
  199. package/dist/cjs/ion-popover.cjs.entry.js +184 -292
  200. package/dist/cjs/ion-progress-bar.cjs.entry.js +23 -29
  201. package/dist/cjs/ion-radio_2.cjs.entry.js +128 -201
  202. package/dist/cjs/ion-range.cjs.entry.js +223 -293
  203. package/dist/cjs/ion-refresher_2.cjs.entry.js +89 -154
  204. package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -49
  205. package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -13
  206. package/dist/cjs/ion-route_4.cjs.entry.js +45 -144
  207. package/dist/cjs/ion-searchbar.cjs.entry.js +182 -268
  208. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  209. package/dist/cjs/ion-segment-view.cjs.entry.js +12 -24
  210. package/dist/cjs/ion-segment_2.cjs.entry.js +122 -161
  211. package/dist/cjs/ion-select-modal.cjs.entry.js +19 -21
  212. package/dist/cjs/ion-select_3.cjs.entry.js +151 -319
  213. package/dist/cjs/ion-spinner.cjs.entry.js +6 -21
  214. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -27
  215. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +32 -89
  216. package/dist/cjs/ion-tab_2.cjs.entry.js +22 -49
  217. package/dist/cjs/ion-text.cjs.entry.js +2 -8
  218. package/dist/cjs/ion-textarea.cjs.entry.js +139 -256
  219. package/dist/cjs/ion-toast.cjs.entry.js +106 -221
  220. package/dist/cjs/ion-toggle.cjs.entry.js +114 -165
  221. package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-DvgIzM2F.js} +1 -1
  222. package/dist/cjs/ionic.cjs.js +4 -4
  223. package/dist/cjs/{ios.transition-zTmJz8T-.js → ios.transition-zIgdoSYe.js} +4 -4
  224. package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
  225. package/dist/cjs/loader.cjs.js +4 -4
  226. package/dist/cjs/{md.transition-nb_4pUXu.js → md.transition-CXeJ9rfh.js} +4 -4
  227. package/dist/cjs/{overlays-KaNVDNqC.js → overlays-Bg0auTQa.js} +6 -6
  228. package/dist/cjs/{select-option-render-pULCGldr.js → select-option-render-7m1WdFzF.js} +2 -2
  229. package/dist/cjs/{slot-mutation-controller-DPHmqXdV.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
  230. package/dist/cjs/{status-tap-o9IIymsP.js → status-tap-DxbUM5XX.js} +3 -3
  231. package/dist/cjs/{swipe-back-B7X9VOlH.js → swipe-back-F_DBt-Aw.js} +4 -4
  232. package/dist/collection/components/accordion/accordion.js +310 -314
  233. package/dist/collection/components/accordion-group/accordion-group.js +23 -46
  234. package/dist/collection/components/action-sheet/action-sheet.js +49 -128
  235. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  236. package/dist/collection/components/alert/alert.js +56 -147
  237. package/dist/collection/components/app/app.js +0 -3
  238. package/dist/collection/components/back-button/back-button.js +19 -42
  239. package/dist/collection/components/backdrop/backdrop.js +14 -16
  240. package/dist/collection/components/badge/badge.js +0 -6
  241. package/dist/collection/components/breadcrumb/breadcrumb.js +29 -90
  242. package/dist/collection/components/breadcrumbs/breadcrumbs.js +87 -102
  243. package/dist/collection/components/button/button.js +59 -127
  244. package/dist/collection/components/buttons/buttons.js +15 -13
  245. package/dist/collection/components/card/card.js +20 -53
  246. package/dist/collection/components/card-header/card-header.js +8 -12
  247. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  248. package/dist/collection/components/card-title/card-title.js +0 -6
  249. package/dist/collection/components/checkbox/checkbox.js +95 -143
  250. package/dist/collection/components/chip/chip.js +10 -14
  251. package/dist/collection/components/col/col.js +0 -120
  252. package/dist/collection/components/content/content.js +60 -90
  253. package/dist/collection/components/datetime/datetime.js +762 -939
  254. package/dist/collection/components/datetime-button/datetime-button.js +229 -244
  255. package/dist/collection/components/fab/fab.js +13 -20
  256. package/dist/collection/components/fab-button/fab-button.js +54 -103
  257. package/dist/collection/components/fab-list/fab-list.js +11 -10
  258. package/dist/collection/components/footer/footer.js +43 -49
  259. package/dist/collection/components/grid/grid.js +6 -4
  260. package/dist/collection/components/header/header.js +23 -33
  261. package/dist/collection/components/img/img.js +9 -28
  262. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  264. package/dist/collection/components/input/input.js +154 -297
  265. package/dist/collection/components/input-otp/input-otp.js +350 -421
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +13 -27
  267. package/dist/collection/components/item/item.js +37 -80
  268. package/dist/collection/components/item-divider/item-divider.js +10 -15
  269. package/dist/collection/components/item-option/item-option.js +20 -48
  270. package/dist/collection/components/item-options/item-options.js +7 -10
  271. package/dist/collection/components/item-sliding/item-sliding.js +26 -36
  272. package/dist/collection/components/label/label.js +4 -24
  273. package/dist/collection/components/list/list.js +6 -9
  274. package/dist/collection/components/list-header/list-header.js +0 -10
  275. package/dist/collection/components/loading/loading.js +46 -122
  276. package/dist/collection/components/menu/menu.js +55 -99
  277. package/dist/collection/components/menu-button/menu-button.js +19 -28
  278. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  279. package/dist/collection/components/modal/modal.js +196 -351
  280. package/dist/collection/components/modal/test/fixtures.js +0 -3
  281. package/dist/collection/components/nav/nav.js +12 -45
  282. package/dist/collection/components/nav/view-controller.js +1 -7
  283. package/dist/collection/components/nav-link/nav-link.js +9 -20
  284. package/dist/collection/components/note/note.js +0 -6
  285. package/dist/collection/components/picker/picker.js +388 -397
  286. package/dist/collection/components/picker-column/picker-column.js +389 -409
  287. package/dist/collection/components/picker-column-option/picker-column-option.js +21 -30
  288. package/dist/collection/components/popover/popover.js +176 -283
  289. package/dist/collection/components/popover/test/fixture.js +0 -1
  290. package/dist/collection/components/progress-bar/progress-bar.js +22 -26
  291. package/dist/collection/components/radio/radio.js +62 -98
  292. package/dist/collection/components/radio-group/radio-group.js +64 -99
  293. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  294. package/dist/collection/components/range/range.js +220 -289
  295. package/dist/collection/components/refresher/refresher.js +79 -105
  296. package/dist/collection/components/refresher-content/refresher-content.js +3 -40
  297. package/dist/collection/components/reorder/reorder.js +0 -1
  298. package/dist/collection/components/reorder-group/reorder-group.js +14 -43
  299. package/dist/collection/components/ripple-effect/ripple-effect.js +12 -11
  300. package/dist/collection/components/route/route.js +9 -38
  301. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  302. package/dist/collection/components/router/router.js +27 -35
  303. package/dist/collection/components/router/utils/matching.js +0 -1
  304. package/dist/collection/components/router-link/router-link.js +10 -35
  305. package/dist/collection/components/router-outlet/router-outlet.js +12 -34
  306. package/dist/collection/components/searchbar/searchbar.js +180 -265
  307. package/dist/collection/components/segment/segment.js +76 -113
  308. package/dist/collection/components/segment-button/segment-button.js +44 -44
  309. package/dist/collection/components/segment-view/segment-view.js +12 -23
  310. package/dist/collection/components/select/select.js +127 -240
  311. package/dist/collection/components/select-modal/select-modal.js +11 -12
  312. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  313. package/dist/collection/components/select-option/select-option.js +7 -44
  314. package/dist/collection/components/select-popover/select-popover.js +10 -25
  315. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  316. package/dist/collection/components/skeleton-text/skeleton-text.js +6 -10
  317. package/dist/collection/components/spinner/spinner.js +6 -19
  318. package/dist/collection/components/split-pane/split-pane.js +13 -25
  319. package/dist/collection/components/tab/tab.js +4 -15
  320. package/dist/collection/components/tab-bar/tab-bar.js +12 -30
  321. package/dist/collection/components/tab-button/tab-button.js +19 -56
  322. package/dist/collection/components/tabs/tabs.js +17 -31
  323. package/dist/collection/components/text/text.js +0 -6
  324. package/dist/collection/components/textarea/textarea.js +135 -251
  325. package/dist/collection/components/title/title.js +0 -16
  326. package/dist/collection/components/toast/toast.js +97 -211
  327. package/dist/collection/components/toggle/toggle.js +111 -161
  328. package/dist/collection/components/toolbar/toolbar.js +3 -8
  329. package/dist/collection/global/config.js +3 -1
  330. package/dist/collection/utils/gesture/gesture-controller.js +6 -14
  331. package/dist/collection/utils/sanitization/index.js +0 -1
  332. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  333. package/dist/collection/utils/test/playwright/page/event-spy.js +8 -9
  334. package/dist/collection/utils/test/press-keys.js +1 -4
  335. package/dist/docs.json +1 -1
  336. package/dist/esm/{animation-CGFdmGk9.js → animation-TxGPYeDn.js} +1 -1
  337. package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-Do8rJest.js} +1 -1
  338. package/dist/esm/{button-active-BDOsVAiZ.js → button-active-ChA4D-ml.js} +2 -2
  339. package/dist/esm/{format-Dcwga61t.js → format-CVk5e_GP.js} +2 -2
  340. package/dist/esm/{framework-delegate-BHTU2Ip9.js → framework-delegate-DaLWnISz.js} +1 -1
  341. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-B_gJaBk0.js} +6 -14
  342. package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-D8W4L0JP.js} +1 -1
  343. package/dist/esm/{helpers-CAGf8Wgp.js → helpers-BIgoInJU.js} +1 -1
  344. package/dist/esm/{index-DcPaH5uL.js → index-BmLuEdV7.js} +1 -1
  345. package/dist/esm/{index-T0JxBI8V.js → index-BmOR8tCv.js} +2 -2
  346. package/dist/esm/{index-CqneaaGd.js → index-C5ZdL0qp.js} +5 -5
  347. package/dist/esm/{index-WlteAIqz.js → index-C8Dsa6li.js} +4 -4
  348. package/dist/esm/{index-ChhhtsGZ.js → index-CKYcsw8f.js} +3 -1
  349. package/dist/esm/{index-Clc-28O1.js → index-DHw2lZxe.js} +2 -2
  350. package/dist/esm/{index-CKM1DdGm.js → index-elneMH8y.js} +1 -2
  351. package/dist/esm/index.js +14 -14
  352. package/dist/esm/{input-shims-B8sfni1e.js → input-shims-09NN97kF.js} +3 -3
  353. package/dist/esm/{input.utils-B1ValN_N.js → input.utils-BxyH9l1w.js} +1 -1
  354. package/dist/esm/ion-accordion_2.entry.js +335 -364
  355. package/dist/esm/ion-action-sheet.entry.js +60 -140
  356. package/dist/esm/ion-alert.entry.js +67 -159
  357. package/dist/esm/ion-app_8.entry.js +163 -258
  358. package/dist/esm/ion-avatar_3.entry.js +2 -8
  359. package/dist/esm/ion-back-button.entry.js +21 -45
  360. package/dist/esm/ion-backdrop.entry.js +14 -18
  361. package/dist/esm/ion-breadcrumb_2.entry.js +117 -195
  362. package/dist/esm/ion-button_2.entry.js +61 -130
  363. package/dist/esm/ion-card_5.entry.js +28 -80
  364. package/dist/esm/ion-checkbox.entry.js +98 -147
  365. package/dist/esm/ion-chip.entry.js +10 -16
  366. package/dist/esm/ion-col_3.entry.js +6 -126
  367. package/dist/esm/ion-datetime-button.entry.js +232 -248
  368. package/dist/esm/ion-datetime.entry.js +775 -953
  369. package/dist/esm/ion-fab_3.entry.js +78 -136
  370. package/dist/esm/ion-img.entry.js +11 -31
  371. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -98
  372. package/dist/esm/ion-input-otp.entry.js +352 -424
  373. package/dist/esm/ion-input-password-toggle.entry.js +14 -29
  374. package/dist/esm/ion-input.entry.js +158 -302
  375. package/dist/esm/ion-item-option_3.entry.js +54 -98
  376. package/dist/esm/ion-item_8.entry.js +61 -157
  377. package/dist/esm/ion-loading.entry.js +54 -131
  378. package/dist/esm/ion-menu_3.entry.js +94 -158
  379. package/dist/esm/ion-modal.entry.js +206 -362
  380. package/dist/esm/ion-nav_2.entry.js +26 -78
  381. package/dist/esm/ion-picker-column-option.entry.js +23 -33
  382. package/dist/esm/ion-picker-column.entry.js +389 -410
  383. package/dist/esm/ion-picker.entry.js +390 -400
  384. package/dist/esm/ion-popover.entry.js +184 -292
  385. package/dist/esm/ion-progress-bar.entry.js +23 -29
  386. package/dist/esm/ion-radio_2.entry.js +128 -201
  387. package/dist/esm/ion-range.entry.js +223 -293
  388. package/dist/esm/ion-refresher_2.entry.js +89 -154
  389. package/dist/esm/ion-reorder_2.entry.js +19 -49
  390. package/dist/esm/ion-ripple-effect.entry.js +13 -13
  391. package/dist/esm/ion-route_4.entry.js +45 -144
  392. package/dist/esm/ion-searchbar.entry.js +182 -268
  393. package/dist/esm/ion-segment-content.entry.js +1 -1
  394. package/dist/esm/ion-segment-view.entry.js +12 -24
  395. package/dist/esm/ion-segment_2.entry.js +122 -161
  396. package/dist/esm/ion-select-modal.entry.js +19 -21
  397. package/dist/esm/ion-select_3.entry.js +151 -319
  398. package/dist/esm/ion-spinner.entry.js +6 -21
  399. package/dist/esm/ion-split-pane.entry.js +14 -27
  400. package/dist/esm/ion-tab-bar_2.entry.js +32 -89
  401. package/dist/esm/ion-tab_2.entry.js +22 -49
  402. package/dist/esm/ion-text.entry.js +2 -8
  403. package/dist/esm/ion-textarea.entry.js +139 -256
  404. package/dist/esm/ion-toast.entry.js +106 -221
  405. package/dist/esm/ion-toggle.entry.js +114 -165
  406. package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-lrowsHfi.js} +1 -1
  407. package/dist/esm/ionic.js +5 -5
  408. package/dist/esm/{ios.transition-DXRCmcbC.js → ios.transition-BQhADrk1.js} +4 -4
  409. package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
  410. package/dist/esm/loader.js +5 -5
  411. package/dist/esm/{md.transition-BMngO4i_.js → md.transition-D58NpmRa.js} +4 -4
  412. package/dist/esm/{overlays-CPmIs9Ls.js → overlays-BpnIFlXI.js} +6 -6
  413. package/dist/esm/{select-option-render-C4m76VGH.js → select-option-render-lIuu64EV.js} +2 -2
  414. package/dist/esm/{slot-mutation-controller-DiE_C9un.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
  415. package/dist/esm/{status-tap-CHB7KwIb.js → status-tap-CpFQMLl6.js} +3 -3
  416. package/dist/esm/{swipe-back-C9HW1bug.js → swipe-back-rmc7zeNW.js} +4 -4
  417. package/dist/ionic/index.esm.js +1 -1
  418. package/dist/ionic/ionic.esm.js +1 -1
  419. package/dist/ionic/p-05800a02.entry.js +4 -0
  420. package/dist/ionic/p-0eb50dca.entry.js +4 -0
  421. package/dist/ionic/p-16e9f542.entry.js +4 -0
  422. package/dist/ionic/p-18d532a3.entry.js +4 -0
  423. package/dist/ionic/p-1db2afb4.entry.js +4 -0
  424. package/dist/ionic/p-1df75f9e.entry.js +4 -0
  425. package/dist/ionic/p-295ff427.entry.js +4 -0
  426. package/dist/ionic/p-34b9379b.entry.js +4 -0
  427. package/dist/ionic/p-39a8d4e0.entry.js +4 -0
  428. package/dist/ionic/p-4437015c.entry.js +4 -0
  429. package/dist/ionic/p-478035a7.entry.js +4 -0
  430. package/dist/ionic/p-485fb218.entry.js +4 -0
  431. package/dist/ionic/p-48c859fe.entry.js +4 -0
  432. package/dist/ionic/p-49b9d405.entry.js +4 -0
  433. package/dist/ionic/p-56307aea.entry.js +4 -0
  434. package/dist/ionic/p-5b906fd6.entry.js +4 -0
  435. package/dist/ionic/p-5ee2d7b1.entry.js +4 -0
  436. package/dist/ionic/p-5f216b79.entry.js +4 -0
  437. package/dist/ionic/p-61c799d1.entry.js +4 -0
  438. package/dist/ionic/p-63bbba8d.entry.js +4 -0
  439. package/dist/ionic/p-68507e70.entry.js +4 -0
  440. package/dist/ionic/{p-ded69ceb.entry.js → p-6f048604.entry.js} +1 -1
  441. package/dist/ionic/p-70ee8888.entry.js +4 -0
  442. package/dist/ionic/p-72ad7c64.entry.js +4 -0
  443. package/dist/ionic/p-75887ee0.entry.js +4 -0
  444. package/dist/ionic/p-873a315a.entry.js +4 -0
  445. package/dist/ionic/p-881b6954.entry.js +4 -0
  446. package/dist/ionic/p-886d9e66.entry.js +4 -0
  447. package/dist/ionic/p-8dd4c026.entry.js +4 -0
  448. package/dist/ionic/p-8e007f11.entry.js +4 -0
  449. package/dist/ionic/p-8f51110d.entry.js +4 -0
  450. package/dist/ionic/p-90ba736e.entry.js +4 -0
  451. package/dist/ionic/p-959df5f8.entry.js +4 -0
  452. package/dist/ionic/p-9e455875.entry.js +4 -0
  453. package/dist/ionic/{p-CBR_W98Z.js → p-9wczfs_v.js} +1 -1
  454. package/dist/ionic/p-B1Y7LZhV.js +4 -0
  455. package/dist/ionic/p-B5RyLYvl.js +4 -0
  456. package/dist/ionic/{p-CPcPmkGv.js → p-BQv5i5Kf.js} +1 -1
  457. package/{components/p-8FN7p701.js → dist/ionic/p-BZVE25Gu.js} +1 -1
  458. package/{components/p-DFvZn99E.js → dist/ionic/p-BZxjcGRP.js} +1 -1
  459. package/dist/ionic/p-B_gJaBk0.js +4 -0
  460. package/dist/ionic/p-BnGA34Pd.js +4 -0
  461. package/dist/ionic/p-ByLaqOPm.js +4 -0
  462. package/dist/ionic/p-C06QNN45.js +4 -0
  463. package/dist/ionic/p-C4IBDDj6.js +4 -0
  464. package/dist/ionic/p-CCVlNZ__.js +4 -0
  465. package/dist/ionic/{p-CMRtMbJc.js → p-CDBop-kz.js} +1 -1
  466. package/dist/ionic/p-CKYcsw8f.js +5 -0
  467. package/dist/ionic/p-CazSodad.js +4 -0
  468. package/{components/p-ia3IDdJS.js → dist/ionic/p-ClrlQU2y.js} +1 -1
  469. package/dist/ionic/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  470. package/dist/ionic/p-D0dfUysx.js +4 -0
  471. package/dist/ionic/{p-BB0LlG4y.js → p-D9yvytgv.js} +1 -1
  472. package/{components/p-C5KYjZWD.js → dist/ionic/p-DF_Uqql8.js} +1 -1
  473. package/dist/ionic/{p-BYEAtHr-.js → p-DXJgZWgi.js} +1 -1
  474. package/dist/ionic/{p-D94_RztK.js → p-DdhHqKj-.js} +1 -1
  475. package/dist/ionic/p-De0eY881.js +4 -0
  476. package/dist/ionic/p-DgUL3JbO.js +4 -0
  477. package/dist/ionic/{p-7CBuOvEo.js → p-RzUn7cKs.js} +1 -1
  478. package/dist/ionic/p-VquyMbjp.js +4 -0
  479. package/dist/ionic/p-a0fee899.entry.js +4 -0
  480. package/dist/ionic/p-a54bcd16.entry.js +4 -0
  481. package/dist/ionic/p-aebc4d69.entry.js +4 -0
  482. package/dist/ionic/p-b5f37106.entry.js +4 -0
  483. package/dist/ionic/{p-40424a88.entry.js → p-b62bfce8.entry.js} +1 -1
  484. package/dist/ionic/p-b7a11b58.entry.js +4 -0
  485. package/dist/ionic/p-bbf6878c.entry.js +4 -0
  486. package/dist/ionic/p-c49165af.entry.js +4 -0
  487. package/dist/ionic/p-cad4eccf.entry.js +4 -0
  488. package/dist/ionic/p-cdc5115e.entry.js +4 -0
  489. package/dist/ionic/p-d3384a40.entry.js +4 -0
  490. package/dist/ionic/p-d8bae128.entry.js +4 -0
  491. package/dist/ionic/p-d8deff43.entry.js +4 -0
  492. package/dist/ionic/p-ddfb7e5f.entry.js +4 -0
  493. package/dist/ionic/p-e538f18d.entry.js +4 -0
  494. package/dist/ionic/p-f376876b.entry.js +4 -0
  495. package/dist/ionic/p-f7dd1ed9.entry.js +4 -0
  496. package/dist/ionic/p-fbd83d4c.entry.js +4 -0
  497. package/dist/types/components/refresher/refresher.d.ts +7 -0
  498. package/hydrate/index.js +5450 -8380
  499. package/hydrate/index.mjs +5450 -8380
  500. package/package.json +1 -1
  501. package/components/p--m5cCjbK.js +0 -4
  502. package/components/p-B4uHHhPK.js +0 -4
  503. package/components/p-BNJOu1Q2.js +0 -4
  504. package/components/p-BOvLNVKq.js +0 -4
  505. package/components/p-BeamQXHF.js +0 -4
  506. package/components/p-BjluhQMI.js +0 -4
  507. package/components/p-BlsIikdZ.js +0 -4
  508. package/components/p-BrD9Xv62.js +0 -4
  509. package/components/p-BvJqoZ5R.js +0 -4
  510. package/components/p-Bz6z3Asd.js +0 -4
  511. package/components/p-C6HnVvHO.js +0 -4
  512. package/components/p-C7jvh5Wy.js +0 -4
  513. package/components/p-C9BGR5fy.js +0 -4
  514. package/components/p-CB-y1CdP.js +0 -4
  515. package/components/p-CHH3loEE.js +0 -4
  516. package/components/p-CJKUWjmg.js +0 -4
  517. package/components/p-CMLAwl_N.js +0 -4
  518. package/components/p-CejmQs3h.js +0 -4
  519. package/components/p-CtZqa4HM.js +0 -4
  520. package/components/p-D9qIVSWm.js +0 -4
  521. package/components/p-DE-3iMNW.js +0 -4
  522. package/components/p-DHFt2rdc.js +0 -4
  523. package/components/p-D_RCyzwu.js +0 -4
  524. package/components/p-D_tD8r3L.js +0 -4
  525. package/components/p-DjCtLZbF.js +0 -4
  526. package/components/p-Dmd2xqCe.js +0 -4
  527. package/components/p-G6JR-cr_.js +0 -4
  528. package/components/p-GG5GhznE.js +0 -4
  529. package/components/p-TXPDHL13.js +0 -4
  530. package/components/p-_IKFD3ID.js +0 -4
  531. package/components/p-dKq2jIum.js +0 -4
  532. package/components/p-iYhH60Tc.js +0 -4
  533. package/dist/ionic/p-06ec7136.entry.js +0 -4
  534. package/dist/ionic/p-09fe4fa3.entry.js +0 -4
  535. package/dist/ionic/p-10d45a07.entry.js +0 -4
  536. package/dist/ionic/p-208c8a07.entry.js +0 -4
  537. package/dist/ionic/p-212474fa.entry.js +0 -4
  538. package/dist/ionic/p-2eef1396.entry.js +0 -4
  539. package/dist/ionic/p-347e005d.entry.js +0 -4
  540. package/dist/ionic/p-3a0b3f1d.entry.js +0 -4
  541. package/dist/ionic/p-3b071259.entry.js +0 -4
  542. package/dist/ionic/p-4204184c.entry.js +0 -4
  543. package/dist/ionic/p-47464391.entry.js +0 -4
  544. package/dist/ionic/p-4f9c9126.entry.js +0 -4
  545. package/dist/ionic/p-5JsKPLJD.js +0 -4
  546. package/dist/ionic/p-5bc485c6.entry.js +0 -4
  547. package/dist/ionic/p-603a61e6.entry.js +0 -4
  548. package/dist/ionic/p-60576951.entry.js +0 -4
  549. package/dist/ionic/p-67a81d33.entry.js +0 -4
  550. package/dist/ionic/p-6affb775.entry.js +0 -4
  551. package/dist/ionic/p-6f120c25.entry.js +0 -4
  552. package/dist/ionic/p-71c82b60.entry.js +0 -4
  553. package/dist/ionic/p-79325ffe.entry.js +0 -4
  554. package/dist/ionic/p-7e4d51fa.entry.js +0 -4
  555. package/dist/ionic/p-7f5d4664.entry.js +0 -4
  556. package/dist/ionic/p-80ee82fc.entry.js +0 -4
  557. package/dist/ionic/p-84af7dbc.entry.js +0 -4
  558. package/dist/ionic/p-89ca830a.entry.js +0 -4
  559. package/dist/ionic/p-93b8ec8f.entry.js +0 -4
  560. package/dist/ionic/p-946f65c2.entry.js +0 -4
  561. package/dist/ionic/p-9c4b39fb.entry.js +0 -4
  562. package/dist/ionic/p-B1NEZUzQ.js +0 -4
  563. package/dist/ionic/p-B1ck5iy-.js +0 -4
  564. package/dist/ionic/p-B4FrqdW0.js +0 -4
  565. package/dist/ionic/p-C-94tAim.js +0 -4
  566. package/dist/ionic/p-C-eHZMYE.js +0 -4
  567. package/dist/ionic/p-CaRuIadB.js +0 -4
  568. package/dist/ionic/p-ChhhtsGZ.js +0 -5
  569. package/dist/ionic/p-CzS1qWve.js +0 -4
  570. package/dist/ionic/p-DjjfauRM.js +0 -4
  571. package/dist/ionic/p-DkUB-ROc.js +0 -4
  572. package/dist/ionic/p-DplOqGUv.js +0 -4
  573. package/dist/ionic/p-Dst_XmZh.js +0 -4
  574. package/dist/ionic/p-TXPDHL13.js +0 -4
  575. package/dist/ionic/p-a438b193.entry.js +0 -4
  576. package/dist/ionic/p-babaaaa7.entry.js +0 -4
  577. package/dist/ionic/p-be08d500.entry.js +0 -4
  578. package/dist/ionic/p-be9a4f51.entry.js +0 -4
  579. package/dist/ionic/p-c00d3092.entry.js +0 -4
  580. package/dist/ionic/p-c36dc8f5.entry.js +0 -4
  581. package/dist/ionic/p-c72a7e17.entry.js +0 -4
  582. package/dist/ionic/p-c8edd88c.entry.js +0 -4
  583. package/dist/ionic/p-ce0e380b.entry.js +0 -4
  584. package/dist/ionic/p-ce32912b.entry.js +0 -4
  585. package/dist/ionic/p-d07cf130.entry.js +0 -4
  586. package/dist/ionic/p-d27edeb3.entry.js +0 -4
  587. package/dist/ionic/p-d5d2c506.entry.js +0 -4
  588. package/dist/ionic/p-d5e31ca9.entry.js +0 -4
  589. package/dist/ionic/p-de91444f.entry.js +0 -4
  590. package/dist/ionic/p-df72866d.entry.js +0 -4
  591. package/dist/ionic/p-e47e3151.entry.js +0 -4
  592. package/dist/ionic/p-e621e5e8.entry.js +0 -4
  593. package/dist/ionic/p-eea9cf93.entry.js +0 -4
  594. package/dist/ionic/p-f402f5a4.entry.js +0 -4
  595. package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
  596. package/dist/ionic/p-ffb90460.entry.js +0 -4
@@ -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-ChhhtsGZ.js';
5
- import { f as addEventListener, m as removeEventListener, r as raf, g as getElementRoot, t as transitionEndAsync } from './helpers-CAGf8Wgp.js';
4
+ import { r as registerInstance, e as config, h, d as Host, g as getElement, c as createEvent, f as printIonWarning } from './index-CKYcsw8f.js';
5
+ import { g as getElementRoot, r as raf, f as addEventListener, m as removeEventListener, t as transitionEndAsync } from './helpers-BIgoInJU.js';
6
6
  import { b as chevronDown } from './index-BvabGprD.js';
7
- import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
7
+ import { b as getIonMode } from './ionic-global-lrowsHfi.js';
8
8
  import './dir-Dojwmvde.js';
9
9
 
10
10
  const accordionIosCss = () => `:host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}`;
@@ -14,92 +14,326 @@ const accordionMdCss = () => `:host{display:block;position:relative;width:100%;b
14
14
  const Accordion = class {
15
15
  constructor(hostRef) {
16
16
  registerInstance(this, hostRef);
17
- }
18
- accordionGroupEl;
19
- accordionGroupUpdateHandler = () => {
17
+ this.accordionGroupUpdateHandler = () => {
18
+ /**
19
+ * Determine if this update will cause an actual state change.
20
+ * We only want to mark as "interacted" if the state is changing.
21
+ */
22
+ const accordionGroup = this.accordionGroupEl;
23
+ if (accordionGroup) {
24
+ const value = accordionGroup.value;
25
+ const accordionValue = this.value;
26
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
27
+ const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
28
+ const stateWillChange = shouldExpand !== isExpanded;
29
+ /**
30
+ * Only mark as interacted if:
31
+ * 1. This is not the first update we've received with a defined value
32
+ * 2. The state is actually changing (prevents redundant updates from enabling animations)
33
+ */
34
+ if (this.hasReceivedFirstUpdate && stateWillChange) {
35
+ this.hasInteracted = true;
36
+ }
37
+ /**
38
+ * Only count this as the first update if the group value is defined.
39
+ * This prevents the initial undefined value from the group's componentDidLoad
40
+ * from being treated as the first real update.
41
+ */
42
+ if (value !== undefined) {
43
+ this.hasReceivedFirstUpdate = true;
44
+ }
45
+ }
46
+ this.updateState();
47
+ };
48
+ this.state = 1 /* AccordionState.Collapsed */;
49
+ this.isNext = false;
50
+ this.isPrevious = false;
20
51
  /**
21
- * Determine if this update will cause an actual state change.
22
- * We only want to mark as "interacted" if the state is changing.
52
+ * Tracks whether a user-initiated interaction has occurred.
53
+ * Animations are disabled until the first interaction happens.
54
+ * This prevents the accordion from animating when it's programmatically
55
+ * set to an expanded or collapsed state on initial load.
23
56
  */
24
- const accordionGroup = this.accordionGroupEl;
25
- if (accordionGroup) {
26
- const value = accordionGroup.value;
27
- const accordionValue = this.value;
28
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
29
- const isExpanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;
30
- const stateWillChange = shouldExpand !== isExpanded;
57
+ this.hasInteracted = false;
58
+ /**
59
+ * Tracks if this accordion has ever been expanded.
60
+ * Used to prevent the first expansion from animating.
61
+ */
62
+ this.hasEverBeenExpanded = false;
63
+ /**
64
+ * Tracks if this accordion has received its first update from the group.
65
+ * Used to distinguish initial programmatic sets from user interactions.
66
+ */
67
+ this.hasReceivedFirstUpdate = false;
68
+ /**
69
+ * The value of the accordion. Defaults to an autogenerated
70
+ * value.
71
+ */
72
+ this.value = `ion-accordion-${accordionIds++}`;
73
+ /**
74
+ * If `true`, the accordion cannot be interacted with.
75
+ */
76
+ this.disabled = false;
77
+ /**
78
+ * If `true`, the accordion cannot be interacted with,
79
+ * but does not alter the opacity.
80
+ */
81
+ this.readonly = false;
82
+ /**
83
+ * The toggle icon to use. This icon will be
84
+ * rotated when the accordion is expanded
85
+ * or collapsed.
86
+ */
87
+ this.toggleIcon = chevronDown;
88
+ /**
89
+ * The slot inside of `ion-item` to
90
+ * place the toggle icon. Defaults to `"end"`.
91
+ */
92
+ this.toggleIconSlot = 'end';
93
+ this.setItemDefaults = () => {
94
+ const ionItem = this.getSlottedHeaderIonItem();
95
+ if (!ionItem) {
96
+ return;
97
+ }
98
+ /**
99
+ * For a11y purposes, we make
100
+ * the ion-item a button so users
101
+ * can tab to it and use keyboard
102
+ * navigation to get around.
103
+ */
104
+ ionItem.button = true;
105
+ ionItem.detail = false;
31
106
  /**
32
- * Only mark as interacted if:
33
- * 1. This is not the first update we've received with a defined value
34
- * 2. The state is actually changing (prevents redundant updates from enabling animations)
107
+ * By default, the lines in an
108
+ * item should be full here, but
109
+ * only do that if a user has
110
+ * not explicitly overridden them
35
111
  */
36
- if (this.hasReceivedFirstUpdate && stateWillChange) {
37
- this.hasInteracted = true;
112
+ if (ionItem.lines === undefined) {
113
+ ionItem.lines = 'full';
114
+ }
115
+ };
116
+ this.getSlottedHeaderIonItem = () => {
117
+ const { headerEl } = this;
118
+ if (!headerEl) {
119
+ return;
38
120
  }
39
121
  /**
40
- * Only count this as the first update if the group value is defined.
41
- * This prevents the initial undefined value from the group's componentDidLoad
42
- * from being treated as the first real update.
122
+ * Get the first ion-item
123
+ * slotted in the header slot
43
124
  */
44
- if (value !== undefined) {
45
- this.hasReceivedFirstUpdate = true;
125
+ const slot = headerEl.querySelector('slot');
126
+ if (!slot) {
127
+ return;
46
128
  }
47
- }
48
- this.updateState();
49
- };
50
- contentEl;
51
- contentElWrapper;
52
- headerEl;
53
- currentRaf;
54
- get el() { return getElement(this); }
55
- state = 1 /* AccordionState.Collapsed */;
56
- isNext = false;
57
- isPrevious = false;
58
- /**
59
- * Tracks whether a user-initiated interaction has occurred.
60
- * Animations are disabled until the first interaction happens.
61
- * This prevents the accordion from animating when it's programmatically
62
- * set to an expanded or collapsed state on initial load.
63
- */
64
- hasInteracted = false;
65
- /**
66
- * Tracks if this accordion has ever been expanded.
67
- * Used to prevent the first expansion from animating.
68
- */
69
- hasEverBeenExpanded = false;
70
- /**
71
- * Tracks if this accordion has received its first update from the group.
72
- * Used to distinguish initial programmatic sets from user interactions.
73
- */
74
- hasReceivedFirstUpdate = false;
75
- /**
76
- * The value of the accordion. Defaults to an autogenerated
77
- * value.
78
- */
79
- value = `ion-accordion-${accordionIds++}`;
129
+ // This is not defined in unit tests
130
+ if (slot.assignedElements === undefined)
131
+ return;
132
+ return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
133
+ };
134
+ this.setAria = (expanded = false) => {
135
+ const ionItem = this.getSlottedHeaderIonItem();
136
+ if (!ionItem) {
137
+ return;
138
+ }
139
+ /**
140
+ * Get the native <button> element inside of
141
+ * ion-item because that is what will be focused
142
+ */
143
+ const root = getElementRoot(ionItem);
144
+ const button = root.querySelector('button');
145
+ if (!button) {
146
+ return;
147
+ }
148
+ button.setAttribute('aria-expanded', `${expanded}`);
149
+ };
150
+ this.slotToggleIcon = () => {
151
+ const ionItem = this.getSlottedHeaderIonItem();
152
+ if (!ionItem) {
153
+ return;
154
+ }
155
+ const { toggleIconSlot, toggleIcon } = this;
156
+ /**
157
+ * Check if there already is a toggle icon.
158
+ * If so, do not add another one.
159
+ */
160
+ const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
161
+ if (existingToggleIcon) {
162
+ return;
163
+ }
164
+ const iconEl = document.createElement('ion-icon');
165
+ iconEl.slot = toggleIconSlot;
166
+ iconEl.lazy = false;
167
+ iconEl.classList.add('ion-accordion-toggle-icon');
168
+ iconEl.icon = toggleIcon;
169
+ iconEl.setAttribute('aria-hidden', 'true');
170
+ ionItem.appendChild(iconEl);
171
+ };
172
+ this.expandAccordion = () => {
173
+ const { contentEl, contentElWrapper } = this;
174
+ /**
175
+ * If the content elements aren't available yet, just set the state.
176
+ * This happens on initial render before the DOM is ready.
177
+ */
178
+ if (contentEl === undefined || contentElWrapper === undefined) {
179
+ this.state = 4 /* AccordionState.Expanded */;
180
+ this.hasEverBeenExpanded = true;
181
+ return;
182
+ }
183
+ if (this.state === 4 /* AccordionState.Expanded */) {
184
+ return;
185
+ }
186
+ if (this.currentRaf !== undefined) {
187
+ cancelAnimationFrame(this.currentRaf);
188
+ }
189
+ /**
190
+ * Mark that this accordion has been expanded at least once.
191
+ * This allows subsequent expansions to animate.
192
+ */
193
+ this.hasEverBeenExpanded = true;
194
+ if (this.shouldAnimate()) {
195
+ raf(() => {
196
+ this.state = 8 /* AccordionState.Expanding */;
197
+ this.currentRaf = raf(async () => {
198
+ const contentHeight = contentElWrapper.offsetHeight;
199
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
200
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
201
+ await waitForTransition;
202
+ this.state = 4 /* AccordionState.Expanded */;
203
+ contentEl.style.removeProperty('max-height');
204
+ });
205
+ });
206
+ }
207
+ else {
208
+ this.state = 4 /* AccordionState.Expanded */;
209
+ }
210
+ };
211
+ this.collapseAccordion = () => {
212
+ const { contentEl } = this;
213
+ /**
214
+ * If the content element isn't available yet, just set the state.
215
+ * This happens on initial render before the DOM is ready.
216
+ */
217
+ if (contentEl === undefined) {
218
+ this.state = 1 /* AccordionState.Collapsed */;
219
+ return;
220
+ }
221
+ if (this.state === 1 /* AccordionState.Collapsed */) {
222
+ return;
223
+ }
224
+ if (this.currentRaf !== undefined) {
225
+ cancelAnimationFrame(this.currentRaf);
226
+ }
227
+ if (this.shouldAnimate()) {
228
+ this.currentRaf = raf(async () => {
229
+ const contentHeight = contentEl.offsetHeight;
230
+ contentEl.style.setProperty('max-height', `${contentHeight}px`);
231
+ raf(async () => {
232
+ const waitForTransition = transitionEndAsync(contentEl, 2000);
233
+ this.state = 2 /* AccordionState.Collapsing */;
234
+ await waitForTransition;
235
+ this.state = 1 /* AccordionState.Collapsed */;
236
+ contentEl.style.removeProperty('max-height');
237
+ });
238
+ });
239
+ }
240
+ else {
241
+ this.state = 1 /* AccordionState.Collapsed */;
242
+ }
243
+ };
244
+ /**
245
+ * Helper function to determine if
246
+ * something should animate.
247
+ * If prefers-reduced-motion is set
248
+ * then we should not animate, regardless
249
+ * of what is set in the config.
250
+ */
251
+ this.shouldAnimate = () => {
252
+ /**
253
+ * Don't animate until after the first user interaction.
254
+ * This prevents animations on initial load when accordions
255
+ * start in an expanded or collapsed state programmatically.
256
+ *
257
+ * Additionally, don't animate the very first expansion even if
258
+ * hasInteracted is true. This handles edge cases like React StrictMode
259
+ * where effects run twice and might incorrectly mark as interacted.
260
+ */
261
+ if (!this.hasInteracted || !this.hasEverBeenExpanded) {
262
+ return false;
263
+ }
264
+ if (typeof window === 'undefined') {
265
+ return false;
266
+ }
267
+ const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
268
+ if (prefersReducedMotion) {
269
+ return false;
270
+ }
271
+ const animated = config.get('animated', true);
272
+ if (!animated) {
273
+ return false;
274
+ }
275
+ if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
276
+ return false;
277
+ }
278
+ return true;
279
+ };
280
+ this.updateState = async () => {
281
+ const accordionGroup = this.accordionGroupEl;
282
+ const accordionValue = this.value;
283
+ if (!accordionGroup) {
284
+ return;
285
+ }
286
+ const value = accordionGroup.value;
287
+ const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
288
+ if (shouldExpand) {
289
+ this.expandAccordion();
290
+ this.isNext = this.isPrevious = false;
291
+ }
292
+ else {
293
+ this.collapseAccordion();
294
+ /**
295
+ * When using popout or inset,
296
+ * the collapsed accordion items
297
+ * may need additional border radius
298
+ * applied. Check to see if the
299
+ * next or previous accordion is selected.
300
+ */
301
+ const nextAccordion = this.getNextSibling();
302
+ const nextAccordionValue = nextAccordion?.value;
303
+ if (nextAccordionValue !== undefined) {
304
+ this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
305
+ }
306
+ const previousAccordion = this.getPreviousSibling();
307
+ const previousAccordionValue = previousAccordion?.value;
308
+ if (previousAccordionValue !== undefined) {
309
+ this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
310
+ }
311
+ }
312
+ };
313
+ this.getNextSibling = () => {
314
+ if (!this.el) {
315
+ return;
316
+ }
317
+ const nextSibling = this.el.nextElementSibling;
318
+ if (nextSibling?.tagName !== 'ION-ACCORDION') {
319
+ return;
320
+ }
321
+ return nextSibling;
322
+ };
323
+ this.getPreviousSibling = () => {
324
+ if (!this.el) {
325
+ return;
326
+ }
327
+ const previousSibling = this.el.previousElementSibling;
328
+ if (previousSibling?.tagName !== 'ION-ACCORDION') {
329
+ return;
330
+ }
331
+ return previousSibling;
332
+ };
333
+ }
80
334
  valueChanged() {
81
335
  this.updateState();
82
336
  }
83
- /**
84
- * If `true`, the accordion cannot be interacted with.
85
- */
86
- disabled = false;
87
- /**
88
- * If `true`, the accordion cannot be interacted with,
89
- * but does not alter the opacity.
90
- */
91
- readonly = false;
92
- /**
93
- * The toggle icon to use. This icon will be
94
- * rotated when the accordion is expanded
95
- * or collapsed.
96
- */
97
- toggleIcon = chevronDown;
98
- /**
99
- * The slot inside of `ion-item` to
100
- * place the toggle icon. Defaults to `"end"`.
101
- */
102
- toggleIconSlot = 'end';
103
337
  connectedCallback() {
104
338
  const accordionGroupEl = (this.accordionGroupEl = this.el?.closest('ion-accordion-group'));
105
339
  if (accordionGroupEl) {
@@ -130,246 +364,6 @@ const Accordion = class {
130
364
  this.setAria(expanded);
131
365
  });
132
366
  }
133
- setItemDefaults = () => {
134
- const ionItem = this.getSlottedHeaderIonItem();
135
- if (!ionItem) {
136
- return;
137
- }
138
- /**
139
- * For a11y purposes, we make
140
- * the ion-item a button so users
141
- * can tab to it and use keyboard
142
- * navigation to get around.
143
- */
144
- ionItem.button = true;
145
- ionItem.detail = false;
146
- /**
147
- * By default, the lines in an
148
- * item should be full here, but
149
- * only do that if a user has
150
- * not explicitly overridden them
151
- */
152
- if (ionItem.lines === undefined) {
153
- ionItem.lines = 'full';
154
- }
155
- };
156
- getSlottedHeaderIonItem = () => {
157
- const { headerEl } = this;
158
- if (!headerEl) {
159
- return;
160
- }
161
- /**
162
- * Get the first ion-item
163
- * slotted in the header slot
164
- */
165
- const slot = headerEl.querySelector('slot');
166
- if (!slot) {
167
- return;
168
- }
169
- // This is not defined in unit tests
170
- if (slot.assignedElements === undefined)
171
- return;
172
- return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');
173
- };
174
- setAria = (expanded = false) => {
175
- const ionItem = this.getSlottedHeaderIonItem();
176
- if (!ionItem) {
177
- return;
178
- }
179
- /**
180
- * Get the native <button> element inside of
181
- * ion-item because that is what will be focused
182
- */
183
- const root = getElementRoot(ionItem);
184
- const button = root.querySelector('button');
185
- if (!button) {
186
- return;
187
- }
188
- button.setAttribute('aria-expanded', `${expanded}`);
189
- };
190
- slotToggleIcon = () => {
191
- const ionItem = this.getSlottedHeaderIonItem();
192
- if (!ionItem) {
193
- return;
194
- }
195
- const { toggleIconSlot, toggleIcon } = this;
196
- /**
197
- * Check if there already is a toggle icon.
198
- * If so, do not add another one.
199
- */
200
- const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');
201
- if (existingToggleIcon) {
202
- return;
203
- }
204
- const iconEl = document.createElement('ion-icon');
205
- iconEl.slot = toggleIconSlot;
206
- iconEl.lazy = false;
207
- iconEl.classList.add('ion-accordion-toggle-icon');
208
- iconEl.icon = toggleIcon;
209
- iconEl.setAttribute('aria-hidden', 'true');
210
- ionItem.appendChild(iconEl);
211
- };
212
- expandAccordion = () => {
213
- const { contentEl, contentElWrapper } = this;
214
- /**
215
- * If the content elements aren't available yet, just set the state.
216
- * This happens on initial render before the DOM is ready.
217
- */
218
- if (contentEl === undefined || contentElWrapper === undefined) {
219
- this.state = 4 /* AccordionState.Expanded */;
220
- this.hasEverBeenExpanded = true;
221
- return;
222
- }
223
- if (this.state === 4 /* AccordionState.Expanded */) {
224
- return;
225
- }
226
- if (this.currentRaf !== undefined) {
227
- cancelAnimationFrame(this.currentRaf);
228
- }
229
- /**
230
- * Mark that this accordion has been expanded at least once.
231
- * This allows subsequent expansions to animate.
232
- */
233
- this.hasEverBeenExpanded = true;
234
- if (this.shouldAnimate()) {
235
- raf(() => {
236
- this.state = 8 /* AccordionState.Expanding */;
237
- this.currentRaf = raf(async () => {
238
- const contentHeight = contentElWrapper.offsetHeight;
239
- const waitForTransition = transitionEndAsync(contentEl, 2000);
240
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
241
- await waitForTransition;
242
- this.state = 4 /* AccordionState.Expanded */;
243
- contentEl.style.removeProperty('max-height');
244
- });
245
- });
246
- }
247
- else {
248
- this.state = 4 /* AccordionState.Expanded */;
249
- }
250
- };
251
- collapseAccordion = () => {
252
- const { contentEl } = this;
253
- /**
254
- * If the content element isn't available yet, just set the state.
255
- * This happens on initial render before the DOM is ready.
256
- */
257
- if (contentEl === undefined) {
258
- this.state = 1 /* AccordionState.Collapsed */;
259
- return;
260
- }
261
- if (this.state === 1 /* AccordionState.Collapsed */) {
262
- return;
263
- }
264
- if (this.currentRaf !== undefined) {
265
- cancelAnimationFrame(this.currentRaf);
266
- }
267
- if (this.shouldAnimate()) {
268
- this.currentRaf = raf(async () => {
269
- const contentHeight = contentEl.offsetHeight;
270
- contentEl.style.setProperty('max-height', `${contentHeight}px`);
271
- raf(async () => {
272
- const waitForTransition = transitionEndAsync(contentEl, 2000);
273
- this.state = 2 /* AccordionState.Collapsing */;
274
- await waitForTransition;
275
- this.state = 1 /* AccordionState.Collapsed */;
276
- contentEl.style.removeProperty('max-height');
277
- });
278
- });
279
- }
280
- else {
281
- this.state = 1 /* AccordionState.Collapsed */;
282
- }
283
- };
284
- /**
285
- * Helper function to determine if
286
- * something should animate.
287
- * If prefers-reduced-motion is set
288
- * then we should not animate, regardless
289
- * of what is set in the config.
290
- */
291
- shouldAnimate = () => {
292
- /**
293
- * Don't animate until after the first user interaction.
294
- * This prevents animations on initial load when accordions
295
- * start in an expanded or collapsed state programmatically.
296
- *
297
- * Additionally, don't animate the very first expansion even if
298
- * hasInteracted is true. This handles edge cases like React StrictMode
299
- * where effects run twice and might incorrectly mark as interacted.
300
- */
301
- if (!this.hasInteracted || !this.hasEverBeenExpanded) {
302
- return false;
303
- }
304
- if (typeof window === 'undefined') {
305
- return false;
306
- }
307
- const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
308
- if (prefersReducedMotion) {
309
- return false;
310
- }
311
- const animated = config.get('animated', true);
312
- if (!animated) {
313
- return false;
314
- }
315
- if (this.accordionGroupEl && !this.accordionGroupEl.animated) {
316
- return false;
317
- }
318
- return true;
319
- };
320
- updateState = async () => {
321
- const accordionGroup = this.accordionGroupEl;
322
- const accordionValue = this.value;
323
- if (!accordionGroup) {
324
- return;
325
- }
326
- const value = accordionGroup.value;
327
- const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;
328
- if (shouldExpand) {
329
- this.expandAccordion();
330
- this.isNext = this.isPrevious = false;
331
- }
332
- else {
333
- this.collapseAccordion();
334
- /**
335
- * When using popout or inset,
336
- * the collapsed accordion items
337
- * may need additional border radius
338
- * applied. Check to see if the
339
- * next or previous accordion is selected.
340
- */
341
- const nextAccordion = this.getNextSibling();
342
- const nextAccordionValue = nextAccordion?.value;
343
- if (nextAccordionValue !== undefined) {
344
- this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;
345
- }
346
- const previousAccordion = this.getPreviousSibling();
347
- const previousAccordionValue = previousAccordion?.value;
348
- if (previousAccordionValue !== undefined) {
349
- this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;
350
- }
351
- }
352
- };
353
- getNextSibling = () => {
354
- if (!this.el) {
355
- return;
356
- }
357
- const nextSibling = this.el.nextElementSibling;
358
- if (nextSibling?.tagName !== 'ION-ACCORDION') {
359
- return;
360
- }
361
- return nextSibling;
362
- };
363
- getPreviousSibling = () => {
364
- if (!this.el) {
365
- return;
366
- }
367
- const previousSibling = this.el.previousElementSibling;
368
- if (previousSibling?.tagName !== 'ION-ACCORDION') {
369
- return;
370
- }
371
- return previousSibling;
372
- };
373
367
  toggleExpanded() {
374
368
  const { accordionGroupEl, disabled, readonly, value, state } = this;
375
369
  if (disabled || readonly)
@@ -413,6 +407,7 @@ const Accordion = class {
413
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" })))));
414
408
  }
415
409
  static get delegatesFocus() { return true; }
410
+ get el() { return getElement(this); }
416
411
  static get watchers() { return {
417
412
  "value": [{
418
413
  "valueChanged": 0
@@ -434,53 +429,28 @@ const AccordionGroup = class {
434
429
  registerInstance(this, hostRef);
435
430
  this.ionChange = createEvent(this, "ionChange", 7);
436
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';
437
453
  }
438
- get el() { return getElement(this); }
439
- /**
440
- * If `true`, all accordions inside of the
441
- * accordion group will animate when expanding
442
- * or collapsing.
443
- */
444
- animated = true;
445
- /**
446
- * If `true`, the accordion group can have multiple
447
- * accordion components expanded at the same time.
448
- */
449
- multiple;
450
- /**
451
- * The value of the accordion group. This controls which
452
- * accordions are expanded.
453
- * This should be an array of strings only when `multiple="true"`
454
- */
455
- value;
456
- /**
457
- * If `true`, the accordion group cannot be interacted with.
458
- */
459
- disabled = false;
460
- /**
461
- * If `true`, the accordion group cannot be interacted with,
462
- * but does not alter the opacity.
463
- */
464
- readonly = false;
465
- /**
466
- * Describes the expansion behavior for each accordion.
467
- * Possible values are `"compact"` and `"inset"`.
468
- * Defaults to `"compact"`.
469
- */
470
- expand = 'compact';
471
- /**
472
- * Emitted when the value property has changed as a result of a user action such as a click.
473
- *
474
- * This event will not emit when programmatically setting the `value` property.
475
- */
476
- ionChange;
477
- /**
478
- * Emitted when the value property has changed.
479
- * This is used to ensure that ion-accordion can respond
480
- * to any value property changes.
481
- * @internal
482
- */
483
- ionValueChange;
484
454
  valueChanged() {
485
455
  const { value, multiple } = this;
486
456
  if (!multiple && Array.isArray(value)) {
@@ -669,6 +639,7 @@ const AccordionGroup = class {
669
639
  [`accordion-group-expand-${expand}`]: true,
670
640
  }, role: "presentation" }, h("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
671
641
  }
642
+ get el() { return getElement(this); }
672
643
  static get watchers() { return {
673
644
  "value": [{
674
645
  "valueChanged": 0