@ionic/core 7.5.4-dev.11699469920.1af6ea12 → 7.5.4-dev.11699632730.1e6d9b70

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 (121) hide show
  1. package/components/ion-modal.js +2 -2
  2. package/components/ion-select.js +1 -23
  3. package/components/ion-toast.js +67 -417
  4. package/components/overlays.js +1 -2
  5. package/components/radio-group.js +2 -0
  6. package/components/radio.js +40 -2
  7. package/css/ionic.bundle.css +1 -1
  8. package/css/ionic.bundle.css.map +1 -1
  9. package/css/themes/dark.css +135 -0
  10. package/css/themes/dark.css.map +1 -0
  11. package/css/utils.bundle.css +133 -0
  12. package/css/utils.bundle.css.map +1 -1
  13. package/dist/cjs/compare-with-utils-c0444525.js +44 -0
  14. package/dist/cjs/index.cjs.js +1 -1
  15. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  16. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  17. package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  20. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  22. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -1
  23. package/dist/cjs/ion-select_3.cjs.entry.js +6 -27
  24. package/dist/cjs/ion-toast.cjs.entry.js +83 -430
  25. package/dist/cjs/ionic.cjs.js +1 -1
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/cjs/{overlays-ba1a1e21.js → overlays-d80a2cf2.js} +0 -2
  28. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
  29. package/dist/collection/components/radio/radio.js +3 -2
  30. package/dist/collection/components/radio-group/radio-group.js +24 -0
  31. package/dist/collection/components/select/select.js +2 -24
  32. package/dist/collection/components/toast/animations/ios.enter.js +1 -2
  33. package/dist/collection/components/toast/animations/md.enter.js +1 -2
  34. package/dist/collection/components/toast/animations/utils.js +0 -11
  35. package/dist/collection/components/toast/toast.js +1 -104
  36. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  37. package/dist/collection/utils/forms/index.js +1 -0
  38. package/dist/collection/utils/overlays.js +0 -1
  39. package/dist/docs.json +43 -38
  40. package/dist/esm/compare-with-utils-4928c09d.js +41 -0
  41. package/dist/esm/index.js +1 -1
  42. package/dist/esm/ion-action-sheet.entry.js +1 -1
  43. package/dist/esm/ion-alert.entry.js +1 -1
  44. package/dist/esm/ion-datetime_3.entry.js +1 -1
  45. package/dist/esm/ion-loading.entry.js +1 -1
  46. package/dist/esm/ion-menu_3.entry.js +1 -1
  47. package/dist/esm/ion-modal.entry.js +2 -2
  48. package/dist/esm/ion-popover.entry.js +1 -1
  49. package/dist/esm/ion-radio_2.entry.js +4 -1
  50. package/dist/esm/ion-select_3.entry.js +2 -23
  51. package/dist/esm/ion-toast.entry.js +66 -413
  52. package/dist/esm/ionic.js +1 -1
  53. package/dist/esm/loader.js +1 -1
  54. package/dist/esm/{overlays-d79b34b4.js → overlays-a31c8878.js} +1 -2
  55. package/dist/esm-es5/compare-with-utils-4928c09d.js +4 -0
  56. package/dist/esm-es5/index.js +1 -1
  57. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  58. package/dist/esm-es5/ion-alert.entry.js +1 -1
  59. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  60. package/dist/esm-es5/ion-loading.entry.js +1 -1
  61. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  62. package/dist/esm-es5/ion-modal.entry.js +1 -1
  63. package/dist/esm-es5/ion-popover.entry.js +1 -1
  64. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  65. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  66. package/dist/esm-es5/ion-toast.entry.js +1 -1
  67. package/dist/esm-es5/ionic.js +1 -1
  68. package/dist/esm-es5/loader.js +1 -1
  69. package/dist/esm-es5/{overlays-d79b34b4.js → overlays-a31c8878.js} +1 -1
  70. package/dist/html.html-data.json +5 -10
  71. package/dist/ionic/index.esm.js +1 -1
  72. package/dist/ionic/ionic.esm.js +1 -1
  73. package/dist/ionic/p-02663394.system.js +1 -1
  74. package/dist/ionic/p-139bd79d.system.entry.js +4 -0
  75. package/dist/ionic/{p-3dedd258.system.entry.js → p-1e59dd04.system.entry.js} +1 -1
  76. package/dist/ionic/{p-938c4956.js → p-307963db.js} +1 -1
  77. package/dist/ionic/{p-1fc6b5a5.system.entry.js → p-3a769110.system.entry.js} +1 -1
  78. package/dist/ionic/p-3bc3d880.system.js +4 -0
  79. package/dist/ionic/p-43716898.js +4 -0
  80. package/dist/ionic/{p-1511dc35.system.js → p-4c75cb48.system.js} +1 -1
  81. package/dist/ionic/p-539c09e8.system.entry.js +4 -0
  82. package/dist/ionic/{p-e525dbea.entry.js → p-53b1930e.entry.js} +1 -1
  83. package/dist/ionic/{p-ab1908ba.system.entry.js → p-59107f99.system.entry.js} +1 -1
  84. package/dist/ionic/p-6b45cfd0.system.entry.js +4 -0
  85. package/dist/ionic/{p-664cc492.entry.js → p-75338011.entry.js} +1 -1
  86. package/dist/ionic/p-7d68e4ea.entry.js +4 -0
  87. package/dist/ionic/{p-78a8e1e8.entry.js → p-8140a084.entry.js} +1 -1
  88. package/dist/ionic/{p-2151a4a4.system.entry.js → p-90020ef0.system.entry.js} +1 -1
  89. package/dist/ionic/{p-53f75103.system.js → p-98c70e3c.system.js} +1 -1
  90. package/dist/ionic/p-999a7271.entry.js +4 -0
  91. package/dist/ionic/p-a4e4dba1.entry.js +4 -0
  92. package/dist/ionic/{p-138a4a93.entry.js → p-b86c6c05.entry.js} +1 -1
  93. package/dist/ionic/p-be499f29.entry.js +4 -0
  94. package/dist/ionic/{p-a9424586.entry.js → p-c09fa14d.entry.js} +1 -1
  95. package/dist/ionic/{p-020dd47f.entry.js → p-c32a6c04.entry.js} +1 -1
  96. package/dist/ionic/{p-81bdfa1c.system.entry.js → p-d54a8393.system.entry.js} +1 -1
  97. package/dist/ionic/p-e66f7d10.system.entry.js +4 -0
  98. package/dist/ionic/{p-cb6c380e.system.entry.js → p-e91c7eb4.system.entry.js} +1 -1
  99. package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
  100. package/dist/types/components/radio-group/radio-group.d.ts +8 -1
  101. package/dist/types/components/select/select.d.ts +4 -1
  102. package/dist/types/components/toast/animations/utils.d.ts +0 -9
  103. package/dist/types/components/toast/toast-interface.d.ts +0 -1
  104. package/dist/types/components/toast/toast.d.ts +1 -28
  105. package/dist/types/components.d.ts +14 -14
  106. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  107. package/dist/types/utils/forms/index.d.ts +1 -0
  108. package/dist/types/utils/overlays.d.ts +0 -1
  109. package/hydrate/index.js +107 -436
  110. package/package.json +1 -1
  111. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
  112. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
  113. package/dist/ionic/p-344706aa.entry.js +0 -4
  114. package/dist/ionic/p-637d836a.system.entry.js +0 -4
  115. package/dist/ionic/p-6c89025e.system.entry.js +0 -4
  116. package/dist/ionic/p-8414ed31.entry.js +0 -4
  117. package/dist/ionic/p-d075c0aa.system.entry.js +0 -4
  118. package/dist/ionic/p-e3b7a2d0.system.entry.js +0 -4
  119. package/dist/ionic/p-ea1650b0.entry.js +0 -4
  120. package/dist/ionic/p-f2d4e3c8.entry.js +0 -4
  121. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
package/hydrate/index.js CHANGED
@@ -8728,7 +8728,6 @@ const safeCall = (handler, arg) => {
8728
8728
  };
8729
8729
  const BACKDROP = 'backdrop';
8730
8730
  const GESTURE = 'gesture';
8731
- const OVERLAY_GESTURE_PRIORITY = 39;
8732
8731
  /**
8733
8732
  * Creates a delegate controller.
8734
8733
  *
@@ -12177,6 +12176,43 @@ const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
12177
12176
  };
12178
12177
  };
12179
12178
 
12179
+ /**
12180
+ * Uses the compareWith param to compare two values to determine if they are equal.
12181
+ *
12182
+ * @param currentValue The current value of the control.
12183
+ * @param compareValue The value to compare against.
12184
+ * @param compareWith The function or property name to use to compare values.
12185
+ */
12186
+ const compareOptions = (currentValue, compareValue, compareWith) => {
12187
+ if (typeof compareWith === 'function') {
12188
+ return compareWith(currentValue, compareValue);
12189
+ }
12190
+ else if (typeof compareWith === 'string') {
12191
+ return currentValue[compareWith] === compareValue[compareWith];
12192
+ }
12193
+ else {
12194
+ return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
12195
+ }
12196
+ };
12197
+ /**
12198
+ * Compares a value against the current value(s) to determine if it is selected.
12199
+ *
12200
+ * @param currentValue The current value of the control.
12201
+ * @param compareValue The value to compare against.
12202
+ * @param compareWith The function or property name to use to compare values.
12203
+ */
12204
+ const isOptionSelected = (currentValue, compareValue, compareWith) => {
12205
+ if (currentValue === undefined) {
12206
+ return false;
12207
+ }
12208
+ if (Array.isArray(currentValue)) {
12209
+ return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
12210
+ }
12211
+ else {
12212
+ return compareOptions(currentValue, compareValue, compareWith);
12213
+ }
12214
+ };
12215
+
12180
12216
  const checkboxIosCss = "/*!@:host*/.sc-ion-checkbox-ios-h{--checkbox-background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}/*!@:host(.in-item)*/.in-item.sc-ion-checkbox-ios-h{width:100%;height:100%}/*!@:host([slot=start]:not(.legacy-checkbox)),\n:host([slot=end]:not(.legacy-checkbox))*/[slot=start].sc-ion-checkbox-ios-h:not(.legacy-checkbox),[slot=end].sc-ion-checkbox-ios-h:not(.legacy-checkbox){width:auto}/*!@:host(.legacy-checkbox)*/.legacy-checkbox.sc-ion-checkbox-ios-h{width:var(--size);height:var(--size)}/*!@:host(.ion-color)*/.ion-color.sc-ion-checkbox-ios-h{--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios{left:0}/*!@:host-context([dir=rtl]):host(.legacy-checkbox) label, :host-context([dir=rtl]).legacy-checkbox label*/[dir=rtl].sc-ion-checkbox-ios-h -no-combinator.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios,[dir=rtl] .sc-ion-checkbox-ios-h -no-combinator.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios,[dir=rtl].legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios,[dir=rtl] .legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-checkbox-ios selector(.sc-ion-checkbox-ios:dir(rtl)){.sc-ion-checkbox-ios-h.legacy-checkbox:dir(rtl) label{left:unset;right:unset;right:0}}}/*!@:host(.legacy-checkbox) label::-moz-focus-inner*/.legacy-checkbox.sc-ion-checkbox-ios-h label.sc-ion-checkbox-ios::-moz-focus-inner{border:0}/*!@.checkbox-wrapper*/.checkbox-wrapper.sc-ion-checkbox-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;cursor:inherit}/*!@.label-text-wrapper*/.label-text-wrapper.sc-ion-checkbox-ios{pointer-events:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host(.in-item:not(.legacy-checkbox)) .label-text-wrapper*/.in-item.sc-ion-checkbox-ios-h:not(.legacy-checkbox) .label-text-wrapper.sc-ion-checkbox-ios{margin-top:10px;margin-bottom:10px}/*!@:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper*/.in-item.checkbox-label-placement-stacked.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{margin-top:10px;margin-bottom:16px}/*!@:host(.in-item.checkbox-label-placement-stacked) .native-wrapper*/.in-item.checkbox-label-placement-stacked.sc-ion-checkbox-ios-h .native-wrapper.sc-ion-checkbox-ios{margin-bottom:10px}/*!@.label-text-wrapper-hidden*/.label-text-wrapper-hidden.sc-ion-checkbox-ios{display:none}/*!@input*/input.sc-ion-checkbox-ios{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}/*!@.native-wrapper*/.native-wrapper.sc-ion-checkbox-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@.checkbox-icon*/.checkbox-icon.sc-ion-checkbox-ios{border-radius:var(--border-radius);position:relative;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}/*!@:host(.legacy-checkbox) .checkbox-icon*/.legacy-checkbox.sc-ion-checkbox-ios-h .checkbox-icon.sc-ion-checkbox-ios{display:block;width:100%;height:100%}/*!@:host(:not(.legacy-checkbox)) .checkbox-icon*/.sc-ion-checkbox-ios-h:not(.legacy-checkbox) .checkbox-icon.sc-ion-checkbox-ios{width:var(--size);height:var(--size)}/*!@.checkbox-icon path*/.checkbox-icon.sc-ion-checkbox-ios path.sc-ion-checkbox-ios{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}/*!@:host(.checkbox-justify-space-between) .checkbox-wrapper*/.checkbox-justify-space-between.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.checkbox-justify-start) .checkbox-wrapper*/.checkbox-justify-start.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-pack:start;justify-content:start}/*!@:host(.checkbox-justify-end) .checkbox-wrapper*/.checkbox-justify-end.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-pack:end;justify-content:end}/*!@:host(.checkbox-alignment-start) .checkbox-wrapper*/.checkbox-alignment-start.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-align:start;align-items:start}/*!@:host(.checkbox-alignment-center) .checkbox-wrapper*/.checkbox-alignment-center.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-align:center;align-items:center}/*!@:host(.checkbox-label-placement-start) .checkbox-wrapper*/.checkbox-label-placement-start.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-direction:row;flex-direction:row}/*!@:host(.checkbox-label-placement-start) .label-text-wrapper*/.checkbox-label-placement-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}/*!@:host(.checkbox-label-placement-end) .checkbox-wrapper*/.checkbox-label-placement-end.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}/*!@:host(.checkbox-label-placement-end) .label-text-wrapper*/.checkbox-label-placement-end.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}/*!@:host(.checkbox-label-placement-fixed) .label-text-wrapper*/.checkbox-label-placement-fixed.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}/*!@:host(.checkbox-label-placement-fixed) .label-text-wrapper*/.checkbox-label-placement-fixed.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}/*!@:host(.checkbox-label-placement-stacked) .checkbox-wrapper*/.checkbox-label-placement-stacked.sc-ion-checkbox-ios-h .checkbox-wrapper.sc-ion-checkbox-ios{-ms-flex-direction:column;flex-direction:column}/*!@:host(.checkbox-label-placement-stacked) .label-text-wrapper*/.checkbox-label-placement-stacked.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-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(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:left top;transform-origin:left top}/*!@:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper*/[dir=rtl].sc-ion-checkbox-ios-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl] .sc-ion-checkbox-ios-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl].checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl] .checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-ios-h:dir(rtl) .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:right top;transform-origin:right top}}/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:center top;transform-origin:center top}/*!@:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper*/[dir=rtl].sc-ion-checkbox-ios-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl] .sc-ion-checkbox-ios-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl].checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios,[dir=rtl] .checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-ios-h:dir(rtl) .label-text-wrapper.sc-ion-checkbox-ios{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}/*!@:host(.checkbox-checked) .checkbox-icon,\n:host(.checkbox-indeterminate) .checkbox-icon*/.checkbox-checked.sc-ion-checkbox-ios-h .checkbox-icon.sc-ion-checkbox-ios,.checkbox-indeterminate.sc-ion-checkbox-ios-h .checkbox-icon.sc-ion-checkbox-ios{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}/*!@:host(.checkbox-checked) .checkbox-icon path,\n:host(.checkbox-indeterminate) .checkbox-icon path*/.checkbox-checked.sc-ion-checkbox-ios-h .checkbox-icon.sc-ion-checkbox-ios path.sc-ion-checkbox-ios,.checkbox-indeterminate.sc-ion-checkbox-ios-h .checkbox-icon.sc-ion-checkbox-ios path.sc-ion-checkbox-ios{opacity:1}/*!@:host(.checkbox-disabled)*/.checkbox-disabled.sc-ion-checkbox-ios-h{pointer-events:none}/*!@:host*/.sc-ion-checkbox-ios-h{--border-radius:50%;--border-width:0.0625rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.625rem, 65.988px)}/*!@:host(.checkbox-disabled)*/.checkbox-disabled.sc-ion-checkbox-ios-h{opacity:0.3}/*!@:host(.in-item.legacy-checkbox)*/.in-item.legacy-checkbox.sc-ion-checkbox-ios-h{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:9px;display:block;position:static}/*!@:host(.in-item.legacy-checkbox[slot=start])*/.in-item.legacy-checkbox[slot=start].sc-ion-checkbox-ios-h{-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:8px;margin-bottom:8px}";
12181
12217
 
12182
12218
  const checkboxMdCss = "/*!@:host*/.sc-ion-checkbox-md-h{--checkbox-background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}/*!@:host(.in-item)*/.in-item.sc-ion-checkbox-md-h{width:100%;height:100%}/*!@:host([slot=start]:not(.legacy-checkbox)),\n:host([slot=end]:not(.legacy-checkbox))*/[slot=start].sc-ion-checkbox-md-h:not(.legacy-checkbox),[slot=end].sc-ion-checkbox-md-h:not(.legacy-checkbox){width:auto}/*!@:host(.legacy-checkbox)*/.legacy-checkbox.sc-ion-checkbox-md-h{width:var(--size);height:var(--size)}/*!@:host(.ion-color)*/.ion-color.sc-ion-checkbox-md-h{--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host(.legacy-checkbox) label*/.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md{left:0}/*!@:host-context([dir=rtl]):host(.legacy-checkbox) label, :host-context([dir=rtl]).legacy-checkbox label*/[dir=rtl].sc-ion-checkbox-md-h -no-combinator.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md,[dir=rtl] .sc-ion-checkbox-md-h -no-combinator.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md,[dir=rtl].legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md,[dir=rtl] .legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-checkbox-md selector(.sc-ion-checkbox-md:dir(rtl)){.sc-ion-checkbox-md-h.legacy-checkbox:dir(rtl) label{left:unset;right:unset;right:0}}}/*!@:host(.legacy-checkbox) label::-moz-focus-inner*/.legacy-checkbox.sc-ion-checkbox-md-h label.sc-ion-checkbox-md::-moz-focus-inner{border:0}/*!@.checkbox-wrapper*/.checkbox-wrapper.sc-ion-checkbox-md{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;cursor:inherit}/*!@.label-text-wrapper*/.label-text-wrapper.sc-ion-checkbox-md{pointer-events:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host(.in-item:not(.legacy-checkbox)) .label-text-wrapper*/.in-item.sc-ion-checkbox-md-h:not(.legacy-checkbox) .label-text-wrapper.sc-ion-checkbox-md{margin-top:10px;margin-bottom:10px}/*!@:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper*/.in-item.checkbox-label-placement-stacked.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{margin-top:10px;margin-bottom:16px}/*!@:host(.in-item.checkbox-label-placement-stacked) .native-wrapper*/.in-item.checkbox-label-placement-stacked.sc-ion-checkbox-md-h .native-wrapper.sc-ion-checkbox-md{margin-bottom:10px}/*!@.label-text-wrapper-hidden*/.label-text-wrapper-hidden.sc-ion-checkbox-md{display:none}/*!@input*/input.sc-ion-checkbox-md{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}/*!@.native-wrapper*/.native-wrapper.sc-ion-checkbox-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@.checkbox-icon*/.checkbox-icon.sc-ion-checkbox-md{border-radius:var(--border-radius);position:relative;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}/*!@:host(.legacy-checkbox) .checkbox-icon*/.legacy-checkbox.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md{display:block;width:100%;height:100%}/*!@:host(:not(.legacy-checkbox)) .checkbox-icon*/.sc-ion-checkbox-md-h:not(.legacy-checkbox) .checkbox-icon.sc-ion-checkbox-md{width:var(--size);height:var(--size)}/*!@.checkbox-icon path*/.checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}/*!@:host(.checkbox-justify-space-between) .checkbox-wrapper*/.checkbox-justify-space-between.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.checkbox-justify-start) .checkbox-wrapper*/.checkbox-justify-start.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-pack:start;justify-content:start}/*!@:host(.checkbox-justify-end) .checkbox-wrapper*/.checkbox-justify-end.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-pack:end;justify-content:end}/*!@:host(.checkbox-alignment-start) .checkbox-wrapper*/.checkbox-alignment-start.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-align:start;align-items:start}/*!@:host(.checkbox-alignment-center) .checkbox-wrapper*/.checkbox-alignment-center.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-align:center;align-items:center}/*!@:host(.checkbox-label-placement-start) .checkbox-wrapper*/.checkbox-label-placement-start.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-direction:row;flex-direction:row}/*!@:host(.checkbox-label-placement-start) .label-text-wrapper*/.checkbox-label-placement-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}/*!@:host(.checkbox-label-placement-end) .checkbox-wrapper*/.checkbox-label-placement-end.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}/*!@:host(.checkbox-label-placement-end) .label-text-wrapper*/.checkbox-label-placement-end.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}/*!@:host(.checkbox-label-placement-fixed) .label-text-wrapper*/.checkbox-label-placement-fixed.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}/*!@:host(.checkbox-label-placement-fixed) .label-text-wrapper*/.checkbox-label-placement-fixed.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}/*!@:host(.checkbox-label-placement-stacked) .checkbox-wrapper*/.checkbox-label-placement-stacked.sc-ion-checkbox-md-h .checkbox-wrapper.sc-ion-checkbox-md{-ms-flex-direction:column;flex-direction:column}/*!@:host(.checkbox-label-placement-stacked) .label-text-wrapper*/.checkbox-label-placement-stacked.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-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(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:left top;transform-origin:left top}/*!@:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper*/[dir=rtl].sc-ion-checkbox-md-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl] .sc-ion-checkbox-md-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl].checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl] .checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-start.sc-ion-checkbox-md-h:dir(rtl) .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:right top;transform-origin:right top}}/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:center top;transform-origin:center top}/*!@:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper*/[dir=rtl].sc-ion-checkbox-md-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl] .sc-ion-checkbox-md-h -no-combinator.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl].checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md,[dir=rtl] .checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){/*!@:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper*/.checkbox-label-placement-stacked.checkbox-alignment-center.sc-ion-checkbox-md-h:dir(rtl) .label-text-wrapper.sc-ion-checkbox-md{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}/*!@:host(.checkbox-checked) .checkbox-icon,\n:host(.checkbox-indeterminate) .checkbox-icon*/.checkbox-checked.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md,.checkbox-indeterminate.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}/*!@:host(.checkbox-checked) .checkbox-icon path,\n:host(.checkbox-indeterminate) .checkbox-icon path*/.checkbox-checked.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md,.checkbox-indeterminate.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md{opacity:1}/*!@:host(.checkbox-disabled)*/.checkbox-disabled.sc-ion-checkbox-md-h{pointer-events:none}/*!@:host*/.sc-ion-checkbox-md-h{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}/*!@.checkbox-icon path*/.checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md{stroke-dasharray:30;stroke-dashoffset:30}/*!@:host(.checkbox-checked) .checkbox-icon path,\n:host(.checkbox-indeterminate) .checkbox-icon path*/.checkbox-checked.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md,.checkbox-indeterminate.sc-ion-checkbox-md-h .checkbox-icon.sc-ion-checkbox-md path.sc-ion-checkbox-md{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}/*!@:host(.legacy-checkbox.checkbox-disabled),\n:host(.checkbox-disabled) .label-text-wrapper*/.legacy-checkbox.checkbox-disabled.sc-ion-checkbox-md-h,.checkbox-disabled.sc-ion-checkbox-md-h .label-text-wrapper.sc-ion-checkbox-md{opacity:0.38}/*!@:host(.checkbox-disabled) .native-wrapper*/.checkbox-disabled.sc-ion-checkbox-md-h .native-wrapper.sc-ion-checkbox-md{opacity:0.63}/*!@:host(.in-item.legacy-checkbox)*/.in-item.legacy-checkbox.sc-ion-checkbox-md-h{margin-left:0;margin-right:0;margin-top:18px;margin-bottom:18px;display:block;position:static}/*!@:host(.in-item.legacy-checkbox[slot=start])*/.in-item.legacy-checkbox[slot=start].sc-ion-checkbox-md-h{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:36px;margin-inline-end:36px;margin-top:18px;margin-bottom:18px}";
@@ -22263,7 +22299,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) =>
22263
22299
  const gesture = createGesture({
22264
22300
  el,
22265
22301
  gestureName: 'modalSwipeToClose',
22266
- gesturePriority: OVERLAY_GESTURE_PRIORITY,
22302
+ gesturePriority: 39,
22267
22303
  direction: 'y',
22268
22304
  threshold: 10,
22269
22305
  canStart,
@@ -27376,7 +27412,8 @@ class Radio {
27376
27412
  this.hasLoggedDeprecationWarning = false;
27377
27413
  this.updateState = () => {
27378
27414
  if (this.radioGroup) {
27379
- this.checked = this.radioGroup.value === this.value;
27415
+ const { compareWith, value: radioGroupValue } = this.radioGroup;
27416
+ this.checked = isOptionSelected(radioGroupValue, this.value, compareWith);
27380
27417
  }
27381
27418
  };
27382
27419
  this.onClick = () => {
@@ -27619,6 +27656,7 @@ class RadioGroup {
27619
27656
  }
27620
27657
  };
27621
27658
  this.allowEmptySelection = false;
27659
+ this.compareWith = undefined;
27622
27660
  this.name = this.inputId;
27623
27661
  this.value = undefined;
27624
27662
  }
@@ -27718,6 +27756,7 @@ class RadioGroup {
27718
27756
  "$tagName$": "ion-radio-group",
27719
27757
  "$members$": {
27720
27758
  "allowEmptySelection": [4, "allow-empty-selection"],
27759
+ "compareWith": [1, "compare-with"],
27721
27760
  "name": [1],
27722
27761
  "value": [1032]
27723
27762
  },
@@ -32634,17 +32673,6 @@ Developers can use the "legacy" property to continue using the legacy form marku
32634
32673
  "$attrsToReflect$": [["color", "color"]]
32635
32674
  }; }
32636
32675
  }
32637
- const isOptionSelected = (currentValue, compareValue, compareWith) => {
32638
- if (currentValue === undefined) {
32639
- return false;
32640
- }
32641
- if (Array.isArray(currentValue)) {
32642
- return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
32643
- }
32644
- else {
32645
- return compareOptions(currentValue, compareValue, compareWith);
32646
- }
32647
- };
32648
32676
  const getOptionValue = (el) => {
32649
32677
  const value = el.value;
32650
32678
  return value === undefined ? el.textContent || '' : value;
@@ -32658,17 +32686,6 @@ const parseValue = (value) => {
32658
32686
  }
32659
32687
  return value.toString();
32660
32688
  };
32661
- const compareOptions = (currentValue, compareValue, compareWith) => {
32662
- if (typeof compareWith === 'function') {
32663
- return compareWith(currentValue, compareValue);
32664
- }
32665
- else if (typeof compareWith === 'string') {
32666
- return currentValue[compareWith] === compareValue[compareWith];
32667
- }
32668
- else {
32669
- return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
32670
- }
32671
- };
32672
32689
  const generateText = (opts, value, compareWith) => {
32673
32690
  if (value === undefined) {
32674
32691
  return '';
@@ -33946,93 +33963,6 @@ class Thumbnail {
33946
33963
  }; }
33947
33964
  }
33948
33965
 
33949
- /**
33950
- * Calculate the CSS top and bottom position of the toast, to be used
33951
- * as starting points for the animation keyframes.
33952
- *
33953
- * The default animations for both MD and iOS
33954
- * use translateY, which calculates from the
33955
- * top edge of the screen. This behavior impacts
33956
- * how we compute the offset when a toast has
33957
- * position='bottom' since we need to calculate from
33958
- * the bottom edge of the screen instead.
33959
- *
33960
- * @param position The value of the toast's position prop.
33961
- * @param positionAnchor The element the toast should be anchored to,
33962
- * if applicable.
33963
- * @param mode The toast component's mode (md, ios, etc).
33964
- * @param toast A reference to the toast element itself.
33965
- */
33966
- function getAnimationPosition(position, positionAnchor, mode, toast) {
33967
- /**
33968
- * Start with a predefined offset from the edge the toast will be
33969
- * positioned relative to, whether on the screen or anchor element.
33970
- */
33971
- let offset;
33972
- if (mode === 'md') {
33973
- offset = position === 'top' ? 8 : -8;
33974
- }
33975
- else {
33976
- offset = position === 'top' ? 10 : -10;
33977
- }
33978
- /**
33979
- * If positionAnchor is defined, add in the distance from the target
33980
- * screen edge to the target anchor edge. For position="top", the
33981
- * bottom anchor edge is targeted. For position="bottom", the top
33982
- * anchor edge is targeted.
33983
- */
33984
- if (positionAnchor && win$1) {
33985
- warnIfAnchorIsHidden(positionAnchor, toast);
33986
- const box = positionAnchor.getBoundingClientRect();
33987
- if (position === 'top') {
33988
- offset += box.bottom;
33989
- }
33990
- else if (position === 'bottom') {
33991
- /**
33992
- * Just box.top is the distance from the top edge of the screen
33993
- * to the top edge of the anchor. We want to calculate from the
33994
- * bottom edge of the screen instead.
33995
- */
33996
- offset -= win$1.innerHeight - box.top;
33997
- }
33998
- /**
33999
- * We don't include safe area here because that should already be
34000
- * accounted for when checking the position of the anchor.
34001
- */
34002
- return {
34003
- top: `${offset}px`,
34004
- bottom: `${offset}px`,
34005
- };
34006
- }
34007
- else {
34008
- return {
34009
- top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
34010
- bottom: `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
34011
- };
34012
- }
34013
- }
34014
- /**
34015
- * If the anchor element is hidden, getBoundingClientRect()
34016
- * will return all 0s for it, which can cause unexpected
34017
- * results in the position calculation when animating.
34018
- */
34019
- function warnIfAnchorIsHidden(positionAnchor, toast) {
34020
- if (positionAnchor.offsetParent === null) {
34021
- printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
34022
- }
34023
- }
34024
- /**
34025
- * Returns the top offset required to place
34026
- * the toast in the middle of the screen.
34027
- * Only needed when position="toast".
34028
- * @param toastHeight: The height of the ion-toast element
34029
- * @param wrapperHeight: The height of the .toast-wrapper element
34030
- * inside the toast's shadow root.
34031
- */
34032
- const getOffsetForMiddlePosition = (toastHeight, wrapperHeight) => {
34033
- return Math.floor(toastHeight / 2 - wrapperHeight / 2);
34034
- };
34035
-
34036
33966
  /**
34037
33967
  * iOS Toast Enter Animation
34038
33968
  */
@@ -34048,7 +33978,7 @@ const iosEnterAnimation = (baseEl, opts) => {
34048
33978
  wrapperAnimation.fromTo('transform', 'translateY(-100%)', `translateY(${top})`);
34049
33979
  break;
34050
33980
  case 'middle':
34051
- const topPosition = getOffsetForMiddlePosition(baseEl.clientHeight, wrapperEl.clientHeight);
33981
+ const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);
34052
33982
  wrapperEl.style.top = `${topPosition}px`;
34053
33983
  wrapperAnimation.fromTo('opacity', 0.01, 1);
34054
33984
  break;
@@ -34099,7 +34029,7 @@ const mdEnterAnimation = (baseEl, opts) => {
34099
34029
  wrapperAnimation.fromTo('opacity', 0.01, 1);
34100
34030
  break;
34101
34031
  case 'middle':
34102
- const topPosition = getOffsetForMiddlePosition(baseEl.clientHeight, wrapperEl.clientHeight);
34032
+ const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);
34103
34033
  wrapperEl.style.top = `${topPosition}px`;
34104
34034
  wrapperAnimation.fromTo('opacity', 0.01, 1);
34105
34035
  break;
@@ -34124,261 +34054,80 @@ const mdLeaveAnimation = (baseEl) => {
34124
34054
  };
34125
34055
 
34126
34056
  /**
34127
- * Create a gesture that allows the Toast
34128
- * to be swiped to dismiss.
34129
- * @param el - The Toast element
34130
- * @param toastPosition - The last computed position of the Toast. This is computed in the "present" method.
34131
- * @param onDismiss - A callback to fire when the Toast was swiped to dismiss.
34057
+ * Calculate the CSS top and bottom position of the toast, to be used
34058
+ * as starting points for the animation keyframes.
34059
+ *
34060
+ * The default animations for both MD and iOS
34061
+ * use translateY, which calculates from the
34062
+ * top edge of the screen. This behavior impacts
34063
+ * how we compute the offset when a toast has
34064
+ * position='bottom' since we need to calculate from
34065
+ * the bottom edge of the screen instead.
34066
+ *
34067
+ * @param position The value of the toast's position prop.
34068
+ * @param positionAnchor The element the toast should be anchored to,
34069
+ * if applicable.
34070
+ * @param mode The toast component's mode (md, ios, etc).
34071
+ * @param toast A reference to the toast element itself.
34132
34072
  */
34133
- const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
34134
- /**
34135
- * Users should swipe on the visible toast wrapper
34136
- * rather than on ion-toast which covers the entire screen.
34137
- * When testing the class instance the inner wrapper will not
34138
- * be defined. As a result, we use a placeholder element in those environments.
34139
- */
34140
- const wrapperEl = getElementRoot(el).querySelector('.toast-wrapper');
34141
- const hostElHeight = el.clientHeight;
34142
- const wrapperElBox = wrapperEl.getBoundingClientRect();
34143
- /**
34144
- * The maximum amount that
34145
- * the toast can be swiped. This should
34146
- * account for the wrapper element's height
34147
- * too so the toast can be swiped offscreen
34148
- * completely.
34149
- */
34150
- let MAX_SWIPE_DISTANCE = 0;
34151
- /**
34152
- * The step value at which a toast
34153
- * is eligible for dismissing via gesture.
34154
- */
34155
- const DISMISS_THRESHOLD = 0.5;
34156
- /**
34157
- * The middle position Toast starts 50% of the way
34158
- * through the animation, so we need to use this
34159
- * as the starting point for our step values.
34160
- */
34161
- const STEP_OFFSET = el.position === 'middle' ? 0.5 : 0;
34073
+ function getAnimationPosition(position, positionAnchor, mode, toast) {
34162
34074
  /**
34163
- * When the Toast is at the top users will be
34164
- * swiping up. As a result, the delta values will be
34165
- * negative numbers which will result in negative steps
34166
- * and thresholds. As a result, we need to make those numbers
34167
- * positive.
34075
+ * Start with a predefined offset from the edge the toast will be
34076
+ * positioned relative to, whether on the screen or anchor element.
34168
34077
  */
34169
- const INVERSION_FACTOR = el.position === 'top' ? -1 : 1;
34078
+ let offset;
34079
+ if (mode === 'md') {
34080
+ offset = position === 'top' ? 8 : -8;
34081
+ }
34082
+ else {
34083
+ offset = position === 'top' ? 10 : -10;
34084
+ }
34170
34085
  /**
34171
- * The top offset that places the
34172
- * toast in the middle of the screen.
34173
- * Only needed when position="middle".
34086
+ * If positionAnchor is defined, add in the distance from the target
34087
+ * screen edge to the target anchor edge. For position="top", the
34088
+ * bottom anchor edge is targeted. For position="bottom", the top
34089
+ * anchor edge is targeted.
34174
34090
  */
34175
- const topPosition = getOffsetForMiddlePosition(hostElHeight, wrapperElBox.height);
34176
- const SWIPE_UP_DOWN_KEYFRAMES = [
34177
- { offset: 0, transform: `translateY(-${topPosition + wrapperElBox.height}px)` },
34178
- { offset: 0.5, transform: `translateY(0px)` },
34179
- { offset: 1, transform: `translateY(${topPosition + wrapperElBox.height}px)` },
34180
- ];
34181
- const swipeAnimation = createAnimation('toast-swipe-to-dismiss-animation')
34182
- .addElement(wrapperEl)
34183
- /**
34184
- * The specific value here does not actually
34185
- * matter. We just need this to be a positive
34186
- * value so the animation does not jump
34187
- * to the end when the user beings to drag.
34188
- */
34189
- .duration(100);
34190
- switch (el.position) {
34191
- case 'middle':
34192
- MAX_SWIPE_DISTANCE = hostElHeight + wrapperElBox.height;
34193
- swipeAnimation.keyframes(SWIPE_UP_DOWN_KEYFRAMES);
34194
- /**
34195
- * Toast can be swiped up or down but
34196
- * should start in the middle of the screen.
34197
- */
34198
- swipeAnimation.progressStart(true, 0.5);
34199
- break;
34200
- case 'top':
34201
- /**
34202
- * The bottom edge of the wrapper
34203
- * includes the distance between the top
34204
- * of the screen and the top of the wrapper
34205
- * as well as the wrapper height so the wrapper
34206
- * can be dragged fully offscreen.
34207
- */
34208
- MAX_SWIPE_DISTANCE = wrapperElBox.bottom;
34209
- swipeAnimation.keyframes([
34210
- { offset: 0, transform: `translateY(${toastPosition.top})` },
34211
- { offset: 1, transform: 'translateY(-100%)' },
34212
- ]);
34213
- swipeAnimation.progressStart(true, 0);
34214
- break;
34215
- case 'bottom':
34216
- default:
34217
- /**
34218
- * This computes the distance between the
34219
- * top of the wrapper and the bottom of the
34220
- * screen including the height of the wrapper
34221
- * element so it can be dragged fully offscreen.
34222
- */
34223
- MAX_SWIPE_DISTANCE = hostElHeight - wrapperElBox.top;
34224
- swipeAnimation.keyframes([
34225
- { offset: 0, transform: `translateY(${toastPosition.bottom})` },
34226
- { offset: 1, transform: 'translateY(100%)' },
34227
- ]);
34228
- swipeAnimation.progressStart(true, 0);
34229
- break;
34230
- }
34231
- const computeStep = (delta) => {
34232
- return (delta * INVERSION_FACTOR) / MAX_SWIPE_DISTANCE;
34233
- };
34234
- const onMove = (detail) => {
34235
- const step = STEP_OFFSET + computeStep(detail.deltaY);
34236
- swipeAnimation.progressStep(step);
34237
- };
34238
- const onEnd = (detail) => {
34239
- const velocity = detail.velocityY;
34240
- const threshold = ((detail.deltaY + velocity * 1000) / MAX_SWIPE_DISTANCE) * INVERSION_FACTOR;
34241
- /**
34242
- * Disable the gesture for the remainder of the animation.
34243
- * It will be re-enabled if the toast animates back to
34244
- * its initial presented position.
34245
- */
34246
- gesture.enable(false);
34247
- let shouldDismiss = true;
34248
- let playTo = 1;
34249
- let step = 0;
34250
- let remainingDistance = 0;
34251
- if (el.position === 'middle') {
34252
- /**
34253
- * A middle positioned Toast appears
34254
- * in the middle of the screen (at animation offset 0.5).
34255
- * As a result, the threshold will be calculated relative
34256
- * to this starting position. In other words at animation offset 0.5
34257
- * the threshold will be 0. We want the middle Toast to be eligible
34258
- * for dismiss when the user has swiped either half way up or down the
34259
- * screen. As a result, we divide DISMISS_THRESHOLD in half. We also
34260
- * consider when the threshold is a negative in the event the
34261
- * user drags up (since the deltaY will also be negative).
34262
- */
34263
- shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -DISMISS_THRESHOLD / 2;
34264
- /**
34265
- * Since we are replacing the keyframes
34266
- * below the animation always starts from
34267
- * the beginning of the new keyframes.
34268
- * Similarly, we are always playing to
34269
- * the end of the new keyframes.
34270
- */
34271
- playTo = 1;
34272
- step = 0;
34273
- /**
34274
- * The Toast should animate from wherever its
34275
- * current position is to the desired end state.
34276
- *
34277
- * To begin, we get the current position of the
34278
- * Toast for its starting state.
34279
- */
34280
- const wrapperElBox = wrapperEl.getBoundingClientRect();
34281
- const startOffset = wrapperElBox.top - topPosition;
34282
- const startPosition = `${startOffset}px`;
34283
- /**
34284
- * If the deltaY is negative then the user is swiping
34285
- * up, so the Toast should animate to the top of the screen.
34286
- * If the deltaY is positive then the user is swiping
34287
- * down, so the Toast should animate to the bottom of the screen.
34288
- * We also account for when the deltaY is 0, but realistically
34289
- * that should never happen because it means the user did not drag
34290
- * the toast.
34291
- */
34292
- const offsetFactor = detail.deltaY <= 0 ? -1 : 1;
34293
- const endOffset = (topPosition + wrapperElBox.height) * offsetFactor;
34294
- /**
34295
- * If the Toast should dismiss
34296
- * then we need to figure out which edge of
34297
- * the screen it should animate towards.
34298
- * By default, the Toast will come
34299
- * back to its default state in the
34300
- * middle of the screen.
34301
- */
34302
- const endPosition = shouldDismiss ? `${endOffset}px` : '0px';
34303
- const KEYFRAMES = [
34304
- { offset: 0, transform: `translateY(${startPosition})` },
34305
- { offset: 1, transform: `translateY(${endPosition})` },
34306
- ];
34307
- swipeAnimation.keyframes(KEYFRAMES);
34308
- /**
34309
- * Compute the remaining amount of pixels the
34310
- * toast needs to move to be fully dismissed.
34311
- */
34312
- remainingDistance = endOffset - startOffset;
34091
+ if (positionAnchor && win$1) {
34092
+ warnIfAnchorIsHidden(positionAnchor, toast);
34093
+ const box = positionAnchor.getBoundingClientRect();
34094
+ if (position === 'top') {
34095
+ offset += box.bottom;
34313
34096
  }
34314
- else {
34315
- shouldDismiss = threshold >= DISMISS_THRESHOLD;
34316
- playTo = shouldDismiss ? 1 : 0;
34317
- step = computeStep(detail.deltaY);
34097
+ else if (position === 'bottom') {
34318
34098
  /**
34319
- * Compute the remaining amount of pixels the
34320
- * toast needs to move to be fully dismissed.
34099
+ * Just box.top is the distance from the top edge of the screen
34100
+ * to the top edge of the anchor. We want to calculate from the
34101
+ * bottom edge of the screen instead.
34321
34102
  */
34322
- const remainingStepAmount = shouldDismiss ? 1 - step : step;
34323
- remainingDistance = remainingStepAmount * MAX_SWIPE_DISTANCE;
34103
+ offset -= win$1.innerHeight - box.top;
34324
34104
  }
34325
34105
  /**
34326
- * The animation speed should depend on how quickly
34327
- * the user flicks the toast across the screen. However,
34328
- * it should be no slower than 200ms.
34329
- * We use Math.abs on the remainingDistance because that value
34330
- * can be negative when swiping up on a middle position toast.
34331
- */
34332
- const duration = Math.min(Math.abs(remainingDistance) / Math.abs(velocity), 200);
34333
- swipeAnimation
34334
- .onFinish(() => {
34335
- if (shouldDismiss) {
34336
- onDismiss();
34337
- swipeAnimation.destroy();
34338
- }
34339
- else {
34340
- if (el.position === 'middle') {
34341
- /**
34342
- * If the toast snapped back to
34343
- * the middle of the screen we need
34344
- * to reset the keyframes
34345
- * so the toast can be swiped
34346
- * up or down again.
34347
- */
34348
- swipeAnimation.keyframes(SWIPE_UP_DOWN_KEYFRAMES).progressStart(true, 0.5);
34349
- }
34350
- else {
34351
- swipeAnimation.progressStart(true, 0);
34352
- }
34353
- /**
34354
- * If the toast did not dismiss then
34355
- * the user should be able to swipe again.
34356
- */
34357
- gesture.enable(true);
34358
- }
34359
- /**
34360
- * This must be a one time callback
34361
- * otherwise a new callback will
34362
- * be added every time onEnd runs.
34363
- */
34364
- }, { oneTimeCallback: true })
34365
- .progressEnd(playTo, step, duration);
34366
- };
34367
- const gesture = createGesture({
34368
- el: wrapperEl,
34369
- gestureName: 'toast-swipe-to-dismiss',
34370
- gesturePriority: OVERLAY_GESTURE_PRIORITY,
34371
- /**
34372
- * Toast only supports vertical swipes.
34373
- * This needs to be updated if we later
34374
- * support horizontal swipes.
34106
+ * We don't include safe area here because that should already be
34107
+ * accounted for when checking the position of the anchor.
34375
34108
  */
34376
- direction: 'y',
34377
- onMove,
34378
- onEnd,
34379
- });
34380
- return gesture;
34381
- };
34109
+ return {
34110
+ top: `${offset}px`,
34111
+ bottom: `${offset}px`,
34112
+ };
34113
+ }
34114
+ else {
34115
+ return {
34116
+ top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
34117
+ bottom: `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
34118
+ };
34119
+ }
34120
+ }
34121
+ /**
34122
+ * If the anchor element is hidden, getBoundingClientRect()
34123
+ * will return all 0s for it, which can cause unexpected
34124
+ * results in the position calculation when animating.
34125
+ */
34126
+ function warnIfAnchorIsHidden(positionAnchor, toast) {
34127
+ if (positionAnchor.offsetParent === null) {
34128
+ printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
34129
+ }
34130
+ }
34382
34131
 
34383
34132
  const toastIosCss = "/*!@:host*/.sc-ion-toast-ios-h{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{left:0}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-ion-toast-ios-h,[dir=rtl] .sc-ion-toast-ios-h{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.sc-ion-toast-ios-h:dir(rtl){left:unset;right:unset;right:0}}}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-toast-ios-h{display:none}/*!@:host(.ion-color)*/.ion-color.sc-ion-toast-ios-h{--button-color:inherit;color:var(--ion-color-contrast)}/*!@:host(.ion-color) .toast-button-cancel*/.ion-color.sc-ion-toast-ios-h .toast-button-cancel.sc-ion-toast-ios{color:inherit}/*!@:host(.ion-color) .toast-wrapper*/.ion-color.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:var(--ion-color-base)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{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)}@supports (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{left:var(--start);right:var(--end)}/*!@:host-context([dir=rtl]) .toast-wrapper*/[dir=rtl].sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios,[dir=rtl] .sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@[dir=rtl] .toast-wrapper*/[dir=rtl].sc-ion-toast-ios .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}/*!@.toast-wrapper.toast-top*/.toast-wrapper.toast-top.sc-ion-toast-ios{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}/*!@.toast-wrapper.toast-bottom*/.toast-wrapper.toast-bottom.sc-ion-toast-ios{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}/*!@.toast-container*/.toast-container.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}/*!@.toast-layout-stacked .toast-container*/.toast-layout-stacked.sc-ion-toast-ios .toast-container.sc-ion-toast-ios{-ms-flex-wrap:wrap;flex-wrap:wrap}/*!@.toast-layout-baseline .toast-content*/.toast-layout-baseline.sc-ion-toast-ios .toast-content.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}/*!@.toast-icon*/.toast-icon.sc-ion-toast-ios{-webkit-margin-start:16px;margin-inline-start:16px}/*!@.toast-content*/.toast-content.sc-ion-toast-ios{min-width:0}/*!@.toast-message*/.toast-message.sc-ion-toast-ios{-ms-flex:1;flex:1;white-space:var(--white-space)}/*!@.toast-button-group*/.toast-button-group.sc-ion-toast-ios{display:-ms-flexbox;display:flex}/*!@.toast-layout-stacked .toast-button-group*/.toast-layout-stacked.sc-ion-toast-ios .toast-button-group.sc-ion-toast-ios{-ms-flex-pack:end;justify-content:end;width:100%}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{border:0;outline:none;color:var(--button-color);z-index:0}/*!@.toast-icon,\n.toast-button-icon*/.toast-icon.sc-ion-toast-ios,.toast-button-icon.sc-ion-toast-ios{font-size:1.4em}/*!@.toast-button-inner*/.toast-button-inner.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{cursor:pointer}}/*!@:host*/.sc-ion-toast-ios-h{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--max-height:478px;--start:10px;--end:10px;font-size:clamp(14px, 0.875rem, 43.4px)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){/*!@:host(.toast-translucent) .toast-wrapper*/.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}/*!@:host(.ion-color.toast-translucent) .toast-wrapper*/.ion-color.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:rgba(var(--ion-color-base-rgb), 0.8)}}/*!@.toast-wrapper.toast-middle*/.toast-wrapper.toast-middle.sc-ion-toast-ios{opacity:0.01}/*!@.toast-content*/.toast-content.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}/*!@.toast-header*/.toast-header.sc-ion-toast-ios{margin-bottom:2px;font-weight:500}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;min-height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:clamp(17px, 1.0625rem, 21.998px);font-weight:500;overflow:hidden}/*!@.toast-button.ion-activated*/.toast-button.ion-activated.sc-ion-toast-ios{opacity:0.4}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{opacity:0.6}}";
34384
34133
 
@@ -34418,41 +34167,6 @@ class Toast {
34418
34167
  this.callButtonHandler(cancelButton);
34419
34168
  }
34420
34169
  };
34421
- /**
34422
- * Create a new swipe gesture so Toast
34423
- * can be swiped to dismiss.
34424
- */
34425
- this.createSwipeGesture = (toastPosition) => {
34426
- const gesture = (this.gesture = createSwipeToDismissGesture(this.el, toastPosition, () => {
34427
- /**
34428
- * If the gesture completed then
34429
- * we should dismiss the toast.
34430
- */
34431
- this.dismiss(undefined, GESTURE);
34432
- }));
34433
- gesture.enable(true);
34434
- };
34435
- /**
34436
- * Destroy an existing swipe gesture
34437
- * so Toast can no longer be swiped to dismiss.
34438
- */
34439
- this.destroySwipeGesture = () => {
34440
- const { gesture } = this;
34441
- if (gesture === undefined) {
34442
- return;
34443
- }
34444
- gesture.destroy();
34445
- this.gesture = undefined;
34446
- };
34447
- /**
34448
- * Returns `true` if swipeGesture
34449
- * is configured to a value that enables the swipe behavior.
34450
- * Returns `false` otherwise.
34451
- */
34452
- this.prefersSwipeGesture = () => {
34453
- const { swipeGesture } = this;
34454
- return swipeGesture === 'vertical';
34455
- };
34456
34170
  this.revealContentToScreenReader = false;
34457
34171
  this.overlayIndex = undefined;
34458
34172
  this.delegate = undefined;
@@ -34473,37 +34187,9 @@ class Toast {
34473
34187
  this.animated = true;
34474
34188
  this.icon = undefined;
34475
34189
  this.htmlAttributes = undefined;
34476
- this.swipeGesture = undefined;
34477
34190
  this.isOpen = false;
34478
34191
  this.trigger = undefined;
34479
34192
  }
34480
- swipeGestureChanged() {
34481
- /**
34482
- * If the Toast is presented, then we need to destroy
34483
- * any actives gestures before a new gesture is potentially
34484
- * created below.
34485
- *
34486
- * If the Toast is dismissed, then no gesture should be available
34487
- * since the Toast is not visible. This case should never
34488
- * happen since the "dismiss" method handles destroying
34489
- * any active swipe gestures, but we keep this code
34490
- * around to handle the first case.
34491
- */
34492
- this.destroySwipeGesture();
34493
- /**
34494
- * A new swipe gesture should only be created
34495
- * if the Toast is presented. If the Toast is not
34496
- * yet presented then the "present" method will
34497
- * handle calling the swipe gesture setup function.
34498
- */
34499
- if (this.presented && this.prefersSwipeGesture()) {
34500
- /**
34501
- * If the Toast is presented then
34502
- * lastPresentedPosition is defined.
34503
- */
34504
- this.createSwipeGesture(this.lastPresentedPosition);
34505
- }
34506
- }
34507
34193
  onIsOpenChange(newValue, oldValue) {
34508
34194
  if (newValue === true && oldValue === false) {
34509
34195
  this.present();
@@ -34565,14 +34251,6 @@ class Toast {
34565
34251
  if (this.duration > 0) {
34566
34252
  this.durationTimeout = setTimeout(() => this.dismiss(undefined, 'timeout'), this.duration);
34567
34253
  }
34568
- /**
34569
- * If the Toast has a swipe gesture then we can
34570
- * create the gesture so users can swipe the
34571
- * presented Toast.
34572
- */
34573
- if (this.prefersSwipeGesture()) {
34574
- this.createSwipeGesture(animationPosition);
34575
- }
34576
34254
  unlock();
34577
34255
  }
34578
34256
  /**
@@ -34607,11 +34285,6 @@ class Toast {
34607
34285
  this.revealContentToScreenReader = false;
34608
34286
  }
34609
34287
  this.lastPresentedPosition = undefined;
34610
- /**
34611
- * If the Toast has a swipe gesture then we can
34612
- * safely destroy it now that it is dismissed.
34613
- */
34614
- this.destroySwipeGesture();
34615
34288
  unlock();
34616
34289
  return dismissed;
34617
34290
  }
@@ -34756,7 +34429,6 @@ class Toast {
34756
34429
  }
34757
34430
  get el() { return getElement(this); }
34758
34431
  static get watchers() { return {
34759
- "swipeGesture": ["swipeGestureChanged"],
34760
34432
  "isOpen": ["onIsOpenChange"],
34761
34433
  "trigger": ["triggerChanged"]
34762
34434
  }; }
@@ -34787,7 +34459,6 @@ class Toast {
34787
34459
  "animated": [4],
34788
34460
  "icon": [1],
34789
34461
  "htmlAttributes": [16],
34790
- "swipeGesture": [1, "swipe-gesture"],
34791
34462
  "isOpen": [4, "is-open"],
34792
34463
  "trigger": [1],
34793
34464
  "revealContentToScreenReader": [32],