voyager-ionic-core 8.8.12 → 9.0.1

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 (812) 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-1sJ0ZDPe.js +4 -0
  99. package/components/p-5ldEpNdG.js +4 -0
  100. package/components/p-6ZLn6K5e.js +4 -0
  101. package/components/p-B4lxwJ8N.js +4 -0
  102. package/components/{p-rCa2eL0j.js → p-BF48Oc0v.js} +1 -1
  103. package/components/p-BJr2B5hZ.js +4 -0
  104. package/components/p-BMPN55of.js +4 -0
  105. package/components/p-BNBnVi_1.js +4 -0
  106. package/components/{p-C4t5ymfq.js → p-BQyuFxYc.js} +1 -1
  107. package/components/p-BSQPZ79H.js +4 -0
  108. package/components/p-BT9-hMMz.js +4 -0
  109. package/components/p-BWoa-cki.js +4 -0
  110. package/components/p-BYJRZKHa.js +4 -0
  111. package/components/p-B_gJaBk0.js +4 -0
  112. package/components/p-BgkOsq-d.js +4 -0
  113. package/components/p-BhamHSw3.js +4 -0
  114. package/components/p-Bi-it1EH.js +4 -0
  115. package/components/p-C-NbvXu4.js +4 -0
  116. package/components/p-C0493tbX.js +4 -0
  117. package/components/p-C09TXohi.js +4 -0
  118. package/components/p-C4VpVfrJ.js +4 -0
  119. package/components/p-CEW4RXZO.js +4 -0
  120. package/components/p-CG_zZq_I.js +4 -0
  121. package/components/{p-B9jFTlwE.js → p-CJgnoKcN.js} +1 -1
  122. package/components/p-CMRYD_yR.js +4 -0
  123. package/components/{p-lE_JGpHD.js → p-CNLioZ3B.js} +1 -1
  124. package/components/{p--JUspHvy.js → p-COO0eJOA.js} +1 -1
  125. package/components/p-CWAks_S_.js +4 -0
  126. package/{dist/ionic/p-KjNvRoEp.js → components/p-Cd1WaN-0.js} +1 -1
  127. package/components/p-CqbGBmqb.js +4 -0
  128. package/components/p-CrAKlX71.js +4 -0
  129. package/components/p-Cw6WocLJ.js +4 -0
  130. package/components/p-D0YpjgON.js +4 -0
  131. package/components/{p-BirPFsRD.js → p-D5w_FlVa.js} +1 -1
  132. package/components/p-D7-vHX0A.js +4 -0
  133. package/components/p-D7wDJdFn.js +4 -0
  134. package/components/p-DFLJvuRK.js +4 -0
  135. package/components/p-DGPjJNOU.js +4 -0
  136. package/components/p-DJR0R0e1.js +4 -0
  137. package/components/p-DL13ieTa.js +4 -0
  138. package/components/{p-DqLB8yFQ.js → p-DM1gJSMP.js} +1 -1
  139. package/components/p-DMBiAyOR.js +4 -0
  140. package/components/p-DWCzVL3Y.js +4 -0
  141. package/components/p-DZRZic9C.js +4 -0
  142. package/components/{p-DNQI6d-L.js → p-DhNuxvJH.js} +1 -1
  143. package/components/p-DiuOa1vw.js +4 -0
  144. package/components/p-Dj40C8gm.js +4 -0
  145. package/components/p-Djmz-ssp.js +4 -0
  146. package/components/p-DnBNYc7u.js +4 -0
  147. package/components/p-DngGb-NV.js +4 -0
  148. package/components/p-Dojwmvde.js +4 -0
  149. package/components/p-DwSXbQSz.js +4 -0
  150. package/components/p-DxhHlJln.js +4 -0
  151. package/components/{p-DqZAXv2t.js → p-GGbIHyEF.js} +1 -1
  152. package/components/{p-j5IxBIan.js → p-Hp8t4RMX.js} +1 -1
  153. package/components/p-M34T2gyX.js +4 -0
  154. package/components/p-TWw4e4sO.js +4 -0
  155. package/components/{p-Cfx4M1Bn.js → p-YjMkHuvH.js} +1 -1
  156. package/components/p-byZM6qHV.js +4 -0
  157. package/components/p-cEN43Ahr.js +4 -0
  158. package/components/p-qAXsfUff.js +4 -0
  159. package/dist/cjs/{animation-BJq0kcy2.js → animation-Kd1N7WTN.js} +4 -4
  160. package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-b1G4t26O.js} +1 -1
  161. package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CQCFubJJ.js} +3 -3
  162. package/dist/cjs/config-CjUbvdPW.js +36 -0
  163. package/dist/cjs/dir-zwDPRE5K.js +30 -0
  164. package/dist/cjs/{data-DLTUw-KF.js → format-bHU8N1g5.js} +48 -562
  165. package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-d-fWfeI6.js} +5 -7
  166. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-CeJslptU.js} +1 -2
  167. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
  168. package/dist/cjs/{hardware-back-button-iUuF_76h.js → hardware-back-button-Bu4Dzw8l.js} +4 -4
  169. package/dist/cjs/{helpers-Cv23MFHM.js → helpers-7wzdhdeg.js} +15 -11
  170. package/dist/cjs/index-BbqUBe2T.js +429 -0
  171. package/dist/cjs/{index-D81eLYUM.js → index-C74Q3t6a.js} +3 -2
  172. package/dist/cjs/{index-BERfRao3.js → index-CQfEIyLK.js} +5 -5
  173. package/dist/cjs/{index-aC4x3Fk3.js → index-DFNrCX7M.js} +6 -7
  174. package/dist/cjs/{index-CAvQ7Tka.js → index-DRPqwSvU.js} +13 -30
  175. package/dist/cjs/{index-Ct7gcRif.js → index-DXoo08JC.js} +321 -26
  176. package/dist/cjs/{index-CIrkNXqJ.js → index-DtvKGwdh.js} +34 -2
  177. package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
  178. package/dist/cjs/index.cjs.js +19 -18
  179. package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-VJIiKBKv.js} +10 -11
  180. package/dist/cjs/input.utils-EHVE2RK_.js +35 -0
  181. package/dist/cjs/ion-accordion_2.cjs.entry.js +12 -12
  182. package/dist/cjs/ion-action-sheet.cjs.entry.js +92 -44
  183. package/dist/cjs/ion-alert.cjs.entry.js +144 -65
  184. package/dist/cjs/ion-app_8.cjs.entry.js +112 -40
  185. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  186. package/dist/cjs/ion-back-button.cjs.entry.js +6 -5
  187. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  188. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -7
  189. package/dist/cjs/ion-button_2.cjs.entry.js +18 -10
  190. package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +25 -12
  192. package/dist/cjs/ion-chip.cjs.entry.js +3 -3
  193. package/dist/cjs/ion-col_3.cjs.entry.js +10 -6
  194. package/dist/cjs/ion-datetime-button.cjs.entry.js +29 -30
  195. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +773 -796
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +93 -14
  197. package/dist/cjs/ion-img.cjs.entry.js +7 -4
  198. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -6
  199. package/dist/cjs/ion-input-otp.cjs.entry.js +20 -29
  200. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -10
  201. package/dist/cjs/ion-input.cjs.entry.js +58 -70
  202. package/dist/cjs/ion-item-option_3.cjs.entry.js +21 -24
  203. package/dist/cjs/ion-item_8.cjs.entry.js +117 -33
  204. package/dist/cjs/ion-loading.cjs.entry.js +29 -15
  205. package/dist/cjs/ion-menu_3.cjs.entry.js +23 -24
  206. package/dist/cjs/ion-modal.cjs.entry.js +307 -159
  207. package/dist/cjs/ion-nav_2.cjs.entry.js +30 -138
  208. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -13
  209. package/dist/cjs/ion-picker-column.cjs.entry.js +218 -62
  210. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  211. package/dist/cjs/ion-popover.cjs.entry.js +50 -30
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -5
  213. package/dist/cjs/ion-radio_2.cjs.entry.js +24 -14
  214. package/dist/cjs/ion-range.cjs.entry.js +30 -25
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +61 -26
  216. package/dist/cjs/ion-reorder_2.cjs.entry.js +10 -9
  217. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  218. package/dist/cjs/ion-route_4.cjs.entry.js +36 -30
  219. package/dist/cjs/ion-searchbar.cjs.entry.js +27 -22
  220. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -6
  222. package/dist/cjs/ion-segment_2.cjs.entry.js +30 -26
  223. package/dist/cjs/ion-select-modal.cjs.entry.js +93 -38
  224. package/dist/cjs/ion-select_3.cjs.entry.js +495 -125
  225. package/dist/cjs/ion-spinner.cjs.entry.js +5 -6
  226. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  227. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -12
  228. package/dist/cjs/ion-tab_2.cjs.entry.js +26 -19
  229. package/dist/cjs/ion-text.cjs.entry.js +5 -5
  230. package/dist/cjs/ion-textarea.cjs.entry.js +56 -65
  231. package/dist/cjs/ion-toast.cjs.entry.js +26 -21
  232. package/dist/cjs/ion-toggle.cjs.entry.js +36 -15
  233. package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-CYJNT-2P.js} +13 -8
  234. package/dist/cjs/ionic.cjs.js +5 -5
  235. package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DYGiD6gM.js} +14 -17
  236. package/dist/cjs/item-multiple-inputs-Dv6qrMhm.js +38 -0
  237. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
  238. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
  240. package/dist/cjs/loader.cjs.js +4 -4
  241. package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-CrSkaoz6.js} +8 -8
  242. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  243. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-BR21NUIG.js} +120 -57
  244. package/dist/cjs/select-option-render-CrbLc-1j.js +123 -0
  245. package/dist/cjs/slot-mutation-controller-D6IjSEIh.js +397 -0
  246. package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CNP5eD1R.js} +4 -3
  247. package/dist/cjs/{swipe-back-CCMaNiP2.js → swipe-back-CSIJQfu5.js} +5 -5
  248. package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
  249. package/dist/collection/collection-manifest.json +7 -11
  250. package/dist/collection/components/accordion/accordion.js +5 -6
  251. package/dist/collection/components/accordion-group/accordion-group.js +2 -2
  252. package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
  253. package/dist/collection/components/action-sheet/action-sheet.js +77 -31
  254. package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
  255. package/dist/collection/components/alert/alert.ios.css +279 -10
  256. package/dist/collection/components/alert/alert.js +127 -50
  257. package/dist/collection/components/alert/alert.md.css +268 -20
  258. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  259. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  260. package/dist/collection/components/button/button.js +11 -4
  261. package/dist/collection/components/card/card.js +1 -1
  262. package/dist/collection/components/checkbox/checkbox.ios.css +18 -0
  263. package/dist/collection/components/checkbox/checkbox.js +19 -8
  264. package/dist/collection/components/checkbox/checkbox.md.css +18 -0
  265. package/dist/collection/components/col/col.js +7 -3
  266. package/dist/collection/components/content/content.js +56 -6
  267. package/dist/collection/components/datetime/datetime.ios.css +42 -2
  268. package/dist/collection/components/datetime/datetime.js +193 -79
  269. package/dist/collection/components/datetime/datetime.md.css +42 -1
  270. package/dist/collection/components/datetime/utils/data.js +13 -14
  271. package/dist/collection/components/datetime/utils/format.js +21 -11
  272. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  273. package/dist/collection/components/datetime/utils/parse.js +10 -10
  274. package/dist/collection/components/datetime/utils/state.js +8 -2
  275. package/dist/collection/components/datetime/utils/validate.js +4 -5
  276. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
  277. package/dist/collection/components/datetime-button/datetime-button.js +21 -25
  278. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
  279. package/dist/collection/components/fab-button/fab-button.js +114 -10
  280. package/dist/collection/components/footer/footer.js +1 -1
  281. package/dist/collection/components/header/header.js +2 -2
  282. package/dist/collection/components/img/img.js +6 -1
  283. package/dist/collection/components/input/input.ios.css +57 -26
  284. package/dist/collection/components/input/input.js +51 -64
  285. package/dist/collection/components/input/input.md.css +79 -43
  286. package/dist/collection/components/input-otp/input-otp.js +15 -24
  287. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -6
  288. package/dist/collection/components/item/item.ios.css +11 -0
  289. package/dist/collection/components/item/item.js +99 -15
  290. package/dist/collection/components/item/item.md.css +11 -0
  291. package/dist/collection/components/item-divider/item-divider.js +2 -2
  292. package/dist/collection/components/item-group/item-group.js +1 -1
  293. package/dist/collection/components/item-option/item-option.js +2 -2
  294. package/dist/collection/components/item-options/item-options.js +1 -1
  295. package/dist/collection/components/item-sliding/item-sliding.js +12 -16
  296. package/dist/collection/components/label/label.js +2 -2
  297. package/dist/collection/components/list/list.js +2 -2
  298. package/dist/collection/components/list-header/list-header.js +2 -2
  299. package/dist/collection/components/loading/loading.js +17 -5
  300. package/dist/collection/components/menu/menu.js +6 -8
  301. package/dist/collection/components/menu-button/menu-button.js +2 -2
  302. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  303. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  304. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  305. package/dist/collection/components/modal/gestures/sheet.js +47 -32
  306. package/dist/collection/components/modal/gestures/swipe-to-close.js +23 -33
  307. package/dist/collection/components/modal/gestures/utils.js +17 -0
  308. package/dist/collection/components/modal/modal.ios.css +8 -0
  309. package/dist/collection/components/modal/modal.js +158 -65
  310. package/dist/collection/components/modal/modal.md.css +8 -0
  311. package/dist/collection/components/modal/safe-area-utils.js +39 -5
  312. package/dist/collection/components/nav/nav.js +24 -235
  313. package/dist/collection/components/nav-link/nav-link.js +1 -1
  314. package/dist/collection/components/note/note.js +2 -2
  315. package/dist/collection/components/picker/picker.js +1 -2
  316. package/dist/collection/components/picker-column/picker-column.css +3 -0
  317. package/dist/collection/components/picker-column/picker-column.js +212 -58
  318. package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
  319. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  320. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  321. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  322. package/dist/collection/components/popover/popover.ios.css +15 -0
  323. package/dist/collection/components/popover/popover.js +32 -9
  324. package/dist/collection/components/popover/popover.md.css +15 -0
  325. package/dist/collection/components/popover/utils.js +4 -6
  326. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  327. package/dist/collection/components/radio/radio.ios.css +11 -15
  328. package/dist/collection/components/radio/radio.js +17 -9
  329. package/dist/collection/components/radio/radio.md.css +11 -11
  330. package/dist/collection/components/radio-group/radio-group.js +2 -2
  331. package/dist/collection/components/range/range.js +24 -19
  332. package/dist/collection/components/refresher/refresher.js +49 -16
  333. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  334. package/dist/collection/components/reorder/reorder.js +1 -1
  335. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  336. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  337. package/dist/collection/components/route/route.js +1 -1
  338. package/dist/collection/components/router/router.js +2 -6
  339. package/dist/collection/components/router/utils/dom.js +25 -7
  340. package/dist/collection/components/router/utils/matching.js +6 -9
  341. package/dist/collection/components/router/utils/parser.js +1 -1
  342. package/dist/collection/components/router/utils/path.js +0 -1
  343. package/dist/collection/components/router-link/router-link.js +2 -2
  344. package/dist/collection/components/router-outlet/router-outlet.js +49 -10
  345. package/dist/collection/components/row/row.js +1 -1
  346. package/dist/collection/components/searchbar/searchbar.js +25 -20
  347. package/dist/collection/components/segment/segment.js +9 -11
  348. package/dist/collection/components/segment-button/segment-button.js +15 -9
  349. package/dist/collection/components/segment-content/segment-content.js +1 -1
  350. package/dist/collection/components/segment-view/segment-view.js +3 -4
  351. package/dist/collection/components/select/select.ios.css +96 -69
  352. package/dist/collection/components/select/select.js +405 -91
  353. package/dist/collection/components/select/select.md.css +118 -85
  354. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  355. package/dist/collection/components/select-modal/select-modal.js +80 -27
  356. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  357. package/dist/collection/components/select-option/select-option.js +67 -3
  358. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  359. package/dist/collection/components/select-popover/select-popover.js +78 -26
  360. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  361. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  362. package/dist/collection/components/spinner/spinner.js +2 -3
  363. package/dist/collection/components/split-pane/split-pane.js +2 -2
  364. package/dist/collection/components/tab/tab.js +20 -13
  365. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  366. package/dist/collection/components/tab-button/tab-button.js +6 -4
  367. package/dist/collection/components/tabs/tabs.js +2 -3
  368. package/dist/collection/components/text/text.js +2 -2
  369. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  370. package/dist/collection/components/textarea/textarea.js +47 -57
  371. package/dist/collection/components/textarea/textarea.md.css +103 -77
  372. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  373. package/dist/collection/components/title/title.js +2 -2
  374. package/dist/collection/components/toast/toast.js +12 -9
  375. package/dist/collection/components/toggle/toggle.ios.css +12 -4
  376. package/dist/collection/components/toggle/toggle.js +27 -7
  377. package/dist/collection/components/toggle/toggle.md.css +42 -5
  378. package/dist/collection/components/toolbar/toolbar.js +7 -4
  379. package/dist/collection/global/config.js +3 -3
  380. package/dist/collection/global/ionic-global.js +8 -2
  381. package/dist/collection/index.js +1 -1
  382. package/dist/collection/utils/animation/animation.js +3 -3
  383. package/dist/collection/utils/config.js +5 -4
  384. package/dist/collection/utils/content/index.js +30 -0
  385. package/dist/collection/utils/focus-controller/index.js +1 -1
  386. package/dist/collection/utils/focus-trap.js +3 -3
  387. package/dist/collection/utils/forms/index.js +2 -0
  388. package/dist/collection/utils/forms/item-multiple-inputs.js +33 -0
  389. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  390. package/dist/collection/utils/framework-delegate.js +4 -6
  391. package/dist/collection/utils/gesture/gesture-controller.js +1 -2
  392. package/dist/collection/utils/gesture/index.js +10 -2
  393. package/dist/collection/utils/gesture/listener.js +4 -27
  394. package/dist/collection/utils/hardware-back-button.js +3 -3
  395. package/dist/collection/utils/helpers.js +14 -10
  396. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  397. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  398. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  399. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  400. package/dist/collection/utils/logging/index.js +23 -4
  401. package/dist/collection/utils/menu-controller/index.js +1 -2
  402. package/dist/collection/utils/native/haptic.js +2 -3
  403. package/dist/collection/utils/native/keyboard.js +2 -2
  404. package/dist/collection/utils/native/status-bar.js +1 -1
  405. package/dist/collection/utils/overlay-control-label.js +45 -0
  406. package/dist/collection/utils/overlays.js +109 -47
  407. package/dist/collection/utils/platform.js +4 -5
  408. package/dist/collection/utils/rtl/dir.js +17 -7
  409. package/dist/collection/utils/sanitization/index.js +275 -20
  410. package/dist/collection/utils/select-option-render.js +118 -0
  411. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  412. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  413. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +25 -0
  414. package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
  415. package/dist/collection/utils/test/playwright/drag-element.js +14 -0
  416. package/dist/collection/utils/test/playwright/generator.js +3 -4
  417. package/dist/collection/utils/test/playwright/index.js +2 -0
  418. package/dist/collection/utils/test/playwright/page/event-spy.js +2 -4
  419. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  420. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  421. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  422. package/dist/collection/utils/test/press-keys.js +6 -16
  423. package/dist/collection/utils/theme.js +6 -1
  424. package/dist/collection/utils/transition/ios.transition.js +9 -13
  425. package/dist/collection/utils/transition/md.transition.js +3 -4
  426. package/dist/docs.json +972 -1402
  427. package/dist/esm/{animation-DLJpuoEz.js → animation-BFNVlYum.js} +4 -4
  428. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-BgX0BGL1.js} +1 -1
  429. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BfOvDr3b.js} +3 -3
  430. package/dist/esm/config-DWCzVL3Y.js +32 -0
  431. package/dist/esm/dir-Dojwmvde.js +28 -0
  432. package/dist/esm/{data-DZI70dKr.js → format-DDFE9jM5.js} +41 -554
  433. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BwNhx9NR.js} +5 -7
  434. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-B_gJaBk0.js} +1 -2
  435. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  436. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DmkiRgOT.js} +4 -4
  437. package/dist/esm/{helpers-HEqiOzXb.js → helpers-BSmc0nst.js} +15 -11
  438. package/dist/esm/{index-CfgBF1SE.js → index-BmLuEdV7.js} +13 -30
  439. package/dist/esm/{index-Q6UPU0Ay.js → index-BuPaALjU.js} +6 -7
  440. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  441. package/dist/esm/{index-MEDq2S8l.js → index-C1b9CLFg.js} +33 -3
  442. package/dist/esm/{index-tcQvqkiX.js → index-C23AVPx9.js} +303 -26
  443. package/dist/esm/{index-BRHzoo00.js → index-CJln0gS3.js} +3 -2
  444. package/dist/esm/index-CqoUoxgG.js +423 -0
  445. package/dist/esm/{index-B_dQk_WE.js → index-DnA_7Bnx.js} +5 -5
  446. package/dist/esm/index.js +17 -15
  447. package/dist/esm/{input-shims-D10mwcw1.js → input-shims-Dqk-Ou25.js} +10 -11
  448. package/dist/esm/input.utils-rqoH22pW.js +33 -0
  449. package/dist/esm/ion-accordion_2.entry.js +12 -12
  450. package/dist/esm/ion-action-sheet.entry.js +92 -44
  451. package/dist/esm/ion-alert.entry.js +143 -64
  452. package/dist/esm/ion-app_8.entry.js +112 -40
  453. package/dist/esm/ion-avatar_3.entry.js +4 -4
  454. package/dist/esm/ion-back-button.entry.js +6 -5
  455. package/dist/esm/ion-backdrop.entry.js +2 -2
  456. package/dist/esm/ion-breadcrumb_2.entry.js +8 -7
  457. package/dist/esm/ion-button_2.entry.js +18 -10
  458. package/dist/esm/ion-card_5.entry.js +6 -5
  459. package/dist/esm/ion-checkbox.entry.js +25 -12
  460. package/dist/esm/ion-chip.entry.js +3 -3
  461. package/dist/esm/ion-col_3.entry.js +10 -6
  462. package/dist/esm/ion-datetime-button.entry.js +28 -29
  463. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +712 -733
  464. package/dist/esm/ion-fab_3.entry.js +93 -14
  465. package/dist/esm/ion-img.entry.js +7 -4
  466. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -5
  467. package/dist/esm/ion-input-otp.entry.js +20 -29
  468. package/dist/esm/ion-input-password-toggle.entry.js +9 -10
  469. package/dist/esm/ion-input.entry.js +56 -68
  470. package/dist/esm/ion-item-option_3.entry.js +21 -24
  471. package/dist/esm/ion-item_8.entry.js +117 -33
  472. package/dist/esm/ion-loading.entry.js +28 -14
  473. package/dist/esm/ion-menu_3.entry.js +23 -24
  474. package/dist/esm/ion-modal.entry.js +295 -147
  475. package/dist/esm/ion-nav_2.entry.js +30 -138
  476. package/dist/esm/ion-picker-column-option.entry.js +8 -13
  477. package/dist/esm/ion-picker-column.entry.js +218 -62
  478. package/dist/esm/ion-picker.entry.js +4 -4
  479. package/dist/esm/ion-popover.entry.js +50 -30
  480. package/dist/esm/ion-progress-bar.entry.js +6 -5
  481. package/dist/esm/ion-radio_2.entry.js +24 -14
  482. package/dist/esm/ion-range.entry.js +30 -25
  483. package/dist/esm/ion-refresher_2.entry.js +59 -24
  484. package/dist/esm/ion-reorder_2.entry.js +10 -9
  485. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  486. package/dist/esm/ion-route_4.entry.js +36 -30
  487. package/dist/esm/ion-searchbar.entry.js +27 -22
  488. package/dist/esm/ion-segment-content.entry.js +2 -2
  489. package/dist/esm/ion-segment-view.entry.js +5 -6
  490. package/dist/esm/ion-segment_2.entry.js +30 -26
  491. package/dist/esm/ion-select-modal.entry.js +93 -38
  492. package/dist/esm/ion-select_3.entry.js +495 -125
  493. package/dist/esm/ion-spinner.entry.js +5 -6
  494. package/dist/esm/ion-split-pane.entry.js +4 -4
  495. package/dist/esm/ion-tab-bar_2.entry.js +15 -12
  496. package/dist/esm/ion-tab_2.entry.js +26 -19
  497. package/dist/esm/ion-text.entry.js +5 -5
  498. package/dist/esm/ion-textarea.entry.js +55 -64
  499. package/dist/esm/ion-toast.entry.js +25 -20
  500. package/dist/esm/ion-toggle.entry.js +36 -15
  501. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-ZXjCXKH0.js} +13 -8
  502. package/dist/esm/ionic.js +6 -6
  503. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CWAgfQ1r.js} +14 -17
  504. package/dist/esm/item-multiple-inputs-DZnIiOO_.js +36 -0
  505. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  506. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  507. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  508. package/dist/esm/loader.js +5 -5
  509. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-ZuqDDdDW.js} +8 -8
  510. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  511. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DKE0DgvE.js} +119 -57
  512. package/dist/esm/select-option-render-1W6W9pbC.js +121 -0
  513. package/dist/esm/slot-mutation-controller-B5NpUZ-N.js +393 -0
  514. package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-Cv9gb3ja.js} +4 -3
  515. package/dist/esm/{swipe-back-ZUWwA-KF.js → swipe-back-De5HlmeM.js} +5 -5
  516. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  517. package/dist/html.html-data.json +58 -82
  518. package/dist/ionic/index.esm.js +1 -1
  519. package/dist/ionic/ionic.esm.js +1 -1
  520. package/dist/ionic/p-06c6b540.entry.js +4 -0
  521. package/dist/ionic/p-099b7f9f.entry.js +4 -0
  522. package/dist/ionic/p-0dcb7bb6.entry.js +4 -0
  523. package/dist/ionic/p-1347880c.entry.js +4 -0
  524. package/dist/ionic/p-191a651e.entry.js +4 -0
  525. package/dist/ionic/p-1f24cb24.entry.js +4 -0
  526. package/dist/ionic/p-271c3640.entry.js +4 -0
  527. package/dist/ionic/p-2c52fe3e.entry.js +4 -0
  528. package/dist/ionic/p-2ea4bb36.entry.js +4 -0
  529. package/dist/ionic/p-338a02e0.entry.js +4 -0
  530. package/dist/ionic/p-38b9375b.entry.js +4 -0
  531. package/dist/ionic/p-3bba83ee.entry.js +4 -0
  532. package/dist/ionic/p-4712a8a9.entry.js +4 -0
  533. package/dist/ionic/p-4c3e50f8.entry.js +4 -0
  534. package/dist/ionic/p-4e2fef42.entry.js +4 -0
  535. package/dist/ionic/p-54cbb0a7.entry.js +4 -0
  536. package/dist/ionic/{p-2bb2cb18.entry.js → p-561af487.entry.js} +1 -1
  537. package/dist/ionic/p-5906ea6f.entry.js +4 -0
  538. package/dist/ionic/p-5cc09b40.entry.js +4 -0
  539. package/dist/ionic/p-5d9094ac.entry.js +4 -0
  540. package/dist/ionic/p-612ea3b1.entry.js +4 -0
  541. package/dist/ionic/p-66f150ec.entry.js +4 -0
  542. package/dist/ionic/p-68cc89a6.entry.js +4 -0
  543. package/dist/ionic/{p-dfa8d673.entry.js → p-6e386853.entry.js} +1 -1
  544. package/dist/ionic/p-77c96e08.entry.js +4 -0
  545. package/dist/ionic/p-7bfeccb3.entry.js +4 -0
  546. package/dist/ionic/p-7e394cc3.entry.js +4 -0
  547. package/dist/ionic/{p-0fa9c382.entry.js → p-7fbb3319.entry.js} +1 -1
  548. package/dist/ionic/p-837db1b9.entry.js +4 -0
  549. package/dist/ionic/p-85599fe3.entry.js +4 -0
  550. package/dist/ionic/p-8b80d9f9.entry.js +4 -0
  551. package/dist/ionic/p-90f50a65.entry.js +4 -0
  552. package/dist/ionic/p-9595e305.entry.js +4 -0
  553. package/dist/ionic/p-9c5f2691.entry.js +4 -0
  554. package/dist/ionic/p-BMPN55of.js +4 -0
  555. package/dist/ionic/p-BSQPZ79H.js +4 -0
  556. package/dist/ionic/p-BY6BzzPF.js +4 -0
  557. package/dist/ionic/p-B_gJaBk0.js +4 -0
  558. package/dist/ionic/p-BaeKWZ-a.js +4 -0
  559. package/dist/ionic/p-Bd72UYI2.js +4 -0
  560. package/dist/ionic/p-BgOvhHy_.js +4 -0
  561. package/dist/ionic/p-BhamHSw3.js +4 -0
  562. package/dist/ionic/p-BijjLYjT.js +4 -0
  563. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  564. package/dist/ionic/p-C23AVPx9.js +6 -0
  565. package/dist/ionic/p-C8XilMh0.js +4 -0
  566. package/dist/ionic/p-CER8qW8Y.js +4 -0
  567. package/dist/ionic/p-CFuOr1Tu.js +4 -0
  568. package/dist/ionic/p-CM5OBjTW.js +4 -0
  569. package/dist/ionic/p-CMZYmFb4.js +4 -0
  570. package/dist/ionic/p-CkxVYPtX.js +4 -0
  571. package/dist/ionic/p-CmXuiRT6.js +4 -0
  572. package/dist/ionic/p-D0YpjgON.js +4 -0
  573. package/dist/ionic/p-D4OrdtJf.js +4 -0
  574. package/dist/ionic/p-D5t_-oMk.js +4 -0
  575. package/dist/ionic/p-D6rHcCvc.js +4 -0
  576. package/dist/ionic/p-DLM95R4x.js +4 -0
  577. package/dist/ionic/p-DTxBioUO.js +4 -0
  578. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  579. package/dist/ionic/p-DYUjHcuH.js +4 -0
  580. package/dist/ionic/p-DZ6Hmc-8.js +4 -0
  581. package/dist/ionic/p-D_gb-kdd.js +4 -0
  582. package/dist/ionic/p-DajLgJ4d.js +4 -0
  583. package/dist/ionic/p-Do3zTvCA.js +4 -0
  584. package/dist/ionic/p-Dojwmvde.js +4 -0
  585. package/dist/ionic/p-T71k3C35.js +4 -0
  586. package/dist/ionic/p-a1cc2861.entry.js +4 -0
  587. package/dist/ionic/p-a20a2ebe.entry.js +4 -0
  588. package/dist/ionic/p-a8ff2489.entry.js +4 -0
  589. package/dist/ionic/p-b3532b8d.entry.js +4 -0
  590. package/dist/ionic/p-b80c86c4.entry.js +4 -0
  591. package/dist/ionic/p-b9b4e85d.entry.js +4 -0
  592. package/dist/ionic/p-byZM6qHV.js +4 -0
  593. package/dist/ionic/p-c57fc396.entry.js +4 -0
  594. package/dist/ionic/{p-c6e49f3f.entry.js → p-ca1b8865.entry.js} +1 -1
  595. package/dist/ionic/p-cc4320d3.entry.js +4 -0
  596. package/dist/ionic/p-d6755739.entry.js +4 -0
  597. package/dist/ionic/p-d8c138d9.entry.js +4 -0
  598. package/dist/ionic/p-db449915.entry.js +4 -0
  599. package/dist/ionic/p-dd01be0a.entry.js +4 -0
  600. package/dist/ionic/p-ec00fd0d.entry.js +4 -0
  601. package/dist/ionic/p-ee09ac9d.entry.js +4 -0
  602. package/dist/ionic/{p-37e720da.entry.js → p-efc0cf82.entry.js} +1 -1
  603. package/dist/ionic/p-f0fb23c1.entry.js +4 -0
  604. package/dist/ionic/p-f83b3e0c.entry.js +4 -0
  605. package/dist/ionic/p-fU3rOYad.js +4 -0
  606. package/dist/ionic/p-zWf7R2xV.js +4 -0
  607. package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
  608. package/dist/types/components/alert/alert.d.ts +7 -0
  609. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  610. package/dist/types/components/content/content.d.ts +12 -0
  611. package/dist/types/components/datetime/datetime.d.ts +13 -1
  612. package/dist/types/components/fab-button/fab-button.d.ts +15 -0
  613. package/dist/types/components/img/img.d.ts +2 -0
  614. package/dist/types/components/input/input.d.ts +12 -6
  615. package/dist/types/components/item/item.d.ts +19 -0
  616. package/dist/types/components/modal/gestures/sheet.d.ts +1 -0
  617. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  618. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  619. package/dist/types/components/modal/modal.d.ts +25 -7
  620. package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
  621. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  622. package/dist/types/components/nav/nav.d.ts +2 -22
  623. package/dist/types/components/picker-column/picker-column.d.ts +42 -0
  624. package/dist/types/components/radio/radio.d.ts +1 -0
  625. package/dist/types/components/range/range.d.ts +4 -1
  626. package/dist/types/components/refresher/refresher.d.ts +7 -0
  627. package/dist/types/components/route/route.d.ts +1 -1
  628. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  629. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  630. package/dist/types/components/select/select-interface.d.ts +31 -0
  631. package/dist/types/components/select/select.d.ts +30 -6
  632. package/dist/types/components/select-option/select-option.d.ts +42 -1
  633. package/dist/types/components/tab/tab.d.ts +1 -1
  634. package/dist/types/components/textarea/textarea.d.ts +12 -5
  635. package/dist/types/components/toggle/toggle.d.ts +1 -0
  636. package/dist/types/components.d.ts +94 -318
  637. package/dist/types/index.d.ts +1 -1
  638. package/dist/types/interface.d.ts +0 -1
  639. package/dist/types/stencil-public-runtime.d.ts +12 -0
  640. package/dist/types/utils/config.d.ts +1 -8
  641. package/dist/types/utils/content/index.d.ts +12 -0
  642. package/dist/types/utils/forms/index.d.ts +2 -0
  643. package/dist/types/utils/forms/item-multiple-inputs.d.ts +13 -0
  644. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  645. package/dist/types/utils/helpers.d.ts +8 -5
  646. package/dist/types/utils/logging/index.d.ts +2 -1
  647. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  648. package/dist/types/utils/overlays.d.ts +20 -9
  649. package/dist/types/utils/rtl/dir.d.ts +10 -4
  650. package/dist/types/utils/sanitization/index.d.ts +58 -2
  651. package/dist/types/utils/select-option-render.d.ts +53 -0
  652. package/dist/types/utils/test/playwright/apply-keyboard-focus.d.ts +16 -0
  653. package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
  654. package/dist/types/utils/test/playwright/index.d.ts +2 -0
  655. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  656. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  657. package/hydrate/index.js +3341 -2197
  658. package/hydrate/index.mjs +3341 -2197
  659. package/loader/index.d.ts +1 -1
  660. package/package.json +61 -17
  661. package/components/ion-picker-legacy-column.d.ts +0 -11
  662. package/components/ion-picker-legacy-column.js +0 -4
  663. package/components/ion-picker-legacy.d.ts +0 -11
  664. package/components/ion-picker-legacy.js +0 -4
  665. package/components/p-0NRupjzW.js +0 -4
  666. package/components/p-5bE_Wz4Y.js +0 -4
  667. package/components/p-B60hm8Qv.js +0 -4
  668. package/components/p-BAYYcg3o.js +0 -4
  669. package/components/p-BLmJ0zRm.js +0 -4
  670. package/components/p-BSEgsdFI.js +0 -4
  671. package/components/p-BTEOs1at.js +0 -4
  672. package/components/p-BTPfOxsU.js +0 -4
  673. package/components/p-BT_5jSqG.js +0 -4
  674. package/components/p-Baq1XyAy.js +0 -4
  675. package/components/p-BjfgFSSR.js +0 -4
  676. package/components/p-BjoEPDW5.js +0 -4
  677. package/components/p-BnqQlm7c.js +0 -4
  678. package/components/p-BsPelv04.js +0 -4
  679. package/components/p-Bth-EzJ0.js +0 -4
  680. package/components/p-Bz0dSlXZ.js +0 -4
  681. package/components/p-C1aScSTo.js +0 -4
  682. package/components/p-C2lKgrXx.js +0 -4
  683. package/components/p-C53feagD.js +0 -4
  684. package/components/p-CHqRYvYm.js +0 -4
  685. package/components/p-CI3ncNZm.js +0 -4
  686. package/components/p-CSZf8_j0.js +0 -4
  687. package/components/p-CU5rbWAW.js +0 -4
  688. package/components/p-C_xFdyXe.js +0 -4
  689. package/components/p-Ciz1-FuE.js +0 -4
  690. package/components/p-Cl0B-RWe.js +0 -4
  691. package/components/p-CmR5uXej.js +0 -4
  692. package/components/p-CtWGkNnJ.js +0 -4
  693. package/components/p-CtukzcyX.js +0 -4
  694. package/components/p-D13Eaw-8.js +0 -4
  695. package/components/p-D5Ubpm7D.js +0 -4
  696. package/components/p-D6Ynv7Xh.js +0 -4
  697. package/components/p-D7bSXQD3.js +0 -4
  698. package/components/p-DDWp95gH.js +0 -4
  699. package/components/p-DIE4pXMl.js +0 -4
  700. package/components/p-DOFCbuQR.js +0 -4
  701. package/components/p-DiVJyqlX.js +0 -4
  702. package/components/p-DnL1c9_X.js +0 -4
  703. package/components/p-W5nO8mX_.js +0 -4
  704. package/components/p-W9CZ2mWX.js +0 -4
  705. package/components/p-XlSIJDJ-.js +0 -4
  706. package/components/p-cyNmxje6.js +0 -4
  707. package/components/p-dhLYXa7A.js +0 -4
  708. package/components/p-ijF0iCrA.js +0 -4
  709. package/components/p-k_E4tX5Z.js +0 -4
  710. package/components/p-nQi4oKcG.js +0 -4
  711. package/components/p-ryqmO0B-.js +0 -4
  712. package/dist/cjs/config-xninhj0J.js +0 -201
  713. package/dist/cjs/dir-Cn0z1rJH.js +0 -20
  714. package/dist/cjs/input.utils-DetjmtH2.js +0 -150
  715. package/dist/cjs/notch-controller-18PzRGXd.js +0 -155
  716. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  717. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  718. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  719. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  720. package/dist/collection/components/picker-legacy/picker.js +0 -890
  721. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  722. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  723. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  724. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  725. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  726. package/dist/esm/config-DQCONYYp.js +0 -195
  727. package/dist/esm/dir-C53feagD.js +0 -18
  728. package/dist/esm/input.utils-Y6NgW8bw.js +0 -147
  729. package/dist/esm/notch-controller-DKDjU_O7.js +0 -153
  730. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  731. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  732. package/dist/ionic/p-06c232a4.entry.js +0 -4
  733. package/dist/ionic/p-0d005398.entry.js +0 -4
  734. package/dist/ionic/p-1ae21e4c.entry.js +0 -4
  735. package/dist/ionic/p-20b1a044.entry.js +0 -4
  736. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  737. package/dist/ionic/p-2394a9a6.entry.js +0 -4
  738. package/dist/ionic/p-27d30585.entry.js +0 -4
  739. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  740. package/dist/ionic/p-30bf9737.entry.js +0 -4
  741. package/dist/ionic/p-3353c229.entry.js +0 -4
  742. package/dist/ionic/p-33704f20.entry.js +0 -4
  743. package/dist/ionic/p-390ca786.entry.js +0 -4
  744. package/dist/ionic/p-3a126bca.entry.js +0 -4
  745. package/dist/ionic/p-3a541154.entry.js +0 -4
  746. package/dist/ionic/p-3a7d1e91.entry.js +0 -4
  747. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  748. package/dist/ionic/p-4745f534.entry.js +0 -4
  749. package/dist/ionic/p-4858af1f.entry.js +0 -4
  750. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  751. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  752. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  753. package/dist/ionic/p-50e1194a.entry.js +0 -4
  754. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  755. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  756. package/dist/ionic/p-81ea5652.entry.js +0 -4
  757. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  758. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  759. package/dist/ionic/p-8c8eee7d.entry.js +0 -4
  760. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  761. package/dist/ionic/p-8fce95d5.entry.js +0 -4
  762. package/dist/ionic/p-94f2a736.entry.js +0 -4
  763. package/dist/ionic/p-9a65ac7f.entry.js +0 -4
  764. package/dist/ionic/p-9eeaBrnk.js +0 -4
  765. package/dist/ionic/p-9f1103ce.entry.js +0 -4
  766. package/dist/ionic/p-BGqMS-oh.js +0 -4
  767. package/dist/ionic/p-BTEOs1at.js +0 -4
  768. package/dist/ionic/p-BUFIpxKM.js +0 -4
  769. package/dist/ionic/p-C53feagD.js +0 -4
  770. package/dist/ionic/p-CFlfIb2g.js +0 -4
  771. package/dist/ionic/p-CKvCXMs9.js +0 -4
  772. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  773. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  774. package/dist/ionic/p-CwdymDLH.js +0 -4
  775. package/dist/ionic/p-Cx3IXROA.js +0 -4
  776. package/dist/ionic/p-D13Eaw-8.js +0 -4
  777. package/dist/ionic/p-DAAFkPFT.js +0 -4
  778. package/dist/ionic/p-DC3RagnA.js +0 -4
  779. package/dist/ionic/p-DIuEbVLu.js +0 -4
  780. package/dist/ionic/p-DSG2s2Eb.js +0 -4
  781. package/dist/ionic/p-Dfbt-q2k.js +0 -4
  782. package/dist/ionic/p-DiVJyqlX.js +0 -4
  783. package/dist/ionic/p-DoJvtrbw.js +0 -4
  784. package/dist/ionic/p-DzWaWHGc.js +0 -4
  785. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  786. package/dist/ionic/p-SNAkTDfm.js +0 -4
  787. package/dist/ionic/p-VAemlbDS.js +0 -4
  788. package/dist/ionic/p-Wk5HzclC.js +0 -4
  789. package/dist/ionic/p-a21add2f.entry.js +0 -4
  790. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  791. package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
  792. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  793. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  794. package/dist/ionic/p-e0be05c5.entry.js +0 -4
  795. package/dist/ionic/p-e847a888.entry.js +0 -4
  796. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  797. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  798. package/dist/ionic/p-fabcce6c.entry.js +0 -4
  799. package/dist/ionic/p-facfde02.entry.js +0 -4
  800. package/dist/ionic/p-fd7eebc4.entry.js +0 -4
  801. package/dist/ionic/p-mjKAFv89.js +0 -4
  802. package/dist/ionic/p-tcQvqkiX.js +0 -5
  803. package/dist/ionic/p-viFHDgRs.js +0 -4
  804. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  805. package/dist/ionic/p-xWb6fgfq.js +0 -4
  806. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  807. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  808. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  809. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  810. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  811. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  812. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -112,20 +112,6 @@
112
112
  box-sizing: border-box;
113
113
  }
114
114
 
115
- /**
116
- * Since the label sits on top of the element,
117
- * the component needs to be taller otherwise the
118
- * label will appear too close to the textarea text.
119
- * Also, floating and stacked labels should not
120
- * push the label down since it it
121
- * sits on top of the textarea.
122
- */
123
- :host(.textarea-label-placement-floating),
124
- :host(.textarea-label-placement-stacked) {
125
- --padding-top: 0px;
126
- min-height: 56px;
127
- }
128
-
129
115
  /**
130
116
  * When the cols property is set we should
131
117
  * respect that width instead of defaulting
@@ -248,8 +234,8 @@
248
234
  padding-inline-start: var(--padding-start);
249
235
  -webkit-padding-end: var(--padding-end);
250
236
  padding-inline-end: var(--padding-end);
251
- padding-top: 0px;
252
- padding-bottom: 0px;
237
+ padding-top: 0;
238
+ padding-bottom: 0;
253
239
  border-radius: var(--border-radius);
254
240
  display: flex;
255
241
  position: relative;
@@ -262,23 +248,46 @@
262
248
  line-height: normal;
263
249
  }
264
250
 
251
+ .textarea-control {
252
+ padding-left: 0;
253
+ padding-right: 0;
254
+ padding-top: var(--padding-top);
255
+ padding-bottom: var(--padding-bottom);
256
+ display: flex;
257
+ flex-grow: 1;
258
+ align-items: start;
259
+ align-self: stretch;
260
+ width: 100%;
261
+ /**
262
+ * Allows the control to shrink below the label and textarea's intrinsic
263
+ * width, preventing the start and end slots from being pushed outside
264
+ * the wrapper. The label and textarea truncate independently, so it can
265
+ * use whatever space remains after accounting for the slots.
266
+ */
267
+ min-width: 0;
268
+ }
269
+
265
270
  .native-wrapper {
266
271
  position: relative;
267
272
  width: 100%;
268
273
  height: 100%;
269
274
  }
270
275
 
271
- :host(.has-focus) textarea {
272
- caret-color: var(--highlight-color);
276
+ /**
277
+ * When the label sits beside the textarea, the label should size to its content
278
+ * and the textarea should take the remaining space. A zero flex basis prevents
279
+ * the textarea from requesting its full width and forcing the label to shrink.
280
+ * Stacked and floating placements use a column layout, so their flex basis
281
+ * controls height instead and does not need to be overridden.
282
+ */
283
+ :host(.textarea-label-placement-start) .native-wrapper,
284
+ :host(.textarea-label-placement-end) .native-wrapper,
285
+ :host(.textarea-label-placement-fixed) .native-wrapper {
286
+ flex: 1 1 0;
273
287
  }
274
288
 
275
- .native-wrapper textarea {
276
- -webkit-padding-start: 0px;
277
- padding-inline-start: 0px;
278
- -webkit-padding-end: 0px;
279
- padding-inline-end: 0px;
280
- padding-top: var(--padding-top);
281
- padding-bottom: var(--padding-bottom);
289
+ :host(.has-focus) textarea {
290
+ caret-color: var(--highlight-color);
282
291
  }
283
292
 
284
293
  .native-wrapper {
@@ -305,8 +314,8 @@
305
314
  .native-wrapper::after {
306
315
  padding-left: 0;
307
316
  padding-right: 0;
308
- padding-top: var(--padding-top);
309
- padding-bottom: var(--padding-bottom);
317
+ padding-top: 0;
318
+ padding-bottom: 0;
310
319
  margin-left: 0;
311
320
  margin-right: 0;
312
321
  margin-top: 0;
@@ -332,12 +341,6 @@
332
341
  word-break: break-word;
333
342
  }
334
343
 
335
- .textarea-wrapper-inner {
336
- display: flex;
337
- width: 100%;
338
- min-height: inherit;
339
- }
340
-
341
344
  :host(.ion-touched.ion-invalid) {
342
345
  --highlight-color: var(--highlight-color-invalid);
343
346
  }
@@ -421,12 +424,12 @@
421
424
  }
422
425
 
423
426
  .label-text-wrapper {
424
- -webkit-padding-start: 0px;
425
- padding-inline-start: 0px;
426
- -webkit-padding-end: 0px;
427
- padding-inline-end: 0px;
428
- padding-top: var(--padding-top);
429
- padding-bottom: var(--padding-bottom);
427
+ /**
428
+ * Allows the label to shrink below its intrinsic content width.
429
+ * Without this the label keeps its full width and can push the
430
+ * textarea and end slot outside the wrapper.
431
+ */
432
+ min-width: 0;
430
433
  /**
431
434
  * Label text should not extend
432
435
  * beyond the bounds of the textarea.
@@ -445,6 +448,18 @@
445
448
  pointer-events: none;
446
449
  }
447
450
 
451
+ /**
452
+ * When start/end slots are added or removed, we temporarily
453
+ * disable the label transition to prevent the floating label
454
+ * from animating as its position is adjusted.
455
+ *
456
+ * This class is applied by the start container controller, so
457
+ * renaming it here requires renaming it there too.
458
+ */
459
+ :host(.skip-label-transition) .label-text-wrapper {
460
+ transition: none;
461
+ }
462
+
448
463
  /**
449
464
  * We need to use two elements instead of
450
465
  * one. The .label-text-wrapper is responsible
@@ -488,7 +503,7 @@
488
503
  * Label is on the left of the textarea in LTR and
489
504
  * on the right in RTL.
490
505
  */
491
- :host(.textarea-label-placement-start) .textarea-wrapper {
506
+ :host(.textarea-label-placement-start) .textarea-control {
492
507
  flex-direction: row;
493
508
  }
494
509
 
@@ -510,7 +525,7 @@
510
525
  * Label is on the right of the textarea in LTR and
511
526
  * on the left in RTL.
512
527
  */
513
- :host(.textarea-label-placement-end) .textarea-wrapper {
528
+ :host(.textarea-label-placement-end) .textarea-control {
514
529
  flex-direction: row-reverse;
515
530
  }
516
531
 
@@ -560,8 +575,15 @@
560
575
  * down when the textarea is focused or has a value.
561
576
  *
562
577
  */
563
- :host(.textarea-label-placement-stacked) .textarea-wrapper,
564
- :host(.textarea-label-placement-floating) .textarea-wrapper {
578
+ :host(.textarea-label-placement-stacked),
579
+ :host(.textarea-label-placement-floating) {
580
+ --padding-top: 20px;
581
+ --padding-bottom: 6px;
582
+ }
583
+
584
+ :host(.textarea-label-placement-stacked) .textarea-control,
585
+ :host(.textarea-label-placement-floating) .textarea-control {
586
+ padding-top: 0;
565
587
  flex-direction: column;
566
588
  align-items: start;
567
589
  }
@@ -574,12 +596,10 @@
574
596
  :host(.textarea-label-placement-stacked) .label-text-wrapper,
575
597
  :host(.textarea-label-placement-floating) .label-text-wrapper {
576
598
  transform-origin: left top;
577
- -webkit-padding-start: 0px;
578
- padding-inline-start: 0px;
579
- -webkit-padding-end: 0px;
580
- padding-inline-end: 0px;
581
- padding-top: 0px;
582
- padding-bottom: 0px;
599
+ padding-left: 0;
600
+ padding-right: 0;
601
+ padding-top: 0;
602
+ padding-bottom: 0;
583
603
  max-width: 100%;
584
604
  /**
585
605
  * The 2 ensures the label
@@ -614,13 +634,6 @@
614
634
  margin-bottom: 0px;
615
635
  }
616
636
 
617
- :host(.textarea-label-placement-stacked) ::slotted([slot=start]),
618
- :host(.textarea-label-placement-stacked) ::slotted([slot=end]),
619
- :host(.textarea-label-placement-floating) ::slotted([slot=start]),
620
- :host(.textarea-label-placement-floating) ::slotted([slot=end]) {
621
- margin-top: 8px;
622
- }
623
-
624
637
  /**
625
638
  * This makes the label sit over the textarea
626
639
  * when the textarea is blurred and has no value.
@@ -655,19 +668,17 @@
655
668
  max-width: calc(100% / 0.75);
656
669
  }
657
670
 
658
- .start-slot-wrapper, .end-slot-wrapper {
659
- padding-left: 0;
660
- padding-right: 0;
661
- padding-top: var(--padding-top);
662
- padding-bottom: var(--padding-bottom);
671
+ .textarea-start,
672
+ .textarea-end {
663
673
  display: flex;
674
+ position: relative;
664
675
  flex-shrink: 0;
665
676
  align-self: start;
666
677
  }
667
678
 
668
679
  ::slotted([slot=start]),
669
680
  ::slotted([slot=end]) {
670
- margin-top: 0;
681
+ margin-top: var(--padding-top);
671
682
  }
672
683
 
673
684
  ::slotted([slot=start]:last-of-type) {
@@ -906,7 +917,6 @@
906
917
  --border-radius: 4px;
907
918
  --padding-start: 16px;
908
919
  --padding-end: 16px;
909
- min-height: 56px;
910
920
  }
911
921
 
912
922
  /**
@@ -1034,7 +1044,14 @@
1034
1044
  --border-radius: 4px;
1035
1045
  --padding-start: 16px;
1036
1046
  --padding-end: 16px;
1037
- min-height: 56px;
1047
+ /**
1048
+ * The measured width of the start container, as a negative offset
1049
+ * in LTR and a positive one in RTL. Written to the host by the
1050
+ * start container controller, so renaming it here requires renaming
1051
+ * it there too. Declared with a default so the label is positioned
1052
+ * correctly before the first measurement runs.
1053
+ */
1054
+ --internal-start-container-adjustment: 0px;
1038
1055
  }
1039
1056
 
1040
1057
  :host(.textarea-fill-outline.textarea-shape-round) {
@@ -1088,15 +1105,25 @@
1088
1105
  border-bottom: none;
1089
1106
  }
1090
1107
 
1108
+ /**
1109
+ * The resting label is positioned relative to the control so it can size to
1110
+ * the space between the start and end slots. When floating, the label needs
1111
+ * to escape the control and position itself relative to the wrapper instead.
1112
+ */
1113
+ :host(.textarea-fill-outline:not(.label-floating)) .textarea-control {
1114
+ position: relative;
1115
+ }
1116
+
1091
1117
  :host(.textarea-fill-outline.textarea-label-placement-stacked) .label-text-wrapper,
1092
1118
  :host(.textarea-fill-outline.textarea-label-placement-floating) .label-text-wrapper {
1093
1119
  transform-origin: left top;
1094
1120
  position: absolute;
1095
1121
  /**
1096
- * Label text should not extend
1097
- * beyond the bounds of the textarea.
1122
+ * While resting this is the width of the textarea, which already
1123
+ * excludes the start and end slots. Once the label floats the
1124
+ * containing block becomes the wrapper and the rule below takes over.
1098
1125
  */
1099
- max-width: calc(100% - var(--padding-start) - var(--padding-end));
1126
+ max-width: 100%;
1100
1127
  }
1101
1128
  :host-context([dir=rtl]):host(.textarea-fill-outline.textarea-label-placement-stacked) .label-text-wrapper, :host-context([dir=rtl]).textarea-fill-outline.textarea-label-placement-stacked .label-text-wrapper, :host-context([dir=rtl]):host(.textarea-fill-outline.textarea-label-placement-floating) .label-text-wrapper, :host-context([dir=rtl]).textarea-fill-outline.textarea-label-placement-floating .label-text-wrapper {
1102
1129
  transform-origin: right top;
@@ -1121,7 +1148,7 @@
1121
1148
  * This makes the label sit above the textarea.
1122
1149
  */
1123
1150
  :host(.label-floating.textarea-fill-outline) .label-text-wrapper {
1124
- transform: translateY(-32%) scale(0.75);
1151
+ transform: translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);
1125
1152
  margin-left: 0;
1126
1153
  margin-right: 0;
1127
1154
  margin-top: 0;
@@ -1137,7 +1164,7 @@
1137
1164
 
1138
1165
  /**
1139
1166
  * This ensures that the textarea does not
1140
- * overlap the floating label while still
1167
+ * overlap the outline container while still
1141
1168
  * remaining visually centered.
1142
1169
  */
1143
1170
  :host(.textarea-fill-outline.textarea-label-placement-stacked) textarea,
@@ -1148,17 +1175,10 @@
1148
1175
  margin-inline-start: 0px;
1149
1176
  -webkit-margin-end: 0px;
1150
1177
  margin-inline-end: 0px;
1151
- margin-top: 12px;
1178
+ margin-top: 19px;
1152
1179
  margin-bottom: 0px;
1153
1180
  }
1154
1181
 
1155
- :host(.textarea-fill-outline.textarea-label-placement-stacked) ::slotted([slot=start]),
1156
- :host(.textarea-fill-outline.textarea-label-placement-stacked) ::slotted([slot=end]),
1157
- :host(.textarea-fill-outline.textarea-label-placement-floating) ::slotted([slot=start]),
1158
- :host(.textarea-fill-outline.textarea-label-placement-floating) ::slotted([slot=end]) {
1159
- margin-top: 12px;
1160
- }
1161
-
1162
1182
  :host(.textarea-fill-outline) .textarea-outline-container {
1163
1183
  left: 0;
1164
1184
  right: 0;
@@ -1276,6 +1296,7 @@
1276
1296
  --padding-bottom: 8px;
1277
1297
  --padding-start: 0px;
1278
1298
  --highlight-height: 2px;
1299
+ min-height: 72px;
1279
1300
  font-size: inherit;
1280
1301
  }
1281
1302
 
@@ -1337,6 +1358,11 @@
1337
1358
  --border-radius: 16px;
1338
1359
  }
1339
1360
 
1361
+ ::slotted(ion-button[slot=start]),
1362
+ ::slotted(ion-button[slot=end]) {
1363
+ margin-top: 7px;
1364
+ }
1365
+
1340
1366
  /**
1341
1367
  * Slotted buttons have a lot of default padding that can
1342
1368
  * cause them to look misaligned from other pieces such
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Thumbnail {
7
7
  render() {
8
- return (h(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode(this) }, h("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
8
+ return (h(Host, { key: 'ff9d2a4886b1c90a316c761f1160111f0e997f5d', class: getIonMode(this) }, h("slot", { key: '9a0f0d69e3713831e88c8770a60b28ff1a03abb6' })));
9
9
  }
10
10
  static get is() { return "ion-thumbnail"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -23,11 +23,11 @@ export class ToolbarTitle {
23
23
  render() {
24
24
  const mode = getIonMode(this);
25
25
  const size = this.getSize();
26
- return (h(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses(this.color, {
26
+ return (h(Host, { key: 'c5f0b913ff0a22d9bf02da48a313a613c2ac8fe7', class: createColorClasses(this.color, {
27
27
  [mode]: true,
28
28
  [`title-${size}`]: true,
29
29
  'title-rtl': document.dir === 'rtl',
30
- }) }, h("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, h("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
30
+ }) }, h("div", { key: '5253b9e39fb764bfe1e57370719139f8a83e9904', class: "toolbar-title" }, h("slot", { key: 'e38b1eccb0175c36f8cab211aee7ce4d61fc9035' }))));
31
31
  }
32
32
  static get is() { return "ion-title"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -177,8 +177,7 @@ export class Toast {
177
177
  this.triggerController.removeClickListener();
178
178
  }
179
179
  componentWillLoad() {
180
- var _a;
181
- if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
180
+ if (!this.htmlAttributes?.id) {
182
181
  setOverlayId(this.el);
183
182
  }
184
183
  }
@@ -252,7 +251,6 @@ export class Toast {
252
251
  * Some examples include: `"cancel"`, `"destructive"`, `"selected"`, and `"backdrop"`.
253
252
  */
254
253
  async dismiss(data, role) {
255
- var _a, _b;
256
254
  const unlock = await this.lockController.lock();
257
255
  const { durationTimeout, position, lastPresentedPosition } = this;
258
256
  if (durationTimeout) {
@@ -266,8 +264,8 @@ export class Toast {
266
264
  */
267
265
  {
268
266
  position,
269
- top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
270
- bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
267
+ top: lastPresentedPosition?.top ?? '',
268
+ bottom: lastPresentedPosition?.bottom ?? '',
271
269
  });
272
270
  if (dismissed) {
273
271
  this.delegateController.removeViewFromDom();
@@ -352,7 +350,7 @@ export class Toast {
352
350
  return Promise.resolve();
353
351
  }
354
352
  async callButtonHandler(button) {
355
- if (button === null || button === void 0 ? void 0 : button.handler) {
353
+ if (button?.handler) {
356
354
  // a handler has been provided, execute it
357
355
  // pass the handler the values from the inputs
358
356
  try {
@@ -377,7 +375,7 @@ export class Toast {
377
375
  'toast-button-group': true,
378
376
  [`toast-button-group-${side}`]: true,
379
377
  };
380
- return (h("div", { class: buttonGroupsClasses }, buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", class: buttonClass(b), tabIndex: 0, onClick: () => this.buttonClick(b), part: buttonPart(b) }), h("div", { class: "toast-button-inner" }, b.icon && (h("ion-icon", { "aria-hidden": "true", icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: "toast-button-icon" })), b.text), mode === 'md' && (h("ion-ripple-effect", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })))))));
378
+ return (h("div", { class: buttonGroupsClasses }, buttons.map((b) => (h("button", { ...b.htmlAttributes, type: "button", class: buttonClass(b), tabIndex: 0, onClick: () => this.buttonClick(b), part: buttonPart(b) }, h("div", { class: "toast-button-inner" }, b.icon && (h("ion-icon", { "aria-hidden": "true", icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: "toast-button-icon" })), b.text), mode === 'md' && (h("ion-ripple-effect", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })))))));
381
379
  }
382
380
  /**
383
381
  * Render the `message` property.
@@ -417,9 +415,14 @@ export class Toast {
417
415
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
418
416
  printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
419
417
  }
420
- return (h(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
418
+ return (h(Host, { key: '15d2ff8b689e40bb5cae3e304448dadf91b11b88', tabindex: "-1", ...this.htmlAttributes, style: {
421
419
  zIndex: `${60000 + this.overlayIndex}`,
422
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '0860f7e895d8bc66e44c4d924ca569f4cbb1a749', class: wrapperClass, part: "wrapper" }, h("div", { key: '28784199c880a3f664677c8f5560b7caa8903251', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '0a63ba1336ad43d2aec14e49055eb46c112359c2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'ecec8107af582dc55d4b3828dd7f3054a29f26b1', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
420
+ }, class: createColorClasses(this.color, {
421
+ [mode]: true,
422
+ ...getClassMap(this.cssClass),
423
+ 'overlay-hidden': true,
424
+ 'toast-translucent': this.translucent,
425
+ }), onIonToastWillDismiss: this.dispatchCancelHandler }, h("div", { key: 'd26cc17a59e3d81810e22ee422398f2cc4c7a05c', class: wrapperClass, part: "wrapper" }, h("div", { key: 'f15e1a97f13defcbf96612df4c7ba45999e6244d', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '639cacec828f969673071e54dc68284050e9f2fd', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'a07e68cf68e4c507e4515de1a4b43dd8fb3541d3', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
423
426
  }
424
427
  static get is() { return "ion-toast"; }
425
428
  static get encapsulation() { return "shadow"; }
@@ -98,10 +98,6 @@
98
98
  width: auto;
99
99
  }
100
100
 
101
- :host(.ion-focused) input {
102
- border: 2px solid #5e9ed6;
103
- }
104
-
105
101
  :host(.toggle-disabled) {
106
102
  pointer-events: none;
107
103
  }
@@ -114,6 +110,10 @@ input {
114
110
  display: none;
115
111
  }
116
112
 
113
+ :host(:focus) {
114
+ outline: none;
115
+ }
116
+
117
117
  .toggle-wrapper {
118
118
  display: flex;
119
119
  position: relative;
@@ -635,4 +635,12 @@ input {
635
635
 
636
636
  :host(.toggle-disabled) {
637
637
  opacity: 0.3;
638
+ }
639
+
640
+ :host(.ion-focused:not(.toggle-defers-indicator)) .toggle-icon {
641
+ box-shadow: 0 0 0 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);
642
+ }
643
+
644
+ :host(.ion-color.ion-focused.toggle-checked:not(.toggle-defers-indicator)) .toggle-icon {
645
+ box-shadow: 0 0 0 4px rgba(var(--ion-color-base-rgb), 0.2);
638
646
  }
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Build, Host, h } from "@stencil/core";
5
- import { checkInvalidState } from "../../utils/forms/index";
4
+ import { Build, Host, forceUpdate, h } from "@stencil/core";
5
+ import { checkInvalidState, createItemMultipleInputsObserver } from "../../utils/forms/index";
6
6
  import { renderHiddenInput, inheritAriaAttributes } from "../../utils/helpers";
7
7
  import { hapticSelection } from "../../utils/native/haptic";
8
8
  import { isPlatform } from "../../utils/platform";
@@ -196,6 +196,10 @@ export class Toggle {
196
196
  }
197
197
  // Always set initial state
198
198
  this.isInvalid = checkInvalidState(el);
199
+ this.itemFocusObserver = createItemMultipleInputsObserver(el, () => forceUpdate(this), [
200
+ 'item-multiple-inputs',
201
+ 'ion-activatable',
202
+ ]);
199
203
  }
200
204
  componentDidLoad() {
201
205
  this.setupGesture();
@@ -206,6 +210,10 @@ export class Toggle {
206
210
  this.gesture.destroy();
207
211
  this.gesture = undefined;
208
212
  }
213
+ if (this.itemFocusObserver) {
214
+ this.itemFocusObserver.disconnect();
215
+ this.itemFocusObserver = undefined;
216
+ }
209
217
  // Clean up validation observer to prevent memory leaks.
210
218
  if (this.validationObserver) {
211
219
  this.validationObserver.disconnect();
@@ -213,7 +221,9 @@ export class Toggle {
213
221
  }
214
222
  }
215
223
  componentWillLoad() {
216
- this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
224
+ this.inheritedAttributes = {
225
+ ...inheritAriaAttributes(this.el),
226
+ };
217
227
  this.hintTextId = this.getHintTextId();
218
228
  }
219
229
  onStart() {
@@ -286,10 +296,20 @@ export class Toggle {
286
296
  const mode = getIonMode(this);
287
297
  const value = this.getValue();
288
298
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
299
+ const inItem = hostContext('ion-item', el);
300
+ const inMultipleInputsItem = hostContext('ion-item.item-multiple-inputs', el);
301
+ // A clickable item is a second tab stop painting the same row indicator, which
302
+ // `item-multiple-inputs` misses because it counts cover elements, not toggles.
303
+ // The attributes are matched too because the class needs the item to render.
304
+ const inClickableItem = hostContext('ion-item.ion-activatable, ion-item[button], ion-item[href]', el);
289
305
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
290
- return (h(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
306
+ return (h(Host, { key: '148d15040257b05b3769da5a2439d051e357cbba', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
291
307
  [mode]: true,
292
- 'in-item': hostContext('ion-item', el),
308
+ 'in-item': inItem,
309
+ // `ion-focusable` has to stay on because it is what makes the item focusable.
310
+ // When the item draws the row indicator, CSS suppresses ours instead.
311
+ 'ion-focusable': true,
312
+ 'toggle-defers-indicator': inItem && !inMultipleInputsItem && !inClickableItem,
293
313
  'toggle-activated': activated,
294
314
  'toggle-checked': checked,
295
315
  'toggle-disabled': disabled,
@@ -297,10 +317,10 @@ export class Toggle {
297
317
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
298
318
  [`toggle-label-placement-${labelPlacement}`]: true,
299
319
  [`toggle-${rtl}`]: true,
300
- }) }, h("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
320
+ }) }, h("label", { key: '0dbc40adc87e2ab4bdcd9a9fef43393484174c18', class: "toggle-wrapper", htmlFor: inputId }, h("input", { key: '92dee565687fc9a883f97091ead1bbb51df43779', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required, ...inheritedAttributes }), h("div", { key: 'f057bc57714b26e84226ee931e09212b86dba69f', class: {
301
321
  'label-text-wrapper': true,
302
322
  'label-text-wrapper-hidden': !hasLabel,
303
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), h("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
323
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '345efb5ce20f8124d1e74877b4943edf82fe2f8e' }), this.renderHintText()), h("div", { key: 'fc1a7fb6b65064307fbe0a50178559a52d6aedb7', class: "native-wrapper" }, this.renderToggleControl()))));
304
324
  }
305
325
  static get is() { return "ion-toggle"; }
306
326
  static get encapsulation() { return "shadow"; }
@@ -98,10 +98,6 @@
98
98
  width: auto;
99
99
  }
100
100
 
101
- :host(.ion-focused) input {
102
- border: 2px solid #5e9ed6;
103
- }
104
-
105
101
  :host(.toggle-disabled) {
106
102
  pointer-events: none;
107
103
  }
@@ -114,6 +110,10 @@ input {
114
110
  display: none;
115
111
  }
116
112
 
113
+ :host(:focus) {
114
+ outline: none;
115
+ }
116
+
117
117
  .toggle-wrapper {
118
118
  display: flex;
119
119
  position: relative;
@@ -528,7 +528,7 @@ input {
528
528
  --handle-width: 20px;
529
529
  --handle-height: 20px;
530
530
  --handle-max-height: calc(100% + 6px);
531
- --handle-spacing: 0;
531
+ --handle-spacing: 0px;
532
532
  --handle-transition: transform 160ms cubic-bezier(0.4, 0, 0.2, 1), background-color 160ms cubic-bezier(0.4, 0, 0.2, 1);
533
533
  }
534
534
 
@@ -572,6 +572,43 @@ input {
572
572
  height: 100%;
573
573
  }
574
574
 
575
+ :host(.ion-focused:not(.toggle-defers-indicator)) .toggle-icon-wrapper::after {
576
+ border-radius: 50%;
577
+ display: block;
578
+ position: absolute;
579
+ width: 36px;
580
+ height: 36px;
581
+ transform: translateY(-50%);
582
+ background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.12);
583
+ content: "";
584
+ z-index: -1;
585
+ inset-block-start: 50%;
586
+ }
587
+
588
+ :host(.toggle-ltr.ion-focused) .toggle-icon-wrapper::after {
589
+ left: calc(var(--handle-spacing) + (var(--handle-width) - 36px) / 2);
590
+ }
591
+
592
+ :host(.toggle-rtl.ion-focused) .toggle-icon-wrapper::after {
593
+ right: calc(var(--handle-spacing) + (var(--handle-width) - 36px) / 2);
594
+ }
595
+
596
+ :host(.toggle-ltr.ion-focused.toggle-checked) .toggle-icon-wrapper::after {
597
+ transform: translate(calc(var(--handle-spacing) * -2), -50%);
598
+ }
599
+
600
+ :host(.toggle-rtl.ion-focused.toggle-checked) .toggle-icon-wrapper::after {
601
+ transform: translate(calc(var(--handle-spacing) * 2), -50%);
602
+ }
603
+
604
+ :host(.ion-focused.toggle-checked) .toggle-icon-wrapper::after {
605
+ background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);
606
+ }
607
+
608
+ :host(.ion-color.ion-focused.toggle-checked) .toggle-icon-wrapper::after {
609
+ background: rgba(var(--ion-color-base-rgb), 0.2);
610
+ }
611
+
575
612
  :host(.toggle-disabled) {
576
613
  opacity: 0.38;
577
614
  }
@@ -65,10 +65,13 @@ export class Toolbar {
65
65
  this.childrenStyles.forEach((value) => {
66
66
  Object.assign(childStyles, value);
67
67
  });
68
- return (h(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
69
- [mode]: true,
70
- 'in-toolbar': hostContext('ion-toolbar', this.el),
71
- })) }, h("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), h("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, h("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), h("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), h("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, h("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), h("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), h("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
68
+ return (h(Host, { key: 'c16803dc4eae9972ef19bf43aa74b94feb4fd4c1', class: {
69
+ ...childStyles,
70
+ ...createColorClasses(this.color, {
71
+ [mode]: true,
72
+ 'in-toolbar': hostContext('ion-toolbar', this.el),
73
+ }),
74
+ } }, h("div", { key: '20e3f85844c94b8399c245d2df125e6ab678d681', class: "toolbar-background", part: "background" }), h("div", { key: '12f09e324e8d9130b9d30c493106b500233fb016', class: "toolbar-container", part: "container" }, h("slot", { key: '6da0fe99ee0c4d7c969712e2908a4e7e6be5ed2c', name: "start" }), h("slot", { key: '177c346d6dcabb7857d810cda7d25c6dde32e6e2', name: "secondary" }), h("div", { key: '8c921b415940c71bf4c1a2c5c6887f36ad1afd16', class: "toolbar-content", part: "content" }, h("slot", { key: '1f2976b80d967bd51e86ed1357b363271d655df2' })), h("slot", { key: '0f7618044a7e8b0d9b715a8e208070f7ef2ee4c8', name: "primary" }), h("slot", { key: '125c393197e0660a3c2638dd4628c41ef7e05f19', name: "end" }))));
72
75
  }
73
76
  static get is() { return "ion-toolbar"; }
74
77
  static get encapsulation() { return "shadow"; }
@@ -37,7 +37,7 @@ export const configFromSession = (win) => {
37
37
  const configStr = win.sessionStorage.getItem(IONIC_SESSION_KEY);
38
38
  return configStr !== null ? JSON.parse(configStr) : {};
39
39
  }
40
- catch (e) {
40
+ catch {
41
41
  return {};
42
42
  }
43
43
  };
@@ -45,7 +45,7 @@ export const saveConfig = (win, c) => {
45
45
  try {
46
46
  win.sessionStorage.setItem(IONIC_SESSION_KEY, JSON.stringify(c));
47
47
  }
48
- catch (e) {
48
+ catch {
49
49
  return;
50
50
  }
51
51
  };
@@ -59,7 +59,7 @@ export const configFromURL = (win) => {
59
59
  try {
60
60
  return [decodeURIComponent(key), decodeURIComponent(value)];
61
61
  }
62
- catch (e) {
62
+ catch {
63
63
  return ['', ''];
64
64
  }
65
65
  })