@ionic/core 8.8.4-dev.11776246162.138c2737 → 8.8.4-dev.11776357045.1da75baf

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 (129) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-datetime.js +1 -1
  5. package/components/ion-loading.js +1 -1
  6. package/components/ion-menu.js +1 -1
  7. package/components/ion-modal.js +1 -1
  8. package/components/ion-picker-legacy.js +1 -1
  9. package/components/ion-popover.js +1 -1
  10. package/components/ion-range.js +1 -1
  11. package/components/ion-select-modal.js +1 -1
  12. package/components/ion-select-popover.js +1 -1
  13. package/components/ion-select.js +1 -1
  14. package/components/ion-tab-bar.js +1 -1
  15. package/components/ion-toast.js +1 -1
  16. package/components/p-B6czg-mf.js +4 -0
  17. package/components/p-BGHaEUgp.js +4 -0
  18. package/components/{p-CEUppJkx.js → p-BR9Yxas9.js} +1 -1
  19. package/components/p-Ch9P0ikq.js +4 -0
  20. package/components/p-GytrfCp8.js +4 -0
  21. package/components/p-ZeIAjDcZ.js +4 -0
  22. package/components/{p-B36-MWK0.js → p-iwGbwewM.js} +1 -1
  23. package/css/ionic/bundle.ionic.css +1 -1
  24. package/css/ionic/bundle.ionic.css.map +1 -1
  25. package/css/ionic/core.ionic.css +1 -1
  26. package/css/ionic/core.ionic.css.map +1 -1
  27. package/dist/cjs/index.cjs.js +1 -1
  28. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -29
  29. package/dist/cjs/ion-alert.cjs.entry.js +4 -29
  30. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -28
  31. package/dist/cjs/ion-loading.cjs.entry.js +4 -29
  32. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-modal.cjs.entry.js +79 -176
  34. package/dist/cjs/ion-popover.cjs.entry.js +4 -90
  35. package/dist/cjs/ion-range.cjs.entry.js +8 -5
  36. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-toast.cjs.entry.js +4 -32
  40. package/dist/cjs/{overlays-BbhewSIQ.js → overlays-Dhoy6v_5.js} +4 -4
  41. package/dist/collection/components/action-sheet/action-sheet.js +4 -5
  42. package/dist/collection/components/alert/alert.js +3 -4
  43. package/dist/collection/components/loading/loading.js +3 -4
  44. package/dist/collection/components/modal/gestures/sheet.js +9 -71
  45. package/dist/collection/components/modal/modal.ionic.css +1 -1
  46. package/dist/collection/components/modal/modal.js +5 -6
  47. package/dist/collection/components/picker-legacy/picker.js +3 -4
  48. package/dist/collection/components/popover/popover.js +3 -4
  49. package/dist/collection/components/range/range.ionic.css +14 -10
  50. package/dist/collection/components/range/range.js +7 -4
  51. package/dist/collection/components/tab-bar/tab-bar.ionic.css +9 -0
  52. package/dist/collection/components/toast/toast.js +3 -4
  53. package/dist/collection/utils/overlays.js +5 -5
  54. package/dist/docs.json +1 -1
  55. package/dist/esm/index.js +1 -1
  56. package/dist/esm/ion-action-sheet.entry.js +5 -29
  57. package/dist/esm/ion-alert.entry.js +4 -29
  58. package/dist/esm/ion-datetime_3.entry.js +4 -28
  59. package/dist/esm/ion-loading.entry.js +4 -29
  60. package/dist/esm/ion-menu_3.entry.js +1 -1
  61. package/dist/esm/ion-modal.entry.js +80 -177
  62. package/dist/esm/ion-popover.entry.js +4 -90
  63. package/dist/esm/ion-range.entry.js +8 -5
  64. package/dist/esm/ion-select-modal.entry.js +1 -1
  65. package/dist/esm/ion-select_3.entry.js +1 -1
  66. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  67. package/dist/esm/ion-toast.entry.js +4 -32
  68. package/dist/esm/{overlays-VA-4NWjf.js → overlays-CvFHfO3y.js} +5 -5
  69. package/dist/ionic/index.esm.js +1 -1
  70. package/dist/ionic/ionic.esm.js +1 -1
  71. package/dist/ionic/{p-bae3ebe5.entry.js → p-2095969c.entry.js} +1 -1
  72. package/dist/ionic/p-3884bfa4.entry.js +4 -0
  73. package/dist/ionic/p-4b0f5ffd.entry.js +4 -0
  74. package/dist/ionic/p-57aeb097.entry.js +4 -0
  75. package/{components/p-CSexRbnt.js → dist/ionic/p-6be2b2d3.entry.js} +1 -1
  76. package/dist/ionic/p-6bffc700.entry.js +4 -0
  77. package/dist/ionic/{p-ba9f8cbb.entry.js → p-9acd3fd3.entry.js} +1 -1
  78. package/dist/ionic/p-BYtS2rae.js +4 -0
  79. package/dist/ionic/{p-0cb50208.entry.js → p-a283aa4d.entry.js} +1 -1
  80. package/dist/ionic/p-d954cd19.entry.js +4 -0
  81. package/dist/ionic/{p-1efe83c8.entry.js → p-db4f4eaf.entry.js} +1 -1
  82. package/dist/ionic/p-e9d6ce67.entry.js +4 -0
  83. package/dist/ionic/p-ef0c281a.entry.js +4 -0
  84. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  85. package/dist/types/utils/overlays.d.ts +1 -1
  86. package/hydrate/index.js +110 -416
  87. package/hydrate/index.mjs +110 -416
  88. package/package.json +1 -1
  89. package/components/p-BDPU2685.js +0 -4
  90. package/components/p-BrNzoF1U.js +0 -4
  91. package/components/p-DNdBtsfu.js +0 -4
  92. package/components/p-Njik5v4C.js +0 -4
  93. package/dist/collection/components/action-sheet/animations/ionic.enter.js +0 -27
  94. package/dist/collection/components/action-sheet/animations/ionic.leave.js +0 -21
  95. package/dist/collection/components/alert/animations/ionic.enter.js +0 -28
  96. package/dist/collection/components/alert/animations/ionic.leave.js +0 -19
  97. package/dist/collection/components/loading/animations/ionic.enter.js +0 -28
  98. package/dist/collection/components/loading/animations/ionic.leave.js +0 -22
  99. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  100. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  101. package/dist/collection/components/picker-legacy/animations/ionic.enter.js +0 -27
  102. package/dist/collection/components/picker-legacy/animations/ionic.leave.js +0 -23
  103. package/dist/collection/components/popover/animations/ionic.enter.js +0 -91
  104. package/dist/collection/components/popover/animations/ionic.leave.js +0 -29
  105. package/dist/collection/components/toast/animations/ionic.enter.js +0 -33
  106. package/dist/collection/components/toast/animations/ionic.leave.js +0 -16
  107. package/dist/ionic/p-07b129d5.entry.js +0 -4
  108. package/dist/ionic/p-27edb91a.entry.js +0 -4
  109. package/dist/ionic/p-3d4c8528.entry.js +0 -4
  110. package/dist/ionic/p-6992d9d6.entry.js +0 -4
  111. package/dist/ionic/p-9dd4276b.entry.js +0 -4
  112. package/dist/ionic/p-BExfzy0B.js +0 -4
  113. package/dist/ionic/p-a3d794ba.entry.js +0 -4
  114. package/dist/ionic/p-cdfbe4cc.entry.js +0 -4
  115. package/dist/ionic/p-fa701753.entry.js +0 -4
  116. package/dist/types/components/action-sheet/animations/ionic.enter.d.ts +0 -5
  117. package/dist/types/components/action-sheet/animations/ionic.leave.d.ts +0 -5
  118. package/dist/types/components/alert/animations/ionic.enter.d.ts +0 -5
  119. package/dist/types/components/alert/animations/ionic.leave.d.ts +0 -5
  120. package/dist/types/components/loading/animations/ionic.enter.d.ts +0 -5
  121. package/dist/types/components/loading/animations/ionic.leave.d.ts +0 -5
  122. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  123. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  124. package/dist/types/components/picker-legacy/animations/ionic.enter.d.ts +0 -5
  125. package/dist/types/components/picker-legacy/animations/ionic.leave.d.ts +0 -5
  126. package/dist/types/components/popover/animations/ionic.enter.d.ts +0 -5
  127. package/dist/types/components/popover/animations/ionic.leave.d.ts +0 -5
  128. package/dist/types/components/toast/animations/ionic.enter.d.ts +0 -6
  129. package/dist/types/components/toast/animations/ionic.leave.d.ts +0 -5
@@ -4,10 +4,10 @@
4
4
  import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-Omi_TcwW.js';
5
5
  import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-BmkLokUL.js';
6
6
  import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-CjVwn_KZ.js';
7
- import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-Do7zwvM1.js';
7
+ import { e as clamp, g as getElementRoot, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-Do7zwvM1.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
9
  import { g as getCapacitor } from './capacitor-C4lYa1nV.js';
10
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-VA-4NWjf.js';
10
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-CvFHfO3y.js';
11
11
  import { g as getClassMap } from './theme-DaJxRxSQ.js';
12
12
  import { e as deepReady, w as waitForMount } from './index-CGthURny.js';
13
13
  import { w as win, b as getIonMode, c as getIonTheme } from './ionic-global-CAZb-5i-.js';
@@ -126,104 +126,6 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
126
126
  StatusBar.setStyle({ style: defaultStyle });
127
127
  };
128
128
 
129
- const createSheetEnterAnimation = (opts) => {
130
- const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
131
- /**
132
- * If the backdropBreakpoint is undefined, then the backdrop
133
- * should always fade in. If the backdropBreakpoint came before the
134
- * current breakpoint, then the backdrop should be fading in.
135
- */
136
- const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
137
- let initialBackdrop = '0';
138
- if (staticBackdropOpacity) {
139
- initialBackdrop = 'calc(var(--backdrop-opacity)';
140
- }
141
- else if (shouldShowBackdrop) {
142
- initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
143
- }
144
- const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
145
- if (shouldShowBackdrop) {
146
- backdropAnimation
147
- .beforeStyles({
148
- 'pointer-events': 'none',
149
- })
150
- .afterClearStyles(['pointer-events']);
151
- }
152
- const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
153
- { offset: 0, opacity: 1, transform: 'translateY(100%)' },
154
- { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
155
- ]);
156
- /**
157
- * This allows the content to be scrollable at any breakpoint.
158
- */
159
- const contentAnimation = !expandToScroll
160
- ? createAnimation('contentAnimation').keyframes([
161
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
162
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
163
- ])
164
- : undefined;
165
- return { wrapperAnimation, backdropAnimation, contentAnimation };
166
- };
167
- const createSheetLeaveAnimation = (opts) => {
168
- const { currentBreakpoint, backdropBreakpoint } = opts;
169
- /**
170
- * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
171
- * is defined, so we need to account for that offset by figuring out
172
- * what the current backdrop value should be.
173
- */
174
- const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
175
- const defaultBackdrop = [
176
- { offset: 0, opacity: backdropValue },
177
- { offset: 1, opacity: 0 },
178
- ];
179
- const customBackdrop = [
180
- { offset: 0, opacity: backdropValue },
181
- { offset: backdropBreakpoint, opacity: 0 },
182
- { offset: 1, opacity: 0 },
183
- ];
184
- const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
185
- const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
186
- { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
187
- { offset: 1, opacity: 1, transform: `translateY(100%)` },
188
- ]);
189
- return { wrapperAnimation, backdropAnimation };
190
- };
191
-
192
- const createEnterAnimation$2 = () => {
193
- const backdropAnimation = createAnimation()
194
- .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
195
- .beforeStyles({
196
- 'pointer-events': 'none',
197
- })
198
- .afterClearStyles(['pointer-events']);
199
- const wrapperAnimation = createAnimation().keyframes([
200
- { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
201
- { offset: 1, opacity: 1, transform: `translateY(0px)` },
202
- ]);
203
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
204
- };
205
- /**
206
- * Ionic Modal Enter Animation
207
- */
208
- const ionicEnterAnimation = (baseEl, opts) => {
209
- const { currentBreakpoint, expandToScroll } = opts;
210
- const root = getElementRoot(baseEl);
211
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
212
- backdropAnimation.addElement(root.querySelector('ion-backdrop'));
213
- wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
214
- // The content animation is only added if scrolling is enabled for
215
- // all the breakpoints.
216
- !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
217
- backdropAnimation.duration(300).easing('ease-out');
218
- wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
219
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
220
- const baseAnimation = createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
221
- if (contentAnimation) {
222
- baseAnimation.addAnimation(contentAnimation);
223
- }
224
- return baseAnimation;
225
- };
226
-
227
129
  const handleCanDismiss = async (el, animation) => {
228
130
  /**
229
131
  * If canDismiss is not a function
@@ -650,6 +552,69 @@ const calculateProgress = (el, deltaY) => {
650
552
  return Math.max(0, Math.min(1, roundedProgress));
651
553
  };
652
554
 
555
+ const createSheetEnterAnimation = (opts) => {
556
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
557
+ /**
558
+ * If the backdropBreakpoint is undefined, then the backdrop
559
+ * should always fade in. If the backdropBreakpoint came before the
560
+ * current breakpoint, then the backdrop should be fading in.
561
+ */
562
+ const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
563
+ let initialBackdrop = '0';
564
+ if (staticBackdropOpacity) {
565
+ initialBackdrop = 'calc(var(--backdrop-opacity)';
566
+ }
567
+ else if (shouldShowBackdrop) {
568
+ initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
569
+ }
570
+ const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
571
+ if (shouldShowBackdrop) {
572
+ backdropAnimation
573
+ .beforeStyles({
574
+ 'pointer-events': 'none',
575
+ })
576
+ .afterClearStyles(['pointer-events']);
577
+ }
578
+ const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
579
+ { offset: 0, opacity: 1, transform: 'translateY(100%)' },
580
+ { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
581
+ ]);
582
+ /**
583
+ * This allows the content to be scrollable at any breakpoint.
584
+ */
585
+ const contentAnimation = !expandToScroll
586
+ ? createAnimation('contentAnimation').keyframes([
587
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
588
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
589
+ ])
590
+ : undefined;
591
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
592
+ };
593
+ const createSheetLeaveAnimation = (opts) => {
594
+ const { currentBreakpoint, backdropBreakpoint } = opts;
595
+ /**
596
+ * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
597
+ * is defined, so we need to account for that offset by figuring out
598
+ * what the current backdrop value should be.
599
+ */
600
+ const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
601
+ const defaultBackdrop = [
602
+ { offset: 0, opacity: backdropValue },
603
+ { offset: 1, opacity: 0 },
604
+ ];
605
+ const customBackdrop = [
606
+ { offset: 0, opacity: backdropValue },
607
+ { offset: backdropBreakpoint, opacity: 0 },
608
+ { offset: 1, opacity: 0 },
609
+ ];
610
+ const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
611
+ const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
612
+ { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
613
+ { offset: 1, opacity: 1, transform: `translateY(100%)` },
614
+ ]);
615
+ return { wrapperAnimation, backdropAnimation };
616
+ };
617
+
653
618
  const createEnterAnimation$1 = () => {
654
619
  const backdropAnimation = createAnimation()
655
620
  .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
@@ -1040,16 +1005,16 @@ const mdLeaveAnimation = (baseEl, opts) => {
1040
1005
  return baseAnimation;
1041
1006
  };
1042
1007
 
1043
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, isIonicTheme, onDragStart, onDragMove, onDragEnd) => {
1008
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, staticBackdropOpacity, onDragStart, onDragMove, onDragEnd) => {
1044
1009
  // Defaults for the sheet swipe animation
1045
1010
  const defaultBackdrop = [
1046
1011
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1047
- { offset: 1, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0.01 },
1012
+ { offset: 1, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0.01 },
1048
1013
  ];
1049
1014
  const customBackdrop = [
1050
1015
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1051
- { offset: 1 - backdropBreakpoint, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0 },
1052
- { offset: 1, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0 },
1016
+ { offset: 1 - backdropBreakpoint, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0 },
1017
+ { offset: 1, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0 },
1053
1018
  ];
1054
1019
  const SheetDefaults = {
1055
1020
  WRAPPER_KEYFRAMES: [
@@ -1372,9 +1337,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1372
1337
  : step;
1373
1338
  offset = clamp(0.0001, processedStep, maxStep);
1374
1339
  animation.progressStep(offset);
1375
- const snapBreakpoint = isIonicTheme
1376
- ? calculateIonicSnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1377
- : calculateSnapBreakpoint(detail.deltaY);
1340
+ const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1378
1341
  const eventDetail = {
1379
1342
  currentY: detail.currentY,
1380
1343
  deltaY: detail.deltaY,
@@ -1385,9 +1348,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1385
1348
  onDragMove(eventDetail);
1386
1349
  };
1387
1350
  const onEnd = (detail) => {
1388
- const snapBreakpoint = isIonicTheme
1389
- ? calculateIonicSnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1390
- : calculateSnapBreakpoint(detail.deltaY);
1351
+ const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1391
1352
  const eventDetail = {
1392
1353
  currentY: detail.currentY,
1393
1354
  deltaY: detail.deltaY,
@@ -1434,14 +1395,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1434
1395
  */
1435
1396
  const shouldPreventDismiss = canDismiss && breakpoint === 0;
1436
1397
  const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
1437
- /**
1438
- * Detect snap-back behavior: when the snap target is the same as the current breakpoint,
1439
- * the user released before crossing the threshold to a new breakpoint.
1440
- * Apply different timing and easing for snap-back vs. snap-to-new.
1441
- */
1442
- const isSnapBack = snapToBreakpoint === currentBreakpoint;
1443
- const duration = isIonicTheme ? (isSnapBack ? 300 : 400) : 500;
1444
- const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
1445
1398
  const shouldRemainOpen = snapToBreakpoint !== 0;
1446
1399
  currentBreakpoint = 0;
1447
1400
  /**
@@ -1456,13 +1409,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1456
1409
  backdropAnimation.keyframes([
1457
1410
  {
1458
1411
  offset: 0,
1459
- opacity: isIonicTheme
1412
+ opacity: staticBackdropOpacity
1460
1413
  ? 'var(--backdrop-opacity)'
1461
1414
  : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1462
1415
  },
1463
1416
  {
1464
1417
  offset: 1,
1465
- opacity: isIonicTheme
1418
+ opacity: staticBackdropOpacity
1466
1419
  ? 'var(--backdrop-opacity)'
1467
1420
  : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1468
1421
  },
@@ -1482,12 +1435,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1482
1435
  }
1483
1436
  animation.progressStep(0);
1484
1437
  }
1485
- /**
1486
- * Apply the appropriate easing curve for this snap behavior.
1487
- */
1488
- if (isIonicTheme) {
1489
- animation.easing(easing);
1490
- }
1491
1438
  /**
1492
1439
  * Gesture should remain disabled until the
1493
1440
  * snapping animation completes.
@@ -1577,7 +1524,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1577
1524
  * be added every time onEnd runs.
1578
1525
  */
1579
1526
  }, { oneTimeCallback: true })
1580
- .progressEnd(1, 0, animated ? duration : 0);
1527
+ .progressEnd(1, 0, animated ? 500 : 0);
1581
1528
  });
1582
1529
  };
1583
1530
  /**
@@ -1608,50 +1555,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1608
1555
  });
1609
1556
  return snapBreakpoint;
1610
1557
  };
1611
- /**
1612
- * Calculates the Ionic-specific snap breakpoint using velocity-based logic.
1613
- * This provides a more intuitive and responsive sheet behavior for the Ionic theme.
1614
- *
1615
- * Rules:
1616
- * 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
1617
- * 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
1618
- * 3. If dragged 40% below current snap point without fast upward flick, dismisses
1619
- * 4. Otherwise, falls back to position-based snap (closest breakpoint)
1620
- *
1621
- * @param deltaY The change in Y position since gesture started
1622
- * @param velocityY The velocity in pixels per millisecond
1623
- * @param currentY The current Y position of the gesture
1624
- * @returns The snap breakpoint value
1625
- */
1626
- const calculateIonicSnapBreakpoint = (deltaY, velocityY, currentY) => {
1627
- // Convert velocity from px/ms to px/s for easier threshold comparison
1628
- const velocityYPerSecond = velocityY * 1000;
1629
- // Calculate current progress (0 = fully closed, 1 = fully expanded)
1630
- const currentProgress = calculateProgress(currentY);
1631
- // Rule 1: Fast downward flick always dismisses
1632
- if (velocityYPerSecond > 500) {
1633
- return minBreakpoint;
1634
- }
1635
- // Rule 2: Fast upward flick moves to next breakpoint above
1636
- if (velocityYPerSecond < -400) {
1637
- // Find next breakpoint above current position
1638
- const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
1639
- // If no breakpoint above, stay at max breakpoint
1640
- return nextBreakpoint !== null && nextBreakpoint !== void 0 ? nextBreakpoint : maxBreakpoint;
1641
- }
1642
- // Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
1643
- if (minBreakpoint === 0 && currentBreakpoint > 0) {
1644
- // Calculate how far we've moved below the current snap point
1645
- const distanceBelowSnap = currentBreakpoint - currentProgress;
1646
- const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
1647
- // If dragged more than 40% below and not flicking up, dismiss
1648
- if (percentageBelowSnap > 0.4 && velocityYPerSecond <= 400) {
1649
- return 0;
1650
- }
1651
- }
1652
- // Rule 4: Fallback to position-based snap (existing logic)
1653
- return calculateSnapBreakpoint(deltaY);
1654
- };
1655
1558
  /**
1656
1559
  * Calculates the progress of the swipe gesture.
1657
1560
  *
@@ -1900,7 +1803,7 @@ const clearSafeAreaOverrides = (hostEl) => {
1900
1803
  hostEl.style.removeProperty('--ion-safe-area-right');
1901
1804
  };
1902
1805
 
1903
- const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-3, 0px 2px 7px 0px rgba(0, 0, 0, 0.05), 0px 6px 32px 0px rgba(0, 0, 0, 0.16));--backdrop-opacity:0.7;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}:host(.modal-round){--border-radius:var(--token-border-radius-1000, var(--token-scale-1000, 40px))}:host(.modal-soft){--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.modal-rectangular){--border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host(.select-modal.modal-default){--max-height:45%;--max-width:calc(100% - (var(--token-space-400, var(--token-scale-400, 16px)) * 2));--min-height:340px}.modal-handle{right:0px;left:0px;top:var(--token-space-300, var(--token-scale-300, 12px));border-radius:var(--token-border-radius-100, var(--token-scale-100, 4px));width:var(--token-scale-1100, 44px);height:var(--token-scale-100, 4px);background-color:var(--token-primitives-neutral-300, #e0e0e0)}.modal-handle::before{-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + var(--token-scale-250, 10px)))}`;
1806
+ const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-3, 0px 2px 7px 0px rgba(0, 0, 0, 0.05), 0px 6px 32px 0px rgba(0, 0, 0, 0.16));--backdrop-opacity:1;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}:host(.modal-round){--border-radius:var(--token-border-radius-1000, var(--token-scale-1000, 40px))}:host(.modal-soft){--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.modal-rectangular){--border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host(.select-modal.modal-default){--max-height:45%;--max-width:calc(100% - (var(--token-space-400, var(--token-scale-400, 16px)) * 2));--min-height:340px}.modal-handle{right:0px;left:0px;top:var(--token-space-300, var(--token-scale-300, 12px));border-radius:var(--token-border-radius-100, var(--token-scale-100, 4px));width:var(--token-scale-1100, 44px);height:var(--token-scale-100, 4px);background-color:var(--token-primitives-neutral-300, #e0e0e0)}.modal-handle::before{-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + var(--token-scale-250, 10px)))}`;
1904
1807
 
1905
1808
  const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--ion-background-color, #fff);--border-radius:0;--backdrop-opacity:0;color:var(--ion-text-color, #000)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{right:0px;left:0px;top:5px;border-radius:8px;width:36px;height:5px;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be))}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;width:36px;height:5px}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
1906
1809
 
@@ -2340,7 +2243,7 @@ const Modal = class {
2340
2243
  this.statusBarStyle = await StatusBar.getStyle();
2341
2244
  setCardStatusBarDark();
2342
2245
  }
2343
- await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
2246
+ await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
2344
2247
  presentingEl: presentingElement,
2345
2248
  currentBreakpoint: this.initialBreakpoint,
2346
2249
  backdropBreakpoint: this.backdropBreakpoint,
@@ -3027,20 +2930,20 @@ const Modal = class {
3027
2930
  const isHandleCycle = handleBehavior === 'cycle';
3028
2931
  const shape = this.getShape();
3029
2932
  const isSheetModalWithHandle = isSheetModal && showHandle;
3030
- return (h(Host, Object.assign({ key: '3011c8f49c1ccb6c20c01db35b59fe4f6e22ec01', "no-router": true,
2933
+ return (h(Host, Object.assign({ key: '4b323edb66d28260c34b31fd2af8f4ae53a7ef90', "no-router": true,
3031
2934
  // Allow the modal to be navigable when the handle is focusable
3032
2935
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
3033
2936
  zIndex: `${20000 + this.overlayIndex}`,
3034
- }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'ab99fb4ff1b335b06d5676890012dfe3cd1a1a01', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: '95d4c79c4455c6a5ae6d581fa9dfaabdbee8c567', class: "modal-shadow" }), h("div", Object.assign({ key: '2d7d2406cdb986c69ef52708d33eca67d8a877f8',
2937
+ }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '6059e348dc3d020f995577dde1b7949bdb2c0f2f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: '5a08a99dfc3de51ac7516fc76fdba3672f84db71', class: "modal-shadow" }), h("div", Object.assign({ key: 'a7a841a5b2f740fbf576b82b82782aa235b701ee',
3035
2938
  /*
3036
2939
  role and aria-modal must be used on the
3037
2940
  same element. They must also be set inside the
3038
2941
  shadow DOM otherwise ion-button will not be highlighted
3039
2942
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
3040
2943
  */
3041
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'ccec8bfc314763bd6dd868b69fbfdc085f5957c9', class: "modal-handle",
2944
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'ca5567e9ab3e9e80b41314d396106faf2da09ffe', class: "modal-handle",
3042
2945
  // Prevents the handle from receiving keyboard focus when it does not cycle
3043
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '38469e3447b46983783627d697e12cadcef614fa', onSlotchange: this.onSlotChange }))));
2946
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'da5471ea4292166798d3f949e79e7b3e55a0e83f', onSlotchange: this.onSlotChange }))));
3044
2947
  }
3045
2948
  get el() { return getElement(this); }
3046
2949
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host, g as getElement } from './index-Omi_TcwW.js';
5
- import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-VA-4NWjf.js';
5
+ import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-CvFHfO3y.js';
6
6
  import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-CjVwn_KZ.js';
7
7
  import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-Do7zwvM1.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
@@ -830,92 +830,6 @@ const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
830
830
  return true;
831
831
  };
832
832
 
833
- const POPOVER_MD_BODY_PADDING$1 = 12;
834
- /**
835
- * Ionic Popover Enter Animation
836
- */
837
- // TODO(FW-2832): types
838
- const ionicEnterAnimation = (baseEl, opts) => {
839
- var _a;
840
- const { event: ev, size, trigger, reference, side, align } = opts;
841
- const doc = baseEl.ownerDocument;
842
- const isRTL = doc.dir === 'rtl';
843
- const bodyWidth = doc.defaultView.innerWidth;
844
- const bodyHeight = doc.defaultView.innerHeight;
845
- const root = getElementRoot(baseEl);
846
- const contentEl = root.querySelector('.popover-content');
847
- 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);
848
- const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
849
- const defaultPosition = {
850
- top: bodyHeight / 2 - contentHeight / 2,
851
- left: bodyWidth / 2 - contentWidth / 2,
852
- originX: isRTL ? 'right' : 'left',
853
- originY: 'top',
854
- };
855
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
856
- const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING$1;
857
- // MD mode now applies safe-area insets (previously passed 0, ignoring all safe areas).
858
- // This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
859
- const safeArea = size === 'cover' ? { top: 0, bottom: 0, left: 0, right: 0 } : getSafeAreaInsets(doc);
860
- const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates);
861
- const safeAreaLeftCalc = ' + var(--ion-safe-area-left, 0px)';
862
- const safeAreaRightCalc = ' - var(--ion-safe-area-right, 0px)';
863
- let leftValue = `${left}px`;
864
- if (checkSafeAreaLeft) {
865
- leftValue = `${left}px${safeAreaLeftCalc}`;
866
- }
867
- if (checkSafeAreaRight) {
868
- leftValue = `${left}px${safeAreaRightCalc}`;
869
- }
870
- let topValue = `${top}px`;
871
- if (checkSafeAreaTop) {
872
- topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
873
- }
874
- const baseAnimation = createAnimation();
875
- const backdropAnimation = createAnimation();
876
- const wrapperAnimation = createAnimation();
877
- const contentAnimation = createAnimation();
878
- const viewportAnimation = createAnimation();
879
- backdropAnimation
880
- .addElement(root.querySelector('ion-backdrop'))
881
- .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
882
- .beforeStyles({
883
- 'pointer-events': 'none',
884
- })
885
- .afterClearStyles(['pointer-events']);
886
- wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).duration(150).fromTo('opacity', 0.01, 1);
887
- contentAnimation
888
- .addElement(contentEl)
889
- .beforeStyles({
890
- top: `calc(${topValue} + var(--offset-y, 0px))`,
891
- left: `calc(${leftValue} + var(--offset-x, 0px))`,
892
- 'transform-origin': `${originY} ${originX}`,
893
- })
894
- .beforeAddWrite(() => {
895
- if (bottom !== undefined) {
896
- let bottomValue = `${bottom}px`;
897
- if (checkSafeAreaBottom) {
898
- bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
899
- }
900
- contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
901
- }
902
- })
903
- .fromTo('transform', 'scale(0.8)', 'scale(1)');
904
- viewportAnimation.addElement(root.querySelector('.popover-viewport')).fromTo('opacity', 0.01, 1);
905
- return baseAnimation
906
- .easing('cubic-bezier(0.36,0.66,0.04,1)')
907
- .duration(300)
908
- .beforeAddWrite(() => {
909
- if (size === 'cover') {
910
- baseEl.style.setProperty('--width', `${contentWidth}px`);
911
- }
912
- if (addPopoverBottomClass) {
913
- baseEl.classList.add('popover-bottom');
914
- }
915
- })
916
- .addAnimation([backdropAnimation, wrapperAnimation, contentAnimation, viewportAnimation]);
917
- };
918
-
919
833
  const POPOVER_IOS_BODY_PADDING = 5;
920
834
  /**
921
835
  * Minimum edge margin for iOS popovers ensures visual spacing from screen
@@ -1520,7 +1434,7 @@ const Popover = class {
1520
1434
  else if (!this.keepContentsMounted) {
1521
1435
  await waitForMount();
1522
1436
  }
1523
- await present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
1437
+ await present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, {
1524
1438
  event: event || this.event,
1525
1439
  size: this.size,
1526
1440
  trigger: this.triggerEl,
@@ -1629,9 +1543,9 @@ const Popover = class {
1629
1543
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
1630
1544
  const desktop = isPlatform('desktop');
1631
1545
  const enableArrow = arrow && !parentPopover;
1632
- return (h(Host, Object.assign({ key: '398b4c72cfea89fb743d427e3c2b48507649aff1', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1546
+ return (h(Host, Object.assign({ key: 'cc70f9b037b16ea78b999916106a1062ceb74cb6', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1633
1547
  zIndex: `${20000 + this.overlayIndex}`,
1634
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '6baec0b33665557c55425ffad9c6b31741c25651', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '6ce3a61164f478560cc45c618fc5b7f62b491ecd', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: 'a36815fc0417a10fb350429909a79cb4025baf3a', class: "popover-arrow", part: "arrow" }), h("div", { key: 'cec3436cdb2cb6fa839c37abb3cb6daf7de453de', class: "popover-content", part: "content" }, h("slot", { key: '5405fb03bab017acd7fa09d00cfe1b7cfbdfae92' })))));
1548
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'e641e7ee28cbd54911ec3f8c0bfd9d7e3f2e85cd', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '750494585c3524b27e42d79f02e729f3eff9e660', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '2e49b4ad1287e31a3cdbfebc91120405a998dc95', class: "popover-arrow", part: "arrow" }), h("div", { key: '306586776e74acab787b2a96433553005bca580d', class: "popover-content", part: "content" }, h("slot", { key: '0273c0975cd7dc37db5cfa0b91d418867a77c4d8' })))));
1635
1549
  }
1636
1550
  get el() { return getElement(this); }
1637
1551
  static get watchers() { return {
@@ -55,7 +55,7 @@ function roundToMaxDecimalPlaces(n, ...references) {
55
55
  return Number(n.toFixed(maxPlaces));
56
56
  }
57
57
 
58
- const rangeIonicCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:current-color(base);color:current-color(contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}.range-knob-handle{inset-inline-start:0}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}.range-bar-container{inset-inline-start:0}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host{--knob-border-radius:var(--token-border-radius-full, 999px);--knob-background:var(--token-bg-input-default, var(--token-primitives-base-white, #ffffff));--knob-box-shadow:none;--knob-size:var(--token-scale-600, 24px);--knob-handle-size:var(--token-scale-1100, 44px);--bar-height:var(--token-scale-200, 8px);--bar-background:var(--token-bg-neutral-subtle-default, var(--token-primitives-neutral-200, #eae9e9));--bar-background-active:var(--ion-color-primary, var(--token-bg-primary-base-default, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))));--bar-border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px));--height:var(--token-scale-1100, 44px);font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;z-index:var(--token-z-index-100, 100)}:host(.range-item-start-adjustment){-webkit-padding-start:var(--token-space-600, var(--token-scale-600, 24px));padding-inline-start:var(--token-space-600, var(--token-scale-600, 24px))}:host(.range-item-end-adjustment){-webkit-padding-end:var(--token-space-600, var(--token-scale-600, 24px));padding-inline-end:var(--token-space-600, var(--token-scale-600, 24px))}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted(ion-icon[slot]){font-size:var(--token-font-size-600, 1.5rem)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}::slotted([slot=label]){max-width:var(--token-scale-5000, 200px)}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--token-scale-600, 24px))}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:calc(var(--token-space-200, var(--token-scale-200, 8px)) + var(--token-font-size-300, 0.75rem))}.range-bar.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-bar.range-bar-active.has-ticks{border-radius:0;-webkit-margin-start:calc(-1 * var(--token-scale-100, 4px) * 0.5);margin-inline-start:calc(-1 * var(--token-scale-100, 4px) * 0.5);-webkit-margin-end:calc(-1 * var(--token-scale-100, 4px) * 0.5);margin-inline-end:calc(-1 * var(--token-scale-100, 4px) * 0.5)}.range-tick{-webkit-margin-start:calc(var(--token-scale-100, 4px) * -0.5);margin-inline-start:calc(var(--token-scale-100, 4px) * -0.5);border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px));position:absolute;top:calc(var(--height) * 0.5 - var(--token-scale-300, 12px) * 0.5);width:var(--token-scale-100, 4px);height:var(--token-scale-300, 12px);background:var(--token-primitives-neutral-100, #f3f3f3);pointer-events:none}.range-tick-active{background:var(--bar-background-active)}.range-pin{padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));min-width:var(--token-scale-700, 28px);-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);background:transparent;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));font-size:var(--token-font-size-300, 0.75rem);text-align:center}.range-knob{border-width:var(--token-border-size-025, var(--token-scale-025, 1px));border-style:var(--token-border-style-solid, solid);border-color:var(--token-border-primary, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef))));-webkit-box-sizing:border-box;box-sizing:border-box}:host(.range-disabled){--bar-background:var(--token-bg-neutral-subtle-default, var(--token-primitives-neutral-200, #eae9e9))}:host(.range-disabled) .range-knob{border-color:var(--token-border-input-default, var(--token-primitives-neutral-600, #8c8c8c));background:var(--token-bg-input-disabled, var(--token-primitives-neutral-100, #f3f3f3))}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:var(--token-space-400, var(--token-scale-400, 16px));max-width:133.3333333333%}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:var(--token-space-250, var(--token-scale-250, 10px));margin-bottom:var(--token-space-400, var(--token-scale-400, 16px))}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:var(--token-space-0, var(--token-scale-0, 0px))}.range-knob-handle.ion-focused .range-knob{outline-offset:var(--token-border-size-050, var(--token-scale-050, 2px));outline:var(--token-border-size-050, var(--token-scale-050, 2px)) var(--token-border-style-solid, solid) var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7))}.range-knob-handle.ion-activated .range-knob,.range-knob-handle.range-knob-pressed .range-knob{background:var(--token-bg-input-press, var(--token-primitives-neutral-200, #eae9e9))}`;
58
+ const rangeIonicCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:current-color(base);color:current-color(contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}.range-knob-handle{inset-inline-start:0}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}.range-bar-container{inset-inline-start:0}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host{--knob-border-radius:var(--token-border-radius-full, 999px);--knob-background:var(--token-bg-input-default, var(--token-primitives-base-white, #ffffff));--knob-box-shadow:none;--knob-size:var(--token-scale-600, 24px);--knob-handle-size:var(--token-scale-1100, 44px);--bar-height:var(--token-scale-200, 8px);--bar-background:var(--token-bg-neutral-subtle-default, var(--token-primitives-neutral-200, #eae9e9));--bar-background-active:var(--ion-color-primary, var(--token-bg-primary-base-default, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))));--bar-border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px));--height:var(--token-scale-1100, 44px);font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;z-index:var(--token-z-index-100, 100)}:host(.range-item-start-adjustment){-webkit-padding-start:var(--token-space-600, var(--token-scale-600, 24px));padding-inline-start:var(--token-space-600, var(--token-scale-600, 24px))}:host(.range-item-end-adjustment){-webkit-padding-end:var(--token-space-600, var(--token-scale-600, 24px));padding-inline-end:var(--token-space-600, var(--token-scale-600, 24px))}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted(ion-icon[slot]){font-size:var(--token-font-size-600, 1.5rem)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}::slotted([slot=label]){max-width:var(--token-scale-5000, 200px)}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--token-scale-600, 24px))}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:calc(var(--token-space-200, var(--token-scale-200, 8px)) + var(--token-font-size-300, 0.75rem))}.range-bar.has-ticks{border-radius:0}.range-bar.range-bar-active.has-ticks{-webkit-margin-start:calc(-1 * var(--token-scale-100, 4px) * 0.5);margin-inline-start:calc(-1 * var(--token-scale-100, 4px) * 0.5);-webkit-margin-end:calc(-1 * var(--token-scale-100, 4px) * 0.5);margin-inline-end:calc(-1 * var(--token-scale-100, 4px) * 0.5)}.range-bar.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-tick{-webkit-margin-start:calc(var(--token-scale-100, 4px) * -0.5);margin-inline-start:calc(var(--token-scale-100, 4px) * -0.5);border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px));position:absolute;top:calc(var(--height) * 0.5 - var(--token-scale-400, 16px) * 0.5);width:var(--token-scale-050, 2px);height:var(--token-scale-400, 16px);background:var(--bar-background);pointer-events:none}.range-tick-active{background:var(--bar-background-active)}.range-pin{padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));min-width:var(--token-scale-700, 28px);-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);background:transparent;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));font-size:var(--token-font-size-300, 0.75rem);text-align:center}.range-knob{border-width:var(--token-border-size-025, var(--token-scale-025, 1px));border-style:var(--token-border-style-solid, solid);border-color:var(--token-border-primary, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef))));-webkit-box-sizing:border-box;box-sizing:border-box}:host(.range-disabled){--bar-background:var(--token-bg-neutral-subtle-default, var(--token-primitives-neutral-200, #eae9e9))}:host(.range-disabled) .range-knob{border-color:var(--token-border-input-default, var(--token-primitives-neutral-600, #8c8c8c));background:var(--token-bg-input-disabled, var(--token-primitives-neutral-100, #f3f3f3))}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));margin-top:0;margin-bottom:0}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:var(--token-space-400, var(--token-scale-400, 16px));max-width:133.3333333333%}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:var(--token-space-250, var(--token-scale-250, 10px));margin-bottom:var(--token-space-400, var(--token-scale-400, 16px))}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:var(--token-space-0, var(--token-scale-0, 0px))}.range-knob-handle.ion-focused .range-knob{outline-offset:var(--token-border-size-050, var(--token-scale-050, 2px));outline:var(--token-border-size-050, var(--token-scale-050, 2px)) var(--token-border-style-solid, solid) var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7))}.range-knob-handle.ion-activated .range-knob,.range-knob-handle.range-knob-pressed .range-knob{background:var(--token-bg-input-press, var(--token-primitives-neutral-200, #eae9e9))}`;
59
59
 
60
60
  const rangeIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:current-color(base);color:current-color(contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}.range-knob-handle{inset-inline-start:0}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}.range-bar-container{inset-inline-start:0}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host{--knob-handle-size:calc(var(--knob-size) * 2);font-family:var(--ion-font-family, inherit);z-index:2}::slotted(ion-icon[slot]){font-size:24px}::slotted([slot=label]){max-width:200px}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:0px}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0px 0.5px 4px rgba(0, 0, 0, 0.12), 0px 6px 13px rgba(0, 0, 0, 0.12);--knob-size:26px;--bar-height:4px;--bar-background:var(--ion-color-step-900, var(--ion-background-color-step-900, #e6e6e6));--bar-background-active:var(--ion-color-primary, #0054e9);--bar-border-radius:2px;--height:42px}:host(.range-item-start-adjustment){-webkit-padding-start:24px;padding-inline-start:24px}:host(.range-item-end-adjustment){-webkit-padding-end:24px;padding-inline-end:24px}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:calc(8px + 0.75rem)}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:calc(8px + 0.75rem)}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-bar-active.has-ticks{border-radius:0;-webkit-margin-start:-2px;margin-inline-start:-2px;-webkit-margin-end:-2px;margin-inline-end:-2px}.range-tick{-webkit-margin-start:-2px;margin-inline-start:-2px;border-radius:0;position:absolute;top:17px;width:4px;height:8px;background:var(--ion-color-step-900, var(--ion-background-color-step-900, #e6e6e6));pointer-events:none}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 100%, 0) scale(0.01);transform:translate3d(0, 100%, 0) scale(0.01);-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:0.75rem;text-align:center}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, calc(-100% + 11px), 0) scale(1);transform:translate3d(0, calc(-100% + 11px), 0) scale(1)}:host(.range-disabled){opacity:0.3}`;
61
61
 
@@ -717,7 +717,10 @@ const Range = class {
717
717
  } }, ticks.map((tick) => (h("div", { style: tickStyle(tick), role: "presentation", class: {
718
718
  'range-tick': true,
719
719
  'range-tick-active': tick.active,
720
- }, part: tick.active ? 'tick-active' : 'tick' }))), h("div", { class: "range-bar-container" }, h("div", { class: "range-bar", role: "presentation", part: "bar" }), h("div", { class: {
720
+ }, part: tick.active ? 'tick-active' : 'tick' }))), h("div", { class: "range-bar-container" }, h("div", { class: {
721
+ 'range-bar': true,
722
+ 'has-ticks': ticks.length > 0,
723
+ }, role: "presentation", part: "bar" }), h("div", { class: {
721
724
  'range-bar': true,
722
725
  'range-bar-active': true,
723
726
  'has-ticks': ticks.length > 0,
@@ -795,7 +798,7 @@ const Range = class {
795
798
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
796
799
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
797
800
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
798
- return (h(Host, { key: 'a6262069e7dcc01413f9ade5ad4972127c2dd523', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
801
+ return (h(Host, { key: '1b8ca217fa6965fc038fb4ca8f0bc9142b3893ad', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
799
802
  [theme]: true,
800
803
  'in-item': inItem,
801
804
  'range-disabled': disabled,
@@ -809,10 +812,10 @@ const Range = class {
809
812
  'range-item-end-adjustment': needsEndAdjustment,
810
813
  'range-value-min': valueAtMin,
811
814
  'range-value-max': valueAtMax,
812
- }) }, h("label", { key: 'e39421b320cc84f9f42840bd4d9d8d2bb241518f', class: "range-wrapper", id: "range-label" }, h("div", { key: '818f6e03be2264327e5b31e4b129f6493b9268dd', class: {
815
+ }) }, h("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, h("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
813
816
  'label-text-wrapper': true,
814
817
  'label-text-wrapper-hidden': !hasLabel,
815
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '8eb7dd434857a6ffc4e65db43876c61f6fd88cc8', class: "native-wrapper" }, h("slot", { key: 'bf0d3de82b50057f3e53001f66dc9da815b52ed3', name: "start" }), this.renderRangeSlider(), h("slot", { key: '46db83c94be79b8c4bf37eeab0531723a8f2b237', name: "end" })))));
818
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '1e3233a747d0adca6611234d0675ce049ef979cf', class: "native-wrapper" }, h("slot", { key: '4f06a217592a98d889420468eb282ba8652ef1cc', name: "start" }), this.renderRangeSlider(), h("slot", { key: '4286279dbadf0e92bffbd5e98d5e36cba095be3c', name: "end" })))));
816
819
  }
817
820
  get el() { return getElement(this); }
818
821
  static get watchers() { return {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { r as registerInstance, h, i as forceUpdate, d as Host, g as getElement } from './index-Omi_TcwW.js';
5
5
  import { b as getIonMode } from './ionic-global-CAZb-5i-.js';
6
- import { s as safeCall } from './overlays-VA-4NWjf.js';
6
+ import { s as safeCall } from './overlays-CvFHfO3y.js';
7
7
  import { h as hostContext, g as getClassMap } from './theme-DaJxRxSQ.js';
8
8
  import './helpers-Do7zwvM1.js';
9
9
  import './focus-visible-vXpMhGrs.js';