@ionic/core 8.8.4-dev.11776186452.1cc0af05 → 8.8.4-dev.11776246162.138c2737

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 (214) 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-infinite-scroll-content.js +1 -1
  6. package/components/ion-loading.js +1 -1
  7. package/components/ion-menu.js +1 -1
  8. package/components/ion-modal.js +1 -1
  9. package/components/ion-picker-legacy.js +1 -1
  10. package/components/ion-popover.js +1 -1
  11. package/components/ion-refresher-content.js +1 -1
  12. package/components/ion-select-modal.js +1 -1
  13. package/components/ion-select-option.js +1 -1
  14. package/components/ion-select-popover.js +1 -1
  15. package/components/ion-select.js +1 -1
  16. package/components/ion-skeleton-text.js +1 -1
  17. package/components/ion-spinner.js +1 -1
  18. package/components/ion-split-pane.js +1 -1
  19. package/components/ion-tab-bar.js +1 -1
  20. package/components/ion-tab-button.js +1 -1
  21. package/components/ion-tab.js +1 -1
  22. package/components/ion-tabs.js +1 -1
  23. package/components/ion-text.js +1 -1
  24. package/components/ion-textarea.js +1 -1
  25. package/components/ion-thumbnail.js +1 -1
  26. package/components/ion-title.js +1 -1
  27. package/components/ion-toast.js +1 -1
  28. package/components/ion-toggle.js +1 -1
  29. package/components/ion-toolbar.js +1 -1
  30. package/components/p-B36-MWK0.js +4 -0
  31. package/components/p-BDPU2685.js +4 -0
  32. package/components/p-BrNzoF1U.js +4 -0
  33. package/components/{p-B0orUoaV.js → p-C-_EGKki.js} +1 -1
  34. package/components/{p-qhBzWoOF.js → p-C2cZvGcF.js} +1 -1
  35. package/components/p-CEUppJkx.js +4 -0
  36. package/components/p-CSexRbnt.js +4 -0
  37. package/components/{p-ZRp3l6Dk.js → p-CoarhFWH.js} +1 -1
  38. package/components/p-DNdBtsfu.js +4 -0
  39. package/components/p-Njik5v4C.js +4 -0
  40. package/dist/cjs/index.cjs.js +1 -1
  41. package/dist/cjs/ion-action-sheet.cjs.entry.js +34 -25
  42. package/dist/cjs/ion-alert.cjs.entry.js +51 -44
  43. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  44. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-datetime_3.cjs.entry.js +28 -4
  46. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-loading.cjs.entry.js +29 -4
  48. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-modal.cjs.entry.js +176 -79
  50. package/dist/cjs/ion-popover.cjs.entry.js +90 -4
  51. package/dist/cjs/ion-select-modal.cjs.entry.js +27 -60
  52. package/dist/cjs/ion-select_3.cjs.entry.js +48 -191
  53. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  54. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  57. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-toast.cjs.entry.js +32 -4
  60. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  61. package/dist/cjs/ionic.cjs.js +1 -1
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/{overlays-Dhoy6v_5.js → overlays-BbhewSIQ.js} +4 -4
  64. package/dist/collection/components/action-sheet/action-sheet.ios.css +0 -84
  65. package/dist/collection/components/action-sheet/action-sheet.js +8 -22
  66. package/dist/collection/components/action-sheet/action-sheet.md.css +0 -84
  67. package/dist/collection/components/action-sheet/animations/ionic.enter.js +27 -0
  68. package/dist/collection/components/action-sheet/animations/ionic.leave.js +21 -0
  69. package/dist/collection/components/alert/alert.ios.css +0 -83
  70. package/dist/collection/components/alert/alert.js +24 -41
  71. package/dist/collection/components/alert/alert.md.css +0 -83
  72. package/dist/collection/components/alert/animations/ionic.enter.js +28 -0
  73. package/dist/collection/components/alert/animations/ionic.leave.js +19 -0
  74. package/dist/collection/components/loading/animations/ionic.enter.js +28 -0
  75. package/dist/collection/components/loading/animations/ionic.leave.js +22 -0
  76. package/dist/collection/components/loading/loading.js +4 -3
  77. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  78. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  79. package/dist/collection/components/modal/gestures/sheet.js +71 -9
  80. package/dist/collection/components/modal/modal.ionic.css +1 -1
  81. package/dist/collection/components/modal/modal.js +6 -5
  82. package/dist/collection/components/picker-legacy/animations/ionic.enter.js +27 -0
  83. package/dist/collection/components/picker-legacy/animations/ionic.leave.js +23 -0
  84. package/dist/collection/components/picker-legacy/picker.js +4 -3
  85. package/dist/collection/components/popover/animations/ionic.enter.js +91 -0
  86. package/dist/collection/components/popover/animations/ionic.leave.js +29 -0
  87. package/dist/collection/components/popover/popover.js +4 -3
  88. package/dist/collection/components/select/select.ionic.css +0 -31
  89. package/dist/collection/components/select/select.ios.css +0 -31
  90. package/dist/collection/components/select/select.js +14 -125
  91. package/dist/collection/components/select/select.md.css +0 -31
  92. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -24
  93. package/dist/collection/components/select-modal/select-modal.ios.css +0 -77
  94. package/dist/collection/components/select-modal/select-modal.js +23 -56
  95. package/dist/collection/components/select-modal/select-modal.md.css +1 -80
  96. package/dist/collection/components/select-option/select-option.js +2 -21
  97. package/dist/collection/components/select-popover/select-popover.ios.css +0 -77
  98. package/dist/collection/components/select-popover/select-popover.js +26 -59
  99. package/dist/collection/components/select-popover/select-popover.md.css +0 -77
  100. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  101. package/dist/collection/components/spinner/spinner.js +1 -1
  102. package/dist/collection/components/split-pane/split-pane.js +2 -2
  103. package/dist/collection/components/tab/tab.js +2 -2
  104. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  105. package/dist/collection/components/tab-button/tab-button.js +2 -2
  106. package/dist/collection/components/tabs/tabs.js +1 -1
  107. package/dist/collection/components/text/text.js +2 -2
  108. package/dist/collection/components/textarea/textarea.js +3 -3
  109. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  110. package/dist/collection/components/title/title.js +2 -2
  111. package/dist/collection/components/toast/animations/ionic.enter.js +33 -0
  112. package/dist/collection/components/toast/animations/ionic.leave.js +16 -0
  113. package/dist/collection/components/toast/toast.js +4 -3
  114. package/dist/collection/components/toggle/toggle.js +3 -3
  115. package/dist/collection/components/toolbar/toolbar.js +2 -2
  116. package/dist/collection/utils/overlays.js +5 -5
  117. package/dist/docs.json +1 -135
  118. package/dist/esm/index.js +1 -1
  119. package/dist/esm/ion-action-sheet.entry.js +34 -25
  120. package/dist/esm/ion-alert.entry.js +51 -44
  121. package/dist/esm/ion-app_8.entry.js +4 -4
  122. package/dist/esm/ion-avatar_3.entry.js +2 -2
  123. package/dist/esm/ion-datetime_3.entry.js +28 -4
  124. package/dist/esm/ion-item_8.entry.js +2 -2
  125. package/dist/esm/ion-loading.entry.js +29 -4
  126. package/dist/esm/ion-menu_3.entry.js +1 -1
  127. package/dist/esm/ion-modal.entry.js +177 -80
  128. package/dist/esm/ion-popover.entry.js +90 -4
  129. package/dist/esm/ion-select-modal.entry.js +27 -60
  130. package/dist/esm/ion-select_3.entry.js +49 -192
  131. package/dist/esm/ion-spinner.entry.js +1 -1
  132. package/dist/esm/ion-split-pane.entry.js +2 -2
  133. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  134. package/dist/esm/ion-tab_2.entry.js +3 -3
  135. package/dist/esm/ion-text.entry.js +2 -2
  136. package/dist/esm/ion-textarea.entry.js +3 -3
  137. package/dist/esm/ion-toast.entry.js +32 -4
  138. package/dist/esm/ion-toggle.entry.js +3 -3
  139. package/dist/esm/ionic.js +1 -1
  140. package/dist/esm/loader.js +1 -1
  141. package/dist/esm/{overlays-CvFHfO3y.js → overlays-VA-4NWjf.js} +5 -5
  142. package/dist/html.html-data.json +0 -4
  143. package/dist/ionic/index.esm.js +1 -1
  144. package/dist/ionic/ionic.esm.js +1 -1
  145. package/dist/ionic/p-07b129d5.entry.js +4 -0
  146. package/dist/ionic/p-0cb50208.entry.js +4 -0
  147. package/dist/ionic/{p-db4f4eaf.entry.js → p-1efe83c8.entry.js} +1 -1
  148. package/dist/ionic/{p-d2fe6791.entry.js → p-2193e875.entry.js} +1 -1
  149. package/dist/ionic/{p-69033ad6.entry.js → p-2bf931ae.entry.js} +1 -1
  150. package/dist/ionic/{p-26595044.entry.js → p-3bf01c2c.entry.js} +1 -1
  151. package/dist/ionic/p-3d4c8528.entry.js +4 -0
  152. package/dist/ionic/{p-9e71982e.entry.js → p-49799a34.entry.js} +1 -1
  153. package/dist/ionic/p-64341e32.entry.js +4 -0
  154. package/dist/ionic/p-6992d9d6.entry.js +4 -0
  155. package/dist/ionic/{p-aa8c1e64.entry.js → p-6c8c37c2.entry.js} +1 -1
  156. package/dist/ionic/{p-a94016be.entry.js → p-91e242e4.entry.js} +1 -1
  157. package/dist/ionic/{p-96ec9a10.entry.js → p-9b9b1450.entry.js} +1 -1
  158. package/dist/ionic/p-9dd4276b.entry.js +4 -0
  159. package/dist/ionic/p-BExfzy0B.js +4 -0
  160. package/dist/ionic/p-a3d794ba.entry.js +4 -0
  161. package/dist/ionic/p-ba9f8cbb.entry.js +4 -0
  162. package/dist/ionic/{p-2095969c.entry.js → p-bae3ebe5.entry.js} +1 -1
  163. package/dist/ionic/{p-a1c8ba8c.entry.js → p-bc5713f7.entry.js} +1 -1
  164. package/dist/ionic/{p-71f28573.entry.js → p-cdfbe4cc.entry.js} +1 -1
  165. package/dist/ionic/p-fa701753.entry.js +4 -0
  166. package/dist/types/components/action-sheet/animations/ionic.enter.d.ts +5 -0
  167. package/dist/types/components/action-sheet/animations/ionic.leave.d.ts +5 -0
  168. package/dist/types/components/alert/animations/ionic.enter.d.ts +5 -0
  169. package/dist/types/components/alert/animations/ionic.leave.d.ts +5 -0
  170. package/dist/types/components/loading/animations/ionic.enter.d.ts +5 -0
  171. package/dist/types/components/loading/animations/ionic.leave.d.ts +5 -0
  172. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  173. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  174. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  175. package/dist/types/components/picker-legacy/animations/ionic.enter.d.ts +5 -0
  176. package/dist/types/components/picker-legacy/animations/ionic.leave.d.ts +5 -0
  177. package/dist/types/components/popover/animations/ionic.enter.d.ts +5 -0
  178. package/dist/types/components/popover/animations/ionic.leave.d.ts +5 -0
  179. package/dist/types/components/select/select-interface.d.ts +0 -21
  180. package/dist/types/components/select/select.d.ts +0 -7
  181. package/dist/types/components/select-option/select-option.d.ts +0 -4
  182. package/dist/types/components/toast/animations/ionic.enter.d.ts +6 -0
  183. package/dist/types/components/toast/animations/ionic.leave.d.ts +5 -0
  184. package/dist/types/components.d.ts +0 -9
  185. package/dist/types/utils/overlays.d.ts +1 -1
  186. package/hydrate/index.js +534 -489
  187. package/hydrate/index.mjs +534 -489
  188. package/package.json +1 -1
  189. package/components/p-B6czg-mf.js +0 -4
  190. package/components/p-BObmvbuR.js +0 -4
  191. package/components/p-C8Dne7pI.js +0 -4
  192. package/components/p-Cm7hjN9B.js +0 -4
  193. package/components/p-DQY5lHUa.js +0 -4
  194. package/components/p-D_uMZULz.js +0 -4
  195. package/components/p-GytrfCp8.js +0 -4
  196. package/components/p-ZeIAjDcZ.js +0 -4
  197. package/dist/cjs/select-option-render-qQf4xz8P.js +0 -67
  198. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -834
  199. package/dist/collection/components/alert/alert.ionic.css +0 -1165
  200. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -489
  201. package/dist/collection/utils/select-option-render.js +0 -62
  202. package/dist/esm/select-option-render-BQUT9Aqa.js +0 -65
  203. package/dist/ionic/p-003b40fc.entry.js +0 -4
  204. package/dist/ionic/p-35aa95dc.entry.js +0 -4
  205. package/dist/ionic/p-37f895a8.entry.js +0 -4
  206. package/dist/ionic/p-3884bfa4.entry.js +0 -4
  207. package/dist/ionic/p-38897781.entry.js +0 -4
  208. package/dist/ionic/p-575061c0.entry.js +0 -4
  209. package/dist/ionic/p-6bffc700.entry.js +0 -4
  210. package/dist/ionic/p-BYtS2rae.js +0 -4
  211. package/dist/ionic/p-Dr3N4o63.js +0 -4
  212. package/dist/ionic/p-c3335fe0.entry.js +0 -4
  213. package/dist/ionic/p-ef0c281a.entry.js +0 -4
  214. package/dist/types/utils/select-option-render.d.ts +0 -26
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var index = require('./index-CzcLEdQ5.js');
7
- var overlays = require('./overlays-Dhoy6v_5.js');
7
+ var overlays = require('./overlays-BbhewSIQ.js');
8
8
  var frameworkDelegate = require('./framework-delegate-Dx9FrqAC.js');
9
9
  var helpers = require('./helpers-DJYxKN5U.js');
10
10
  var lockController = require('./lock-controller-aDB9wrEf.js');
@@ -832,6 +832,92 @@ const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
832
832
  return true;
833
833
  };
834
834
 
835
+ const POPOVER_MD_BODY_PADDING$1 = 12;
836
+ /**
837
+ * Ionic Popover Enter Animation
838
+ */
839
+ // TODO(FW-2832): types
840
+ const ionicEnterAnimation = (baseEl, opts) => {
841
+ var _a;
842
+ const { event: ev, size, trigger, reference, side, align } = opts;
843
+ const doc = baseEl.ownerDocument;
844
+ const isRTL = doc.dir === 'rtl';
845
+ const bodyWidth = doc.defaultView.innerWidth;
846
+ const bodyHeight = doc.defaultView.innerHeight;
847
+ const root = helpers.getElementRoot(baseEl);
848
+ const contentEl = root.querySelector('.popover-content');
849
+ const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
850
+ const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
851
+ const defaultPosition = {
852
+ top: bodyHeight / 2 - contentHeight / 2,
853
+ left: bodyWidth / 2 - contentWidth / 2,
854
+ originX: isRTL ? 'right' : 'left',
855
+ originY: 'top',
856
+ };
857
+ const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
858
+ const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING$1;
859
+ // MD mode now applies safe-area insets (previously passed 0, ignoring all safe areas).
860
+ // This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
861
+ const safeArea = size === 'cover' ? { top: 0, bottom: 0, left: 0, right: 0 } : getSafeAreaInsets(doc);
862
+ const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates);
863
+ const safeAreaLeftCalc = ' + var(--ion-safe-area-left, 0px)';
864
+ const safeAreaRightCalc = ' - var(--ion-safe-area-right, 0px)';
865
+ let leftValue = `${left}px`;
866
+ if (checkSafeAreaLeft) {
867
+ leftValue = `${left}px${safeAreaLeftCalc}`;
868
+ }
869
+ if (checkSafeAreaRight) {
870
+ leftValue = `${left}px${safeAreaRightCalc}`;
871
+ }
872
+ let topValue = `${top}px`;
873
+ if (checkSafeAreaTop) {
874
+ topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
875
+ }
876
+ const baseAnimation = animation.createAnimation();
877
+ const backdropAnimation = animation.createAnimation();
878
+ const wrapperAnimation = animation.createAnimation();
879
+ const contentAnimation = animation.createAnimation();
880
+ const viewportAnimation = animation.createAnimation();
881
+ backdropAnimation
882
+ .addElement(root.querySelector('ion-backdrop'))
883
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
884
+ .beforeStyles({
885
+ 'pointer-events': 'none',
886
+ })
887
+ .afterClearStyles(['pointer-events']);
888
+ wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).duration(150).fromTo('opacity', 0.01, 1);
889
+ contentAnimation
890
+ .addElement(contentEl)
891
+ .beforeStyles({
892
+ top: `calc(${topValue} + var(--offset-y, 0px))`,
893
+ left: `calc(${leftValue} + var(--offset-x, 0px))`,
894
+ 'transform-origin': `${originY} ${originX}`,
895
+ })
896
+ .beforeAddWrite(() => {
897
+ if (bottom !== undefined) {
898
+ let bottomValue = `${bottom}px`;
899
+ if (checkSafeAreaBottom) {
900
+ bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
901
+ }
902
+ contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
903
+ }
904
+ })
905
+ .fromTo('transform', 'scale(0.8)', 'scale(1)');
906
+ viewportAnimation.addElement(root.querySelector('.popover-viewport')).fromTo('opacity', 0.01, 1);
907
+ return baseAnimation
908
+ .easing('cubic-bezier(0.36,0.66,0.04,1)')
909
+ .duration(300)
910
+ .beforeAddWrite(() => {
911
+ if (size === 'cover') {
912
+ baseEl.style.setProperty('--width', `${contentWidth}px`);
913
+ }
914
+ if (addPopoverBottomClass) {
915
+ baseEl.classList.add('popover-bottom');
916
+ }
917
+ })
918
+ .addAnimation([backdropAnimation, wrapperAnimation, contentAnimation, viewportAnimation]);
919
+ };
920
+
835
921
  const POPOVER_IOS_BODY_PADDING = 5;
836
922
  /**
837
923
  * Minimum edge margin for iOS popovers ensures visual spacing from screen
@@ -1436,7 +1522,7 @@ const Popover = class {
1436
1522
  else if (!this.keepContentsMounted) {
1437
1523
  await index$1.waitForMount();
1438
1524
  }
1439
- await overlays.present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, {
1525
+ await overlays.present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
1440
1526
  event: event || this.event,
1441
1527
  size: this.size,
1442
1528
  trigger: this.triggerEl,
@@ -1545,9 +1631,9 @@ const Popover = class {
1545
1631
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
1546
1632
  const desktop = ionicGlobal.isPlatform('desktop');
1547
1633
  const enableArrow = arrow && !parentPopover;
1548
- return (index.h(index.Host, Object.assign({ key: 'cc70f9b037b16ea78b999916106a1062ceb74cb6', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1634
+ return (index.h(index.Host, Object.assign({ key: '398b4c72cfea89fb743d427e3c2b48507649aff1', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1549
1635
  zIndex: `${20000 + this.overlayIndex}`,
1550
- }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [theme$1]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && index.h("ion-backdrop", { key: 'e641e7ee28cbd54911ec3f8c0bfd9d7e3f2e85cd', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), index.h("div", { key: '750494585c3524b27e42d79f02e729f3eff9e660', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && index.h("div", { key: '2e49b4ad1287e31a3cdbfebc91120405a998dc95', class: "popover-arrow", part: "arrow" }), index.h("div", { key: '306586776e74acab787b2a96433553005bca580d', class: "popover-content", part: "content" }, index.h("slot", { key: '0273c0975cd7dc37db5cfa0b91d418867a77c4d8' })))));
1636
+ }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [theme$1]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && index.h("ion-backdrop", { key: '6baec0b33665557c55425ffad9c6b31741c25651', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), index.h("div", { key: '6ce3a61164f478560cc45c618fc5b7f62b491ecd', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && index.h("div", { key: 'a36815fc0417a10fb350429909a79cb4025baf3a', class: "popover-arrow", part: "arrow" }), index.h("div", { key: 'cec3436cdb2cb6fa839c37abb3cb6daf7de453de', class: "popover-content", part: "content" }, index.h("slot", { key: '5405fb03bab017acd7fa09d00cfe1b7cfbdfae92' })))));
1551
1637
  }
1552
1638
  get el() { return index.getElement(this); }
1553
1639
  static get watchers() { return {
@@ -5,19 +5,18 @@
5
5
 
6
6
  var index = require('./index-CzcLEdQ5.js');
7
7
  var ionicGlobal = require('./ionic-global-CSEbHD_F.js');
8
- var overlays = require('./overlays-Dhoy6v_5.js');
9
- var selectOptionRender = require('./select-option-render-qQf4xz8P.js');
8
+ var overlays = require('./overlays-BbhewSIQ.js');
10
9
  var theme = require('./theme-IlOsGAz7.js');
11
10
  require('./helpers-DJYxKN5U.js');
12
11
  require('./focus-visible-BIj-I3-C.js');
13
12
  require('./framework-delegate-Dx9FrqAC.js');
14
13
  require('./gesture-controller-dtqlP_q4.js');
15
14
 
16
- const selectModalIonicCss = () => `.sc-ion-select-modal-ionic-h{height:100%}.select-option-label.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ionic{display:block}.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic::part(scroll),.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic [part~="scroll"]{--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px))}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~="native"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc));--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-end:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-bottom:var(--token-space-1200, var(--token-scale-1200, 48px)) !important}ion-content.sc-ion-select-modal-ionic:has(.radio-checked) .ion-focused.sc-ion-select-modal-ionic:not(.item-radio-checked){--background-focused-opacity:1}.select-option-label.sc-ion-select-modal-ionic{gap:var(--token-space-300, var(--token-scale-300, 12px))}.select-option-description.sc-ion-select-modal-ionic{font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;color:var(--token-text-subtle, var(--token-primitives-neutral-1000, #3b3b3b));font-size:var(--token-font-size-350, 0.875rem)}`;
15
+ const selectModalIonicCss = () => `.sc-ion-select-modal-ionic-h{height:100%}.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic::part(scroll),.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic [part~="scroll"]{--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px))}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~="native"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc));--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-end:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-bottom:var(--token-space-1200, var(--token-scale-1200, 48px)) !important}ion-content.sc-ion-select-modal-ionic:has(.radio-checked) .ion-focused.sc-ion-select-modal-ionic:not(.item-radio-checked){--background-focused-opacity:1}`;
17
16
 
18
- const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}.select-option-label.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ios{display:block}.select-option-label.sc-ion-select-modal-ios{gap:12px}.select-option-description.sc-ion-select-modal-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
17
+ const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
19
18
 
20
- const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}.select-option-label.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-md{display:block}.select-option-label.sc-ion-select-modal-md{gap:12px}.select-option-description.sc-ion-select-modal-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
19
+ const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
21
20
 
22
21
  const SelectModal = class {
23
22
  constructor(hostRef) {
@@ -75,65 +74,33 @@ const SelectModal = class {
75
74
  }
76
75
  renderRadioOptions() {
77
76
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
78
- return (index.h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index$1) => {
79
- /**
80
- * Cast to `SelectOverlayOption` to access rich content
81
- * fields (`startContent`, `endContent`, `description`)
82
- * that are passed through from `ion-select` but not
83
- * part of the public `SelectModalOption` interface.
84
- */
85
- const richOption = option;
86
- const optionLabelOptions = {
87
- id: `modal-option-${index$1}`,
88
- label: richOption.text,
89
- startContent: richOption.startContent,
90
- endContent: richOption.endContent,
91
- description: richOption.description,
92
- };
93
- return (index.h("ion-item", { lines: "none", class: Object.assign({
94
- // TODO FW-4784
95
- 'item-radio-checked': option.value === checked
96
- }, theme.getClassMap(option.cssClass)) }, index.h("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
97
- if (ev.key === ' ') {
98
- /**
99
- * Selecting a radio option with keyboard navigation,
100
- * either through the Enter or Space keys, should
101
- * dismiss the modal.
102
- */
103
- this.closeModal();
104
- }
105
- } }, selectOptionRender.renderOptionLabel(optionLabelOptions, 'select-option-label'))));
106
- })));
77
+ return (index.h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (index.h("ion-item", { lines: "none", class: Object.assign({
78
+ // TODO FW-4784
79
+ 'item-radio-checked': option.value === checked
80
+ }, theme.getClassMap(option.cssClass)) }, index.h("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
81
+ if (ev.key === ' ') {
82
+ /**
83
+ * Selecting a radio option with keyboard navigation,
84
+ * either through the Enter or Space keys, should
85
+ * dismiss the modal.
86
+ */
87
+ this.closeModal();
88
+ }
89
+ } }, option.text))))));
107
90
  }
108
91
  renderCheckboxOptions() {
109
- return this.options.map((option, index$1) => {
110
- /**
111
- * Cast to `SelectOverlayOption` to access rich content
112
- * fields (`startContent`, `endContent`, `description`)
113
- * that are passed through from `ion-select` but not
114
- * part of the public `SelectModalOption` interface.
115
- */
116
- const richOption = option;
117
- const optionLabelOptions = {
118
- id: `modal-option-${index$1}`,
119
- label: richOption.text,
120
- startContent: richOption.startContent,
121
- endContent: richOption.endContent,
122
- description: richOption.description,
123
- };
124
- return (index.h("ion-item", { class: Object.assign({
125
- // TODO FW-4784
126
- 'item-checkbox-checked': option.checked
127
- }, theme.getClassMap(option.cssClass)) }, index.h("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
128
- this.setChecked(ev);
129
- this.callOptionHandler(ev);
130
- // TODO FW-4784
131
- index.forceUpdate(this);
132
- } }, selectOptionRender.renderOptionLabel(optionLabelOptions, 'select-option-label'))));
133
- });
92
+ return this.options.map((option) => (index.h("ion-item", { class: Object.assign({
93
+ // TODO FW-4784
94
+ 'item-checkbox-checked': option.checked
95
+ }, theme.getClassMap(option.cssClass)) }, index.h("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
96
+ this.setChecked(ev);
97
+ this.callOptionHandler(ev);
98
+ // TODO FW-4784
99
+ index.forceUpdate(this);
100
+ } }, option.text))));
134
101
  }
135
102
  render() {
136
- return (index.h(index.Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [ionicGlobal.getIonMode(this)]: true }, this.getModalContextClasses()) }, index.h("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, index.h("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && index.h("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), index.h("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, index.h("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), index.h("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, index.h("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
103
+ return (index.h(index.Host, { key: 'c0218aa9ebcbe9d70a6cc1ed8d005ca656e163d3', class: Object.assign({ [ionicGlobal.getIonMode(this)]: true }, this.getModalContextClasses()) }, index.h("ion-header", { key: '4698d7442befa17e449655b2f9439001298991a0' }, index.h("ion-toolbar", { key: 'd0f1d3418f8fdbfdf12fef752f6be4939e70eb79' }, this.header !== undefined && index.h("ion-title", { key: '2916c22b3a42635e503fa0a0c916b32909999761' }, this.header), index.h("ion-buttons", { key: 'e93827fc49edd8ac04100e7df8a2a5144d257c19', slot: "end" }, index.h("ion-button", { key: '0b46828d67d5b4864f40fcbf082ae24797099fb9', onClick: () => this.closeModal() }, this.cancelText)))), index.h("ion-content", { key: '8460ad9ce425ad0b25b603d0cd42c58b68ca63ee' }, index.h("ion-list", { key: 'c48ea90af6f36a44102a8852267bd7f6f82f9598' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
137
104
  }
138
105
  get el() { return index.getElement(this); }
139
106
  };