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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker-legacy-column.d.ts +11 -0
  59. package/components/ion-picker-legacy-column.js +4 -0
  60. package/components/ion-picker-legacy.d.ts +11 -0
  61. package/components/ion-picker-legacy.js +4 -0
  62. package/components/ion-picker.js +1 -1
  63. package/components/ion-popover.js +1 -1
  64. package/components/ion-progress-bar.js +1 -1
  65. package/components/ion-radio-group.js +1 -1
  66. package/components/ion-radio.js +1 -1
  67. package/components/ion-range.js +1 -1
  68. package/components/ion-refresher-content.js +1 -1
  69. package/components/ion-refresher.js +1 -1
  70. package/components/ion-reorder-group.js +1 -1
  71. package/components/ion-reorder.js +1 -1
  72. package/components/ion-ripple-effect.js +1 -1
  73. package/components/ion-route-redirect.js +1 -1
  74. package/components/ion-route.js +1 -1
  75. package/components/ion-router-link.js +1 -1
  76. package/components/ion-router-outlet.js +1 -1
  77. package/components/ion-router.js +1 -1
  78. package/components/ion-row.js +1 -1
  79. package/components/ion-searchbar.js +1 -1
  80. package/components/ion-segment-button.js +1 -1
  81. package/components/ion-segment-content.js +1 -1
  82. package/components/ion-segment-view.js +1 -1
  83. package/components/ion-segment.js +1 -1
  84. package/components/ion-select-modal.js +1 -1
  85. package/components/ion-select-option.js +1 -1
  86. package/components/ion-select-popover.js +1 -1
  87. package/components/ion-select.js +1 -1
  88. package/components/ion-skeleton-text.js +1 -1
  89. package/components/ion-spinner.js +1 -1
  90. package/components/ion-split-pane.js +1 -1
  91. package/components/ion-tab-bar.js +1 -1
  92. package/components/ion-tab-button.js +1 -1
  93. package/components/ion-tab.js +1 -1
  94. package/components/ion-tabs.js +1 -1
  95. package/components/ion-text.js +1 -1
  96. package/components/ion-textarea.js +1 -1
  97. package/components/ion-thumbnail.js +1 -1
  98. package/components/ion-title.js +1 -1
  99. package/components/ion-toast.js +1 -1
  100. package/components/ion-toggle.js +1 -1
  101. package/components/ion-toolbar.js +1 -1
  102. package/components/{p-AqD_wmvU.js → p--JUspHvy.js} +1 -1
  103. package/components/p-A3O24YmY.js +4 -0
  104. package/components/p-ABkNVeU9.js +4 -0
  105. package/{dist/ionic/p-CHpEzg-o.js → components/p-B-JJgYSG.js} +1 -1
  106. package/components/p-B9jFTlwE.js +4 -0
  107. package/components/p-BLmJ0zRm.js +4 -0
  108. package/components/p-BMI53wYL.js +4 -0
  109. package/components/p-BMaKgJFV.js +4 -0
  110. package/components/p-BSEgsdFI.js +4 -0
  111. package/components/p-BTEOs1at.js +4 -0
  112. package/{dist/ionic/p-aL0G45tD.js → components/p-BkKAANMJ.js} +1 -1
  113. package/components/p-BlIAuGv2.js +4 -0
  114. package/components/p-Bnsn6KaP.js +4 -0
  115. package/components/p-BsBCoGa-.js +4 -0
  116. package/components/p-Bz0dSlXZ.js +4 -0
  117. package/components/p-C53feagD.js +4 -0
  118. package/components/p-CHqRYvYm.js +4 -0
  119. package/components/p-CQGnMY3n.js +4 -0
  120. package/components/p-CSZf8_j0.js +4 -0
  121. package/components/{p-ltNYIRmI.js → p-C_hpsif8.js} +1 -1
  122. package/components/p-C_xFdyXe.js +4 -0
  123. package/components/p-Cf2jSDS8.js +4 -0
  124. package/components/p-Cfx4M1Bn.js +4 -0
  125. package/components/{p-C6JOi8wS.js → p-ChIZKXUu.js} +1 -1
  126. package/components/p-CkMSOsFF.js +4 -0
  127. package/components/p-Cl0B-RWe.js +4 -0
  128. package/components/p-CmR5uXej.js +4 -0
  129. package/components/p-Cp4GRDqq.js +4 -0
  130. package/components/p-CsNJ1ULL.js +4 -0
  131. package/components/p-CtWGkNnJ.js +4 -0
  132. package/components/p-CzCbeKys.js +4 -0
  133. package/components/p-D-aHdMxW.js +4 -0
  134. package/components/p-D0d8qTwj.js +4 -0
  135. package/components/p-D13Eaw-8.js +4 -0
  136. package/components/{p-D0pL_HuH.js → p-D3xo7hqU.js} +1 -1
  137. package/components/p-D6Ynv7Xh.js +4 -0
  138. package/components/p-D7uN07a3.js +4 -0
  139. package/components/p-DCnGU1fF.js +4 -0
  140. package/components/p-DGvrK8dD.js +4 -0
  141. package/components/p-DOFCbuQR.js +4 -0
  142. package/components/p-DV5mPYQS.js +4 -0
  143. package/components/p-DWkAgceV.js +4 -0
  144. package/components/p-DiVJyqlX.js +4 -0
  145. package/components/{p-Dcu-SAJG.js → p-DqLB8yFQ.js} +1 -1
  146. package/components/p-DqZAXv2t.js +4 -0
  147. package/components/p-Osve4qkc.js +4 -0
  148. package/components/p-R8zmRi4c.js +4 -0
  149. package/components/p-SLS1rDZM.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/components/p-cyNmxje6.js +4 -0
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-j5IxBIan.js +4 -0
  154. package/components/p-k_E4tX5Z.js +4 -0
  155. package/components/p-oD4kcBRX.js +4 -0
  156. package/components/p-rCa2eL0j.js +4 -0
  157. package/components/p-scxfI1Dd.js +4 -0
  158. package/components/p-tr4_8ZS8.js +4 -0
  159. package/components/p-vRBNsYbs.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/dist/cjs/{animation-D5WDBRvT.js → animation-BJq0kcy2.js} +4 -4
  162. package/dist/cjs/{app-globals-C2s3Cbal.js → app-globals-BlqrqKTN.js} +1 -1
  163. package/dist/cjs/{button-active-CXI2TseG.js → button-active-0mPOKmV2.js} +3 -3
  164. package/dist/cjs/config-xninhj0J.js +201 -0
  165. package/dist/cjs/{dir-Brx7VkvP.js → dir-Cn0z1rJH.js} +1 -1
  166. package/dist/cjs/{format-ZfKtcdit.js → format-PxvGiOik.js} +30 -40
  167. package/dist/cjs/{framework-delegate-Bdvk3JQO.js → framework-delegate-BtICZDHr.js} +7 -5
  168. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
  169. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-ClPPQ_PS.js} +3 -2
  170. package/dist/cjs/{hardware-back-button-zr8zeYaH.js → hardware-back-button-iUuF_76h.js} +4 -4
  171. package/dist/cjs/{helpers-DURh1XdY.js → helpers-Cv23MFHM.js} +3 -3
  172. package/dist/cjs/{index-DsoHs7Ly.js → index-BERfRao3.js} +5 -5
  173. package/dist/cjs/{index-P1nQxrpZ.js → index-CAvQ7Tka.js} +4 -10
  174. package/dist/cjs/{index-CAThePqm.js → index-Ct7gcRif.js} +6 -4
  175. package/dist/cjs/{index-Btdix80K.js → index-D81eLYUM.js} +2 -2
  176. package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
  177. package/dist/cjs/{index-BnhnwL1o.js → index-Dqpns5vP.js} +34 -2
  178. package/dist/cjs/{index-B7sCu6vN.js → index-aC4x3Fk3.js} +7 -6
  179. package/dist/cjs/index.cjs.js +18 -18
  180. package/dist/cjs/{input-shims-CPbWb84M.js → input-shims-DpA1zUN9.js} +11 -9
  181. package/dist/cjs/{input.utils-CkASW3mE.js → input.utils-DetjmtH2.js} +4 -3
  182. package/dist/cjs/ion-accordion_2.cjs.entry.js +340 -368
  183. package/dist/cjs/ion-action-sheet.cjs.entry.js +76 -187
  184. package/dist/cjs/ion-alert.cjs.entry.js +111 -273
  185. package/dist/cjs/ion-app_8.cjs.entry.js +190 -306
  186. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
  187. package/dist/cjs/ion-back-button.cjs.entry.js +23 -47
  188. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  189. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +121 -199
  190. package/dist/cjs/ion-button_2.cjs.entry.js +66 -138
  191. package/dist/cjs/ion-card_5.cjs.entry.js +30 -82
  192. package/dist/cjs/ion-checkbox.cjs.entry.js +101 -152
  193. package/dist/cjs/ion-chip.cjs.entry.js +11 -17
  194. package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
  195. package/dist/cjs/ion-datetime-button.cjs.entry.js +241 -253
  196. package/dist/cjs/ion-datetime_3.cjs.entry.js +3164 -0
  197. package/dist/cjs/ion-fab_3.cjs.entry.js +81 -139
  198. package/dist/cjs/ion-img.cjs.entry.js +12 -34
  199. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +72 -100
  200. package/dist/cjs/ion-input-otp.cjs.entry.js +370 -433
  201. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +19 -33
  202. package/dist/cjs/ion-input.cjs.entry.js +168 -314
  203. package/dist/cjs/ion-item-option_3.cjs.entry.js +51 -91
  204. package/dist/cjs/ion-item_8.cjs.entry.js +82 -181
  205. package/dist/cjs/ion-loading.cjs.entry.js +60 -146
  206. package/dist/cjs/ion-menu_3.cjs.entry.js +101 -163
  207. package/dist/cjs/ion-modal.cjs.entry.js +283 -482
  208. package/dist/cjs/ion-nav_2.cjs.entry.js +157 -100
  209. package/dist/cjs/ion-picker-column-option.cjs.entry.js +33 -37
  210. package/dist/cjs/ion-picker-column.cjs.entry.js +405 -417
  211. package/dist/cjs/ion-picker.cjs.entry.js +392 -401
  212. package/dist/cjs/ion-popover.cjs.entry.js +205 -319
  213. package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -31
  214. package/dist/cjs/ion-radio_2.cjs.entry.js +133 -206
  215. package/dist/cjs/ion-range.cjs.entry.js +237 -302
  216. package/dist/cjs/ion-refresher_2.cjs.entry.js +94 -166
  217. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -53
  218. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  219. package/dist/cjs/ion-route_4.cjs.entry.js +71 -175
  220. package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
  221. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  222. package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
  223. package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
  224. package/dist/cjs/ion-select-modal.cjs.entry.js +48 -104
  225. package/dist/cjs/ion-select_3.cjs.entry.js +214 -759
  226. package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
  227. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
  228. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +41 -100
  229. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -53
  230. package/dist/cjs/ion-text.cjs.entry.js +5 -11
  231. package/dist/cjs/ion-textarea.cjs.entry.js +144 -263
  232. package/dist/cjs/ion-toast.cjs.entry.js +117 -236
  233. package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
  234. package/dist/cjs/{ionic-global-dMut1Czp.js → ionic-global-B-cA6LkY.js} +8 -13
  235. package/dist/cjs/ionic.cjs.js +4 -4
  236. package/dist/cjs/{ios.transition-CeaFa0y2.js → ios.transition-BOSWOaiK.js} +17 -13
  237. package/dist/cjs/{item-multiple-inputs-HQO5Iy9I.js → item-multiple-inputs-D-gyg57c.js} +1 -1
  238. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-UuAS4D_9.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-GXBiBRKS.js} +6 -6
  240. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-hHzlEQpk.js} +2 -2
  241. package/dist/cjs/loader.cjs.js +4 -4
  242. package/dist/cjs/{md.transition-D4Q5jny7.js → md.transition-B8-wBZqt.js} +8 -7
  243. package/dist/cjs/{notch-controller-fMfidI-7.js → notch-controller-18PzRGXd.js} +1 -1
  244. package/dist/cjs/{overlays-C2qrqpHm.js → overlays-DdtIYQUH.js} +33 -48
  245. package/dist/cjs/{status-tap-CgjQ-6jq.js → status-tap-N1kaBbuk.js} +3 -3
  246. package/dist/cjs/{swipe-back-CmfRYdWQ.js → swipe-back-C0GCB18x.js} +5 -5
  247. package/dist/cjs/{theme-Bw0rpaNN.js → theme-CeDs6Hcv.js} +1 -6
  248. package/dist/collection/collection-manifest.json +10 -6
  249. package/dist/collection/components/accordion/accordion.js +312 -315
  250. package/dist/collection/components/accordion-group/accordion-group.js +25 -48
  251. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -228
  252. package/dist/collection/components/action-sheet/action-sheet.js +64 -173
  253. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -174
  254. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  255. package/dist/collection/components/alert/alert.ios.css +10 -279
  256. package/dist/collection/components/alert/alert.js +97 -257
  257. package/dist/collection/components/alert/alert.md.css +20 -268
  258. package/dist/collection/components/app/app.js +0 -3
  259. package/dist/collection/components/back-button/back-button.js +19 -42
  260. package/dist/collection/components/backdrop/backdrop.js +14 -16
  261. package/dist/collection/components/badge/badge.js +0 -6
  262. package/dist/collection/components/breadcrumb/breadcrumb.js +30 -91
  263. package/dist/collection/components/breadcrumbs/breadcrumbs.js +88 -103
  264. package/dist/collection/components/button/button.js +61 -132
  265. package/dist/collection/components/buttons/buttons.js +15 -13
  266. package/dist/collection/components/card/card.js +21 -54
  267. package/dist/collection/components/card-header/card-header.js +8 -12
  268. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  269. package/dist/collection/components/card-title/card-title.js +0 -6
  270. package/dist/collection/components/checkbox/checkbox.js +97 -147
  271. package/dist/collection/components/chip/chip.js +10 -14
  272. package/dist/collection/components/col/col.js +3 -127
  273. package/dist/collection/components/content/content.js +64 -92
  274. package/dist/collection/components/datetime/datetime.ios.css +2 -42
  275. package/dist/collection/components/datetime/datetime.js +812 -1047
  276. package/dist/collection/components/datetime/datetime.md.css +1 -42
  277. package/dist/collection/components/datetime/utils/data.js +14 -13
  278. package/dist/collection/components/datetime/utils/format.js +11 -21
  279. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  280. package/dist/collection/components/datetime/utils/parse.js +10 -10
  281. package/dist/collection/components/datetime/utils/state.js +2 -8
  282. package/dist/collection/components/datetime/utils/validate.js +5 -4
  283. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -5
  284. package/dist/collection/components/datetime-button/datetime-button.js +237 -247
  285. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -5
  286. package/dist/collection/components/fab/fab.js +13 -20
  287. package/dist/collection/components/fab-button/fab-button.js +55 -104
  288. package/dist/collection/components/fab-list/fab-list.js +11 -10
  289. package/dist/collection/components/footer/footer.js +44 -50
  290. package/dist/collection/components/grid/grid.js +6 -4
  291. package/dist/collection/components/header/header.js +25 -35
  292. package/dist/collection/components/img/img.js +10 -34
  293. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  294. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  295. package/dist/collection/components/input/input.ios.css +2 -1
  296. package/dist/collection/components/input/input.js +164 -309
  297. package/dist/collection/components/input/input.md.css +2 -1
  298. package/dist/collection/components/input-otp/input-otp.js +366 -428
  299. package/dist/collection/components/input-password-toggle/input-password-toggle.js +16 -29
  300. package/dist/collection/components/item/item.js +53 -99
  301. package/dist/collection/components/item-divider/item-divider.js +10 -15
  302. package/dist/collection/components/item-option/item-option.js +21 -49
  303. package/dist/collection/components/item-options/item-options.js +7 -10
  304. package/dist/collection/components/item-sliding/item-sliding.js +20 -26
  305. package/dist/collection/components/label/label.js +4 -24
  306. package/dist/collection/components/list/list.js +7 -10
  307. package/dist/collection/components/list-header/list-header.js +0 -10
  308. package/dist/collection/components/loading/loading.js +51 -135
  309. package/dist/collection/components/menu/menu.js +59 -101
  310. package/dist/collection/components/menu-button/menu-button.js +20 -29
  311. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  312. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  313. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  314. package/dist/collection/components/modal/gestures/sheet.js +12 -29
  315. package/dist/collection/components/modal/gestures/swipe-to-close.js +5 -33
  316. package/dist/collection/components/modal/gestures/utils.js +17 -0
  317. package/dist/collection/components/modal/modal.js +224 -393
  318. package/dist/collection/components/modal/safe-area-utils.js +5 -4
  319. package/dist/collection/components/modal/test/fixtures.js +0 -3
  320. package/dist/collection/components/nav/nav.js +247 -69
  321. package/dist/collection/components/nav/view-controller.js +1 -7
  322. package/dist/collection/components/nav-link/nav-link.js +9 -20
  323. package/dist/collection/components/note/note.js +0 -6
  324. package/dist/collection/components/picker/picker.js +390 -398
  325. package/dist/collection/components/picker-column/picker-column.css +0 -3
  326. package/dist/collection/components/picker-column/picker-column.js +404 -414
  327. package/dist/collection/components/picker-column-option/picker-column-option.js +31 -33
  328. package/dist/collection/components/picker-column-option/picker-column-option.md.css +1 -6
  329. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  330. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  331. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  332. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  333. package/dist/collection/components/picker-legacy/picker.js +890 -0
  334. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  335. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  336. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  337. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  338. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  339. package/dist/collection/components/popover/animations/ios.enter.js +2 -1
  340. package/dist/collection/components/popover/animations/md.enter.js +2 -1
  341. package/dist/collection/components/popover/popover.ios.css +0 -15
  342. package/dist/collection/components/popover/popover.js +185 -302
  343. package/dist/collection/components/popover/popover.md.css +0 -15
  344. package/dist/collection/components/popover/test/fixture.js +0 -1
  345. package/dist/collection/components/popover/utils.js +6 -4
  346. package/dist/collection/components/progress-bar/progress-bar.js +23 -27
  347. package/dist/collection/components/radio/radio.js +66 -102
  348. package/dist/collection/components/radio-group/radio-group.js +65 -100
  349. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  350. package/dist/collection/components/range/range.js +232 -296
  351. package/dist/collection/components/refresher/refresher.js +80 -112
  352. package/dist/collection/components/refresher-content/refresher-content.js +4 -41
  353. package/dist/collection/components/reorder/reorder.js +1 -2
  354. package/dist/collection/components/reorder-group/reorder-group.js +15 -44
  355. package/dist/collection/components/ripple-effect/ripple-effect.js +13 -12
  356. package/dist/collection/components/route/route.js +10 -39
  357. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  358. package/dist/collection/components/router/router.js +33 -37
  359. package/dist/collection/components/router/utils/dom.js +7 -25
  360. package/dist/collection/components/router/utils/matching.js +9 -7
  361. package/dist/collection/components/router/utils/parser.js +1 -1
  362. package/dist/collection/components/router/utils/path.js +1 -0
  363. package/dist/collection/components/router-link/router-link.js +12 -37
  364. package/dist/collection/components/router-outlet/router-outlet.js +21 -82
  365. package/dist/collection/components/row/row.js +1 -1
  366. package/dist/collection/components/searchbar/searchbar.js +199 -289
  367. package/dist/collection/components/segment/segment.js +85 -120
  368. package/dist/collection/components/segment-button/segment-button.js +37 -43
  369. package/dist/collection/components/segment-content/segment-content.js +1 -1
  370. package/dist/collection/components/segment-view/segment-view.js +16 -26
  371. package/dist/collection/components/select/select.ios.css +0 -33
  372. package/dist/collection/components/select/select.js +166 -597
  373. package/dist/collection/components/select/select.md.css +0 -33
  374. package/dist/collection/components/select-modal/select-modal.ios.css +0 -218
  375. package/dist/collection/components/select-modal/select-modal.js +38 -92
  376. package/dist/collection/components/select-modal/select-modal.md.css +0 -164
  377. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  378. package/dist/collection/components/select-option/select-option.js +9 -110
  379. package/dist/collection/components/select-popover/select-popover.ios.css +0 -218
  380. package/dist/collection/components/select-popover/select-popover.js +36 -103
  381. package/dist/collection/components/select-popover/select-popover.md.css +0 -164
  382. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  383. package/dist/collection/components/skeleton-text/skeleton-text.js +8 -12
  384. package/dist/collection/components/spinner/spinner.js +9 -21
  385. package/dist/collection/components/split-pane/split-pane.js +15 -27
  386. package/dist/collection/components/tab/tab.js +6 -17
  387. package/dist/collection/components/tab-bar/tab-bar.js +14 -32
  388. package/dist/collection/components/tab-button/tab-button.js +23 -62
  389. package/dist/collection/components/tabs/tabs.js +20 -33
  390. package/dist/collection/components/text/text.js +2 -8
  391. package/dist/collection/components/textarea/textarea.js +139 -257
  392. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  393. package/dist/collection/components/title/title.js +2 -18
  394. package/dist/collection/components/toast/toast.js +106 -223
  395. package/dist/collection/components/toggle/toggle.js +115 -167
  396. package/dist/collection/components/toolbar/toolbar.js +7 -15
  397. package/dist/collection/global/config.js +6 -4
  398. package/dist/collection/global/ionic-global.js +2 -8
  399. package/dist/collection/index.js +1 -1
  400. package/dist/collection/utils/animation/animation.js +3 -3
  401. package/dist/collection/utils/config.js +4 -5
  402. package/dist/collection/utils/content/index.js +30 -0
  403. package/dist/collection/utils/focus-controller/index.js +1 -1
  404. package/dist/collection/utils/focus-trap.js +3 -3
  405. package/dist/collection/utils/framework-delegate.js +6 -4
  406. package/dist/collection/utils/gesture/gesture-controller.js +8 -15
  407. package/dist/collection/utils/gesture/index.js +2 -10
  408. package/dist/collection/utils/gesture/listener.js +1 -1
  409. package/dist/collection/utils/hardware-back-button.js +3 -3
  410. package/dist/collection/utils/helpers.js +2 -2
  411. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -4
  412. package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
  413. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  414. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  415. package/dist/collection/utils/menu-controller/index.js +2 -1
  416. package/dist/collection/utils/native/haptic.js +3 -2
  417. package/dist/collection/utils/native/keyboard.js +2 -2
  418. package/dist/collection/utils/native/status-bar.js +1 -1
  419. package/dist/collection/utils/overlays.js +23 -38
  420. package/dist/collection/utils/platform.js +5 -4
  421. package/dist/collection/utils/rtl/dir.js +1 -1
  422. package/dist/collection/utils/sanitization/index.js +20 -276
  423. package/dist/collection/utils/slot-mutation-controller.js +2 -1
  424. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  425. package/dist/collection/utils/test/playwright/drag-element.js +3 -2
  426. package/dist/collection/utils/test/playwright/generator.js +4 -3
  427. package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
  428. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
  429. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  430. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +3 -2
  431. package/dist/collection/utils/test/press-keys.js +17 -10
  432. package/dist/collection/utils/theme.js +1 -6
  433. package/dist/collection/utils/transition/ios.transition.js +13 -9
  434. package/dist/collection/utils/transition/md.transition.js +4 -3
  435. package/dist/docs.json +1267 -551
  436. package/dist/esm/{animation-CVK55yMY.js → animation-DLJpuoEz.js} +4 -4
  437. package/dist/esm/{app-globals-Bk1_t4sH.js → app-globals-D0C5S4hU.js} +1 -1
  438. package/dist/esm/{button-active-CdCqmeT0.js → button-active-BSpTQmS9.js} +3 -3
  439. package/dist/esm/config-DQCONYYp.js +195 -0
  440. package/dist/esm/{dir-B-FxiyeI.js → dir-C53feagD.js} +1 -1
  441. package/dist/esm/{format-sMi4BZ_l.js → format-CAmvpAez.js} +31 -41
  442. package/dist/esm/{framework-delegate-BfAlKlW5.js → framework-delegate-FnPGymXL.js} +7 -5
  443. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
  444. package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
  445. package/dist/esm/{hardware-back-button-DcHMMB9j.js → hardware-back-button-B93Gru0Y.js} +4 -4
  446. package/dist/esm/{helpers-BPcITY5s.js → helpers-HEqiOzXb.js} +3 -3
  447. package/dist/esm/{index-B9GsUd2c.js → index-BRHzoo00.js} +2 -2
  448. package/dist/esm/{index-DqVqy_Cy.js → index-B_dQk_WE.js} +5 -5
  449. package/dist/esm/{index-DppOcPFQ.js → index-CfgBF1SE.js} +4 -10
  450. package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
  451. package/dist/esm/{index-DcUt1pPn.js → index-Dw-wN0Ja.js} +33 -3
  452. package/dist/esm/{index-ks-BjikL.js → index-Q6UPU0Ay.js} +7 -6
  453. package/dist/esm/{index-D1CQtpUN.js → index-tcQvqkiX.js} +7 -5
  454. package/dist/esm/index.js +15 -16
  455. package/dist/esm/{input-shims-C1dCKVMO.js → input-shims-LXhI7LEx.js} +11 -9
  456. package/dist/esm/{input.utils-Dd5xwlP6.js → input.utils-Y6NgW8bw.js} +4 -3
  457. package/dist/esm/ion-accordion_2.entry.js +340 -368
  458. package/dist/esm/ion-action-sheet.entry.js +76 -187
  459. package/dist/esm/ion-alert.entry.js +110 -272
  460. package/dist/esm/ion-app_8.entry.js +190 -306
  461. package/dist/esm/ion-avatar_3.entry.js +4 -10
  462. package/dist/esm/ion-back-button.entry.js +23 -47
  463. package/dist/esm/ion-backdrop.entry.js +14 -18
  464. package/dist/esm/ion-breadcrumb_2.entry.js +121 -199
  465. package/dist/esm/ion-button_2.entry.js +66 -138
  466. package/dist/esm/ion-card_5.entry.js +30 -82
  467. package/dist/esm/ion-checkbox.entry.js +101 -152
  468. package/dist/esm/ion-chip.entry.js +11 -17
  469. package/dist/esm/ion-col_3.entry.js +10 -134
  470. package/dist/esm/ion-datetime-button.entry.js +241 -253
  471. package/dist/esm/ion-datetime_3.entry.js +3160 -0
  472. package/dist/esm/ion-fab_3.entry.js +81 -139
  473. package/dist/esm/ion-img.entry.js +12 -34
  474. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -99
  475. package/dist/esm/ion-input-otp.entry.js +370 -433
  476. package/dist/esm/ion-input-password-toggle.entry.js +19 -33
  477. package/dist/esm/ion-input.entry.js +168 -314
  478. package/dist/esm/ion-item-option_3.entry.js +51 -91
  479. package/dist/esm/ion-item_8.entry.js +82 -181
  480. package/dist/esm/ion-loading.entry.js +59 -145
  481. package/dist/esm/ion-menu_3.entry.js +101 -163
  482. package/dist/esm/ion-modal.entry.js +271 -470
  483. package/dist/esm/ion-nav_2.entry.js +157 -100
  484. package/dist/esm/ion-picker-column-option.entry.js +33 -37
  485. package/dist/esm/ion-picker-column.entry.js +405 -417
  486. package/dist/esm/ion-picker.entry.js +392 -401
  487. package/dist/esm/ion-popover.entry.js +205 -319
  488. package/dist/esm/ion-progress-bar.entry.js +25 -31
  489. package/dist/esm/ion-radio_2.entry.js +133 -206
  490. package/dist/esm/ion-range.entry.js +237 -302
  491. package/dist/esm/ion-refresher_2.entry.js +92 -164
  492. package/dist/esm/ion-reorder_2.entry.js +23 -53
  493. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  494. package/dist/esm/ion-route_4.entry.js +71 -175
  495. package/dist/esm/ion-searchbar.entry.js +200 -291
  496. package/dist/esm/ion-segment-content.entry.js +2 -2
  497. package/dist/esm/ion-segment-view.entry.js +17 -28
  498. package/dist/esm/ion-segment_2.entry.js +126 -169
  499. package/dist/esm/ion-select-modal.entry.js +48 -104
  500. package/dist/esm/ion-select_3.entry.js +215 -760
  501. package/dist/esm/ion-spinner.entry.js +10 -24
  502. package/dist/esm/ion-split-pane.entry.js +16 -29
  503. package/dist/esm/ion-tab-bar_2.entry.js +41 -100
  504. package/dist/esm/ion-tab_2.entry.js +27 -53
  505. package/dist/esm/ion-text.entry.js +5 -11
  506. package/dist/esm/ion-textarea.entry.js +144 -263
  507. package/dist/esm/ion-toast.entry.js +116 -235
  508. package/dist/esm/ion-toggle.entry.js +122 -175
  509. package/dist/esm/{ionic-global-5bZ91kOL.js → ionic-global-Cp_eT4sZ.js} +8 -13
  510. package/dist/esm/ionic.js +5 -5
  511. package/dist/esm/{ios.transition-OcwIGkv9.js → ios.transition-ClFrsIrS.js} +17 -13
  512. package/dist/esm/{item-multiple-inputs-ifd3ZrqY.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  513. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
  514. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
  515. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
  516. package/dist/esm/loader.js +5 -5
  517. package/dist/esm/{md.transition-BetdF0bc.js → md.transition-D0msQmzI.js} +8 -7
  518. package/dist/esm/{notch-controller-DBSn-Uat.js → notch-controller-DKDjU_O7.js} +1 -1
  519. package/dist/esm/{overlays-DUzb9CQf.js → overlays-Dg0q2_tJ.js} +33 -48
  520. package/dist/esm/{status-tap-C-wNhea0.js → status-tap-vO-6s4Yp.js} +3 -3
  521. package/dist/esm/{swipe-back-D6YSgAn7.js → swipe-back-DQ1q5MgD.js} +5 -5
  522. package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
  523. package/dist/html.html-data.json +80 -52
  524. package/dist/ionic/index.esm.js +1 -1
  525. package/dist/ionic/ionic.esm.js +1 -1
  526. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  527. package/dist/ionic/p-06c232a4.entry.js +4 -0
  528. package/dist/ionic/p-0caa922c.entry.js +4 -0
  529. package/dist/ionic/p-0dc33652.entry.js +4 -0
  530. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  531. package/dist/ionic/p-10e833ef.entry.js +4 -0
  532. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  533. package/dist/ionic/p-27d30585.entry.js +4 -0
  534. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  535. package/dist/ionic/p-2b204c59.entry.js +4 -0
  536. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  537. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  538. package/dist/ionic/p-3353c229.entry.js +4 -0
  539. package/dist/ionic/p-34586ead.entry.js +4 -0
  540. package/dist/ionic/p-37e720da.entry.js +4 -0
  541. package/dist/ionic/p-390ca786.entry.js +4 -0
  542. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  543. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  544. package/dist/ionic/p-4745f534.entry.js +4 -0
  545. package/dist/ionic/p-4858af1f.entry.js +4 -0
  546. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  547. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  548. package/dist/ionic/p-5018dfc8.entry.js +4 -0
  549. package/dist/ionic/p-50e1194a.entry.js +4 -0
  550. package/dist/ionic/p-5334df12.entry.js +4 -0
  551. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  552. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  553. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  554. package/dist/ionic/p-746fa988.entry.js +4 -0
  555. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  556. package/dist/ionic/p-7c319341.entry.js +4 -0
  557. package/dist/ionic/p-8158d422.entry.js +4 -0
  558. package/dist/ionic/p-829367ed.entry.js +4 -0
  559. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  560. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  561. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  562. package/dist/ionic/p-9eeaBrnk.js +4 -0
  563. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  564. package/dist/ionic/p-BGqMS-oh.js +4 -0
  565. package/dist/ionic/p-BTEOs1at.js +4 -0
  566. package/dist/ionic/p-BUFIpxKM.js +4 -0
  567. package/dist/ionic/p-C0eMdTCW.js +4 -0
  568. package/dist/ionic/p-C53feagD.js +4 -0
  569. package/dist/ionic/p-CFlfIb2g.js +4 -0
  570. package/dist/ionic/p-CKvCXMs9.js +4 -0
  571. package/dist/ionic/p-Cl0B-RWe.js +4 -0
  572. package/dist/ionic/p-CmcFnK-B.js +4 -0
  573. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  574. package/dist/ionic/p-Cx3IXROA.js +4 -0
  575. package/dist/ionic/p-D-3ycHmd.js +4 -0
  576. package/dist/ionic/p-D13Eaw-8.js +4 -0
  577. package/dist/ionic/p-D4uTWt4-.js +4 -0
  578. package/{components/p-Cwsd9bue.js → dist/ionic/p-DC3RagnA.js} +1 -1
  579. package/dist/ionic/{p-BNKr91bi.js → p-DIuEbVLu.js} +1 -1
  580. package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
  581. package/dist/ionic/p-DiVJyqlX.js +4 -0
  582. package/dist/ionic/{p-I9ETXg5W.js → p-DoJvtrbw.js} +1 -1
  583. package/dist/ionic/p-DqN5EA2O.js +4 -0
  584. package/dist/ionic/p-DzWaWHGc.js +4 -0
  585. package/{components/p-BXQ7upSC.js → dist/ionic/p-KjNvRoEp.js} +1 -1
  586. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  587. package/dist/ionic/p-SNAkTDfm.js +4 -0
  588. package/dist/ionic/p-VAemlbDS.js +4 -0
  589. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  590. package/dist/ionic/{p-460da491.entry.js → p-aaeedb6b.entry.js} +1 -1
  591. package/dist/ionic/p-af55a72f.entry.js +4 -0
  592. package/dist/ionic/p-b2020591.entry.js +4 -0
  593. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  594. package/dist/ionic/p-biz8zWmJ.js +4 -0
  595. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  596. package/dist/ionic/p-c38b648e.entry.js +4 -0
  597. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  598. package/dist/ionic/{p-b40c9715.entry.js → p-c6e49f3f.entry.js} +1 -1
  599. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  600. package/dist/ionic/p-d1aac015.entry.js +4 -0
  601. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  602. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  603. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  604. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  605. package/dist/ionic/p-mjKAFv89.js +4 -0
  606. package/dist/ionic/p-tcQvqkiX.js +5 -0
  607. package/dist/ionic/p-uWtqTrG8.js +4 -0
  608. package/dist/ionic/p-viFHDgRs.js +4 -0
  609. package/dist/ionic/p-xWb6fgfq.js +4 -0
  610. package/dist/types/components/img/img.d.ts +0 -2
  611. package/dist/types/components/input/input.d.ts +1 -1
  612. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  613. package/dist/types/components/modal/modal.d.ts +4 -11
  614. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  615. package/dist/types/components/nav/nav.d.ts +22 -2
  616. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  617. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  618. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  619. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  620. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  621. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  622. package/dist/types/components/route/route.d.ts +1 -1
  623. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  624. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  625. package/dist/types/components/select/select-interface.d.ts +0 -31
  626. package/dist/types/components/select/select.d.ts +0 -18
  627. package/dist/types/components/select-option/select-option.d.ts +1 -42
  628. package/dist/types/components.d.ts +311 -74
  629. package/dist/types/index.d.ts +1 -1
  630. package/dist/types/interface.d.ts +1 -0
  631. package/dist/types/utils/config.d.ts +8 -0
  632. package/dist/types/utils/content/index.d.ts +12 -0
  633. package/dist/types/utils/overlays.d.ts +9 -11
  634. package/dist/types/utils/sanitization/index.d.ts +2 -58
  635. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  636. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  637. package/hydrate/index.js +7103 -10331
  638. package/hydrate/index.mjs +7103 -10331
  639. package/package.json +11 -54
  640. package/components/p-0tt0PTAe.js +0 -4
  641. package/components/p-3dKnMgX5.js +0 -4
  642. package/components/p-6e_5igwn.js +0 -4
  643. package/components/p-B-FxiyeI.js +0 -4
  644. package/components/p-B4COLbAV.js +0 -4
  645. package/components/p-B9zzUBwR.js +0 -4
  646. package/components/p-BFU7kgcj.js +0 -4
  647. package/components/p-BMPN55of.js +0 -4
  648. package/components/p-BPbRjpb2.js +0 -4
  649. package/components/p-BSQPZ79H.js +0 -4
  650. package/components/p-BhamHSw3.js +0 -4
  651. package/components/p-BrXE0XUu.js +0 -4
  652. package/components/p-Bv7Rqz3Z.js +0 -4
  653. package/components/p-Bw7MMRH7.js +0 -4
  654. package/components/p-C-X5vb8f.js +0 -4
  655. package/components/p-C117Majq.js +0 -4
  656. package/components/p-CCVPk59A.js +0 -4
  657. package/components/p-CEW4RXZO.js +0 -4
  658. package/components/p-CKMc290p.js +0 -4
  659. package/components/p-CO5nI-BZ.js +0 -4
  660. package/components/p-COQ_7Wwc.js +0 -4
  661. package/components/p-CQbh6Be_.js +0 -4
  662. package/components/p-CQtcj8t7.js +0 -4
  663. package/components/p-Cap9bvqr.js +0 -4
  664. package/components/p-CdP7ze2J.js +0 -4
  665. package/components/p-CfyJ_Ogc.js +0 -4
  666. package/components/p-ChWC4-vA.js +0 -4
  667. package/components/p-CmKf4pgI.js +0 -4
  668. package/components/p-CqYSqB9_.js +0 -4
  669. package/components/p-D0xd6h3Q.js +0 -4
  670. package/components/p-D28LaDuR.js +0 -4
  671. package/components/p-D7-vHX0A.js +0 -4
  672. package/components/p-D9KqizZs.js +0 -4
  673. package/components/p-DIZE3CVV.js +0 -4
  674. package/components/p-DL8rd5jo.js +0 -4
  675. package/components/p-DRcApg6F.js +0 -4
  676. package/components/p-DTTnwMiS.js +0 -4
  677. package/components/p-DWCzVL3Y.js +0 -4
  678. package/components/p-DYmrV1HT.js +0 -4
  679. package/components/p-DnINLmwC.js +0 -4
  680. package/components/p-DsNz6_gM.js +0 -4
  681. package/components/p-DtiuiOTk.js +0 -4
  682. package/components/p-DunYzubP.js +0 -4
  683. package/components/p-DwcSJ9u1.js +0 -4
  684. package/components/p-QCPSB1bo.js +0 -4
  685. package/components/p-RvtofbHn.js +0 -4
  686. package/components/p-TXPDHL13.js +0 -4
  687. package/components/p-WOFp6fXj.js +0 -4
  688. package/components/p-byZM6qHV.js +0 -4
  689. package/components/p-miSGCTAU.js +0 -4
  690. package/components/p-mpdX3emm.js +0 -4
  691. package/components/p-nvqVLrWC.js +0 -4
  692. package/components/p-qiWM96Sz.js +0 -4
  693. package/components/p-vlF0Bcfd.js +0 -4
  694. package/dist/cjs/config-CjUbvdPW.js +0 -36
  695. package/dist/cjs/index-DhSx3VvD.js +0 -429
  696. package/dist/cjs/ion-datetime.cjs.entry.js +0 -2767
  697. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  698. package/dist/cjs/select-option-render-Dh16lTnA.js +0 -123
  699. package/dist/collection/utils/overlay-control-label.js +0 -45
  700. package/dist/collection/utils/select-option-render.js +0 -118
  701. package/dist/esm/config-DWCzVL3Y.js +0 -32
  702. package/dist/esm/index-DDa8edAS.js +0 -424
  703. package/dist/esm/ion-datetime.entry.js +0 -2765
  704. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  705. package/dist/esm/select-option-render-DsW8svRr.js +0 -121
  706. package/dist/ionic/p-01eaee58.entry.js +0 -4
  707. package/dist/ionic/p-0c567140.entry.js +0 -4
  708. package/dist/ionic/p-105bb794.entry.js +0 -4
  709. package/dist/ionic/p-10d55bb6.entry.js +0 -4
  710. package/dist/ionic/p-173a87d8.entry.js +0 -4
  711. package/dist/ionic/p-178da672.entry.js +0 -4
  712. package/dist/ionic/p-1ead2857.entry.js +0 -4
  713. package/dist/ionic/p-224e2464.entry.js +0 -4
  714. package/dist/ionic/p-2268e718.entry.js +0 -4
  715. package/dist/ionic/p-2b5283f3.entry.js +0 -4
  716. package/dist/ionic/p-2b6decac.entry.js +0 -4
  717. package/dist/ionic/p-2da5d9c6.entry.js +0 -4
  718. package/dist/ionic/p-31890acd.entry.js +0 -4
  719. package/dist/ionic/p-34ef7425.entry.js +0 -4
  720. package/dist/ionic/p-34f7c1d8.entry.js +0 -4
  721. package/dist/ionic/p-3b1e6fa4.entry.js +0 -4
  722. package/dist/ionic/p-42fefd2c.entry.js +0 -4
  723. package/dist/ionic/p-440cd489.entry.js +0 -4
  724. package/dist/ionic/p-53f680e8.entry.js +0 -4
  725. package/dist/ionic/p-57ba508f.entry.js +0 -4
  726. package/dist/ionic/p-599e5a75.entry.js +0 -4
  727. package/dist/ionic/p-5f670a9e.entry.js +0 -4
  728. package/dist/ionic/p-63502088.entry.js +0 -4
  729. package/dist/ionic/p-6e6bf45d.entry.js +0 -4
  730. package/dist/ionic/p-6f0b6a48.entry.js +0 -4
  731. package/dist/ionic/p-7438c462.entry.js +0 -4
  732. package/dist/ionic/p-747716e7.entry.js +0 -4
  733. package/dist/ionic/p-7759fcaf.entry.js +0 -4
  734. package/dist/ionic/p-7a8338e2.entry.js +0 -4
  735. package/dist/ionic/p-80f9f1dc.entry.js +0 -4
  736. package/dist/ionic/p-83ff4dcb.entry.js +0 -4
  737. package/dist/ionic/p-86f03895.entry.js +0 -4
  738. package/dist/ionic/p-87b8d70e.entry.js +0 -4
  739. package/dist/ionic/p-888236bf.entry.js +0 -4
  740. package/dist/ionic/p-8a92ca23.entry.js +0 -4
  741. package/dist/ionic/p-8c9af4ad.entry.js +0 -4
  742. package/dist/ionic/p-9669f546.entry.js +0 -4
  743. package/dist/ionic/p-9bcd8b74.entry.js +0 -4
  744. package/dist/ionic/p-B-FxiyeI.js +0 -4
  745. package/dist/ionic/p-B2trYd8K.js +0 -4
  746. package/dist/ionic/p-BMPN55of.js +0 -4
  747. package/dist/ionic/p-BSQPZ79H.js +0 -4
  748. package/dist/ionic/p-BSzG1VcX.js +0 -4
  749. package/dist/ionic/p-BVgBHS96.js +0 -4
  750. package/dist/ionic/p-BX2IOAqC.js +0 -4
  751. package/dist/ionic/p-BhamHSw3.js +0 -4
  752. package/dist/ionic/p-BufXJ_A8.js +0 -4
  753. package/dist/ionic/p-C73UOs4m.js +0 -4
  754. package/dist/ionic/p-CUSwMljM.js +0 -4
  755. package/dist/ionic/p-CeOSrSdu.js +0 -4
  756. package/dist/ionic/p-CfkB7_FV.js +0 -4
  757. package/dist/ionic/p-CmKf4pgI.js +0 -4
  758. package/dist/ionic/p-CnM-CMw7.js +0 -4
  759. package/dist/ionic/p-D1CQtpUN.js +0 -5
  760. package/dist/ionic/p-D5t_-oMk.js +0 -4
  761. package/dist/ionic/p-DVYb1IVZ.js +0 -4
  762. package/dist/ionic/p-DWCzVL3Y.js +0 -4
  763. package/dist/ionic/p-DfJ-SVJf.js +0 -4
  764. package/dist/ionic/p-DmXrLsoD.js +0 -4
  765. package/dist/ionic/p-DtLHAMFW.js +0 -4
  766. package/dist/ionic/p-Dtlob2JL.js +0 -4
  767. package/dist/ionic/p-F7ipfyOA.js +0 -4
  768. package/dist/ionic/p-IaXd5VMv.js +0 -4
  769. package/dist/ionic/p-T71k3C35.js +0 -4
  770. package/dist/ionic/p-TXPDHL13.js +0 -4
  771. package/dist/ionic/p-acbb97c3.entry.js +0 -4
  772. package/dist/ionic/p-aeb85531.entry.js +0 -4
  773. package/dist/ionic/p-b157f80d.entry.js +0 -4
  774. package/dist/ionic/p-b158de5d.entry.js +0 -4
  775. package/dist/ionic/p-b852101e.entry.js +0 -4
  776. package/dist/ionic/p-byZM6qHV.js +0 -4
  777. package/dist/ionic/p-c0d81bee.entry.js +0 -4
  778. package/dist/ionic/p-c8a327fb.entry.js +0 -4
  779. package/dist/ionic/p-d42ae99f.entry.js +0 -4
  780. package/dist/ionic/p-d47ff529.entry.js +0 -4
  781. package/dist/ionic/p-eHi73fGE.js +0 -4
  782. package/dist/ionic/p-eeabce92.entry.js +0 -4
  783. package/dist/ionic/p-efc66d77.entry.js +0 -4
  784. package/dist/ionic/p-f6d203dc.entry.js +0 -4
  785. package/dist/ionic/p-u2a770LZ.js +0 -4
  786. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  787. package/dist/types/utils/select-option-render.d.ts +0 -53
  788. /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
@@ -0,0 +1,422 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { Host, h } from "@stencil/core";
5
+ import { clamp } from "../../utils/helpers";
6
+ import { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from "../../utils/native/haptic";
7
+ import { getClassMap } from "../../utils/theme";
8
+ import { getIonMode } from "../../global/ionic-global";
9
+ /**
10
+ * @internal
11
+ */
12
+ export class PickerColumnCmp {
13
+ constructor() {
14
+ this.optHeight = 0;
15
+ this.rotateFactor = 0;
16
+ this.scaleFactor = 1;
17
+ this.velocity = 0;
18
+ this.y = 0;
19
+ this.noAnimate = true;
20
+ // `colDidChange` is a flag that gets set when the column is changed
21
+ // dynamically. When this flag is set, the column will refresh
22
+ // after the component re-renders to incorporate the new column data.
23
+ // This is necessary because `this.refresh` queries for the option elements,
24
+ // so it needs to wait for the latest elements to be available in the DOM.
25
+ // Ex: column is created with 3 options. User updates the column data
26
+ // to have 5 options. The column will still think it only has 3 options.
27
+ this.colDidChange = false;
28
+ }
29
+ colChanged() {
30
+ this.colDidChange = true;
31
+ }
32
+ async connectedCallback() {
33
+ let pickerRotateFactor = 0;
34
+ let pickerScaleFactor = 0.81;
35
+ const mode = getIonMode(this);
36
+ if (mode === 'ios') {
37
+ pickerRotateFactor = -0.46;
38
+ pickerScaleFactor = 1;
39
+ }
40
+ this.rotateFactor = pickerRotateFactor;
41
+ this.scaleFactor = pickerScaleFactor;
42
+ this.gesture = (await import('../../utils/gesture')).createGesture({
43
+ el: this.el,
44
+ gestureName: 'picker-swipe',
45
+ gesturePriority: 100,
46
+ threshold: 0,
47
+ passive: false,
48
+ onStart: (ev) => this.onStart(ev),
49
+ onMove: (ev) => this.onMove(ev),
50
+ onEnd: (ev) => this.onEnd(ev),
51
+ });
52
+ this.gesture.enable();
53
+ // Options have not been initialized yet
54
+ // Animation must be disabled through the `noAnimate` flag
55
+ // Otherwise, the options will render
56
+ // at the top of the column and transition down
57
+ this.tmrId = setTimeout(() => {
58
+ this.noAnimate = false;
59
+ // After initialization, `refresh()` will be called
60
+ // At this point, animation will be enabled. The options will
61
+ // animate as they are being selected.
62
+ this.refresh(true);
63
+ }, 250);
64
+ }
65
+ componentDidLoad() {
66
+ this.onDomChange();
67
+ }
68
+ componentDidUpdate() {
69
+ // Options may have changed since last update.
70
+ if (this.colDidChange) {
71
+ // Animation must be disabled through the `onDomChange` parameter.
72
+ // Otherwise, the recently added options will render
73
+ // at the top of the column and transition down
74
+ this.onDomChange(true, false);
75
+ this.colDidChange = false;
76
+ }
77
+ }
78
+ disconnectedCallback() {
79
+ if (this.rafId !== undefined)
80
+ cancelAnimationFrame(this.rafId);
81
+ if (this.tmrId)
82
+ clearTimeout(this.tmrId);
83
+ if (this.gesture) {
84
+ this.gesture.destroy();
85
+ this.gesture = undefined;
86
+ }
87
+ }
88
+ emitColChange() {
89
+ this.ionPickerColChange.emit(this.col);
90
+ }
91
+ setSelected(selectedIndex, duration) {
92
+ // if there is a selected index, then figure out it's y position
93
+ // if there isn't a selected index, then just use the top y position
94
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
95
+ this.velocity = 0;
96
+ // set what y position we're at
97
+ if (this.rafId !== undefined)
98
+ cancelAnimationFrame(this.rafId);
99
+ this.update(y, duration, true);
100
+ this.emitColChange();
101
+ }
102
+ update(y, duration, saveY) {
103
+ if (!this.optsEl) {
104
+ return;
105
+ }
106
+ // ensure we've got a good round number :)
107
+ let translateY = 0;
108
+ let translateZ = 0;
109
+ const { col, rotateFactor } = this;
110
+ const prevSelected = col.selectedIndex;
111
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
112
+ const durationStr = duration === 0 ? '' : duration + 'ms';
113
+ const scaleStr = `scale(${this.scaleFactor})`;
114
+ const children = this.optsEl.children;
115
+ for (let i = 0; i < children.length; i++) {
116
+ const button = children[i];
117
+ const opt = col.options[i];
118
+ const optOffset = i * this.optHeight + y;
119
+ let transform = '';
120
+ if (rotateFactor !== 0) {
121
+ const rotateX = optOffset * rotateFactor;
122
+ if (Math.abs(rotateX) <= 90) {
123
+ translateY = 0;
124
+ translateZ = 90;
125
+ transform = `rotateX(${rotateX}deg) `;
126
+ }
127
+ else {
128
+ translateY = -9999;
129
+ }
130
+ }
131
+ else {
132
+ translateZ = 0;
133
+ translateY = optOffset;
134
+ }
135
+ const selected = selectedIndex === i;
136
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
137
+ if (this.scaleFactor !== 1 && !selected) {
138
+ transform += scaleStr;
139
+ }
140
+ // Update transition duration
141
+ if (this.noAnimate) {
142
+ opt.duration = 0;
143
+ button.style.transitionDuration = '';
144
+ }
145
+ else if (duration !== opt.duration) {
146
+ opt.duration = duration;
147
+ button.style.transitionDuration = durationStr;
148
+ }
149
+ // Update transform
150
+ if (transform !== opt.transform) {
151
+ opt.transform = transform;
152
+ }
153
+ button.style.transform = transform;
154
+ /**
155
+ * Ensure that the select column
156
+ * item has the selected class
157
+ */
158
+ opt.selected = selected;
159
+ if (selected) {
160
+ button.classList.add(PICKER_OPT_SELECTED);
161
+ }
162
+ else {
163
+ button.classList.remove(PICKER_OPT_SELECTED);
164
+ }
165
+ }
166
+ this.col.prevSelected = prevSelected;
167
+ if (saveY) {
168
+ this.y = y;
169
+ }
170
+ if (this.lastIndex !== selectedIndex) {
171
+ // have not set a last index yet
172
+ hapticSelectionChanged();
173
+ this.lastIndex = selectedIndex;
174
+ }
175
+ }
176
+ decelerate() {
177
+ if (this.velocity !== 0) {
178
+ // still decelerating
179
+ this.velocity *= DECELERATION_FRICTION;
180
+ // do not let it go slower than a velocity of 1
181
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
182
+ let y = this.y + this.velocity;
183
+ if (y > this.minY) {
184
+ // whoops, it's trying to scroll up farther than the options we have!
185
+ y = this.minY;
186
+ this.velocity = 0;
187
+ }
188
+ else if (y < this.maxY) {
189
+ // gahh, it's trying to scroll down farther than we can!
190
+ y = this.maxY;
191
+ this.velocity = 0;
192
+ }
193
+ this.update(y, 0, true);
194
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
195
+ if (notLockedIn) {
196
+ // isn't locked in yet, keep decelerating until it is
197
+ this.rafId = requestAnimationFrame(() => this.decelerate());
198
+ }
199
+ else {
200
+ this.velocity = 0;
201
+ this.emitColChange();
202
+ hapticSelectionEnd();
203
+ }
204
+ }
205
+ else if (this.y % this.optHeight !== 0) {
206
+ // needs to still get locked into a position so options line up
207
+ const currentPos = Math.abs(this.y % this.optHeight);
208
+ // create a velocity in the direction it needs to scroll
209
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
210
+ this.decelerate();
211
+ }
212
+ }
213
+ indexForY(y) {
214
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
215
+ }
216
+ onStart(detail) {
217
+ // We have to prevent default in order to block scrolling under the picker
218
+ // but we DO NOT have to stop propagation, since we still want
219
+ // some "click" events to capture
220
+ if (detail.event.cancelable) {
221
+ detail.event.preventDefault();
222
+ }
223
+ detail.event.stopPropagation();
224
+ hapticSelectionStart();
225
+ // reset everything
226
+ if (this.rafId !== undefined)
227
+ cancelAnimationFrame(this.rafId);
228
+ const options = this.col.options;
229
+ let minY = options.length - 1;
230
+ let maxY = 0;
231
+ for (let i = 0; i < options.length; i++) {
232
+ if (!options[i].disabled) {
233
+ minY = Math.min(minY, i);
234
+ maxY = Math.max(maxY, i);
235
+ }
236
+ }
237
+ this.minY = -(minY * this.optHeight);
238
+ this.maxY = -(maxY * this.optHeight);
239
+ }
240
+ onMove(detail) {
241
+ if (detail.event.cancelable) {
242
+ detail.event.preventDefault();
243
+ }
244
+ detail.event.stopPropagation();
245
+ // update the scroll position relative to pointer start position
246
+ let y = this.y + detail.deltaY;
247
+ if (y > this.minY) {
248
+ // scrolling up higher than scroll area
249
+ y = Math.pow(y, 0.8);
250
+ this.bounceFrom = y;
251
+ }
252
+ else if (y < this.maxY) {
253
+ // scrolling down below scroll area
254
+ y += Math.pow(this.maxY - y, 0.9);
255
+ this.bounceFrom = y;
256
+ }
257
+ else {
258
+ this.bounceFrom = 0;
259
+ }
260
+ this.update(y, 0, false);
261
+ }
262
+ onEnd(detail) {
263
+ if (this.bounceFrom > 0) {
264
+ // bounce back up
265
+ this.update(this.minY, 100, true);
266
+ this.emitColChange();
267
+ return;
268
+ }
269
+ else if (this.bounceFrom < 0) {
270
+ // bounce back down
271
+ this.update(this.maxY, 100, true);
272
+ this.emitColChange();
273
+ return;
274
+ }
275
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
276
+ if (this.velocity === 0 && detail.deltaY === 0) {
277
+ const opt = detail.event.target.closest('.picker-opt');
278
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
279
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
280
+ }
281
+ }
282
+ else {
283
+ this.y += detail.deltaY;
284
+ if (Math.abs(detail.velocityY) < 0.05) {
285
+ const isScrollingUp = detail.deltaY > 0;
286
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
287
+ if (isScrollingUp && optHeightFraction > 0.5) {
288
+ this.velocity = Math.abs(this.velocity) * -1;
289
+ }
290
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
291
+ this.velocity = Math.abs(this.velocity);
292
+ }
293
+ }
294
+ this.decelerate();
295
+ }
296
+ }
297
+ refresh(forceRefresh, animated) {
298
+ var _a;
299
+ let min = this.col.options.length - 1;
300
+ let max = 0;
301
+ const options = this.col.options;
302
+ for (let i = 0; i < options.length; i++) {
303
+ if (!options[i].disabled) {
304
+ min = Math.min(min, i);
305
+ max = Math.max(max, i);
306
+ }
307
+ }
308
+ /**
309
+ * Only update selected value if column has a
310
+ * velocity of 0. If it does not, then the
311
+ * column is animating might land on
312
+ * a value different than the value at
313
+ * selectedIndex
314
+ */
315
+ if (this.velocity !== 0) {
316
+ return;
317
+ }
318
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
319
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
320
+ const y = selectedIndex * this.optHeight * -1;
321
+ const duration = animated ? TRANSITION_DURATION : 0;
322
+ this.velocity = 0;
323
+ this.update(y, duration, true);
324
+ }
325
+ }
326
+ onDomChange(forceRefresh, animated) {
327
+ const colEl = this.optsEl;
328
+ if (colEl) {
329
+ // DOM READ
330
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
331
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
332
+ }
333
+ this.refresh(forceRefresh, animated);
334
+ }
335
+ render() {
336
+ const col = this.col;
337
+ const mode = getIonMode(this);
338
+ return (h(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
339
+ 'max-width': this.col.columnWidth,
340
+ } }, col.prefix && (h("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
341
+ }
342
+ static get is() { return "ion-picker-legacy-column"; }
343
+ static get originalStyleUrls() {
344
+ return {
345
+ "ios": ["picker-column.ios.scss"],
346
+ "md": ["picker-column.md.scss"]
347
+ };
348
+ }
349
+ static get styleUrls() {
350
+ return {
351
+ "ios": ["picker-column.ios.css"],
352
+ "md": ["picker-column.md.css"]
353
+ };
354
+ }
355
+ static get properties() {
356
+ return {
357
+ "col": {
358
+ "type": "unknown",
359
+ "mutable": false,
360
+ "complexType": {
361
+ "original": "PickerColumn",
362
+ "resolved": "PickerColumn",
363
+ "references": {
364
+ "PickerColumn": {
365
+ "location": "import",
366
+ "path": "../picker-legacy/picker-interface",
367
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn",
368
+ "referenceLocation": "PickerColumn"
369
+ }
370
+ }
371
+ },
372
+ "required": true,
373
+ "optional": false,
374
+ "docs": {
375
+ "tags": [],
376
+ "text": "Picker column data"
377
+ },
378
+ "getter": false,
379
+ "setter": false
380
+ }
381
+ };
382
+ }
383
+ static get events() {
384
+ return [{
385
+ "method": "ionPickerColChange",
386
+ "name": "ionPickerColChange",
387
+ "bubbles": true,
388
+ "cancelable": true,
389
+ "composed": true,
390
+ "docs": {
391
+ "tags": [{
392
+ "name": "internal",
393
+ "text": undefined
394
+ }],
395
+ "text": "Emitted when the selected value has changed"
396
+ },
397
+ "complexType": {
398
+ "original": "PickerColumn",
399
+ "resolved": "PickerColumn",
400
+ "references": {
401
+ "PickerColumn": {
402
+ "location": "import",
403
+ "path": "../picker-legacy/picker-interface",
404
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn",
405
+ "referenceLocation": "PickerColumn"
406
+ }
407
+ }
408
+ }
409
+ }];
410
+ }
411
+ static get elementRef() { return "el"; }
412
+ static get watchers() {
413
+ return [{
414
+ "propName": "col",
415
+ "methodName": "colChanged"
416
+ }];
417
+ }
418
+ }
419
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
420
+ const DECELERATION_FRICTION = 0.97;
421
+ const MAX_PICKER_SPEED = 90;
422
+ const TRANSITION_DURATION = 150;
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
34
+ /**
35
+ * A heuristic that applies CSS to tablet
36
+ * viewports.
37
+ *
38
+ * Usage:
39
+ * @include tablet-viewport() {
40
+ * :host {
41
+ * background-color: green;
42
+ * }
43
+ * }
44
+ */
45
+ /**
46
+ * A heuristic that applies CSS to mobile
47
+ * viewports (i.e. phones, not tablets).
48
+ *
49
+ * Usage:
50
+ * @include mobile-viewport() {
51
+ * :host {
52
+ * background-color: blue;
53
+ * }
54
+ * }
55
+ */
56
+ .picker-col {
57
+ display: flex;
58
+ position: relative;
59
+ flex: 1;
60
+ justify-content: center;
61
+ height: 100%;
62
+ box-sizing: content-box;
63
+ contain: content;
64
+ }
65
+
66
+ .picker-opts {
67
+ position: relative;
68
+ flex: 1;
69
+ max-width: 100%;
70
+ }
71
+
72
+ .picker-opt {
73
+ top: 0;
74
+ display: block;
75
+ position: absolute;
76
+ width: 100%;
77
+ border: 0;
78
+ text-align: center;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ contain: strict;
82
+ overflow: hidden;
83
+ will-change: transform;
84
+ }
85
+ .picker-opt {
86
+ inset-inline-start: 0;
87
+ }
88
+
89
+ .picker-opt.picker-opt-disabled {
90
+ pointer-events: none;
91
+ }
92
+
93
+ .picker-opt-disabled {
94
+ opacity: 0;
95
+ }
96
+
97
+ .picker-opts-left {
98
+ justify-content: flex-start;
99
+ }
100
+
101
+ .picker-opts-right {
102
+ justify-content: flex-end;
103
+ }
104
+
105
+ .picker-opt:active, .picker-opt:focus {
106
+ outline: none;
107
+ }
108
+
109
+ .picker-prefix {
110
+ position: relative;
111
+ flex: 1;
112
+ text-align: end;
113
+ white-space: nowrap;
114
+ }
115
+
116
+ .picker-suffix {
117
+ position: relative;
118
+ flex: 1;
119
+ text-align: start;
120
+ white-space: nowrap;
121
+ }
122
+
123
+ /**
124
+ * Convert a font size to a dynamic font size.
125
+ * Fonts that participate in Dynamic Type should use
126
+ * dynamic font sizes.
127
+ * @param size - The initial font size including the unit (i.e. px or pt)
128
+ * @param unit (optional) - The unit to convert to. Use this if you want to
129
+ * convert to a unit other than $baselineUnit.
130
+ */
131
+ /**
132
+ * Convert a font size to a dynamic font size but impose
133
+ * a maximum font size.
134
+ * @param size - The initial font size including the unit (i.e. px or pt)
135
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
136
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
137
+ * convert to a unit other than $baselineUnit.
138
+ */
139
+ /**
140
+ * Convert a font size to a dynamic font size but impose
141
+ * a minimum font size.
142
+ * @param size - The initial font size including the unit (i.e. px or pt)
143
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
144
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
145
+ * convert to a unit other than $baselineUnit.
146
+ */
147
+ /**
148
+ * Convert a font size to a dynamic font size but impose
149
+ * maximum and minimum font sizes.
150
+ * @param size - The initial font size including the unit (i.e. px or pt)
151
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
152
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
153
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
154
+ * convert to a unit other than $baselineUnit.
155
+ */
156
+ /**
157
+ * A heuristic that applies CSS to tablet
158
+ * viewports.
159
+ *
160
+ * Usage:
161
+ * @include tablet-viewport() {
162
+ * :host {
163
+ * background-color: green;
164
+ * }
165
+ * }
166
+ */
167
+ /**
168
+ * A heuristic that applies CSS to mobile
169
+ * viewports (i.e. phones, not tablets).
170
+ *
171
+ * Usage:
172
+ * @include mobile-viewport() {
173
+ * :host {
174
+ * background-color: blue;
175
+ * }
176
+ * }
177
+ */
178
+ .picker-col {
179
+ -webkit-padding-start: 8px;
180
+ padding-inline-start: 8px;
181
+ -webkit-padding-end: 8px;
182
+ padding-inline-end: 8px;
183
+ padding-top: 0;
184
+ padding-bottom: 0;
185
+ transform-style: preserve-3d;
186
+ }
187
+
188
+ .picker-prefix,
189
+ .picker-suffix,
190
+ .picker-opts {
191
+ top: 77px;
192
+ transform-style: preserve-3d;
193
+ color: inherit;
194
+ font-size: 22px;
195
+ line-height: 42px;
196
+ pointer-events: none;
197
+ }
198
+
199
+ .picker-opt {
200
+ margin-left: 0;
201
+ margin-right: 0;
202
+ margin-top: 0;
203
+ margin-bottom: 0;
204
+ padding-left: 0;
205
+ padding-right: 0;
206
+ padding-top: 0;
207
+ padding-bottom: 0;
208
+ height: 43px;
209
+ transition-timing-function: ease-out;
210
+ background: transparent;
211
+ color: inherit;
212
+ font-size: 22px;
213
+ line-height: 42px;
214
+ backface-visibility: hidden;
215
+ pointer-events: auto;
216
+ }
217
+
218
+ .picker-prefix,
219
+ .picker-suffix,
220
+ .picker-opt.picker-opt-selected {
221
+ color: var(--ion-color-primary, #0054e9);
222
+ }
@@ -0,0 +1,43 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ /**
6
+ * Visual regression tests for picker-column.
7
+ * @param page - The page to run the tests on.
8
+ * @param screenshot - The screenshot function to generate unique screenshot names
9
+ * @param buttonSelector - The selector for the button that opens the picker.
10
+ * @param description - The description to amend to the screenshot names (typically 'single' or 'multiple').
11
+ */
12
+ export async function testPickerColumn(page, screenshot, buttonSelector, description) {
13
+ const ionPickerDidPresentSpy = await page.spyOnEvent('ionPickerDidPresent');
14
+ await page.click(buttonSelector);
15
+ await ionPickerDidPresentSpy.next();
16
+ await page.waitForChanges();
17
+ await expect(page).toHaveScreenshot(screenshot(`picker-${description}-column-initial`));
18
+ // TODO FW-3403
19
+ /*
20
+ const columns = page.locator('.picker-opt-selected');
21
+ const spy = await page.spyOnEvent('ionPickerColChange');
22
+
23
+ const screenshots = [];
24
+
25
+ for (let i = 0; i < (await columns.count()); i++) {
26
+ const column = columns.nth(i);
27
+
28
+ await dragElementBy(column, page, 0, -100);
29
+ await spy.next();
30
+
31
+ await page.waitForChanges();
32
+
33
+ screenshots.push({
34
+ name: screenshot(`picker-${description}-column-diff-${i}`),
35
+ screenshot: await page.screenshot(),
36
+ });
37
+ }
38
+
39
+ for (const screenshot of screenshots) {
40
+ expect(screenshot.screenshot).toMatchSnapshot(screenshot.name);
41
+ }
42
+ */
43
+ }
@@ -19,6 +19,7 @@ const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
19
19
  */
20
20
  // TODO(FW-2832): types
21
21
  export const iosEnterAnimation = (baseEl, opts) => {
22
+ var _a;
22
23
  const { event: ev, size, trigger, reference, side, align } = opts;
23
24
  const doc = baseEl.ownerDocument;
24
25
  const isRTL = doc.dir === 'rtl';
@@ -27,7 +28,7 @@ export const iosEnterAnimation = (baseEl, opts) => {
27
28
  const root = getElementRoot(baseEl);
28
29
  const contentEl = root.querySelector('.popover-content');
29
30
  const arrowEl = root.querySelector('.popover-arrow');
30
- const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
31
+ const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
31
32
  const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
32
33
  const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);
33
34
  const defaultPosition = {