@ionic/core 8.7.17-dev.11769813102.16c5bfac → 8.7.17-dev.11770319814.172b4f50

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 (41) hide show
  1. package/components/ion-range.js +39 -81
  2. package/components/ion-refresher.js +32 -3
  3. package/components/ion-select.js +3 -2
  4. package/components/select-modal.js +6 -1
  5. package/dist/cjs/ion-range.cjs.entry.js +38 -79
  6. package/dist/cjs/ion-refresher_2.cjs.entry.js +32 -3
  7. package/dist/cjs/ion-select-modal.cjs.entry.js +5 -1
  8. package/dist/cjs/ion-select_3.cjs.entry.js +3 -2
  9. package/dist/cjs/ionic.cjs.js +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/collection/components/range/range.js +42 -99
  12. package/dist/collection/components/refresher/refresher.js +70 -4
  13. package/dist/collection/components/select/select.js +3 -2
  14. package/dist/collection/components/select-modal/select-modal.js +25 -1
  15. package/dist/docs.json +83 -129
  16. package/dist/esm/ion-range.entry.js +38 -79
  17. package/dist/esm/ion-refresher_2.entry.js +32 -3
  18. package/dist/esm/ion-select-modal.entry.js +5 -1
  19. package/dist/esm/ion-select_3.entry.js +3 -2
  20. package/dist/esm/ionic.js +1 -1
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/html.html-data.json +5 -1
  23. package/dist/ionic/ionic.esm.js +1 -1
  24. package/dist/ionic/p-012212e4.entry.js +4 -0
  25. package/dist/ionic/p-88367362.entry.js +4 -0
  26. package/dist/ionic/p-90f2d3ff.entry.js +4 -0
  27. package/dist/ionic/p-d2489bf2.entry.js +4 -0
  28. package/dist/types/components/range/range-interface.d.ts +0 -1
  29. package/dist/types/components/range/range.d.ts +4 -20
  30. package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
  31. package/dist/types/components/refresher/refresher.d.ts +16 -3
  32. package/dist/types/components/select-modal/select-modal.d.ts +4 -0
  33. package/dist/types/components.d.ts +26 -5
  34. package/dist/types/interface.d.ts +1 -1
  35. package/hydrate/index.js +83 -105
  36. package/hydrate/index.mjs +83 -105
  37. package/package.json +1 -1
  38. package/dist/ionic/p-02d76786.entry.js +0 -4
  39. package/dist/ionic/p-639dd543.entry.js +0 -4
  40. package/dist/ionic/p-73ecefff.entry.js +0 -4
  41. package/dist/ionic/p-eb024a5b.entry.js +0 -4
@@ -68,8 +68,8 @@ export class Refresher {
68
68
  * than `1`. The default value is `1` which is equal to the speed of the cursor.
69
69
  * If a negative value is passed in, the factor will be `1` instead.
70
70
  *
71
- * For example: If the value passed is `1.2` and the content is dragged by
72
- * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
71
+ * For example, If the value passed is `1.2` and the content is dragged by
72
+ * `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
73
73
  * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
74
74
  * will be `8` pixels, less than the amount the cursor has moved.
75
75
  *
@@ -119,6 +119,9 @@ export class Refresher {
119
119
  this.animations = [];
120
120
  this.progress = 0;
121
121
  this.state = 1 /* RefresherState.Inactive */;
122
+ this.ionPullEnd.emit({
123
+ reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
124
+ });
122
125
  }
123
126
  async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
124
127
  this.elementToTransform = this.scrollEl;
@@ -151,6 +154,7 @@ export class Refresher {
151
154
  if (!this.didStart) {
152
155
  this.didStart = true;
153
156
  this.ionStart.emit();
157
+ this.ionPullStart.emit();
154
158
  }
155
159
  // emit "pulling" on every move
156
160
  if (this.pointerDown) {
@@ -226,6 +230,7 @@ export class Refresher {
226
230
  this.lastVelocityY = ev.velocityY;
227
231
  },
228
232
  onEnd: () => {
233
+ const hadStarted = this.didStart;
229
234
  this.pointerDown = false;
230
235
  this.didStart = false;
231
236
  if (this.needsCompletion) {
@@ -235,6 +240,13 @@ export class Refresher {
235
240
  else if (this.didRefresh) {
236
241
  readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
237
242
  }
243
+ else if (hadStarted) {
244
+ /**
245
+ * User started pulling but released before reaching the refresh threshold.
246
+ * Emit ionPullEnd to complete the event pair.
247
+ */
248
+ this.ionPullEnd.emit({ reason: 'cancel' });
249
+ }
238
250
  },
239
251
  });
240
252
  this.disabledChanged();
@@ -281,6 +293,7 @@ export class Refresher {
281
293
  ev.data.animation = animation;
282
294
  animation.progressStart(false, 0);
283
295
  this.ionStart.emit();
296
+ this.ionPullStart.emit();
284
297
  this.animations.push(animation);
285
298
  return;
286
299
  }
@@ -303,6 +316,7 @@ export class Refresher {
303
316
  this.animations = [];
304
317
  this.gesture.enable(true);
305
318
  this.state = 1 /* RefresherState.Inactive */;
319
+ this.ionPullEnd.emit({ reason: 'cancel' });
306
320
  });
307
321
  return;
308
322
  }
@@ -547,6 +561,7 @@ export class Refresher {
547
561
  if (!this.didStart) {
548
562
  this.didStart = true;
549
563
  this.ionStart.emit();
564
+ this.ionPullStart.emit();
550
565
  }
551
566
  // emit "pulling" on every move
552
567
  this.ionPull.emit();
@@ -590,6 +605,15 @@ export class Refresher {
590
605
  * available right away.
591
606
  */
592
607
  this.restoreOverflowStyle();
608
+ /**
609
+ * If ionPullStart was emitted, we need to emit ionPullEnd
610
+ * even though the gesture was aborted before reaching the
611
+ * pulling threshold.
612
+ */
613
+ if (this.didStart) {
614
+ this.didStart = false;
615
+ this.ionPullEnd.emit({ reason: 'cancel' });
616
+ }
593
617
  }
594
618
  }
595
619
  beginRefresh() {
@@ -636,6 +660,9 @@ export class Refresher {
636
660
  if (this.contentFullscreen && this.backgroundContentEl) {
637
661
  (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
638
662
  }
663
+ this.ionPullEnd.emit({
664
+ reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
665
+ });
639
666
  }, 600);
640
667
  // reset the styles on the scroll element
641
668
  // set that the refresh is actively cancelling/completing
@@ -689,7 +716,7 @@ export class Refresher {
689
716
  }
690
717
  render() {
691
718
  const mode = getIonMode(this);
692
- return (h(Host, { key: '2d1bd880877b698604542ab2d602d38b9504d975', slot: "fixed", class: {
719
+ return (h(Host, { key: 'bed0c2f44c32ecac24b7d8326ac7c7ef1d12c44f', slot: "fixed", class: {
693
720
  [mode]: true,
694
721
  // Used internally for styling
695
722
  [`refresher-${mode}`]: true,
@@ -809,7 +836,7 @@ export class Refresher {
809
836
  "optional": false,
810
837
  "docs": {
811
838
  "tags": [],
812
- "text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example: If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher."
839
+ "text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher."
813
840
  },
814
841
  "getter": false,
815
842
  "setter": false,
@@ -888,6 +915,24 @@ export class Refresher {
888
915
  "bubbles": true,
889
916
  "cancelable": true,
890
917
  "composed": true,
918
+ "docs": {
919
+ "tags": [{
920
+ "name": "deprecated",
921
+ "text": "Use `ionPullStart` instead."
922
+ }],
923
+ "text": "Emitted when the user begins to start pulling down.\nTODO(FW-7044): Remove this in a major release"
924
+ },
925
+ "complexType": {
926
+ "original": "void",
927
+ "resolved": "void",
928
+ "references": {}
929
+ }
930
+ }, {
931
+ "method": "ionPullStart",
932
+ "name": "ionPullStart",
933
+ "bubbles": true,
934
+ "cancelable": true,
935
+ "composed": true,
891
936
  "docs": {
892
937
  "tags": [],
893
938
  "text": "Emitted when the user begins to start pulling down."
@@ -897,6 +942,27 @@ export class Refresher {
897
942
  "resolved": "void",
898
943
  "references": {}
899
944
  }
945
+ }, {
946
+ "method": "ionPullEnd",
947
+ "name": "ionPullEnd",
948
+ "bubbles": true,
949
+ "cancelable": true,
950
+ "composed": true,
951
+ "docs": {
952
+ "tags": [],
953
+ "text": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled."
954
+ },
955
+ "complexType": {
956
+ "original": "RefresherPullEndEventDetail",
957
+ "resolved": "RefresherPullEndEventDetail",
958
+ "references": {
959
+ "RefresherPullEndEventDetail": {
960
+ "location": "import",
961
+ "path": "./refresher-interface",
962
+ "id": "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail"
963
+ }
964
+ }
965
+ }
900
966
  }];
901
967
  }
902
968
  static get methods() {
@@ -572,6 +572,7 @@ export class Select {
572
572
  const mode = getIonMode(this);
573
573
  const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
574
574
  header: interfaceOptions.header,
575
+ cancelText: this.cancelText,
575
576
  multiple,
576
577
  value,
577
578
  options: this.createOverlaySelectOptions(this.childOpts, value),
@@ -833,7 +834,7 @@ export class Select {
833
834
  * TODO(FW-5592): Remove hasStartEndSlots condition
834
835
  */
835
836
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
836
- return (h(Host, { key: 'd8026835993d0e6dce747098f741a06ae4e4f54d', onClick: this.onClick, class: createColorClasses(this.color, {
837
+ return (h(Host, { key: 'b7fa907f8fbc54fd63e2d07a9bb5156d94fd5057', onClick: this.onClick, class: createColorClasses(this.color, {
837
838
  [mode]: true,
838
839
  'in-item': inItem,
839
840
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -851,7 +852,7 @@ export class Select {
851
852
  [`select-justify-${justify}`]: justifyEnabled,
852
853
  [`select-shape-${shape}`]: shape !== undefined,
853
854
  [`select-label-placement-${labelPlacement}`]: true,
854
- }) }, h("label", { key: 'fcfb40209d6d07d49c7fdca4884b31abf6ac2567', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'f191664f2290c3890bde1156157c83a6ff17dbe2', class: "select-wrapper-inner" }, h("slot", { key: '317a28d1115b4214f291e228ce0fe6fc782e57d5', name: "start" }), h("div", { key: 'db68e18abd5ca3a1023d7c7b58bf89893ae18073', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '4274e042267c2234a198b0f65c89477898d08130', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '2e2eb1ee2b2791e0683d9afb186fde6e938ca59c', class: "select-highlight" })), this.renderBottomContent()));
855
+ }) }, h("label", { key: '11137e6a8b0374e93923ddb5a4629972ded5f43c', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '99e3c09b5e6c2e7be493ed5834f991fffe45cfff', class: "select-wrapper-inner" }, h("slot", { key: '740f0e5a913cb0209d5acae31c33a6ed8f672dfc', name: "start" }), h("div", { key: 'b20e33c8b60915a5194948fcf8e22d7789f0b050', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0199f338185d5fa2cdd977bb20516746bd9ddad5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '3b54de893cc8fc66df8588cee22e30d6f10850b3', class: "select-highlight" })), this.renderBottomContent()));
855
856
  }
856
857
  static get is() { return "ion-select"; }
857
858
  static get encapsulation() { return "shadow"; }
@@ -7,6 +7,10 @@ import { safeCall } from "../../utils/overlays";
7
7
  import { getClassMap } from "../../utils/theme";
8
8
  export class SelectModal {
9
9
  constructor() {
10
+ /**
11
+ * The text to display on the cancel button.
12
+ */
13
+ this.cancelText = 'Close';
10
14
  this.options = [];
11
15
  }
12
16
  closeModal() {
@@ -75,7 +79,7 @@ export class SelectModal {
75
79
  } }, option.text))));
76
80
  }
77
81
  render() {
78
- return (h(Host, { key: 'b6c0dec240b2e41985b15fdf4e5a6d3a145c1567', class: getIonMode(this) }, h("ion-header", { key: 'cd177e85ee0f62a60a3a708342d6ab6eb19a44dc' }, h("ion-toolbar", { key: 'aee8222a5a4daa540ad202b2e4cac1ef93d9558c' }, this.header !== undefined && h("ion-title", { key: '5f8fecc764d97bf840d3d4cfddeeccd118ab4436' }, this.header), h("ion-buttons", { key: '919033950d7c2b0101f96a9c9698219de9f568ea', slot: "end" }, h("ion-button", { key: '34b571cab6dced4bde555a077a21e91800829931', onClick: () => this.closeModal() }, "Close")))), h("ion-content", { key: '3c9153d26ba7a5a03d3b20fcd628d0c3031661a7' }, h("ion-list", { key: 'e00b222c071bc97c82ad1bba4db95a8a5c43ed6d' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
82
+ return (h(Host, { key: '59ba79ffdbb69befe8e13745450c1071a1fe8c6c', class: getIonMode(this) }, h("ion-header", { key: 'fa4d08ee43eec4b9add09d9ffabcba9ed13dd4af' }, h("ion-toolbar", { key: 'b5e26cf092297c51c1dba3ce7963e7b03420393b' }, this.header !== undefined && h("ion-title", { key: 'a8a93cdea4d119d3a17d8cef3878b8a1daa86e26' }, this.header), h("ion-buttons", { key: 'bbc656713b41ef09099ed466f93a9cfbdaceecc1', slot: "end" }, h("ion-button", { key: '80b8751fe4c96e06b620a0b9d17b2d9b3da2faa5', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: 'a251fc00ae4cc7e6b3abe13caa10d95bb515558e' }, h("ion-list", { key: 'bcaf38d6d91accfabb4a9d26783bc0e4801abe3c' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
79
83
  }
80
84
  static get is() { return "ion-select-modal"; }
81
85
  static get encapsulation() { return "scoped"; }
@@ -114,6 +118,26 @@ export class SelectModal {
114
118
  "reflect": false,
115
119
  "attribute": "header"
116
120
  },
121
+ "cancelText": {
122
+ "type": "string",
123
+ "mutable": false,
124
+ "complexType": {
125
+ "original": "string",
126
+ "resolved": "string",
127
+ "references": {}
128
+ },
129
+ "required": false,
130
+ "optional": false,
131
+ "docs": {
132
+ "tags": [],
133
+ "text": "The text to display on the cancel button."
134
+ },
135
+ "getter": false,
136
+ "setter": false,
137
+ "reflect": false,
138
+ "attribute": "cancel-text",
139
+ "defaultValue": "'Close'"
140
+ },
117
141
  "multiple": {
118
142
  "type": "boolean",
119
143
  "mutable": false,
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-01-30T22:46:49",
2
+ "timestamp": "2026-02-05T19:32:00",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.0",
@@ -25548,10 +25548,6 @@
25548
25548
  "name": "slot",
25549
25549
  "text": "end - Content is placed to the right of the range slider in LTR, and to the left in RTL."
25550
25550
  },
25551
- {
25552
- "name": "part",
25553
- "text": "label - The label text describing the range."
25554
- },
25555
25551
  {
25556
25552
  "name": "part",
25557
25553
  "text": "tick - An inactive tick mark."
@@ -25560,81 +25556,25 @@
25560
25556
  "name": "part",
25561
25557
  "text": "tick-active - An active tick mark."
25562
25558
  },
25563
- {
25564
- "name": "part",
25565
- "text": "bar - The inactive part of the bar."
25566
- },
25567
- {
25568
- "name": "part",
25569
- "text": "bar-active - The active part of the bar."
25570
- },
25571
- {
25572
- "name": "part",
25573
- "text": "knob-handle - The container element that wraps the knob and handles drag interactions."
25574
- },
25575
- {
25576
- "name": "part",
25577
- "text": "knob-handle-a - The container element for the first knob. Only available when `dualKnobs` is `true`."
25578
- },
25579
- {
25580
- "name": "part",
25581
- "text": "knob-handle-b - The container element for the second knob. Only available when `dualKnobs` is `true`."
25582
- },
25583
- {
25584
- "name": "part",
25585
- "text": "knob-handle-lower - The container element for the lower knob. Only available when `dualKnobs` is `true`."
25586
- },
25587
- {
25588
- "name": "part",
25589
- "text": "knob-handle-upper - The container element for the upper knob. Only available when `dualKnobs` is `true`."
25590
- },
25591
25559
  {
25592
25560
  "name": "part",
25593
25561
  "text": "pin - The counter that appears above a knob."
25594
25562
  },
25595
25563
  {
25596
25564
  "name": "part",
25597
- "text": "pin-a - The counter that appears above the first knob. Only available when `dualKnobs` is `true`."
25598
- },
25599
- {
25600
- "name": "part",
25601
- "text": "pin-b - The counter that appears above the second knob. Only available when `dualKnobs` is `true`."
25602
- },
25603
- {
25604
- "name": "part",
25605
- "text": "pin-lower - The counter that appears above the lower knob. Only available when `dualKnobs` is `true`."
25606
- },
25607
- {
25608
- "name": "part",
25609
- "text": "pin-upper - The counter that appears above the upper knob. Only available when `dualKnobs` is `true`."
25565
+ "text": "knob - The handle that is used to drag the range."
25610
25566
  },
25611
25567
  {
25612
25568
  "name": "part",
25613
- "text": "knob - The visual knob element that appears on the range track."
25614
- },
25615
- {
25616
- "name": "part",
25617
- "text": "knob-a - The visual knob element for the first knob. Only available when `dualKnobs` is `true`."
25618
- },
25619
- {
25620
- "name": "part",
25621
- "text": "knob-b - The visual knob element for the second knob. Only available when `dualKnobs` is `true`."
25622
- },
25623
- {
25624
- "name": "part",
25625
- "text": "knob-lower - The visual knob element for the lower knob. Only available when `dualKnobs` is `true`."
25626
- },
25627
- {
25628
- "name": "part",
25629
- "text": "knob-upper - The visual knob element for the upper knob. Only available when `dualKnobs` is `true`."
25569
+ "text": "bar - The inactive part of the bar."
25630
25570
  },
25631
25571
  {
25632
25572
  "name": "part",
25633
- "text": "pressed - Added to the knob-handle, knob, and pin that is currently being pressed to drag. Only one set has this part at a time."
25573
+ "text": "bar-active - The active part of the bar."
25634
25574
  },
25635
25575
  {
25636
25576
  "name": "part",
25637
- "text": "focused - Added to the knob-handle, knob, and pin that currently has focus. Only one set has this part at a time."
25577
+ "text": "label - The label text describing the range."
25638
25578
  }
25639
25579
  ],
25640
25580
  "usage": {},
@@ -26454,49 +26394,9 @@
26454
26394
  "name": "bar-active",
26455
26395
  "docs": "The active part of the bar."
26456
26396
  },
26457
- {
26458
- "name": "focused",
26459
- "docs": "Added to the knob-handle, knob, and pin that currently has focus. Only one set has this part at a time."
26460
- },
26461
26397
  {
26462
26398
  "name": "knob",
26463
- "docs": "The visual knob element that appears on the range track."
26464
- },
26465
- {
26466
- "name": "knob-a",
26467
- "docs": "The visual knob element for the first knob. Only available when `dualKnobs` is `true`."
26468
- },
26469
- {
26470
- "name": "knob-b",
26471
- "docs": "The visual knob element for the second knob. Only available when `dualKnobs` is `true`."
26472
- },
26473
- {
26474
- "name": "knob-handle",
26475
- "docs": "The container element that wraps the knob and handles drag interactions."
26476
- },
26477
- {
26478
- "name": "knob-handle-a",
26479
- "docs": "The container element for the first knob. Only available when `dualKnobs` is `true`."
26480
- },
26481
- {
26482
- "name": "knob-handle-b",
26483
- "docs": "The container element for the second knob. Only available when `dualKnobs` is `true`."
26484
- },
26485
- {
26486
- "name": "knob-handle-lower",
26487
- "docs": "The container element for the lower knob. Only available when `dualKnobs` is `true`."
26488
- },
26489
- {
26490
- "name": "knob-handle-upper",
26491
- "docs": "The container element for the upper knob. Only available when `dualKnobs` is `true`."
26492
- },
26493
- {
26494
- "name": "knob-lower",
26495
- "docs": "The visual knob element for the lower knob. Only available when `dualKnobs` is `true`."
26496
- },
26497
- {
26498
- "name": "knob-upper",
26499
- "docs": "The visual knob element for the upper knob. Only available when `dualKnobs` is `true`."
26399
+ "docs": "The handle that is used to drag the range."
26500
26400
  },
26501
26401
  {
26502
26402
  "name": "label",
@@ -26506,26 +26406,6 @@
26506
26406
  "name": "pin",
26507
26407
  "docs": "The counter that appears above a knob."
26508
26408
  },
26509
- {
26510
- "name": "pin-a",
26511
- "docs": "The counter that appears above the first knob. Only available when `dualKnobs` is `true`."
26512
- },
26513
- {
26514
- "name": "pin-b",
26515
- "docs": "The counter that appears above the second knob. Only available when `dualKnobs` is `true`."
26516
- },
26517
- {
26518
- "name": "pin-lower",
26519
- "docs": "The counter that appears above the lower knob. Only available when `dualKnobs` is `true`."
26520
- },
26521
- {
26522
- "name": "pin-upper",
26523
- "docs": "The counter that appears above the upper knob. Only available when `dualKnobs` is `true`."
26524
- },
26525
- {
26526
- "name": "pressed",
26527
- "docs": "Added to the knob-handle, knob, and pin that is currently being pressed to drag. Only one set has this part at a time."
26528
- },
26529
26409
  {
26530
26410
  "name": "tick",
26531
26411
  "docs": "An inactive tick mark."
@@ -26642,7 +26522,7 @@
26642
26522
  "mutable": false,
26643
26523
  "attr": "pull-factor",
26644
26524
  "reflectToAttr": false,
26645
- "docs": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example: If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
26525
+ "docs": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
26646
26526
  "docsTags": [
26647
26527
  {
26648
26528
  "name": "default",
@@ -26831,6 +26711,40 @@
26831
26711
  "docs": "Emitted while the user is pulling down the content and exposing the refresher.",
26832
26712
  "docsTags": []
26833
26713
  },
26714
+ {
26715
+ "event": "ionPullEnd",
26716
+ "detail": "RefresherPullEndEventDetail",
26717
+ "bubbles": true,
26718
+ "complexType": {
26719
+ "original": "RefresherPullEndEventDetail",
26720
+ "resolved": "RefresherPullEndEventDetail",
26721
+ "references": {
26722
+ "RefresherPullEndEventDetail": {
26723
+ "location": "import",
26724
+ "path": "./refresher-interface",
26725
+ "id": "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail"
26726
+ }
26727
+ }
26728
+ },
26729
+ "cancelable": true,
26730
+ "composed": true,
26731
+ "docs": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled.",
26732
+ "docsTags": []
26733
+ },
26734
+ {
26735
+ "event": "ionPullStart",
26736
+ "detail": "void",
26737
+ "bubbles": true,
26738
+ "complexType": {
26739
+ "original": "void",
26740
+ "resolved": "void",
26741
+ "references": {}
26742
+ },
26743
+ "cancelable": true,
26744
+ "composed": true,
26745
+ "docs": "Emitted when the user begins to start pulling down.",
26746
+ "docsTags": []
26747
+ },
26834
26748
  {
26835
26749
  "event": "ionRefresh",
26836
26750
  "detail": "RefresherEventDetail",
@@ -26862,8 +26776,14 @@
26862
26776
  },
26863
26777
  "cancelable": true,
26864
26778
  "composed": true,
26865
- "docs": "Emitted when the user begins to start pulling down.",
26866
- "docsTags": []
26779
+ "docs": "Emitted when the user begins to start pulling down.\nTODO(FW-7044): Remove this in a major release",
26780
+ "docsTags": [
26781
+ {
26782
+ "name": "deprecated",
26783
+ "text": "Use `ionPullStart` instead."
26784
+ }
26785
+ ],
26786
+ "deprecation": "Use `ionPullStart` instead."
26867
26787
  }
26868
26788
  ],
26869
26789
  "listeners": [],
@@ -31902,6 +31822,35 @@
31902
31822
  "docsTags": [],
31903
31823
  "usage": {},
31904
31824
  "props": [
31825
+ {
31826
+ "name": "cancelText",
31827
+ "type": "string",
31828
+ "complexType": {
31829
+ "original": "string",
31830
+ "resolved": "string",
31831
+ "references": {}
31832
+ },
31833
+ "mutable": false,
31834
+ "attr": "cancel-text",
31835
+ "reflectToAttr": false,
31836
+ "docs": "The text to display on the cancel button.",
31837
+ "docsTags": [
31838
+ {
31839
+ "name": "default",
31840
+ "text": "'Close'"
31841
+ }
31842
+ ],
31843
+ "default": "'Close'",
31844
+ "values": [
31845
+ {
31846
+ "type": "string"
31847
+ }
31848
+ ],
31849
+ "optional": false,
31850
+ "required": false,
31851
+ "getter": false,
31852
+ "setter": false
31853
+ },
31905
31854
  {
31906
31855
  "name": "header",
31907
31856
  "type": "string | undefined",
@@ -37679,6 +37628,11 @@
37679
37628
  "docstring": "",
37680
37629
  "path": "src/components/refresher/refresher-interface.ts"
37681
37630
  },
37631
+ "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail": {
37632
+ "declaration": "export interface RefresherPullEndEventDetail {\n reason: 'complete' | 'cancel';\n}",
37633
+ "docstring": "",
37634
+ "path": "src/components/refresher/refresher-interface.ts"
37635
+ },
37682
37636
  "src/components/reorder-group/reorder-group-interface.ts::ItemReorderEventDetail": {
37683
37637
  "declaration": "export interface ItemReorderEventDetail {\n from: number;\n to: number;\n complete: (data?: boolean | any[]) => any;\n}",
37684
37638
  "docstring": "",