@ionic/core 8.7.17-dev.11770147425.1bfcd5e5 → 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 -97
  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 +39 -95
  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 -116
  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 -137
  16. package/dist/esm/ion-range.entry.js +39 -95
  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 -24
  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 -122
  36. package/hydrate/index.mjs +83 -122
  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-b0c2f1f1.entry.js +0 -4
  41. package/dist/ionic/p-eb024a5b.entry.js +0 -4
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-02-03T19:39:04",
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,85 +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`."
25565
+ "text": "knob - The handle that is used to drag the range."
25598
25566
  },
25599
25567
  {
25600
25568
  "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`."
25610
- },
25611
- {
25612
- "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`."
25630
- },
25631
- {
25632
- "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 when `dualKnobs` is `true`."
25569
+ "text": "bar - The inactive part of the bar."
25634
25570
  },
25635
25571
  {
25636
25572
  "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 when `dualKnobs` is `true`."
25573
+ "text": "bar-active - The active part of the bar."
25638
25574
  },
25639
25575
  {
25640
25576
  "name": "part",
25641
- "text": "hover - Added to the knob-handle, knob, and pin when the knob has hover. Only one set has this part at a time."
25577
+ "text": "label - The label text describing the range."
25642
25578
  }
25643
25579
  ],
25644
25580
  "usage": {},
@@ -26458,53 +26394,9 @@
26458
26394
  "name": "bar-active",
26459
26395
  "docs": "The active part of the bar."
26460
26396
  },
26461
- {
26462
- "name": "focused",
26463
- "docs": "Added to the knob-handle, knob, and pin that currently has focus. Only one set has this part at a time when `dualKnobs` is `true`."
26464
- },
26465
- {
26466
- "name": "hover",
26467
- "docs": "Added to the knob-handle, knob, and pin when the knob has hover. Only one set has this part at a time."
26468
- },
26469
26397
  {
26470
26398
  "name": "knob",
26471
- "docs": "The visual knob element that appears on the range track."
26472
- },
26473
- {
26474
- "name": "knob-a",
26475
- "docs": "The visual knob element for the first knob. Only available when `dualKnobs` is `true`."
26476
- },
26477
- {
26478
- "name": "knob-b",
26479
- "docs": "The visual knob element for the second knob. Only available when `dualKnobs` is `true`."
26480
- },
26481
- {
26482
- "name": "knob-handle",
26483
- "docs": "The container element that wraps the knob and handles drag interactions."
26484
- },
26485
- {
26486
- "name": "knob-handle-a",
26487
- "docs": "The container element for the first knob. Only available when `dualKnobs` is `true`."
26488
- },
26489
- {
26490
- "name": "knob-handle-b",
26491
- "docs": "The container element for the second knob. Only available when `dualKnobs` is `true`."
26492
- },
26493
- {
26494
- "name": "knob-handle-lower",
26495
- "docs": "The container element for the lower knob. Only available when `dualKnobs` is `true`."
26496
- },
26497
- {
26498
- "name": "knob-handle-upper",
26499
- "docs": "The container element for the upper knob. Only available when `dualKnobs` is `true`."
26500
- },
26501
- {
26502
- "name": "knob-lower",
26503
- "docs": "The visual knob element for the lower knob. Only available when `dualKnobs` is `true`."
26504
- },
26505
- {
26506
- "name": "knob-upper",
26507
- "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."
26508
26400
  },
26509
26401
  {
26510
26402
  "name": "label",
@@ -26514,26 +26406,6 @@
26514
26406
  "name": "pin",
26515
26407
  "docs": "The counter that appears above a knob."
26516
26408
  },
26517
- {
26518
- "name": "pin-a",
26519
- "docs": "The counter that appears above the first knob. Only available when `dualKnobs` is `true`."
26520
- },
26521
- {
26522
- "name": "pin-b",
26523
- "docs": "The counter that appears above the second knob. Only available when `dualKnobs` is `true`."
26524
- },
26525
- {
26526
- "name": "pin-lower",
26527
- "docs": "The counter that appears above the lower knob. Only available when `dualKnobs` is `true`."
26528
- },
26529
- {
26530
- "name": "pin-upper",
26531
- "docs": "The counter that appears above the upper knob. Only available when `dualKnobs` is `true`."
26532
- },
26533
- {
26534
- "name": "pressed",
26535
- "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 when `dualKnobs` is `true`."
26536
- },
26537
26409
  {
26538
26410
  "name": "tick",
26539
26411
  "docs": "An inactive tick mark."
@@ -26650,7 +26522,7 @@
26650
26522
  "mutable": false,
26651
26523
  "attr": "pull-factor",
26652
26524
  "reflectToAttr": false,
26653
- "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.",
26654
26526
  "docsTags": [
26655
26527
  {
26656
26528
  "name": "default",
@@ -26839,6 +26711,40 @@
26839
26711
  "docs": "Emitted while the user is pulling down the content and exposing the refresher.",
26840
26712
  "docsTags": []
26841
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
+ },
26842
26748
  {
26843
26749
  "event": "ionRefresh",
26844
26750
  "detail": "RefresherEventDetail",
@@ -26870,8 +26776,14 @@
26870
26776
  },
26871
26777
  "cancelable": true,
26872
26778
  "composed": true,
26873
- "docs": "Emitted when the user begins to start pulling down.",
26874
- "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."
26875
26787
  }
26876
26788
  ],
26877
26789
  "listeners": [],
@@ -31910,6 +31822,35 @@
31910
31822
  "docsTags": [],
31911
31823
  "usage": {},
31912
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
+ },
31913
31854
  {
31914
31855
  "name": "header",
31915
31856
  "type": "string | undefined",
@@ -37687,6 +37628,11 @@
37687
37628
  "docstring": "",
37688
37629
  "path": "src/components/refresher/refresher-interface.ts"
37689
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
+ },
37690
37636
  "src/components/reorder-group/reorder-group-interface.ts::ItemReorderEventDetail": {
37691
37637
  "declaration": "export interface ItemReorderEventDetail {\n from: number;\n to: number;\n complete: (data?: boolean | any[]) => any;\n}",
37692
37638
  "docstring": "",
@@ -74,7 +74,6 @@ const Range = class {
74
74
  this.inheritedAttributes = {};
75
75
  this.contentEl = null;
76
76
  this.initialContentScrollY = true;
77
- this.focusFromPointer = false;
78
77
  this.ratioA = 0;
79
78
  this.ratioB = 0;
80
79
  /**
@@ -206,7 +205,6 @@ const Range = class {
206
205
  this.onBlur = () => {
207
206
  if (this.hasFocus) {
208
207
  this.hasFocus = false;
209
- this.focusedKnob = undefined;
210
208
  this.ionBlur.emit();
211
209
  }
212
210
  };
@@ -217,20 +215,21 @@ const Range = class {
217
215
  }
218
216
  };
219
217
  this.onKnobFocus = (knob) => {
220
- // Clicking focuses the range which is needed for the keyboard,
221
- // but we only want to add the ion-focused class when focused via Tab.
222
- if (!this.focusFromPointer) {
223
- this.focusedKnob = knob;
224
- }
225
- else {
226
- this.focusFromPointer = false;
227
- this.focusedKnob = undefined;
228
- }
229
- // If the knob was not already focused, emit the focus event
230
218
  if (!this.hasFocus) {
231
219
  this.hasFocus = true;
232
220
  this.ionFocus.emit();
233
221
  }
222
+ // Manually manage ion-focused class for dual knobs
223
+ if (this.dualKnobs && this.el.shadowRoot) {
224
+ const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
225
+ const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
226
+ // Remove ion-focused from both knobs first
227
+ knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
228
+ knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
229
+ // Add ion-focused only to the focused knob
230
+ const focusedKnobEl = knob === 'A' ? knobA : knobB;
231
+ focusedKnobEl === null || focusedKnobEl === void 0 ? void 0 : focusedKnobEl.classList.add('ion-focused');
232
+ }
234
233
  };
235
234
  this.onKnobBlur = () => {
236
235
  // Check if focus is moving to another knob within the same range
@@ -242,18 +241,18 @@ const Range = class {
242
241
  if (!isStillFocusedOnKnob) {
243
242
  if (this.hasFocus) {
244
243
  this.hasFocus = false;
245
- this.focusedKnob = undefined;
246
244
  this.ionBlur.emit();
247
245
  }
246
+ // Remove ion-focused from both knobs when focus leaves the range
247
+ if (this.dualKnobs && this.el.shadowRoot) {
248
+ const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
249
+ const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
250
+ knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
251
+ knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
252
+ }
248
253
  }
249
254
  }, 0);
250
255
  };
251
- this.onKnobMouseEnter = (knob) => {
252
- this.hoveredKnob = knob;
253
- };
254
- this.onKnobMouseLeave = () => {
255
- this.hoveredKnob = undefined;
256
- };
257
256
  }
258
257
  debounceChanged() {
259
258
  const { ionInput, debounce, originalIonInput } = this;
@@ -507,6 +506,7 @@ const Range = class {
507
506
  ratio = 1 - ratio;
508
507
  }
509
508
  this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
509
+ this.setFocus(this.pressedKnob);
510
510
  }
511
511
  get valA() {
512
512
  return ratioToValue(this.ratioA, this.min, this.max, this.step);
@@ -533,23 +533,9 @@ const Range = class {
533
533
  updateRatio() {
534
534
  const value = this.getValue();
535
535
  const { min, max } = this;
536
- /**
537
- * For dual knobs, value gives lower/upper but not which is A vs B.
538
- * Assign (lowerRatio, upperRatio) to (ratioA, ratioB) in the way that
539
- * minimizes change from the current ratios so the knobs don't swap.
540
- */
541
536
  if (this.dualKnobs) {
542
- const lowerRatio = valueToRatio(value.lower, min, max);
543
- const upperRatio = valueToRatio(value.upper, min, max);
544
- if (Math.abs(this.ratioA - lowerRatio) + Math.abs(this.ratioB - upperRatio) <=
545
- Math.abs(this.ratioA - upperRatio) + Math.abs(this.ratioB - lowerRatio)) {
546
- this.ratioA = lowerRatio;
547
- this.ratioB = upperRatio;
548
- }
549
- else {
550
- this.ratioA = upperRatio;
551
- this.ratioB = lowerRatio;
552
- }
537
+ this.ratioA = valueToRatio(value.lower, min, max);
538
+ this.ratioB = valueToRatio(value.upper, min, max);
553
539
  }
554
540
  else {
555
541
  this.ratioA = valueToRatio(value, min, max);
@@ -566,6 +552,14 @@ const Range = class {
566
552
  };
567
553
  this.noUpdate = false;
568
554
  }
555
+ setFocus(knob) {
556
+ if (this.el.shadowRoot) {
557
+ const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');
558
+ if (knobEl) {
559
+ knobEl.focus();
560
+ }
561
+ }
562
+ }
569
563
  /**
570
564
  * Returns true if content was passed to the "start" slot
571
565
  */
@@ -583,7 +577,7 @@ const Range = class {
583
577
  }
584
578
  renderRangeSlider() {
585
579
  var _a;
586
- const { min, max, step, handleKeyboard, focusedKnob, hoveredKnob, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
580
+ const { min, max, step, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
587
581
  let barStart = `${ratioLower * 100}%`;
588
582
  let barEnd = `${100 - ratioUpper * 100}%`;
589
583
  const rtl = isRTL(this.el);
@@ -643,9 +637,7 @@ const Range = class {
643
637
  ticks.push(tick);
644
638
  }
645
639
  }
646
- return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl), onPointerDown: () => {
647
- this.focusFromPointer = true;
648
- },
640
+ return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
649
641
  /**
650
642
  * Since the gesture has a threshold, the value
651
643
  * won't change until the user has dragged past
@@ -658,7 +650,6 @@ const Range = class {
658
650
  * we need to listen for the "pointerUp" event.
659
651
  */
660
652
  onPointerUp: (ev) => {
661
- this.focusFromPointer = false;
662
653
  /**
663
654
  * If the user drags the knob on the web
664
655
  * version (does not occur on mobile),
@@ -684,10 +675,6 @@ const Range = class {
684
675
  'has-ticks': ticks.length > 0,
685
676
  }, role: "presentation", style: barStyle, part: "bar-active" })), renderKnob(rtl, {
686
677
  knob: 'A',
687
- position: this.dualKnobs ? (this.ratioA <= this.ratioB ? 'lower' : 'upper') : 'lower',
688
- dualKnobs: this.dualKnobs,
689
- focused: focusedKnob === 'A',
690
- hovered: hoveredKnob === 'A',
691
678
  pressed: pressedKnob === 'A',
692
679
  value: this.valA,
693
680
  ratio: this.ratioA,
@@ -700,15 +687,9 @@ const Range = class {
700
687
  inheritedAttributes,
701
688
  onKnobFocus: this.onKnobFocus,
702
689
  onKnobBlur: this.onKnobBlur,
703
- onKnobMouseEnter: this.onKnobMouseEnter,
704
- onKnobMouseLeave: this.onKnobMouseLeave,
705
690
  }), this.dualKnobs &&
706
691
  renderKnob(rtl, {
707
692
  knob: 'B',
708
- position: this.ratioB <= this.ratioA ? 'lower' : 'upper',
709
- dualKnobs: this.dualKnobs,
710
- focused: focusedKnob === 'B',
711
- hovered: hoveredKnob === 'B',
712
693
  pressed: pressedKnob === 'B',
713
694
  value: this.valB,
714
695
  ratio: this.ratioB,
@@ -721,8 +702,6 @@ const Range = class {
721
702
  inheritedAttributes,
722
703
  onKnobFocus: this.onKnobFocus,
723
704
  onKnobBlur: this.onKnobBlur,
724
- onKnobMouseEnter: this.onKnobMouseEnter,
725
- onKnobMouseLeave: this.onKnobMouseLeave,
726
705
  })));
727
706
  }
728
707
  render() {
@@ -748,11 +727,10 @@ const Range = class {
748
727
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
749
728
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
750
729
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
751
- return (h(Host, { key: '4a393e229cf599f3377b606acaebe5f090d41f6e', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
730
+ return (h(Host, { key: 'ed646a42d51b8fe22012198c354cbcf5a389c108', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
752
731
  [mode]: true,
753
732
  'in-item': inItem,
754
733
  'range-disabled': disabled,
755
- 'range-dual-knobs': dualKnobs,
756
734
  'range-pressed': pressedKnob !== undefined,
757
735
  'range-has-pin': pin,
758
736
  [`range-label-placement-${labelPlacement}`]: true,
@@ -760,10 +738,10 @@ const Range = class {
760
738
  'range-item-end-adjustment': needsEndAdjustment,
761
739
  'range-value-min': valueAtMin,
762
740
  'range-value-max': valueAtMax,
763
- }) }, h("label", { key: 'd7f45882aa7f11bbac1cb783caa0053151efcc70', class: "range-wrapper", id: "range-label" }, h("div", { key: '537d3b1e7f9fed0c8380678551e31325b1ef1f85', class: {
741
+ }) }, h("label", { key: '3083e4f2a624e3b268396acb4415f7c6ac44d851', class: "range-wrapper", id: "range-label" }, h("div", { key: '47b92f94d2a0381dd7c5cd3dda54ed2942096715', class: {
764
742
  'label-text-wrapper': true,
765
743
  'label-text-wrapper-hidden': !hasLabel,
766
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: 'cb50f07a3704d04af3554211ffad35f7d9fcc450', class: "native-wrapper" }, h("slot", { key: '09004eaa72688ca0f0536bd5f5d7160a23d16406', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'a94da21d2ea7ed2feafcc0651c72da21d6de1e57', name: "end" })))));
744
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '5341da8d19eb29091df680978a0e20cc8f2eec65', class: "native-wrapper" }, h("slot", { key: '09f1437078032676695442d8c827a16faa7dffe2', name: "start" }), this.renderRangeSlider(), h("slot", { key: '02b7781970ea4d44f10b5f4627a2ca36eca45f85', name: "end" })))));
767
745
  }
768
746
  get el() { return getElement(this); }
769
747
  static get watchers() { return {
@@ -776,7 +754,7 @@ const Range = class {
776
754
  "value": ["valueChanged"]
777
755
  }; }
778
756
  };
779
- const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, disabled, pressed, focused, hovered, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, onKnobMouseEnter, onKnobMouseLeave, }) => {
757
+ const renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, }) => {
780
758
  const start = rtl ? 'right' : 'left';
781
759
  const knobStyle = () => {
782
760
  const style = {};
@@ -797,50 +775,16 @@ const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, di
797
775
  ev.preventDefault();
798
776
  ev.stopPropagation();
799
777
  }
800
- }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, onMouseEnter: () => onKnobMouseEnter(knob), onMouseLeave: onKnobMouseLeave, class: {
778
+ }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, class: {
801
779
  'range-knob-handle': true,
802
- 'range-knob-handle-a': knob === 'A',
803
- 'range-knob-handle-b': knob === 'B',
780
+ 'range-knob-a': knob === 'A',
781
+ 'range-knob-b': knob === 'B',
804
782
  'range-knob-pressed': pressed,
805
783
  'range-knob-min': value === min,
806
784
  'range-knob-max': value === max,
807
785
  'ion-activatable': true,
808
786
  'ion-focusable': true,
809
- 'ion-focused': focused,
810
- }, part: [
811
- 'knob-handle',
812
- dualKnobs && knob === 'A' && 'knob-handle-a',
813
- dualKnobs && knob === 'B' && 'knob-handle-b',
814
- dualKnobs && position === 'lower' && 'knob-handle-lower',
815
- dualKnobs && position === 'upper' && 'knob-handle-upper',
816
- pressed && 'pressed',
817
- focused && 'focused',
818
- hovered && 'hover',
819
- ]
820
- .filter(Boolean)
821
- .join(' '), style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (h("div", { class: "range-pin", role: "presentation", part: [
822
- 'pin',
823
- dualKnobs && knob === 'A' && 'pin-a',
824
- dualKnobs && knob === 'B' && 'pin-b',
825
- dualKnobs && position === 'lower' && 'pin-lower',
826
- dualKnobs && position === 'upper' && 'pin-upper',
827
- pressed && 'pressed',
828
- focused && 'focused',
829
- hovered && 'hover',
830
- ]
831
- .filter(Boolean)
832
- .join(' ') }, pinFormatter(value))), h("div", { class: "range-knob", role: "presentation", part: [
833
- 'knob',
834
- dualKnobs && knob === 'A' && 'knob-a',
835
- dualKnobs && knob === 'B' && 'knob-b',
836
- dualKnobs && position === 'lower' && 'knob-lower',
837
- dualKnobs && position === 'upper' && 'knob-upper',
838
- pressed && 'pressed',
839
- focused && 'focused',
840
- hovered && 'hover',
841
- ]
842
- .filter(Boolean)
843
- .join(' ') })));
787
+ }, style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (h("div", { class: "range-pin", role: "presentation", part: "pin" }, pinFormatter(value))), h("div", { class: "range-knob", role: "presentation", part: "knob" })));
844
788
  };
845
789
  const ratioToValue = (ratio, min, max, step) => {
846
790
  let value = (max - min) * ratio;