@ionic/core 7.5.7-dev.11700601419.1c57af2e → 7.5.7-dev.11701113479.149fdab6

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 (239) hide show
  1. package/components/alert.js +1 -1
  2. package/components/backdrop.js +0 -12
  3. package/components/gesture-controller.js +1 -1
  4. package/components/ion-content.js +1 -1
  5. package/components/ion-datetime.js +29 -62
  6. package/components/ion-infinite-scroll.js +3 -11
  7. package/components/ion-picker-legacy-column.d.ts +11 -0
  8. package/components/{ion-picker-column.js → ion-picker-legacy-column.js} +2 -2
  9. package/components/{ion-picker-column.d.ts → ion-picker-legacy.d.ts} +4 -4
  10. package/components/ion-picker-legacy.js +309 -0
  11. package/components/overlays.js +11 -4
  12. package/components/picker-column-internal.js +12 -7
  13. package/components/picker-column.js +3 -3
  14. package/dist/cjs/{button-active-af897e0e.js → button-active-cd07b55b.js} +1 -1
  15. package/dist/cjs/{gesture-controller-b46721be.js → gesture-controller-d6a3f907.js} +1 -0
  16. package/dist/cjs/{index-0ee995e4.js → index-0f8b33f8.js} +1 -1
  17. package/dist/cjs/index.cjs.js +3 -3
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  19. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  20. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  22. package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -43
  23. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -11
  24. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-loading.cjs.entry.js +2 -1
  26. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  27. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  28. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +11 -7
  30. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  31. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  32. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  34. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-select_3.cjs.entry.js +2 -1
  36. package/dist/cjs/ion-toast.cjs.entry.js +2 -1
  37. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  38. package/dist/cjs/ionic.cjs.js +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/{overlays-2ffc5f27.js → overlays-dbb71984.js} +11 -4
  41. package/dist/cjs/{swipe-back-d0412fb6.js → swipe-back-a6dc6e5d.js} +2 -2
  42. package/dist/collection/collection-manifest.json +6 -6
  43. package/dist/collection/components/alert/alert.ios.css +10 -0
  44. package/dist/collection/components/backdrop/backdrop.js +0 -12
  45. package/dist/collection/components/content/content.css +0 -4
  46. package/dist/collection/components/datetime/datetime.ios.css +83 -24
  47. package/dist/collection/components/datetime/datetime.js +19 -34
  48. package/dist/collection/components/datetime/datetime.md.css +88 -24
  49. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  50. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  51. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  52. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +33 -0
  53. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  54. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  55. package/dist/collection/components/infinite-scroll/infinite-scroll.js +3 -11
  56. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +11 -3
  57. package/dist/collection/components/picker-column-internal/picker-column-internal.js +27 -5
  58. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +11 -3
  59. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +34 -5
  60. package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.js +5 -5
  61. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column-aria.spec.js +3 -3
  62. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column-dynamic.spec.js +2 -2
  63. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column.spec.js +2 -2
  64. package/dist/collection/components/{picker-column → picker-column-legacy}/test/standalone/picker-column.e2e.js +3 -3
  65. package/dist/collection/components/{picker → picker-legacy}/picker.js +7 -5
  66. package/dist/collection/components/{picker → picker-legacy}/test/basic/picker.e2e.js +2 -2
  67. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  68. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  69. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  70. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  71. package/dist/collection/utils/overlays.js +11 -4
  72. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  73. package/dist/docs.json +32 -43
  74. package/dist/esm/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  75. package/dist/esm/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  76. package/dist/esm/{index-ff313b19.js → index-32cbee52.js} +2 -2
  77. package/dist/esm/index.js +3 -3
  78. package/dist/esm/ion-action-sheet.entry.js +4 -4
  79. package/dist/esm/ion-alert.entry.js +5 -5
  80. package/dist/esm/ion-app_8.entry.js +2 -2
  81. package/dist/esm/ion-backdrop.entry.js +0 -12
  82. package/dist/esm/ion-datetime_3.entry.js +29 -42
  83. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -11
  84. package/dist/esm/ion-item-option_3.entry.js +1 -1
  85. package/dist/esm/ion-loading.entry.js +2 -1
  86. package/dist/esm/ion-menu_3.entry.js +3 -3
  87. package/dist/esm/ion-modal.entry.js +3 -3
  88. package/dist/esm/ion-nav_2.entry.js +1 -1
  89. package/dist/esm/ion-picker-column-internal.entry.js +11 -7
  90. package/dist/esm/ion-popover.entry.js +2 -1
  91. package/dist/esm/ion-range.entry.js +1 -1
  92. package/dist/esm/ion-refresher_2.entry.js +3 -3
  93. package/dist/esm/ion-reorder_2.entry.js +1 -1
  94. package/dist/esm/ion-segment_2.entry.js +1 -1
  95. package/dist/esm/ion-select_3.entry.js +2 -1
  96. package/dist/esm/ion-toast.entry.js +2 -1
  97. package/dist/esm/ion-toggle.entry.js +1 -1
  98. package/dist/esm/ionic.js +1 -1
  99. package/dist/esm/loader.js +1 -1
  100. package/dist/esm/{overlays-6c9feb7e.js → overlays-789cd7a7.js} +11 -4
  101. package/dist/esm/{swipe-back-0f3bfc8e.js → swipe-back-cc4c2bcb.js} +2 -2
  102. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  103. package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  104. package/dist/esm-es5/{index-ff313b19.js → index-32cbee52.js} +1 -1
  105. package/dist/esm-es5/index.js +1 -1
  106. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  107. package/dist/esm-es5/ion-alert.entry.js +1 -1
  108. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  109. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  110. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  111. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  112. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  113. package/dist/esm-es5/ion-loading.entry.js +1 -1
  114. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  115. package/dist/esm-es5/ion-modal.entry.js +1 -1
  116. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  117. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  118. package/dist/esm-es5/ion-popover.entry.js +1 -1
  119. package/dist/esm-es5/ion-range.entry.js +1 -1
  120. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  121. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  122. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  123. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  124. package/dist/esm-es5/ion-toast.entry.js +1 -1
  125. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  126. package/dist/esm-es5/ionic.js +1 -1
  127. package/dist/esm-es5/loader.js +1 -1
  128. package/dist/esm-es5/overlays-789cd7a7.js +4 -0
  129. package/dist/esm-es5/swipe-back-cc4c2bcb.js +4 -0
  130. package/dist/html.html-data.json +2 -2
  131. package/dist/ionic/index.esm.js +1 -1
  132. package/dist/ionic/ionic.esm.js +1 -1
  133. package/dist/ionic/p-02d8fdba.system.entry.js +4 -0
  134. package/dist/ionic/{p-f3c82f74.system.entry.js → p-06e6d235.system.entry.js} +2 -2
  135. package/dist/ionic/p-0c244faf.entry.js +4 -0
  136. package/dist/ionic/{p-e0b06b65.js → p-100ef961.js} +1 -1
  137. package/dist/ionic/p-1a368f2e.system.entry.js +4 -0
  138. package/dist/ionic/{p-34d2de14.system.entry.js → p-22813b28.system.entry.js} +1 -1
  139. package/dist/ionic/p-234b9617.system.entry.js +4 -0
  140. package/dist/ionic/p-25c34422.system.entry.js +4 -0
  141. package/dist/ionic/p-2804781b.entry.js +4 -0
  142. package/dist/ionic/p-29fe18ef.entry.js +4 -0
  143. package/dist/ionic/p-2ad38423.system.entry.js +4 -0
  144. package/dist/ionic/{p-7176cea3.entry.js → p-2ba9414e.entry.js} +1 -1
  145. package/dist/ionic/{p-fa8d4788.system.js → p-2e1794df.system.js} +1 -1
  146. package/dist/ionic/{p-e627ed84.js → p-302091ab.js} +1 -1
  147. package/dist/ionic/{p-67ed452a.system.entry.js → p-3f88eab8.system.entry.js} +1 -1
  148. package/dist/ionic/p-40903d34.system.js +1 -1
  149. package/dist/ionic/{p-0dc0d9b5.entry.js → p-477a182e.entry.js} +1 -1
  150. package/dist/ionic/{p-377c636c.system.entry.js → p-4f3e2767.system.entry.js} +1 -1
  151. package/dist/ionic/{p-3de79805.entry.js → p-56224549.entry.js} +1 -1
  152. package/dist/ionic/{p-965677f1.entry.js → p-5ce11143.entry.js} +1 -1
  153. package/dist/ionic/{p-9e852ff1.system.js → p-6500b298.system.js} +1 -1
  154. package/dist/ionic/p-6893f6e4.entry.js +4 -0
  155. package/dist/ionic/{p-b2a74a72.entry.js → p-835e0346.entry.js} +1 -1
  156. package/dist/ionic/{p-39044fe6.system.entry.js → p-878c7aa5.system.entry.js} +1 -1
  157. package/dist/ionic/p-8b4ab236.entry.js +4 -0
  158. package/dist/ionic/{p-f37b4b79.entry.js → p-939d903b.entry.js} +1 -1
  159. package/dist/ionic/{p-6d812360.system.entry.js → p-966cf574.system.entry.js} +1 -1
  160. package/dist/ionic/p-992d3bad.entry.js +4 -0
  161. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-9b5301cc.system.entry.js} +1 -1
  162. package/dist/ionic/p-9c967a65.system.entry.js +4 -0
  163. package/dist/ionic/{p-8e1bded3.entry.js → p-9e6bf9ed.entry.js} +1 -1
  164. package/dist/ionic/{p-6e23777e.system.entry.js → p-a4cda7a8.system.entry.js} +1 -1
  165. package/dist/ionic/{p-09d142b3.system.js → p-a57f223c.system.js} +1 -1
  166. package/dist/ionic/{p-8b1be026.js → p-a7e2ac5c.js} +1 -1
  167. package/dist/ionic/p-af016cd3.entry.js +4 -0
  168. package/dist/ionic/{p-bed722c4.system.entry.js → p-b3e79338.system.entry.js} +1 -1
  169. package/dist/ionic/p-b4cbb736.js +4 -0
  170. package/dist/ionic/{p-4fa201a7.entry.js → p-b6a8588f.entry.js} +1 -1
  171. package/dist/ionic/{p-73411c1b.entry.js → p-c1229981.entry.js} +1 -1
  172. package/dist/ionic/{p-db5043df.system.entry.js → p-c31fc05f.system.entry.js} +1 -1
  173. package/dist/ionic/p-c56b6570.system.entry.js +4 -0
  174. package/dist/ionic/p-c59d068a.entry.js +4 -0
  175. package/dist/ionic/{p-a936d224.system.js → p-c7fd81ba.system.js} +1 -1
  176. package/dist/ionic/p-dc565ca3.js +4 -0
  177. package/dist/ionic/p-dd837fa8.entry.js +4 -0
  178. package/dist/ionic/p-e8400078.system.entry.js +4 -0
  179. package/dist/ionic/p-e88ed07f.system.js +4 -0
  180. package/dist/ionic/p-eb07ec1a.system.entry.js +4 -0
  181. package/dist/ionic/p-eb5697b5.system.js +4 -0
  182. package/dist/ionic/{p-3ce8c3e3.entry.js → p-ee800093.entry.js} +1 -1
  183. package/dist/ionic/p-f0559c5d.system.entry.js +4 -0
  184. package/dist/ionic/p-fdd22426.entry.js +4 -0
  185. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  186. package/dist/types/components/datetime/datetime.d.ts +0 -1
  187. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -7
  188. package/dist/types/components/menu/menu.d.ts +1 -1
  189. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +4 -0
  190. package/dist/types/components/{picker-column → picker-column-legacy}/picker-column.d.ts +1 -1
  191. package/dist/types/components/{picker → picker-legacy}/picker.d.ts +1 -1
  192. package/dist/types/components.d.ts +138 -130
  193. package/dist/types/interface.d.ts +1 -1
  194. package/dist/types/utils/config.d.ts +2 -2
  195. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  196. package/dist/types/utils/overlays.d.ts +5 -2
  197. package/hydrate/index.js +50 -75
  198. package/package.json +1 -1
  199. package/components/ion-picker.d.ts +0 -11
  200. package/components/ion-picker.js +0 -307
  201. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +0 -31
  202. package/dist/esm-es5/overlays-6c9feb7e.js +0 -4
  203. package/dist/esm-es5/swipe-back-0f3bfc8e.js +0 -4
  204. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  205. package/dist/ionic/p-18e01b30.system.entry.js +0 -4
  206. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  207. package/dist/ionic/p-4794e0ac.system.entry.js +0 -4
  208. package/dist/ionic/p-4dbac22d.entry.js +0 -4
  209. package/dist/ionic/p-64296b15.entry.js +0 -4
  210. package/dist/ionic/p-6eec9c40.entry.js +0 -4
  211. package/dist/ionic/p-6f4fbf04.entry.js +0 -4
  212. package/dist/ionic/p-800ef057.js +0 -4
  213. package/dist/ionic/p-8dbdb163.system.js +0 -4
  214. package/dist/ionic/p-8f8bc519.system.entry.js +0 -4
  215. package/dist/ionic/p-97e31c0a.system.js +0 -4
  216. package/dist/ionic/p-a5c1e6ce.entry.js +0 -4
  217. package/dist/ionic/p-a9c3699b.system.entry.js +0 -4
  218. package/dist/ionic/p-ad61e508.entry.js +0 -4
  219. package/dist/ionic/p-b203659a.system.entry.js +0 -4
  220. package/dist/ionic/p-b91fe549.entry.js +0 -4
  221. package/dist/ionic/p-c919498d.entry.js +0 -4
  222. package/dist/ionic/p-cf425ec5.system.entry.js +0 -4
  223. package/dist/ionic/p-d91e93ac.system.entry.js +0 -4
  224. package/dist/ionic/p-ddfc4ef4.system.entry.js +0 -4
  225. package/dist/ionic/p-e6b240a0.js +0 -4
  226. package/dist/ionic/p-eae972be.system.entry.js +0 -4
  227. package/dist/ionic/p-f54ddd19.entry.js +0 -4
  228. /package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.ios.css +0 -0
  229. /package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.md.css +0 -0
  230. /package/dist/collection/components/{picker-column → picker-column-legacy}/test/test.utils.js +0 -0
  231. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  232. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  233. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  234. /package/dist/collection/components/{picker → picker-legacy}/picker.ios.css +0 -0
  235. /package/dist/collection/components/{picker → picker-legacy}/picker.md.css +0 -0
  236. /package/dist/types/components/{picker-column → picker-column-legacy}/test/test.utils.d.ts +0 -0
  237. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  238. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  239. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
@@ -0,0 +1,309 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
+ import { r as raf } from './helpers.js';
6
+ import { c as createLockController } from './lock-controller.js';
7
+ import { p as printIonWarning } from './index6.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays.js';
9
+ import { g as getClassMap } from './theme.js';
10
+ import { b as getIonMode } from './ionic-global.js';
11
+ import { c as createAnimation } from './animation.js';
12
+ import { d as defineCustomElement$3 } from './backdrop.js';
13
+ import { d as defineCustomElement$2 } from './picker-column.js';
14
+
15
+ /**
16
+ * iOS Picker Enter Animation
17
+ */
18
+ const iosEnterAnimation = (baseEl) => {
19
+ const baseAnimation = createAnimation();
20
+ const backdropAnimation = createAnimation();
21
+ const wrapperAnimation = createAnimation();
22
+ backdropAnimation
23
+ .addElement(baseEl.querySelector('ion-backdrop'))
24
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
25
+ .beforeStyles({
26
+ 'pointer-events': 'none',
27
+ })
28
+ .afterClearStyles(['pointer-events']);
29
+ wrapperAnimation
30
+ .addElement(baseEl.querySelector('.picker-wrapper'))
31
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
32
+ return baseAnimation
33
+ .addElement(baseEl)
34
+ .easing('cubic-bezier(.36,.66,.04,1)')
35
+ .duration(400)
36
+ .addAnimation([backdropAnimation, wrapperAnimation]);
37
+ };
38
+
39
+ /**
40
+ * iOS Picker Leave Animation
41
+ */
42
+ const iosLeaveAnimation = (baseEl) => {
43
+ const baseAnimation = createAnimation();
44
+ const backdropAnimation = createAnimation();
45
+ const wrapperAnimation = createAnimation();
46
+ backdropAnimation
47
+ .addElement(baseEl.querySelector('ion-backdrop'))
48
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
49
+ wrapperAnimation
50
+ .addElement(baseEl.querySelector('.picker-wrapper'))
51
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
52
+ return baseAnimation
53
+ .addElement(baseEl)
54
+ .easing('cubic-bezier(.36,.66,.04,1)')
55
+ .duration(400)
56
+ .addAnimation([backdropAnimation, wrapperAnimation]);
57
+ };
58
+
59
+ const pickerIosCss = ".sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h,[dir=rtl] .sc-ion-picker-legacy-ios-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-ios-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}";
60
+
61
+ const pickerMdCss = ".sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{left:0}[dir=rtl].sc-ion-picker-legacy-md-h,[dir=rtl] .sc-ion-picker-legacy-md-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-md-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}";
62
+
63
+ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement {
64
+ constructor() {
65
+ super();
66
+ this.__registerHost();
67
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
68
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
69
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
70
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
71
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
72
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
73
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
74
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
75
+ this.delegateController = createDelegateController(this);
76
+ this.lockController = createLockController();
77
+ this.triggerController = createTriggerController();
78
+ this.onBackdropTap = () => {
79
+ this.dismiss(undefined, BACKDROP);
80
+ };
81
+ this.dispatchCancelHandler = (ev) => {
82
+ const role = ev.detail.role;
83
+ if (isCancel(role)) {
84
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
85
+ this.callButtonHandler(cancelButton);
86
+ }
87
+ };
88
+ this.presented = false;
89
+ this.overlayIndex = undefined;
90
+ this.delegate = undefined;
91
+ this.hasController = false;
92
+ this.keyboardClose = true;
93
+ this.enterAnimation = undefined;
94
+ this.leaveAnimation = undefined;
95
+ this.buttons = [];
96
+ this.columns = [];
97
+ this.cssClass = undefined;
98
+ this.duration = 0;
99
+ this.showBackdrop = true;
100
+ this.backdropDismiss = true;
101
+ this.animated = true;
102
+ this.htmlAttributes = undefined;
103
+ this.isOpen = false;
104
+ this.trigger = undefined;
105
+ }
106
+ onIsOpenChange(newValue, oldValue) {
107
+ if (newValue === true && oldValue === false) {
108
+ this.present();
109
+ }
110
+ else if (newValue === false && oldValue === true) {
111
+ this.dismiss();
112
+ }
113
+ }
114
+ triggerChanged() {
115
+ const { trigger, el, triggerController } = this;
116
+ if (trigger) {
117
+ triggerController.addClickListener(el, trigger);
118
+ }
119
+ }
120
+ connectedCallback() {
121
+ prepareOverlay(this.el);
122
+ this.triggerChanged();
123
+ }
124
+ disconnectedCallback() {
125
+ this.triggerController.removeClickListener();
126
+ }
127
+ componentWillLoad() {
128
+ setOverlayId(this.el);
129
+ }
130
+ componentDidLoad() {
131
+ printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
132
+ /**
133
+ * If picker was rendered with isOpen="true"
134
+ * then we should open picker immediately.
135
+ */
136
+ if (this.isOpen === true) {
137
+ raf(() => this.present());
138
+ }
139
+ }
140
+ /**
141
+ * Present the picker overlay after it has been created.
142
+ */
143
+ async present() {
144
+ const unlock = await this.lockController.lock();
145
+ await this.delegateController.attachViewToDom();
146
+ await present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, undefined);
147
+ if (this.duration > 0) {
148
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
149
+ }
150
+ unlock();
151
+ }
152
+ /**
153
+ * Dismiss the picker overlay after it has been presented.
154
+ *
155
+ * @param data Any data to emit in the dismiss events.
156
+ * @param role The role of the element that is dismissing the picker.
157
+ * This can be useful in a button handler for determining which button was
158
+ * clicked to dismiss the picker.
159
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
160
+ */
161
+ async dismiss(data, role) {
162
+ const unlock = await this.lockController.lock();
163
+ if (this.durationTimeout) {
164
+ clearTimeout(this.durationTimeout);
165
+ }
166
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation, iosLeaveAnimation);
167
+ if (dismissed) {
168
+ this.delegateController.removeViewFromDom();
169
+ }
170
+ unlock();
171
+ return dismissed;
172
+ }
173
+ /**
174
+ * Returns a promise that resolves when the picker did dismiss.
175
+ */
176
+ onDidDismiss() {
177
+ return eventMethod(this.el, 'ionPickerDidDismiss');
178
+ }
179
+ /**
180
+ * Returns a promise that resolves when the picker will dismiss.
181
+ */
182
+ onWillDismiss() {
183
+ return eventMethod(this.el, 'ionPickerWillDismiss');
184
+ }
185
+ /**
186
+ * Get the column that matches the specified name.
187
+ *
188
+ * @param name The name of the column.
189
+ */
190
+ getColumn(name) {
191
+ return Promise.resolve(this.columns.find((column) => column.name === name));
192
+ }
193
+ async buttonClick(button) {
194
+ const role = button.role;
195
+ if (isCancel(role)) {
196
+ return this.dismiss(undefined, role);
197
+ }
198
+ const shouldDismiss = await this.callButtonHandler(button);
199
+ if (shouldDismiss) {
200
+ return this.dismiss(this.getSelected(), button.role);
201
+ }
202
+ return Promise.resolve();
203
+ }
204
+ async callButtonHandler(button) {
205
+ if (button) {
206
+ // a handler has been provided, execute it
207
+ // pass the handler the values from the inputs
208
+ const rtn = await safeCall(button.handler, this.getSelected());
209
+ if (rtn === false) {
210
+ // if the return value of the handler is false then do not dismiss
211
+ return false;
212
+ }
213
+ }
214
+ return true;
215
+ }
216
+ getSelected() {
217
+ const selected = {};
218
+ this.columns.forEach((col, index) => {
219
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
220
+ selected[col.name] = {
221
+ text: selectedColumn ? selectedColumn.text : undefined,
222
+ value: selectedColumn ? selectedColumn.value : undefined,
223
+ columnIndex: index,
224
+ };
225
+ });
226
+ return selected;
227
+ }
228
+ render() {
229
+ const { htmlAttributes } = this;
230
+ const mode = getIonMode(this);
231
+ return (h(Host, Object.assign({ "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
232
+ zIndex: `${20000 + this.overlayIndex}`,
233
+ }, class: Object.assign({ [mode]: true,
234
+ // Used internally for styling
235
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
236
+ }
237
+ get el() { return this; }
238
+ static get watchers() { return {
239
+ "isOpen": ["onIsOpenChange"],
240
+ "trigger": ["triggerChanged"]
241
+ }; }
242
+ static get style() { return {
243
+ ios: pickerIosCss,
244
+ md: pickerMdCss
245
+ }; }
246
+ }, [34, "ion-picker-legacy", {
247
+ "overlayIndex": [2, "overlay-index"],
248
+ "delegate": [16],
249
+ "hasController": [4, "has-controller"],
250
+ "keyboardClose": [4, "keyboard-close"],
251
+ "enterAnimation": [16],
252
+ "leaveAnimation": [16],
253
+ "buttons": [16],
254
+ "columns": [16],
255
+ "cssClass": [1, "css-class"],
256
+ "duration": [2],
257
+ "showBackdrop": [4, "show-backdrop"],
258
+ "backdropDismiss": [4, "backdrop-dismiss"],
259
+ "animated": [4],
260
+ "htmlAttributes": [16],
261
+ "isOpen": [4, "is-open"],
262
+ "trigger": [1],
263
+ "presented": [32],
264
+ "present": [64],
265
+ "dismiss": [64],
266
+ "onDidDismiss": [64],
267
+ "onWillDismiss": [64],
268
+ "getColumn": [64]
269
+ }, undefined, {
270
+ "isOpen": ["onIsOpenChange"],
271
+ "trigger": ["triggerChanged"]
272
+ }]);
273
+ const buttonWrapperClass = (button) => {
274
+ return {
275
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
276
+ 'picker-toolbar-button': true,
277
+ };
278
+ };
279
+ const buttonClass = (button) => {
280
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
281
+ };
282
+ function defineCustomElement$1() {
283
+ if (typeof customElements === "undefined") {
284
+ return;
285
+ }
286
+ const components = ["ion-picker-legacy", "ion-backdrop", "ion-picker-legacy-column"];
287
+ components.forEach(tagName => { switch (tagName) {
288
+ case "ion-picker-legacy":
289
+ if (!customElements.get(tagName)) {
290
+ customElements.define(tagName, Picker);
291
+ }
292
+ break;
293
+ case "ion-backdrop":
294
+ if (!customElements.get(tagName)) {
295
+ defineCustomElement$3();
296
+ }
297
+ break;
298
+ case "ion-picker-legacy-column":
299
+ if (!customElements.get(tagName)) {
300
+ defineCustomElement$2();
301
+ }
302
+ break;
303
+ } });
304
+ }
305
+
306
+ const IonPickerLegacy = Picker;
307
+ const defineCustomElement = defineCustomElement$1;
308
+
309
+ export { IonPickerLegacy, defineCustomElement };
@@ -4,6 +4,7 @@
4
4
  import { d as doc } from './index5.js';
5
5
  import { b as getIonMode, c as config } from './ionic-global.js';
6
6
  import { C as CoreDelegate } from './framework-delegate.js';
7
+ import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
7
8
  import { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';
8
9
  import { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
9
10
  import { p as printIonWarning } from './index6.js';
@@ -28,7 +29,10 @@ const alertController = /*@__PURE__*/ createController('ion-alert');
28
29
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
29
30
  const loadingController = /*@__PURE__*/ createController('ion-loading');
30
31
  const modalController = /*@__PURE__*/ createController('ion-modal');
31
- const pickerController = /*@__PURE__*/ createController('ion-picker');
32
+ /**
33
+ * @deprecated Use the inline ion-picker component instead.
34
+ */
35
+ const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
32
36
  const popoverController = /*@__PURE__*/ createController('ion-popover');
33
37
  const toastController = /*@__PURE__*/ createController('ion-toast');
34
38
  /**
@@ -138,7 +142,7 @@ const focusLastDescendant = (ref, overlay) => {
138
142
  * Should NOT include: Toast
139
143
  */
140
144
  const trapKeyboardFocus = (ev, doc) => {
141
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
145
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
142
146
  const target = ev.target;
143
147
  /**
144
148
  * If no active overlay, ignore this event.
@@ -323,7 +327,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
323
327
  */
324
328
  const getOverlays = (doc, selector) => {
325
329
  if (selector === undefined) {
326
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
330
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
327
331
  }
328
332
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
329
333
  };
@@ -389,6 +393,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
389
393
  return;
390
394
  }
391
395
  setRootAriaHidden(true);
396
+ document.body.classList.add(BACKDROP_NO_SCROLL);
392
397
  overlay.presented = true;
393
398
  overlay.willPresent.emit();
394
399
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -451,12 +456,14 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
451
456
  if (!overlay.presented) {
452
457
  return false;
453
458
  }
459
+ const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
454
460
  /**
455
461
  * If this is the last visible overlay then
456
462
  * we want to re-add the root to the accessibility tree.
457
463
  */
458
- if (doc !== undefined && getPresentedOverlays(doc).length === 1) {
464
+ if (lastOverlay) {
459
465
  setRootAriaHidden(false);
466
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
460
467
  }
461
468
  overlay.presented = false;
462
469
  try {
@@ -7,9 +7,9 @@ import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSele
7
7
  import { a as isPlatform, b as getIonMode } from './ionic-global.js';
8
8
  import { c as createColorClasses } from './theme.js';
9
9
 
10
- const pickerColumnInternalIosCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.picker-item-disabled{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
10
+ const pickerColumnInternalIosCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
11
11
 
12
- const pickerColumnInternalMdCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.picker-item-disabled{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}:host .picker-item-active{color:var(--ion-color-base)}";
12
+ const pickerColumnInternalMdCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}:host .picker-item-active{color:var(--ion-color-base)}";
13
13
 
14
14
  const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumnInternal extends HTMLElement {
15
15
  constructor() {
@@ -225,6 +225,7 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
225
225
  this.el.classList.remove('picker-column-active');
226
226
  };
227
227
  this.isActive = false;
228
+ this.disabled = false;
228
229
  this.items = [];
229
230
  this.value = undefined;
230
231
  this.color = 'primary';
@@ -322,10 +323,13 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
322
323
  }
323
324
  }
324
325
  get activeItem() {
325
- return getElementRoot(this.el).querySelector(`.picker-item[data-value="${this.value}"]:not([disabled])`);
326
+ // If the whole picker column is disabled, the current value should appear active
327
+ // If the current value item is specifically disabled, it should not appear active
328
+ const selector = `.picker-item[data-value="${this.value}"]${this.disabled ? '' : ':not([disabled])'}`;
329
+ return getElementRoot(this.el).querySelector(selector);
326
330
  }
327
331
  render() {
328
- const { items, color, isActive, numericInput } = this;
332
+ const { items, color, disabled: pickerDisabled, isActive, numericInput } = this;
329
333
  const mode = getIonMode(this);
330
334
  /**
331
335
  * exportparts is needed so ion-datetime can expose the parts
@@ -333,17 +337,17 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
333
337
  * the attribute can be moved to datetime.tsx and set on every
334
338
  * instance of ion-picker-column-internal there instead.
335
339
  */
336
- return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, tabindex: 0, class: createColorClasses(color, {
340
+ return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
337
341
  [mode]: true,
338
342
  ['picker-column-active']: isActive,
339
343
  ['picker-column-numeric-input']: numericInput,
340
344
  }) }, h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
345
+ const isItemDisabled = pickerDisabled || item.disabled || false;
341
346
  return (h("button", { tabindex: "-1", class: {
342
347
  'picker-item': true,
343
- 'picker-item-disabled': item.disabled || false,
344
348
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
345
349
  this.centerPickerItemInView(ev.target, true);
346
- }, disabled: item.disabled, part: PICKER_ITEM_PART }, item.text));
350
+ }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
347
351
  }), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
348
352
  }
349
353
  get el() { return this; }
@@ -355,6 +359,7 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
355
359
  md: pickerColumnInternalMdCss
356
360
  }; }
357
361
  }, [33, "ion-picker-column-internal", {
362
+ "disabled": [4],
358
363
  "items": [16],
359
364
  "value": [1032],
360
365
  "color": [513],
@@ -353,7 +353,7 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
353
353
  ios: pickerColumnIosCss,
354
354
  md: pickerColumnMdCss
355
355
  }; }
356
- }, [32, "ion-picker-column", {
356
+ }, [32, "ion-picker-legacy-column", {
357
357
  "col": [16]
358
358
  }, undefined, {
359
359
  "col": ["colChanged"]
@@ -366,9 +366,9 @@ function defineCustomElement() {
366
366
  if (typeof customElements === "undefined") {
367
367
  return;
368
368
  }
369
- const components = ["ion-picker-column"];
369
+ const components = ["ion-picker-legacy-column"];
370
370
  components.forEach(tagName => { switch (tagName) {
371
- case "ion-picker-column":
371
+ case "ion-picker-legacy-column":
372
372
  if (!customElements.get(tagName)) {
373
373
  customElements.define(tagName, PickerColumnCmp);
374
374
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  const index$1 = require('./index-c2940dc1.js');
7
7
  const haptic = require('./haptic-678abc9f.js');
8
- const index = require('./index-0ee995e4.js');
8
+ const index = require('./index-0f8b33f8.js');
9
9
 
10
10
  const createButtonActiveGesture = (el, isButton) => {
11
11
  let currentTouchedButton;
@@ -194,4 +194,5 @@ class BlockerDelegate {
194
194
  const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
195
195
  const GESTURE_CONTROLLER = new GestureController();
196
196
 
197
+ exports.BACKDROP_NO_SCROLL = BACKDROP_NO_SCROLL;
197
198
  exports.GESTURE_CONTROLLER = GESTURE_CONTROLLER;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const gestureController = require('./gesture-controller-b46721be.js');
6
+ const gestureController = require('./gesture-controller-d6a3f907.js');
7
7
 
8
8
  const addEventListener = (el, // TODO(FW-2832): type
9
9
  eventName, callback, opts) => {
@@ -10,16 +10,16 @@ const index = require('./index-573877f3.js');
10
10
  const ios_transition = require('./ios.transition-ac909bc8.js');
11
11
  const md_transition = require('./md.transition-907af519.js');
12
12
  const cubicBezier = require('./cubic-bezier-6b9222ad.js');
13
- const index$1 = require('./index-0ee995e4.js');
13
+ const index$1 = require('./index-0f8b33f8.js');
14
14
  const ionicGlobal = require('./ionic-global-ea2901a3.js');
15
15
  const helpers = require('./helpers-ea4ccbcb.js');
16
16
  const config = require('./config-d5882735.js');
17
17
  const theme = require('./theme-fbc56b3b.js');
18
18
  const index$2 = require('./index-d7561763.js');
19
- const overlays = require('./overlays-2ffc5f27.js');
19
+ const overlays = require('./overlays-dbb71984.js');
20
20
  require('./index-306a7476.js');
21
21
  require('./index-c2940dc1.js');
22
- require('./gesture-controller-b46721be.js');
22
+ require('./gesture-controller-d6a3f907.js');
23
23
  require('./index-cc7dfb7c.js');
24
24
  require('./hardware-back-button-b67c8e75.js');
25
25
  require('./framework-delegate-c0873a6f.js');
@@ -6,18 +6,18 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-c2940dc1.js');
9
- const buttonActive = require('./button-active-af897e0e.js');
9
+ const buttonActive = require('./button-active-cd07b55b.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const lockController = require('./lock-controller-4ae2eb59.js');
12
- const overlays = require('./overlays-2ffc5f27.js');
12
+ const overlays = require('./overlays-dbb71984.js');
13
13
  const theme = require('./theme-fbc56b3b.js');
14
14
  const ionicGlobal = require('./ionic-global-ea2901a3.js');
15
15
  const animation = require('./animation-1083855c.js');
16
16
  require('./haptic-678abc9f.js');
17
17
  require('./capacitor-2ffba62a.js');
18
18
  require('./index-306a7476.js');
19
- require('./index-0ee995e4.js');
20
- require('./gesture-controller-b46721be.js');
19
+ require('./index-0f8b33f8.js');
20
+ require('./gesture-controller-d6a3f907.js');
21
21
  require('./framework-delegate-c0873a6f.js');
22
22
  require('./hardware-back-button-b67c8e75.js');
23
23
  require('./index-cc7dfb7c.js');