@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
@@ -9,7 +9,7 @@ var notchController = require('./notch-controller-CgtkBzy0.js');
9
9
  var compareWithUtils = require('./compare-with-utils-DSicavqM.js');
10
10
  var validity = require('./validity-QmuwEptc.js');
11
11
  var helpers = require('./helpers-DJYxKN5U.js');
12
- var overlays = require('./overlays-BbhewSIQ.js');
12
+ var overlays = require('./overlays-Dhoy6v_5.js');
13
13
  var dir = require('./dir-Cn0z1rJH.js');
14
14
  var theme = require('./theme-IlOsGAz7.js');
15
15
  var watchOptions = require('./watch-options-CviOsrTS.js');
@@ -12,7 +12,7 @@ require('./keyboard-Dsczf-iT.js');
12
12
  require('./capacitor-BnRBm_ys.js');
13
13
  require('./focus-visible-BIj-I3-C.js');
14
14
 
15
- const tabBarIonicCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-top:var(--border);background:var(--background);color:var(--color);text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host(.ion-color) ::slotted(ion-tab-button.ion-focused),:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:var(--background-focused)}:host(.tab-bar-translucent) ::slotted(ion-tab-button){background:transparent}:host([slot=top]){border-top:0;border-bottom:var(--border)}:host(.tab-bar-hidden){display:none !important}:host(.tab-bar-full){width:auto;contain:strict;padding-bottom:var(--ion-safe-area-bottom, 0);padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);}:host([slot=top].tab-bar-full){padding-top:var(--ion-safe-area-top, 0);padding-bottom:0}:host{--background:var(--ion-tab-bar-background, var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff)));--background-activated:var(--ion-tab-bar-background-activated, var(--token-bg-select-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc))));--background-focused:var(--ion-tab-bar-background-focused, transparent);--border:var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-style-solid, solid) var(--ion-tab-bar-border-color, transparent);--color:var(--ion-tab-bar-color, var(--token-primitives-neutral-800, #626262));--color-selected:var(--ion-tab-bar-color-selected, var(--token-text-primary, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3))));-ms-flex-pack:unset;justify-content:unset;max-width:100%;min-height:calc(var(--token-scale-1400, 56px) - var(--token-space-100, var(--token-scale-100, 4px)) * 2);gap:var(--token-space-300, var(--token-scale-300, 12px));-webkit-box-shadow:var(--token-elevation-2, 0px 1px 5px 0px rgba(0, 0, 0, 0.05), 0px 8px 25px 0px rgba(0, 0, 0, 0.08));box-shadow:var(--token-elevation-2, 0px 1px 5px 0px rgba(0, 0, 0, 0.05), 0px 8px 25px 0px rgba(0, 0, 0, 0.08));overflow:auto hidden;z-index:10}:host(.tab-bar-full){padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-bottom, 0));padding-right:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-right, 0));padding-left:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-left, 0));}:host([slot=top].tab-bar-full){padding-top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-top, 0));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host(.tab-bar-compact){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));position:absolute;-ms-flex-item-align:center;align-self:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;contain:content}:host([slot=top].tab-bar-compact){top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-top, 0))}:host([slot=bottom].tab-bar-compact){bottom:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-bottom, 0))}:host(.tab-bar-soft){border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.tab-bar-round){border-radius:var(--token-border-radius-full, 999px)}:host(.tab-bar-rectangular){border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}`;
15
+ const tabBarIonicCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-top:var(--border);background:var(--background);color:var(--color);text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host(.ion-color) ::slotted(ion-tab-button.ion-focused),:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:var(--background-focused)}:host(.tab-bar-translucent) ::slotted(ion-tab-button){background:transparent}:host([slot=top]){border-top:0;border-bottom:var(--border)}:host(.tab-bar-hidden){display:none !important}:host(.tab-bar-full){width:auto;contain:strict;padding-bottom:var(--ion-safe-area-bottom, 0);padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);}:host([slot=top].tab-bar-full){padding-top:var(--ion-safe-area-top, 0);padding-bottom:0}:host{--background:var(--ion-tab-bar-background, var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff)));--background-activated:var(--ion-tab-bar-background-activated, var(--token-bg-select-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc))));--background-focused:var(--ion-tab-bar-background-focused, transparent);--border:var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-style-solid, solid) var(--ion-tab-bar-border-color, transparent);--color:var(--ion-tab-bar-color, var(--token-primitives-neutral-800, #626262));--color-selected:var(--ion-tab-bar-color-selected, var(--token-text-primary, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3))));-ms-flex-pack:unset;justify-content:unset;max-width:100%;min-height:calc(var(--token-scale-1400, 56px) - var(--token-space-100, var(--token-scale-100, 4px)) * 2);gap:var(--token-space-300, var(--token-scale-300, 12px));-webkit-box-shadow:var(--token-elevation-2, 0px 1px 5px 0px rgba(0, 0, 0, 0.05), 0px 8px 25px 0px rgba(0, 0, 0, 0.08));box-shadow:var(--token-elevation-2, 0px 1px 5px 0px rgba(0, 0, 0, 0.05), 0px 8px 25px 0px rgba(0, 0, 0, 0.08));overflow:auto hidden;z-index:10}:host(.tab-bar-full){padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-bottom, 0));padding-right:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-right, 0));padding-left:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-left, 0));}:host([slot=top].tab-bar-full){padding-top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-top, 0));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host(.tab-bar-compact){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));position:absolute;-ms-flex-item-align:center;align-self:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;contain:content}:host([slot=top].tab-bar-compact){top:calc(var(--token-space-100, var(--token-scale-100, 4px)) + var(--ion-safe-area-top, 0))}:host([slot=bottom].tab-bar-compact){bottom:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-bottom, 0))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.tab-bar-translucent){--background:rgba(255, 255, 255, 0.6);-webkit-backdrop-filter:var(--tab-bar-backdrop-filter, blur(12px));backdrop-filter:var(--tab-bar-backdrop-filter, blur(12px))}:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){--background:transparent}}:host(.tab-bar-soft){border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.tab-bar-round){border-radius:var(--token-border-radius-full, 999px)}:host(.tab-bar-rectangular){border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}`;
16
16
 
17
17
  const tabBarIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-top:var(--border);background:var(--background);color:var(--color);text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host(.ion-color) ::slotted(ion-tab-button.ion-focused),:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:var(--background-focused)}:host(.tab-bar-translucent) ::slotted(ion-tab-button){background:transparent}:host([slot=top]){border-top:0;border-bottom:var(--border)}:host(.tab-bar-hidden){display:none !important}:host(.tab-bar-full){width:auto;contain:strict;padding-bottom:var(--ion-safe-area-bottom, 0);padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);}:host([slot=top].tab-bar-full){padding-top:var(--ion-safe-area-top, 0);padding-bottom:0}:host{z-index:10}:host(.ion-color) ::slotted(ion-tab-button){--background-focused:var(--ion-color-shade);--color-selected:var(--ion-color-contrast)}:host(.ion-color) ::slotted(.tab-selected){color:var(--ion-color-contrast)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){color:rgba(var(--ion-color-contrast-rgb), 0.7)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){background:var(--ion-color-base)}:host{--background:var(--ion-tab-bar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--background-focused:var(--ion-tab-bar-background-focused, #e0e0e0);--border:0.55px solid var(--ion-tab-bar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--color:var(--ion-tab-bar-color, var(--ion-color-step-600, var(--ion-text-color-step-400, #666666)));--color-selected:var(--ion-tab-bar-color-selected, var(--ion-color-primary, #0054e9));height:50px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.tab-bar-translucent){--background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(210%) blur(20px);backdrop-filter:saturate(210%) blur(20px)}:host(.ion-color.tab-bar-translucent){background:rgba(var(--ion-color-base-rgb), 0.8)}:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.6)}}`;
18
18
 
@@ -7,7 +7,7 @@ var index = require('./index-CzcLEdQ5.js');
7
7
  var config = require('./config-B0utyWaD.js');
8
8
  var helpers = require('./helpers-DJYxKN5U.js');
9
9
  var lockController = require('./lock-controller-aDB9wrEf.js');
10
- var overlays = require('./overlays-BbhewSIQ.js');
10
+ var overlays = require('./overlays-Dhoy6v_5.js');
11
11
  var theme = require('./theme-IlOsGAz7.js');
12
12
  var ionicGlobal = require('./ionic-global-CSEbHD_F.js');
13
13
  var animation = require('./animation-DknMeJ3x.js');
@@ -103,34 +103,6 @@ const getOffsetForMiddlePosition = (toastHeight, wrapperHeight) => {
103
103
  return Math.floor(toastHeight / 2 - wrapperHeight / 2);
104
104
  };
105
105
 
106
- /**
107
- * Ionic Toast Enter Animation
108
- */
109
- const ionicEnterAnimation = (baseEl, opts) => {
110
- const baseAnimation = animation.createAnimation();
111
- const wrapperAnimation = animation.createAnimation();
112
- const { position, top, bottom } = opts;
113
- const root = helpers.getElementRoot(baseEl);
114
- const wrapperEl = root.querySelector('.toast-wrapper');
115
- wrapperAnimation.addElement(wrapperEl);
116
- switch (position) {
117
- case 'top':
118
- wrapperEl.style.setProperty('transform', `translateY(${top})`);
119
- wrapperAnimation.fromTo('opacity', 0.01, 1);
120
- break;
121
- case 'middle':
122
- const topPosition = getOffsetForMiddlePosition(baseEl.clientHeight, wrapperEl.clientHeight);
123
- wrapperEl.style.top = `${topPosition}px`;
124
- wrapperAnimation.fromTo('opacity', 0.01, 1);
125
- break;
126
- default:
127
- wrapperEl.style.setProperty('transform', `translateY(${bottom})`);
128
- wrapperAnimation.fromTo('opacity', 0.01, 1);
129
- break;
130
- }
131
- return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(400).addAnimation(wrapperAnimation);
132
- };
133
-
134
106
  /**
135
107
  * iOS Toast Enter Animation
136
108
  */
@@ -686,7 +658,7 @@ const Toast = class {
686
658
  * in the dismiss animation.
687
659
  */
688
660
  this.lastPresentedPosition = animationPosition;
689
- await overlays.present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
661
+ await overlays.present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
690
662
  position,
691
663
  top: animationPosition.top,
692
664
  bottom: animationPosition.bottom,
@@ -901,9 +873,9 @@ const Toast = class {
901
873
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
902
874
  index.printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
903
875
  }
904
- return (index.h(index.Host, Object.assign({ key: 'e83590dd87745fc9579319513eb22c0db5d3e53f', tabindex: "-1" }, this.htmlAttributes, { style: {
876
+ return (index.h(index.Host, Object.assign({ key: '3507eaa18a5559a9052d34db180e176952dc466f', tabindex: "-1" }, this.htmlAttributes, { style: {
905
877
  zIndex: `${60000 + this.overlayIndex}`,
906
- }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true, [theme$1]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), index.h("div", { key: 'b4c4d4565138cc76ffa9fd5cebc4e489b82cea55', class: wrapperClass, part: "wrapper" }, index.h("div", { key: '14228286e4c4f6738b14816938e1edb75014f322', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index.h("ion-icon", { key: '3403984f86018dedb3cc32b3bd5541a6d0db154f', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index.h("div", { key: '0965413313935e3fe90ce0789d2d029af91f3124', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
878
+ }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true, [theme$1]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), index.h("div", { key: '195eb90ccd82a13254e843b80be0f380325accb4', class: wrapperClass, part: "wrapper" }, index.h("div", { key: 'd6072aa4a4848d72e68e04a7842d3f769f844ffc', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index.h("ion-icon", { key: '02a1d72aaf401d27671906c8b84abd823def6da8', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index.h("div", { key: '1f133c27927ad840f58ea2e9112719ef880bf9a5', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
907
879
  }
908
880
  get el() { return index.getElement(this); }
909
881
  static get watchers() { return {
@@ -602,7 +602,7 @@ const setRootAriaHidden = (hidden = false) => {
602
602
  viewContainer.removeAttribute('aria-hidden');
603
603
  }
604
604
  };
605
- const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, opts) => {
605
+ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
606
606
  var _a, _b;
607
607
  if (overlay.presented) {
608
608
  return;
@@ -650,11 +650,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, ionic
650
650
  document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
651
651
  }
652
652
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
653
- const theme = ionicGlobal.getIonTheme(overlay);
654
653
  const mode = ionicGlobal.getIonMode(overlay);
655
- const selectedAnimation = mode === 'ios' ? iosEnterAnimation : theme === 'ionic' ? ionicEnterAnimation : mdEnterAnimation;
656
654
  // get the user's animation fn if one was provided
657
- const animationBuilder = overlay.enterAnimation ? overlay.enterAnimation : index.config.get(name, selectedAnimation);
655
+ const animationBuilder = overlay.enterAnimation
656
+ ? overlay.enterAnimation
657
+ : index.config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
658
658
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
659
659
  if (completed) {
660
660
  overlay.didPresent.emit();
@@ -8,7 +8,6 @@ import { createLockController } from "../../utils/lock-controller";
8
8
  import { BACKDROP, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
9
9
  import { getClassMap } from "../../utils/theme";
10
10
  import { getIonMode, getIonTheme } from "../../global/ionic-global";
11
- import { ionicEnterAnimation } from "./animations/ionic.enter";
12
11
  import { iosEnterAnimation } from "./animations/ios.enter";
13
12
  import { iosLeaveAnimation } from "./animations/ios.leave";
14
13
  import { mdEnterAnimation } from "./animations/md.enter";
@@ -100,7 +99,7 @@ export class ActionSheet {
100
99
  async present() {
101
100
  const unlock = await this.lockController.lock();
102
101
  await this.delegateController.attachViewToDom();
103
- await present(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation);
102
+ await present(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation);
104
103
  unlock();
105
104
  }
106
105
  /**
@@ -390,12 +389,12 @@ export class ActionSheet {
390
389
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
391
390
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
392
391
  const headerID = `action-sheet-${overlayIndex}-header`;
393
- return (h(Host, Object.assign({ key: '63748ba90fd423cfe64c312bdd7ba77a5de04628', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
392
+ return (h(Host, Object.assign({ key: '3ef5b086f7a4ac4f361de8dcff5255ed1d2bcbdf', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
394
393
  zIndex: `${20000 + this.overlayIndex}`,
395
- }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'f0d884af5e6e902d04ca21867c6a19b313029588', tappable: this.backdropDismiss }), h("div", { key: 'd305d0bc1b2cb0b5a063df754a732987fb9a6d32', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'dc284fd35a3ebe3597ba6186b128dc69d7ca9211', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: 'c423ad8a99b7df740c54f3e7cecb48ba94d6d01a', class: "action-sheet-container" }, h("div", { key: '21e02c20525b826c74a6d00a72c0c968e0590829', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: 'fb002f713de61470ab80ecafb577b46ff586764c', id: headerID, class: {
394
+ }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'd98bb285f8a09a4207f35f930da77548bcdf529a', tappable: this.backdropDismiss }), h("div", { key: '6cd6aba45144244a51d76bfe0b606c3fb9a882ea', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'e6a007bcde062bd2ea7c094394aa0024ee595c9e', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '31948475a84d28488fd53e7fde16cb1deff14a2f', class: "action-sheet-container" }, h("div", { key: '4f2bbc00d36792cf6e24c402f5396546653f1e00', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: '68bcafe38b49be0fe21e3e4820ee3f05f6abffad', id: headerID, class: {
396
395
  'action-sheet-title': true,
397
396
  'action-sheet-has-sub-title': this.subHeader !== undefined,
398
- } }, header, this.subHeader && h("div", { key: 'ad34552d92675e94d7215334a7abdb8901192a26', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: 'd2ac739b2f35ada0f03ae43f85b663bad7589c80', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: 'd4c6cd090a424f5765506d7944e928393e1aab5d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '3fdeb6dbe099ffb94eef84976cbff7bcb2db0402', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '6dc1c473bc4049031db724df33653854b10ef28d', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && h("ion-ripple-effect", { key: 'c02a01ac8876b010e60a4b5994e84ca952e01d7d' })))))), h("div", { key: 'a2e28deb36c4adc75fad2a5dbc8e81f1f87b6ffe', tabindex: "0", "aria-hidden": "true" })));
397
+ } }, header, this.subHeader && h("div", { key: 'd253c010d0bba4a38836b6319b2d8073e1a526b9', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: 'b30f50a64b425a992e26673bf072332d7c3b3409', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: 'e35087c05c7c8f04ca9aef322917f8172c0c4f8f' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '1f7a50fac729e19d0ee12d54bc67e071ff7b3f08', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '452641544297efc017529b674235e269285c4100', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && h("ion-ripple-effect", { key: '15795e15d27297e6e87f7fe39386bb8581993dfa' })))))), h("div", { key: '301fef1a45d1c523221ec2312276dd3a62f3134d', tabindex: "0", "aria-hidden": "true" })));
399
398
  }
400
399
  static get is() { return "ion-action-sheet"; }
401
400
  static get encapsulation() { return "scoped"; }
@@ -12,7 +12,6 @@ import { sanitizeDOMString } from "../../utils/sanitization/index";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { config } from "../../global/config";
14
14
  import { getIonMode, getIonTheme } from "../../global/ionic-global";
15
- import { ionicEnterAnimation } from "./animations/ionic.enter";
16
15
  import { iosEnterAnimation } from "./animations/ios.enter";
17
16
  import { iosLeaveAnimation } from "./animations/ios.leave";
18
17
  import { mdEnterAnimation } from "./animations/md.enter";
@@ -245,7 +244,7 @@ export class Alert {
245
244
  async present() {
246
245
  const unlock = await this.lockController.lock();
247
246
  await this.delegateController.attachViewToDom();
248
- await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation).then(() => {
247
+ await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation).then(() => {
249
248
  var _a, _b;
250
249
  /**
251
250
  * Check if alert has only one button and no inputs.
@@ -442,9 +441,9 @@ export class Alert {
442
441
  * If neither are defined, do not set aria-labelledby.
443
442
  */
444
443
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
445
- return (h(Host, { key: '7800d04d1ecc07f7ec37f26b4f217880d9dcc857', tabindex: "-1", style: {
444
+ return (h(Host, { key: '53f8b0e1035ca965ba44f8e1314c59a227b08173', tabindex: "-1", style: {
446
445
  zIndex: `${20000 + overlayIndex}`,
447
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '9084e82a03f3686a5fb894a0044eac4afc011504', tappable: this.backdropDismiss }), h("div", { key: '7cb89e7d38b831b6bb91cdcb4ccc5d7967db7e3c', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: 'cbd469199a8740eabe0948fa32fab28f41988fa8', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: 'da0a9a21792906edd840a5070f90ca60f07f331d', class: "alert-head" }, header && (h("h2", { key: '9141036580eed67d7e46c4c1c3c2ca149745ea07', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '4cb440d940debe61c2f9c6826dced794b755b11c', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '671bdc7f218653fc59ddf681c9fcbaaa5e2e2177', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'e84c40927d1d3e8748c9efb6a8c6ec77f70e8e38', tabindex: "0", "aria-hidden": "true" })));
446
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '39499a198543709f538fa0328214d742754543ab', tappable: this.backdropDismiss }), h("div", { key: '16417758e5ac05cfa049db5086c1ffde81fc6156', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: 'cc7dde0877f70be21019cd2e8e6c843815ec9682', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '525d28d77b6467b441ff9d357049aec7565e6f6a', class: "alert-head" }, header && (h("h2", { key: '974fc725163da00216c3c8b7b6c72c005628e0fc', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: 'eedf04dbe331917c7b1348f8020d959119cc9f0f', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '80dbbd75184a3857172eca25f30dee950c08709b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '0d83a74b7ae595d0593edadfe6b812435534abea', tabindex: "0", "aria-hidden": "true" })));
448
447
  }
449
448
  static get is() { return "ion-alert"; }
450
449
  static get encapsulation() { return "scoped"; }
@@ -10,7 +10,6 @@ import { sanitizeDOMString } from "../../utils/sanitization/index";
10
10
  import { getClassMap } from "../../utils/theme";
11
11
  import { config } from "../../global/config";
12
12
  import { getIonTheme } from "../../global/ionic-global";
13
- import { ionicEnterAnimation } from "./animations/ionic.enter";
14
13
  import { iosEnterAnimation } from "./animations/ios.enter";
15
14
  import { iosLeaveAnimation } from "./animations/ios.leave";
16
15
  import { mdEnterAnimation } from "./animations/md.enter";
@@ -123,7 +122,7 @@ export class Loading {
123
122
  async present() {
124
123
  const unlock = await this.lockController.lock();
125
124
  await this.delegateController.attachViewToDom();
126
- await present(this, 'loadingEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation);
125
+ await present(this, 'loadingEnter', iosEnterAnimation, mdEnterAnimation);
127
126
  if (this.duration > 0) {
128
127
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
129
128
  }
@@ -181,9 +180,9 @@ export class Loading {
181
180
  * Otherwise, don't set aria-labelledby.
182
181
  */
183
182
  const ariaLabelledBy = message !== undefined ? msgId : null;
184
- return (h(Host, Object.assign({ key: '89d1abcbc147e33c7bfc7bb3ef8f46ae82c12349', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
183
+ return (h(Host, Object.assign({ key: '0c475f8e28e680e28e09317557795fc56e0835d8', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
185
184
  zIndex: `${40000 + this.overlayIndex}`,
186
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '1f30f752a8cd8d6310d22ed4f515f39f8c14c05d', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '5d5be9f63b62499231a605bcaa6ef83c1efaeee1', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '001f8cd91d32c13116309d6bf452acee3fb2e529', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '40ce912631c9d3faf60110214a040e496a86a5c8', class: "loading-spinner" }, h("ion-spinner", { key: '7954e5bef56f42c0b80ca420091a2db10484dd74', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '86355f8e1eae0c428e63a69c4de1b1090bef2ebc', tabindex: "0", "aria-hidden": "true" })));
185
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'd7e88feb6df8edbc326a84d07b294618f7ce6adc', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'f9622f45b2d9e913c325b228a1e6ed03cf2b98e8', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'f4dfdce70c4515878b247d0cc116b5cec2cf79a4', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '6d4475e00c444eb3d217813ae8cc1a02a97b969e', class: "loading-spinner" }, h("ion-spinner", { key: 'd9ad8dd56ec7677c18d06936c1a1b21a0a6a87a8', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'bd3159e18f33ec25d3480d47ce33fa7dfd1f1460', tabindex: "0", "aria-hidden": "true" })));
187
186
  }
188
187
  static get is() { return "ion-loading"; }
189
188
  static get encapsulation() { return "scoped"; }
@@ -7,16 +7,16 @@ import { clamp, getElementRoot, raf } from "../../../utils/helpers";
7
7
  import { FOCUS_TRAP_DISABLE_CLASS } from "../../../utils/overlays";
8
8
  import { getBackdropValueForSheet } from "../utils";
9
9
  import { calculateSpringStep, handleCanDismiss } from "./utils";
10
- export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, isIonicTheme, onDragStart, onDragMove, onDragEnd) => {
10
+ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, staticBackdropOpacity, onDragStart, onDragMove, onDragEnd) => {
11
11
  // Defaults for the sheet swipe animation
12
12
  const defaultBackdrop = [
13
13
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
14
- { offset: 1, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0.01 },
14
+ { offset: 1, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0.01 },
15
15
  ];
16
16
  const customBackdrop = [
17
17
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
18
- { offset: 1 - backdropBreakpoint, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0 },
19
- { offset: 1, opacity: isIonicTheme ? 'var(--backdrop-opacity)' : 0 },
18
+ { offset: 1 - backdropBreakpoint, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0 },
19
+ { offset: 1, opacity: staticBackdropOpacity ? 'var(--backdrop-opacity)' : 0 },
20
20
  ];
21
21
  const SheetDefaults = {
22
22
  WRAPPER_KEYFRAMES: [
@@ -339,9 +339,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
339
339
  : step;
340
340
  offset = clamp(0.0001, processedStep, maxStep);
341
341
  animation.progressStep(offset);
342
- const snapBreakpoint = isIonicTheme
343
- ? calculateIonicSnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
344
- : calculateSnapBreakpoint(detail.deltaY);
342
+ const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
345
343
  const eventDetail = {
346
344
  currentY: detail.currentY,
347
345
  deltaY: detail.deltaY,
@@ -352,9 +350,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
352
350
  onDragMove(eventDetail);
353
351
  };
354
352
  const onEnd = (detail) => {
355
- const snapBreakpoint = isIonicTheme
356
- ? calculateIonicSnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
357
- : calculateSnapBreakpoint(detail.deltaY);
353
+ const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
358
354
  const eventDetail = {
359
355
  currentY: detail.currentY,
360
356
  deltaY: detail.deltaY,
@@ -401,14 +397,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
401
397
  */
402
398
  const shouldPreventDismiss = canDismiss && breakpoint === 0;
403
399
  const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
404
- /**
405
- * Detect snap-back behavior: when the snap target is the same as the current breakpoint,
406
- * the user released before crossing the threshold to a new breakpoint.
407
- * Apply different timing and easing for snap-back vs. snap-to-new.
408
- */
409
- const isSnapBack = snapToBreakpoint === currentBreakpoint;
410
- const duration = isIonicTheme ? (isSnapBack ? 300 : 400) : 500;
411
- const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
412
400
  const shouldRemainOpen = snapToBreakpoint !== 0;
413
401
  currentBreakpoint = 0;
414
402
  /**
@@ -423,13 +411,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
423
411
  backdropAnimation.keyframes([
424
412
  {
425
413
  offset: 0,
426
- opacity: isIonicTheme
414
+ opacity: staticBackdropOpacity
427
415
  ? 'var(--backdrop-opacity)'
428
416
  : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
429
417
  },
430
418
  {
431
419
  offset: 1,
432
- opacity: isIonicTheme
420
+ opacity: staticBackdropOpacity
433
421
  ? 'var(--backdrop-opacity)'
434
422
  : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
435
423
  },
@@ -449,12 +437,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
449
437
  }
450
438
  animation.progressStep(0);
451
439
  }
452
- /**
453
- * Apply the appropriate easing curve for this snap behavior.
454
- */
455
- if (isIonicTheme) {
456
- animation.easing(easing);
457
- }
458
440
  /**
459
441
  * Gesture should remain disabled until the
460
442
  * snapping animation completes.
@@ -544,7 +526,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
544
526
  * be added every time onEnd runs.
545
527
  */
546
528
  }, { oneTimeCallback: true })
547
- .progressEnd(1, 0, animated ? duration : 0);
529
+ .progressEnd(1, 0, animated ? 500 : 0);
548
530
  });
549
531
  };
550
532
  /**
@@ -575,50 +557,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
575
557
  });
576
558
  return snapBreakpoint;
577
559
  };
578
- /**
579
- * Calculates the Ionic-specific snap breakpoint using velocity-based logic.
580
- * This provides a more intuitive and responsive sheet behavior for the Ionic theme.
581
- *
582
- * Rules:
583
- * 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
584
- * 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
585
- * 3. If dragged 40% below current snap point without fast upward flick, dismisses
586
- * 4. Otherwise, falls back to position-based snap (closest breakpoint)
587
- *
588
- * @param deltaY The change in Y position since gesture started
589
- * @param velocityY The velocity in pixels per millisecond
590
- * @param currentY The current Y position of the gesture
591
- * @returns The snap breakpoint value
592
- */
593
- const calculateIonicSnapBreakpoint = (deltaY, velocityY, currentY) => {
594
- // Convert velocity from px/ms to px/s for easier threshold comparison
595
- const velocityYPerSecond = velocityY * 1000;
596
- // Calculate current progress (0 = fully closed, 1 = fully expanded)
597
- const currentProgress = calculateProgress(currentY);
598
- // Rule 1: Fast downward flick always dismisses
599
- if (velocityYPerSecond > 500) {
600
- return minBreakpoint;
601
- }
602
- // Rule 2: Fast upward flick moves to next breakpoint above
603
- if (velocityYPerSecond < -400) {
604
- // Find next breakpoint above current position
605
- const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
606
- // If no breakpoint above, stay at max breakpoint
607
- return nextBreakpoint !== null && nextBreakpoint !== void 0 ? nextBreakpoint : maxBreakpoint;
608
- }
609
- // Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
610
- if (minBreakpoint === 0 && currentBreakpoint > 0) {
611
- // Calculate how far we've moved below the current snap point
612
- const distanceBelowSnap = currentBreakpoint - currentProgress;
613
- const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
614
- // If dragged more than 40% below and not flicking up, dismiss
615
- if (percentageBelowSnap > 0.4 && velocityYPerSecond <= 400) {
616
- return 0;
617
- }
618
- }
619
- // Rule 4: Fallback to position-based snap (existing logic)
620
- return calculateSnapBreakpoint(deltaY);
621
- };
622
560
  /**
623
561
  * Calculates the progress of the swipe gesture.
624
562
  *
@@ -191,7 +191,7 @@ ion-backdrop {
191
191
  :host {
192
192
  --background: var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));
193
193
  --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));
194
- --backdrop-opacity: 0.7;
194
+ --backdrop-opacity: 1;
195
195
  color: var(--token-text-default, var(--token-primitives-neutral-1200, #242424));
196
196
  }
197
197
 
@@ -14,7 +14,6 @@ import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { config } from "../../global/config";
15
15
  import { getIonMode, getIonTheme } from "../../global/ionic-global";
16
16
  import { KEYBOARD_DID_OPEN } from "../../utils/keyboard/keyboard";
17
- import { ionicEnterAnimation } from "./animations/ionic.enter";
18
17
  import { iosEnterAnimation } from "./animations/ios.enter";
19
18
  import { iosLeaveAnimation } from "./animations/ios.leave";
20
19
  import { portraitToLandscapeTransition, landscapeToPortraitTransition } from "./animations/ios.transition";
@@ -455,7 +454,7 @@ export class Modal {
455
454
  this.statusBarStyle = await StatusBar.getStyle();
456
455
  setCardStatusBarDark();
457
456
  }
458
- await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
457
+ await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
459
458
  presentingEl: presentingElement,
460
459
  currentBreakpoint: this.initialBreakpoint,
461
460
  backdropBreakpoint: this.backdropBreakpoint,
@@ -1150,20 +1149,20 @@ export class Modal {
1150
1149
  const isHandleCycle = handleBehavior === 'cycle';
1151
1150
  const shape = this.getShape();
1152
1151
  const isSheetModalWithHandle = isSheetModal && showHandle;
1153
- return (h(Host, Object.assign({ key: '3011c8f49c1ccb6c20c01db35b59fe4f6e22ec01', "no-router": true,
1152
+ return (h(Host, Object.assign({ key: '4b323edb66d28260c34b31fd2af8f4ae53a7ef90', "no-router": true,
1154
1153
  // Allow the modal to be navigable when the handle is focusable
1155
1154
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
1156
1155
  zIndex: `${20000 + this.overlayIndex}`,
1157
- }, 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',
1156
+ }, 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',
1158
1157
  /*
1159
1158
  role and aria-modal must be used on the
1160
1159
  same element. They must also be set inside the
1161
1160
  shadow DOM otherwise ion-button will not be highlighted
1162
1161
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1163
1162
  */
1164
- 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",
1163
+ 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",
1165
1164
  // Prevents the handle from receiving keyboard focus when it does not cycle
1166
- 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 }))));
1165
+ 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 }))));
1167
1166
  }
1168
1167
  static get is() { return "ion-modal"; }
1169
1168
  static get encapsulation() { return "shadow"; }
@@ -8,7 +8,6 @@ import { printIonWarning } from "../../utils/logging/index";
8
8
  import { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
9
9
  import { getClassMap } from "../../utils/theme";
10
10
  import { getIonTheme } from "../../global/ionic-global";
11
- import { ionicEnterAnimation } from "./animations/ionic.enter";
12
11
  import { iosEnterAnimation } from "./animations/ios.enter";
13
12
  import { iosLeaveAnimation } from "./animations/ios.leave";
14
13
  // TODO(FW-2832): types
@@ -124,7 +123,7 @@ export class Picker {
124
123
  async present() {
125
124
  const unlock = await this.lockController.lock();
126
125
  await this.delegateController.attachViewToDom();
127
- await present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, ionicEnterAnimation, undefined);
126
+ await present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, undefined);
128
127
  if (this.duration > 0) {
129
128
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
130
129
  }
@@ -209,11 +208,11 @@ export class Picker {
209
208
  render() {
210
209
  const { htmlAttributes } = this;
211
210
  const theme = getIonTheme(this);
212
- return (h(Host, Object.assign({ key: '8db0e1a6cb7697efcc5d5a4a80f3dc3435760c1d', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
211
+ return (h(Host, Object.assign({ key: 'efcc823fad9cb37c1379bef4f4b84c6461f3a3a6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
213
212
  zIndex: `${20000 + this.overlayIndex}`,
214
213
  }, class: Object.assign({ [theme]: true,
215
214
  // Used internally for styling
216
- [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: 'c32c446147dff1e8b53fcf6885bdaa504d134d06', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '87c9eeeed6869569b0da65d720289f14f76d0cba', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '17a1250e5ce1dc176a39d7480587c56aa11f0247', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '4d4043aae3373d2f271e8e1320ba72f726eb2338', 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", { key: '954edc5d83380d04025ec8029194ad0f9c6778ff', class: "picker-columns" }, h("div", { key: 'f3c7f7bbb784b8076eebe984e7dd057d78c9824f', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '63dcf6a252024984cb3eaca133805343b324fdb1', class: "picker-below-highlight" }))), h("div", { key: 'e07eb1a59edf5d94fc487114c2d8b923fd768696', tabindex: "0", "aria-hidden": "true" })));
215
+ [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '3f44bf34e039210ae149c590c393ee9f7fb85da0', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'c2a51a89c525b1a22cbc8583cd30f41c3c356d4f', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '23837ffe309d0aad9b8ea09d7ac94d21040ef0d7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '91ba7e553d570768142715ded4bcc27fceedbce4', 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", { key: '22661cafeb555f1435ec1e0a122404a48136095b', class: "picker-columns" }, h("div", { key: '5f3db32468b8c60f63c70d81a27b18cce6f2e259', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '1bae6b170125b1671a480506ba73636b42b65909', class: "picker-below-highlight" }))), h("div", { key: '91beb94ce537122fbd6cd0c2bd3c00f908d0fefe', tabindex: "0", "aria-hidden": "true" })));
217
216
  }
218
217
  static get is() { return "ion-picker-legacy"; }
219
218
  static get encapsulation() { return "scoped"; }
@@ -12,7 +12,6 @@ import { isPlatform } from "../../utils/platform";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { getIonTheme } from "../../global/ionic-global";
15
- import { ionicEnterAnimation } from "./animations/ionic.enter";
16
15
  import { iosEnterAnimation } from "./animations/ios.enter";
17
16
  import { iosLeaveAnimation } from "./animations/ios.leave";
18
17
  import { mdEnterAnimation } from "./animations/md.enter";
@@ -360,7 +359,7 @@ export class Popover {
360
359
  else if (!this.keepContentsMounted) {
361
360
  await waitForMount();
362
361
  }
363
- await present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
362
+ await present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, {
364
363
  event: event || this.event,
365
364
  size: this.size,
366
365
  trigger: this.triggerEl,
@@ -469,9 +468,9 @@ export class Popover {
469
468
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
470
469
  const desktop = isPlatform('desktop');
471
470
  const enableArrow = arrow && !parentPopover;
472
- return (h(Host, Object.assign({ key: '398b4c72cfea89fb743d427e3c2b48507649aff1', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
471
+ return (h(Host, Object.assign({ key: 'cc70f9b037b16ea78b999916106a1062ceb74cb6', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
473
472
  zIndex: `${20000 + this.overlayIndex}`,
474
- }, 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' })))));
473
+ }, 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' })))));
475
474
  }
476
475
  static get is() { return "ion-popover"; }
477
476
  static get encapsulation() { return "shadow"; }
@@ -430,28 +430,32 @@
430
430
  margin-bottom: calc(var(--token-space-200, var(--token-scale-200, 8px)) + var(--token-font-size-300, 0.75rem));
431
431
  }
432
432
 
433
- .range-bar.range-bar-active {
434
- bottom: 0;
435
- width: auto;
436
- background: var(--bar-background-active);
433
+ .range-bar.has-ticks {
434
+ border-radius: 0;
437
435
  }
436
+
438
437
  .range-bar.range-bar-active.has-ticks {
439
- border-radius: 0;
440
438
  -webkit-margin-start: calc(-1 * var(--token-scale-100, 4px) * 0.5);
441
439
  margin-inline-start: calc(-1 * var(--token-scale-100, 4px) * 0.5);
442
440
  -webkit-margin-end: calc(-1 * var(--token-scale-100, 4px) * 0.5);
443
441
  margin-inline-end: calc(-1 * var(--token-scale-100, 4px) * 0.5);
444
442
  }
445
443
 
444
+ .range-bar.range-bar-active {
445
+ bottom: 0;
446
+ width: auto;
447
+ background: var(--bar-background-active);
448
+ }
449
+
446
450
  .range-tick {
447
451
  -webkit-margin-start: calc(var(--token-scale-100, 4px) * -0.5);
448
452
  margin-inline-start: calc(var(--token-scale-100, 4px) * -0.5);
449
- border-radius: var(--token-border-radius-0, var(--token-scale-0, 0px));
453
+ border-radius: var(--token-border-radius-400, var(--token-scale-400, 16px));
450
454
  position: absolute;
451
- top: calc(var(--height) * 0.5 - var(--token-scale-300, 12px) * 0.5);
452
- width: var(--token-scale-100, 4px);
453
- height: var(--token-scale-300, 12px);
454
- background: var(--token-primitives-neutral-100, #f3f3f3);
455
+ top: calc(var(--height) * 0.5 - var(--token-scale-400, 16px) * 0.5);
456
+ width: var(--token-scale-050, 2px);
457
+ height: var(--token-scale-400, 16px);
458
+ background: var(--bar-background);
455
459
  pointer-events: none;
456
460
  }
457
461
 
@@ -692,7 +692,10 @@ export class Range {
692
692
  } }, ticks.map((tick) => (h("div", { style: tickStyle(tick), role: "presentation", class: {
693
693
  'range-tick': true,
694
694
  'range-tick-active': tick.active,
695
- }, part: tick.active ? 'tick-active' : 'tick' }))), h("div", { class: "range-bar-container" }, h("div", { class: "range-bar", role: "presentation", part: "bar" }), h("div", { class: {
695
+ }, part: tick.active ? 'tick-active' : 'tick' }))), h("div", { class: "range-bar-container" }, h("div", { class: {
696
+ 'range-bar': true,
697
+ 'has-ticks': ticks.length > 0,
698
+ }, role: "presentation", part: "bar" }), h("div", { class: {
696
699
  'range-bar': true,
697
700
  'range-bar-active': true,
698
701
  'has-ticks': ticks.length > 0,
@@ -770,7 +773,7 @@ export class Range {
770
773
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
771
774
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
772
775
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
773
- return (h(Host, { key: 'a6262069e7dcc01413f9ade5ad4972127c2dd523', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
776
+ return (h(Host, { key: '1b8ca217fa6965fc038fb4ca8f0bc9142b3893ad', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
774
777
  [theme]: true,
775
778
  'in-item': inItem,
776
779
  'range-disabled': disabled,
@@ -784,10 +787,10 @@ export class Range {
784
787
  'range-item-end-adjustment': needsEndAdjustment,
785
788
  'range-value-min': valueAtMin,
786
789
  'range-value-max': valueAtMax,
787
- }) }, h("label", { key: 'e39421b320cc84f9f42840bd4d9d8d2bb241518f', class: "range-wrapper", id: "range-label" }, h("div", { key: '818f6e03be2264327e5b31e4b129f6493b9268dd', class: {
790
+ }) }, h("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, h("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
788
791
  'label-text-wrapper': true,
789
792
  'label-text-wrapper-hidden': !hasLabel,
790
- }, 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" })))));
793
+ }, 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" })))));
791
794
  }
792
795
  static get is() { return "ion-range"; }
793
796
  static get encapsulation() { return "shadow"; }