@ionic/core 9.0.11-dev.11793726772.1e883321 → 9.0.11-dev.11793728481.1fc40367
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.
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/{p-BCQSEpww.js → p-B7ExaLVL.js} +1 -1
- package/components/{p-CseHeZbU.js → p-BCYVFy50.js} +1 -1
- package/components/p-ByE0slik.js +4 -0
- package/dist/cjs/ion-app_8.cjs.entry.js +5 -13
- package/dist/cjs/ion-datetime-button.cjs.entry.js +33 -6
- package/dist/cjs/ion-datetime.cjs.entry.js +353 -36
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/content/{content.ios.css → content.css} +41 -65
- package/dist/collection/components/content/content.js +5 -9
- package/dist/collection/components/datetime/datetime.ionic.css +179 -5
- package/dist/collection/components/datetime/datetime.ios.css +134 -2
- package/dist/collection/components/datetime/datetime.js +406 -33
- package/dist/collection/components/datetime/datetime.md.css +120 -0
- package/dist/collection/components/datetime/utils/state.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +34 -6
- package/dist/docs.json +160 -127
- package/dist/esm/{format-NT7iHsbA.js → format-DUHrIiJq.js} +1 -1
- package/dist/esm/ion-app_8.entry.js +5 -13
- package/dist/esm/ion-datetime-button.entry.js +34 -7
- package/dist/esm/ion-datetime.entry.js +354 -37
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/html.html-data.json +20 -0
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-56d77e95.entry.js +4 -0
- package/dist/ionic/{p-BtccSO5J.js → p-CaOPF8Xt.js} +1 -1
- package/dist/ionic/p-b30b468d.entry.js +4 -0
- package/dist/ionic/p-ceca04fb.entry.js +4 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +71 -2
- package/dist/types/components/datetime/utils/state.d.ts +5 -2
- package/dist/types/components.d.ts +33 -0
- package/hydrate/index.js +400 -56
- package/hydrate/index.mjs +400 -56
- package/package.json +1 -1
- package/components/p-Da8LCPwo.js +0 -4
- package/dist/collection/components/content/content.ionic.css +0 -352
- package/dist/collection/components/content/content.md.css +0 -347
- package/dist/ionic/p-0743a26a.entry.js +0 -4
- package/dist/ionic/p-39e3be74.entry.js +0 -4
- package/dist/ionic/p-ad46d2fd.entry.js +0 -4
|
@@ -349,11 +349,108 @@
|
|
|
349
349
|
|
|
350
350
|
:host .calendar-day-wrapper {
|
|
351
351
|
display: flex;
|
|
352
|
+
position: relative;
|
|
352
353
|
align-items: center;
|
|
353
354
|
justify-content: center;
|
|
354
355
|
min-width: 0;
|
|
355
356
|
min-height: 0;
|
|
356
357
|
overflow: visible;
|
|
358
|
+
/**
|
|
359
|
+
* Create a stacking context so the range track
|
|
360
|
+
* (::before with z-index: -1) stays behind the
|
|
361
|
+
* day button but above the host background.
|
|
362
|
+
*/
|
|
363
|
+
z-index: 0;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Each day in the range draws its own piece of the track with a
|
|
368
|
+
* ::before. In-range days fill the cell, while the start and end
|
|
369
|
+
* caps cover the half between the pill center and the next day.
|
|
370
|
+
*
|
|
371
|
+
* Grid columns are `1fr`, so cell edges land on fractional pixels
|
|
372
|
+
* and a cell's track can fall a hairline short of its neighbor's.
|
|
373
|
+
* Each day therefore extends 1px toward the next day in the range,
|
|
374
|
+
* which the next day paints over except inside such a gap.
|
|
375
|
+
*
|
|
376
|
+
* @prop --range-background: The background color of the range selection track.
|
|
377
|
+
*/
|
|
378
|
+
:host .calendar-day-wrapper-in-range::before,
|
|
379
|
+
:host .calendar-day-wrapper-range-start::before,
|
|
380
|
+
:host .calendar-day-wrapper-range-end::before {
|
|
381
|
+
position: absolute;
|
|
382
|
+
top: 50%;
|
|
383
|
+
inset-inline-start: 0;
|
|
384
|
+
inset-inline-end: 0;
|
|
385
|
+
height: var(--range-track-height);
|
|
386
|
+
transform: translateY(-50%);
|
|
387
|
+
/**
|
|
388
|
+
* `--range-background` is translucent by default, so it is layered
|
|
389
|
+
* over the datetime background to paint an opaque track. Where two
|
|
390
|
+
* days overlap, the color stays the same instead of doubling up
|
|
391
|
+
* into a darker line.
|
|
392
|
+
*/
|
|
393
|
+
background: linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));
|
|
394
|
+
content: "";
|
|
395
|
+
z-index: -1;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
:host .calendar-day-wrapper-range-start::before {
|
|
399
|
+
inset-inline-start: 50%;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
:host .calendar-day-wrapper-range-end::before {
|
|
403
|
+
inset-inline-end: 50%;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Only extend toward a day that draws the track as well. The last
|
|
408
|
+
* day of a week is followed by the next row, and the next day is
|
|
409
|
+
* unpainted when it ends the selection or is disabled inside the
|
|
410
|
+
* range, so extending there would leave a 1px nub.
|
|
411
|
+
*/
|
|
412
|
+
:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+ .calendar-day-wrapper-in-range)::before,
|
|
413
|
+
:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+ .calendar-day-wrapper-range-end)::before,
|
|
414
|
+
:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+ .calendar-day-wrapper-in-range)::before,
|
|
415
|
+
:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+ .calendar-day-wrapper-range-end)::before {
|
|
416
|
+
inset-inline-end: -1px;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* A range that continues onto the next week runs the track
|
|
421
|
+
* through the grid padding to the edge of the calendar.
|
|
422
|
+
*/
|
|
423
|
+
:host .calendar-day-wrapper-in-range:nth-child(7n)::before,
|
|
424
|
+
:host .calendar-day-wrapper-range-start:nth-child(7n)::before {
|
|
425
|
+
inset-inline-end: calc(var(--range-track-edge-overflow, 0px) * -1);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,
|
|
429
|
+
:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before {
|
|
430
|
+
inset-inline-start: calc(var(--range-track-edge-overflow, 0px) * -1);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* When a single day is both the start and end of the range,
|
|
435
|
+
* do not show a track since there is nothing to connect.
|
|
436
|
+
*/
|
|
437
|
+
:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before {
|
|
438
|
+
display: none;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* When the component is disabled, fade the whole grid once instead of
|
|
443
|
+
* fading each day. Fading a day makes it its own compositing group, so
|
|
444
|
+
* the 1px that each day extends toward the next would be painted twice
|
|
445
|
+
* and read as a darker seam. The day buttons drop their own disabled
|
|
446
|
+
* opacity so the grid is the only thing applying it.
|
|
447
|
+
*/
|
|
448
|
+
:host(.datetime-disabled.datetime-range) .calendar-month-grid {
|
|
449
|
+
opacity: 0.4;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled] {
|
|
453
|
+
opacity: 1;
|
|
357
454
|
}
|
|
358
455
|
|
|
359
456
|
/**
|
|
@@ -900,6 +997,29 @@ ion-picker {
|
|
|
900
997
|
color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
|
|
901
998
|
}
|
|
902
999
|
|
|
1000
|
+
:host {
|
|
1001
|
+
--range-background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);
|
|
1002
|
+
--range-track-height: 42px;
|
|
1003
|
+
--range-track-edge-overflow: 10px;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
:host(.ion-color) {
|
|
1007
|
+
--range-background: rgba(var(--ion-color-base-rgb), 0.12);
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
:host .calendar-day.calendar-day-range-start,
|
|
1011
|
+
:host .calendar-day.calendar-day-range-end {
|
|
1012
|
+
border-radius: 50%;
|
|
1013
|
+
background: var(--ion-color-primary, #0054e9);
|
|
1014
|
+
color: var(--ion-color-primary-contrast, #fff);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
:host(.ion-color) .calendar-day.calendar-day-range-start,
|
|
1018
|
+
:host(.ion-color) .calendar-day.calendar-day-range-end {
|
|
1019
|
+
background: var(--ion-color-base);
|
|
1020
|
+
color: var(--ion-color-contrast);
|
|
1021
|
+
}
|
|
1022
|
+
|
|
903
1023
|
:host .datetime-time {
|
|
904
1024
|
-webkit-padding-start: 16px;
|
|
905
1025
|
padding-inline-start: 16px;
|
|
@@ -74,7 +74,7 @@ export const isDayDisabled = (refParts, minParts, maxParts, dayValues) => {
|
|
|
74
74
|
* Given a locale, a date, the selected date(s), and today's date,
|
|
75
75
|
* generate the state for a given calendar day button.
|
|
76
76
|
*/
|
|
77
|
-
export const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues) => {
|
|
77
|
+
export const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues, rangeParts) => {
|
|
78
78
|
/**
|
|
79
79
|
* activeParts signals what day(s) are currently selected in the datetime.
|
|
80
80
|
* If multiple="true", this will be an array, but the logic in this util
|
|
@@ -90,6 +90,20 @@ export const getCalendarDayState = (locale, refParts, activeParts, todayParts, m
|
|
|
90
90
|
const isActive = activePartsArray.find((parts) => isSameDay(refParts, parts)) !== undefined;
|
|
91
91
|
const isToday = isSameDay(refParts, todayParts);
|
|
92
92
|
const disabled = isDayDisabled(refParts, minParts, maxParts, dayValues);
|
|
93
|
+
/**
|
|
94
|
+
* Range state: determine if this day is the range start, end, or in between.
|
|
95
|
+
*/
|
|
96
|
+
let isRangeStart = false;
|
|
97
|
+
let isRangeEnd = false;
|
|
98
|
+
let isInRange = false;
|
|
99
|
+
if (rangeParts) {
|
|
100
|
+
const { start, end } = rangeParts;
|
|
101
|
+
isRangeStart = isSameDay(refParts, start);
|
|
102
|
+
if (end) {
|
|
103
|
+
isRangeEnd = isSameDay(refParts, end);
|
|
104
|
+
isInRange = !disabled && !isRangeStart && !isRangeEnd && isAfter(refParts, start) && isBefore(refParts, end);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
93
107
|
/**
|
|
94
108
|
* Note that we always return one object regardless of whether activeParts
|
|
95
109
|
* was an array, since we pare down to one value for isActive.
|
|
@@ -98,6 +112,9 @@ export const getCalendarDayState = (locale, refParts, activeParts, todayParts, m
|
|
|
98
112
|
disabled,
|
|
99
113
|
isActive,
|
|
100
114
|
isToday,
|
|
115
|
+
isRangeStart,
|
|
116
|
+
isRangeEnd,
|
|
117
|
+
isInRange,
|
|
101
118
|
ariaSelected: isActive ? 'true' : null,
|
|
102
119
|
ariaLabel: generateDayAriaLabel(locale, isToday, refParts),
|
|
103
120
|
text: refParts.day != null ? getDay(locale, refParts) : null,
|
|
@@ -6,6 +6,7 @@ import { componentOnReady, addEventListener } from "../../utils/helpers";
|
|
|
6
6
|
import { printIonError } from "../../utils/logging/index";
|
|
7
7
|
import { createColorClasses } from "../../utils/theme";
|
|
8
8
|
import { getIonTheme } from "../../global/ionic-global";
|
|
9
|
+
import { isAfter } from "../datetime/utils/comparison";
|
|
9
10
|
import { getLocalizedDateTime, getLocalizedTime } from "../datetime/utils/format";
|
|
10
11
|
import { getHourCycle } from "../datetime/utils/helpers";
|
|
11
12
|
import { parseDate } from "../datetime/utils/parse";
|
|
@@ -53,7 +54,7 @@ export class DatetimeButton {
|
|
|
53
54
|
if (!datetimeEl) {
|
|
54
55
|
return;
|
|
55
56
|
}
|
|
56
|
-
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
|
|
57
|
+
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, selectionMode, titleSelectedDatesFormatter, } = datetimeEl;
|
|
57
58
|
const parsedValues = this.getParsedDateValues(value);
|
|
58
59
|
/**
|
|
59
60
|
* Both ion-datetime and ion-datetime-button default to today's date and
|
|
@@ -65,6 +66,8 @@ export class DatetimeButton {
|
|
|
65
66
|
if (!parsedDatetimes) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
69
|
+
const isRangeMode = selectionMode === 'range';
|
|
70
|
+
const isMultipleMode = selectionMode === 'multiple' || (selectionMode === undefined && multiple);
|
|
68
71
|
/**
|
|
69
72
|
* If developers incorrectly use multiple="true"
|
|
70
73
|
* with non "date" datetimes, then just select
|
|
@@ -74,11 +77,12 @@ export class DatetimeButton {
|
|
|
74
77
|
*/
|
|
75
78
|
const firstParsedDatetime = parsedDatetimes[0];
|
|
76
79
|
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
80
|
+
const dateFormatOptions = formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' };
|
|
77
81
|
this.dateText = this.timeText = undefined;
|
|
78
82
|
switch (datetimePresentation) {
|
|
79
83
|
case 'date-time':
|
|
80
84
|
case 'time-date':
|
|
81
|
-
const dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
85
|
+
const dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
82
86
|
const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
83
87
|
if (preferWheel) {
|
|
84
88
|
this.dateText = `${dateText} ${timeText}`;
|
|
@@ -89,7 +93,31 @@ export class DatetimeButton {
|
|
|
89
93
|
}
|
|
90
94
|
break;
|
|
91
95
|
case 'date':
|
|
92
|
-
if (
|
|
96
|
+
if (isRangeMode && parsedValues.length >= 2) {
|
|
97
|
+
/**
|
|
98
|
+
* Use the first and last entries in date order, matching
|
|
99
|
+
* how ion-datetime reads a range value.
|
|
100
|
+
*/
|
|
101
|
+
let startIndex = 0;
|
|
102
|
+
let endIndex = parsedValues.length - 1;
|
|
103
|
+
if (isAfter(parsedDatetimes[startIndex], parsedDatetimes[endIndex])) {
|
|
104
|
+
[startIndex, endIndex] = [endIndex, startIndex];
|
|
105
|
+
}
|
|
106
|
+
const rangeValues = [parsedValues[startIndex], parsedValues[endIndex]];
|
|
107
|
+
const startDate = getLocalizedDateTime(locale, parsedDatetimes[startIndex], dateFormatOptions);
|
|
108
|
+
const endDate = getLocalizedDateTime(locale, parsedDatetimes[endIndex], dateFormatOptions);
|
|
109
|
+
let rangeText = `${startDate} - ${endDate}`;
|
|
110
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
111
|
+
try {
|
|
112
|
+
rangeText = titleSelectedDatesFormatter(rangeValues);
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.dateText = rangeText;
|
|
119
|
+
}
|
|
120
|
+
else if (isMultipleMode && parsedValues.length !== 1) {
|
|
93
121
|
let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
|
|
94
122
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
95
123
|
try {
|
|
@@ -102,7 +130,7 @@ export class DatetimeButton {
|
|
|
102
130
|
this.dateText = headerText;
|
|
103
131
|
}
|
|
104
132
|
else {
|
|
105
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
133
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
106
134
|
}
|
|
107
135
|
break;
|
|
108
136
|
case 'time':
|
|
@@ -339,11 +367,11 @@ export class DatetimeButton {
|
|
|
339
367
|
render() {
|
|
340
368
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
341
369
|
const theme = getIonTheme(this);
|
|
342
|
-
return (h(Host, { key: '
|
|
370
|
+
return (h(Host, { key: 'e022c5c280d4f889c1ba7ca3e96b38063c5add30', class: createColorClasses(color, {
|
|
343
371
|
[theme]: true,
|
|
344
372
|
[`${selectedButton}-active`]: datetimeActive,
|
|
345
373
|
['datetime-button-disabled']: disabled,
|
|
346
|
-
}) }, dateText && (h("button", { key: '
|
|
374
|
+
}) }, dateText && (h("button", { key: 'b1267d98cefbce7666b0cafa083c42f3116e2398', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, h("slot", { key: '3fdfa6adf73ee1e35cdb7f318f1d1ddcf4ab4d7b', name: "date-target" }, dateText), theme === 'md' && h("ion-ripple-effect", { key: 'a832d63c77fffe8d7e0d28827bbb469726373d1e' }))), timeText && (h("button", { key: 'c589bdf2b8221609713f0d3554494dd08a1f2e5b', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, h("slot", { key: '10769ddadf7933d78744facaaa153bb413ff484a', name: "time-target" }, timeText), theme === 'md' && h("ion-ripple-effect", { key: '7832de031919ddfb312528b45a3dc8e1c20edea6' })))));
|
|
347
375
|
}
|
|
348
376
|
static get is() { return "ion-datetime-button"; }
|
|
349
377
|
static get encapsulation() { return "shadow"; }
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-11-03T17:
|
|
2
|
+
"timestamp": "2026-11-03T17:58:50",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.45.2",
|
|
@@ -10737,164 +10737,47 @@
|
|
|
10737
10737
|
{
|
|
10738
10738
|
"name": "--background",
|
|
10739
10739
|
"annotation": "prop",
|
|
10740
|
-
"docs": "Background of the content"
|
|
10741
|
-
"mode": "ionic"
|
|
10742
|
-
},
|
|
10743
|
-
{
|
|
10744
|
-
"name": "--background",
|
|
10745
|
-
"annotation": "prop",
|
|
10746
|
-
"docs": "Background of the content",
|
|
10747
|
-
"mode": "ios"
|
|
10748
|
-
},
|
|
10749
|
-
{
|
|
10750
|
-
"name": "--background",
|
|
10751
|
-
"annotation": "prop",
|
|
10752
|
-
"docs": "Background of the content",
|
|
10753
|
-
"mode": "md"
|
|
10754
|
-
},
|
|
10755
|
-
{
|
|
10756
|
-
"name": "--color",
|
|
10757
|
-
"annotation": "prop",
|
|
10758
|
-
"docs": "Color of the content",
|
|
10759
|
-
"mode": "ionic"
|
|
10740
|
+
"docs": "Background of the content"
|
|
10760
10741
|
},
|
|
10761
10742
|
{
|
|
10762
10743
|
"name": "--color",
|
|
10763
10744
|
"annotation": "prop",
|
|
10764
|
-
"docs": "Color of the content"
|
|
10765
|
-
"mode": "ios"
|
|
10766
|
-
},
|
|
10767
|
-
{
|
|
10768
|
-
"name": "--color",
|
|
10769
|
-
"annotation": "prop",
|
|
10770
|
-
"docs": "Color of the content",
|
|
10771
|
-
"mode": "md"
|
|
10772
|
-
},
|
|
10773
|
-
{
|
|
10774
|
-
"name": "--keyboard-offset",
|
|
10775
|
-
"annotation": "prop",
|
|
10776
|
-
"docs": "Keyboard offset of the content",
|
|
10777
|
-
"mode": "ionic"
|
|
10745
|
+
"docs": "Color of the content"
|
|
10778
10746
|
},
|
|
10779
10747
|
{
|
|
10780
10748
|
"name": "--keyboard-offset",
|
|
10781
10749
|
"annotation": "prop",
|
|
10782
|
-
"docs": "Keyboard offset of the content"
|
|
10783
|
-
"mode": "ios"
|
|
10784
|
-
},
|
|
10785
|
-
{
|
|
10786
|
-
"name": "--keyboard-offset",
|
|
10787
|
-
"annotation": "prop",
|
|
10788
|
-
"docs": "Keyboard offset of the content",
|
|
10789
|
-
"mode": "md"
|
|
10790
|
-
},
|
|
10791
|
-
{
|
|
10792
|
-
"name": "--offset-bottom",
|
|
10793
|
-
"annotation": "prop",
|
|
10794
|
-
"docs": "Offset bottom of the content",
|
|
10795
|
-
"mode": "ionic"
|
|
10796
|
-
},
|
|
10797
|
-
{
|
|
10798
|
-
"name": "--offset-bottom",
|
|
10799
|
-
"annotation": "prop",
|
|
10800
|
-
"docs": "Offset bottom of the content",
|
|
10801
|
-
"mode": "ios"
|
|
10750
|
+
"docs": "Keyboard offset of the content"
|
|
10802
10751
|
},
|
|
10803
10752
|
{
|
|
10804
10753
|
"name": "--offset-bottom",
|
|
10805
10754
|
"annotation": "prop",
|
|
10806
|
-
"docs": "Offset bottom of the content"
|
|
10807
|
-
"mode": "md"
|
|
10808
|
-
},
|
|
10809
|
-
{
|
|
10810
|
-
"name": "--offset-top",
|
|
10811
|
-
"annotation": "prop",
|
|
10812
|
-
"docs": "Offset top of the content",
|
|
10813
|
-
"mode": "ionic"
|
|
10814
|
-
},
|
|
10815
|
-
{
|
|
10816
|
-
"name": "--offset-top",
|
|
10817
|
-
"annotation": "prop",
|
|
10818
|
-
"docs": "Offset top of the content",
|
|
10819
|
-
"mode": "ios"
|
|
10755
|
+
"docs": "Offset bottom of the content"
|
|
10820
10756
|
},
|
|
10821
10757
|
{
|
|
10822
10758
|
"name": "--offset-top",
|
|
10823
10759
|
"annotation": "prop",
|
|
10824
|
-
"docs": "Offset top of the content"
|
|
10825
|
-
"mode": "md"
|
|
10826
|
-
},
|
|
10827
|
-
{
|
|
10828
|
-
"name": "--padding-bottom",
|
|
10829
|
-
"annotation": "prop",
|
|
10830
|
-
"docs": "Bottom padding of the content",
|
|
10831
|
-
"mode": "ionic"
|
|
10832
|
-
},
|
|
10833
|
-
{
|
|
10834
|
-
"name": "--padding-bottom",
|
|
10835
|
-
"annotation": "prop",
|
|
10836
|
-
"docs": "Bottom padding of the content",
|
|
10837
|
-
"mode": "ios"
|
|
10760
|
+
"docs": "Offset top of the content"
|
|
10838
10761
|
},
|
|
10839
10762
|
{
|
|
10840
10763
|
"name": "--padding-bottom",
|
|
10841
10764
|
"annotation": "prop",
|
|
10842
|
-
"docs": "Bottom padding of the content"
|
|
10843
|
-
"mode": "md"
|
|
10765
|
+
"docs": "Bottom padding of the content"
|
|
10844
10766
|
},
|
|
10845
10767
|
{
|
|
10846
10768
|
"name": "--padding-end",
|
|
10847
10769
|
"annotation": "prop",
|
|
10848
|
-
"docs": "Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content"
|
|
10849
|
-
"mode": "ionic"
|
|
10850
|
-
},
|
|
10851
|
-
{
|
|
10852
|
-
"name": "--padding-end",
|
|
10853
|
-
"annotation": "prop",
|
|
10854
|
-
"docs": "Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content",
|
|
10855
|
-
"mode": "ios"
|
|
10856
|
-
},
|
|
10857
|
-
{
|
|
10858
|
-
"name": "--padding-end",
|
|
10859
|
-
"annotation": "prop",
|
|
10860
|
-
"docs": "Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content",
|
|
10861
|
-
"mode": "md"
|
|
10862
|
-
},
|
|
10863
|
-
{
|
|
10864
|
-
"name": "--padding-start",
|
|
10865
|
-
"annotation": "prop",
|
|
10866
|
-
"docs": "Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content",
|
|
10867
|
-
"mode": "ionic"
|
|
10770
|
+
"docs": "Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content"
|
|
10868
10771
|
},
|
|
10869
10772
|
{
|
|
10870
10773
|
"name": "--padding-start",
|
|
10871
10774
|
"annotation": "prop",
|
|
10872
|
-
"docs": "Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content"
|
|
10873
|
-
"mode": "ios"
|
|
10874
|
-
},
|
|
10875
|
-
{
|
|
10876
|
-
"name": "--padding-start",
|
|
10877
|
-
"annotation": "prop",
|
|
10878
|
-
"docs": "Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content",
|
|
10879
|
-
"mode": "md"
|
|
10880
|
-
},
|
|
10881
|
-
{
|
|
10882
|
-
"name": "--padding-top",
|
|
10883
|
-
"annotation": "prop",
|
|
10884
|
-
"docs": "Top padding of the content",
|
|
10885
|
-
"mode": "ionic"
|
|
10886
|
-
},
|
|
10887
|
-
{
|
|
10888
|
-
"name": "--padding-top",
|
|
10889
|
-
"annotation": "prop",
|
|
10890
|
-
"docs": "Top padding of the content",
|
|
10891
|
-
"mode": "ios"
|
|
10775
|
+
"docs": "Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content"
|
|
10892
10776
|
},
|
|
10893
10777
|
{
|
|
10894
10778
|
"name": "--padding-top",
|
|
10895
10779
|
"annotation": "prop",
|
|
10896
|
-
"docs": "Top padding of the content"
|
|
10897
|
-
"mode": "md"
|
|
10780
|
+
"docs": "Top padding of the content"
|
|
10898
10781
|
}
|
|
10899
10782
|
],
|
|
10900
10783
|
"slots": [
|
|
@@ -11014,6 +10897,22 @@
|
|
|
11014
10897
|
"name": "part",
|
|
11015
10898
|
"text": "calendar-day disabled - The calendar day that is disabled."
|
|
11016
10899
|
},
|
|
10900
|
+
{
|
|
10901
|
+
"name": "part",
|
|
10902
|
+
"text": "range-start - The calendar day button that is the start of a range selection."
|
|
10903
|
+
},
|
|
10904
|
+
{
|
|
10905
|
+
"name": "part",
|
|
10906
|
+
"text": "range-end - The calendar day button that is the end of a range selection."
|
|
10907
|
+
},
|
|
10908
|
+
{
|
|
10909
|
+
"name": "part",
|
|
10910
|
+
"text": "range-selection - The calendar day button that is part of a range selection (includes start and end)."
|
|
10911
|
+
},
|
|
10912
|
+
{
|
|
10913
|
+
"name": "part",
|
|
10914
|
+
"text": "range-track - The track that connects the start and end days of a range selection."
|
|
10915
|
+
},
|
|
11017
10916
|
{
|
|
11018
10917
|
"name": "part",
|
|
11019
10918
|
"text": "datetime-header - The datetime header contains the content for the `title` slot and the selected date."
|
|
@@ -11246,6 +11145,35 @@
|
|
|
11246
11145
|
"getter": false,
|
|
11247
11146
|
"setter": false
|
|
11248
11147
|
},
|
|
11148
|
+
{
|
|
11149
|
+
"name": "endDateLabel",
|
|
11150
|
+
"type": "string",
|
|
11151
|
+
"complexType": {
|
|
11152
|
+
"original": "string",
|
|
11153
|
+
"resolved": "string",
|
|
11154
|
+
"references": {}
|
|
11155
|
+
},
|
|
11156
|
+
"mutable": false,
|
|
11157
|
+
"attr": "end-date-label",
|
|
11158
|
+
"reflectToAttr": false,
|
|
11159
|
+
"docs": "The text shown in the datetime header when the end of the range\nis empty, also used by screen readers to announce the end date.\nOnly applies when `selectionMode=\"range\"`.",
|
|
11160
|
+
"docsTags": [
|
|
11161
|
+
{
|
|
11162
|
+
"name": "default",
|
|
11163
|
+
"text": "'End date'"
|
|
11164
|
+
}
|
|
11165
|
+
],
|
|
11166
|
+
"default": "'End date'",
|
|
11167
|
+
"values": [
|
|
11168
|
+
{
|
|
11169
|
+
"type": "string"
|
|
11170
|
+
}
|
|
11171
|
+
],
|
|
11172
|
+
"optional": false,
|
|
11173
|
+
"required": false,
|
|
11174
|
+
"getter": false,
|
|
11175
|
+
"setter": false
|
|
11176
|
+
},
|
|
11249
11177
|
{
|
|
11250
11178
|
"name": "firstDayOfWeek",
|
|
11251
11179
|
"type": "number",
|
|
@@ -11642,12 +11570,17 @@
|
|
|
11642
11570
|
"reflectToAttr": false,
|
|
11643
11571
|
"docs": "If `true`, multiple dates can be selected at once. Only\napplies to `presentation=\"date\"` and `preferWheel=\"false\"`.",
|
|
11644
11572
|
"docsTags": [
|
|
11573
|
+
{
|
|
11574
|
+
"name": "deprecated",
|
|
11575
|
+
"text": "Use `selectionMode=\"multiple\"` instead."
|
|
11576
|
+
},
|
|
11645
11577
|
{
|
|
11646
11578
|
"name": "default",
|
|
11647
11579
|
"text": "false"
|
|
11648
11580
|
}
|
|
11649
11581
|
],
|
|
11650
11582
|
"default": "false",
|
|
11583
|
+
"deprecation": "Use `selectionMode=\"multiple\"` instead.",
|
|
11651
11584
|
"values": [
|
|
11652
11585
|
{
|
|
11653
11586
|
"type": "boolean"
|
|
@@ -11806,6 +11739,37 @@
|
|
|
11806
11739
|
"getter": false,
|
|
11807
11740
|
"setter": false
|
|
11808
11741
|
},
|
|
11742
|
+
{
|
|
11743
|
+
"name": "selectionMode",
|
|
11744
|
+
"type": "\"multiple\" | \"range\" | undefined",
|
|
11745
|
+
"complexType": {
|
|
11746
|
+
"original": "'multiple' | 'range'",
|
|
11747
|
+
"resolved": "\"multiple\" | \"range\" | undefined",
|
|
11748
|
+
"references": {}
|
|
11749
|
+
},
|
|
11750
|
+
"mutable": false,
|
|
11751
|
+
"attr": "selection-mode",
|
|
11752
|
+
"reflectToAttr": false,
|
|
11753
|
+
"docs": "Controls the date selection behavior.\n`'multiple'` enables selecting multiple individual dates.\n`'range'` enables selecting a start and end date range.\nWhen unset, single-date selection is used.\n\nRange selection only works with `presentation=\"date\"` and `preferWheel=\"false\"`.",
|
|
11754
|
+
"docsTags": [],
|
|
11755
|
+
"values": [
|
|
11756
|
+
{
|
|
11757
|
+
"value": "multiple",
|
|
11758
|
+
"type": "string"
|
|
11759
|
+
},
|
|
11760
|
+
{
|
|
11761
|
+
"value": "range",
|
|
11762
|
+
"type": "string"
|
|
11763
|
+
},
|
|
11764
|
+
{
|
|
11765
|
+
"type": "undefined"
|
|
11766
|
+
}
|
|
11767
|
+
],
|
|
11768
|
+
"optional": true,
|
|
11769
|
+
"required": false,
|
|
11770
|
+
"getter": false,
|
|
11771
|
+
"setter": false
|
|
11772
|
+
},
|
|
11809
11773
|
{
|
|
11810
11774
|
"name": "showAdjacentDays",
|
|
11811
11775
|
"type": "boolean",
|
|
@@ -11985,6 +11949,35 @@
|
|
|
11985
11949
|
"getter": false,
|
|
11986
11950
|
"setter": false
|
|
11987
11951
|
},
|
|
11952
|
+
{
|
|
11953
|
+
"name": "startDateLabel",
|
|
11954
|
+
"type": "string",
|
|
11955
|
+
"complexType": {
|
|
11956
|
+
"original": "string",
|
|
11957
|
+
"resolved": "string",
|
|
11958
|
+
"references": {}
|
|
11959
|
+
},
|
|
11960
|
+
"mutable": false,
|
|
11961
|
+
"attr": "start-date-label",
|
|
11962
|
+
"reflectToAttr": false,
|
|
11963
|
+
"docs": "The text shown in the datetime header when the start of the range\nis empty, also used by screen readers to announce the start date.\nOnly applies when `selectionMode=\"range\"`.",
|
|
11964
|
+
"docsTags": [
|
|
11965
|
+
{
|
|
11966
|
+
"name": "default",
|
|
11967
|
+
"text": "'Start date'"
|
|
11968
|
+
}
|
|
11969
|
+
],
|
|
11970
|
+
"default": "'Start date'",
|
|
11971
|
+
"values": [
|
|
11972
|
+
{
|
|
11973
|
+
"type": "string"
|
|
11974
|
+
}
|
|
11975
|
+
],
|
|
11976
|
+
"optional": false,
|
|
11977
|
+
"required": false,
|
|
11978
|
+
"getter": false,
|
|
11979
|
+
"setter": false
|
|
11980
|
+
},
|
|
11988
11981
|
{
|
|
11989
11982
|
"name": "theme",
|
|
11990
11983
|
"type": "\"ios\" | \"md\" | \"ionic\"",
|
|
@@ -12166,6 +12159,12 @@
|
|
|
12166
12159
|
"Promise": {
|
|
12167
12160
|
"location": "global",
|
|
12168
12161
|
"id": "global::Promise"
|
|
12162
|
+
},
|
|
12163
|
+
"DatetimeParts": {
|
|
12164
|
+
"location": "import",
|
|
12165
|
+
"path": "./datetime-interface",
|
|
12166
|
+
"id": "src/components/datetime/datetime-interface.ts::DatetimeParts",
|
|
12167
|
+
"referenceLocation": "DatetimeParts"
|
|
12169
12168
|
}
|
|
12170
12169
|
},
|
|
12171
12170
|
"return": "Promise<void>"
|
|
@@ -12335,6 +12334,24 @@
|
|
|
12335
12334
|
"docs": "The width of the ring around the focused element.",
|
|
12336
12335
|
"mode": "ionic"
|
|
12337
12336
|
},
|
|
12337
|
+
{
|
|
12338
|
+
"name": "--range-background",
|
|
12339
|
+
"annotation": "prop",
|
|
12340
|
+
"docs": "The background color of the range selection track.",
|
|
12341
|
+
"mode": "ionic"
|
|
12342
|
+
},
|
|
12343
|
+
{
|
|
12344
|
+
"name": "--range-background",
|
|
12345
|
+
"annotation": "prop",
|
|
12346
|
+
"docs": "The background color of the range selection track.",
|
|
12347
|
+
"mode": "ios"
|
|
12348
|
+
},
|
|
12349
|
+
{
|
|
12350
|
+
"name": "--range-background",
|
|
12351
|
+
"annotation": "prop",
|
|
12352
|
+
"docs": "The background color of the range selection track.",
|
|
12353
|
+
"mode": "md"
|
|
12354
|
+
},
|
|
12338
12355
|
{
|
|
12339
12356
|
"name": "--title-color",
|
|
12340
12357
|
"annotation": "prop",
|
|
@@ -12451,6 +12468,22 @@
|
|
|
12451
12468
|
"name": "previous-button",
|
|
12452
12469
|
"docs": "The button used to navigate to the previous month when using a grid style layout."
|
|
12453
12470
|
},
|
|
12471
|
+
{
|
|
12472
|
+
"name": "range-end",
|
|
12473
|
+
"docs": "The calendar day button that is the end of a range selection."
|
|
12474
|
+
},
|
|
12475
|
+
{
|
|
12476
|
+
"name": "range-selection",
|
|
12477
|
+
"docs": "The calendar day button that is part of a range selection (includes start and end)."
|
|
12478
|
+
},
|
|
12479
|
+
{
|
|
12480
|
+
"name": "range-start",
|
|
12481
|
+
"docs": "The calendar day button that is the start of a range selection."
|
|
12482
|
+
},
|
|
12483
|
+
{
|
|
12484
|
+
"name": "range-track",
|
|
12485
|
+
"docs": "The track that connects the start and end days of a range selection."
|
|
12486
|
+
},
|
|
12454
12487
|
{
|
|
12455
12488
|
"name": "time-button",
|
|
12456
12489
|
"docs": "The button that opens the time picker when using a grid style\nlayout with `presentation=\"date-time\"` or `\"time-date\"`."
|
|
@@ -1122,4 +1122,4 @@ const formatValue = (value) => {
|
|
|
1122
1122
|
return Array.isArray(value) ? value.join(',') : value;
|
|
1123
1123
|
};
|
|
1124
1124
|
|
|
1125
|
-
export {
|
|
1125
|
+
export { getPreviousWeek as A, getNextWeek as B, parseMinParts as C, parseMaxParts as D, parseDate as E, warnIfValueOutOfBounds as F, clampDate as G, parseAmPm as H, convertToArrayOfNumbers as I, getClosestValidDate as J, isMonthFirstLocale as K, isLocaleDayPeriodRTL as L, calculateHourFromAMPM as M, getMonthAndYear as N, getLocalizedTime as O, getLocalizedDateTime as P, formatValue as Q, getPreviousMonth as a, getTodayLabel as b, getYear as c, getHourCycle as d, getInternalHourValue as e, getFormattedHour as f, getNextMonth as g, addTimePadding as h, getLocalizedDayPeriod as i, isBefore as j, isSameDay as k, isAfter as l, is24Hour as m, getNumDaysInMonth as n, getDay as o, generateDayAriaLabel as p, getNextDay as q, removeDateTzOffset as r, convertDataToISO as s, getPartsFromCalendarDay as t, getNextYear as u, validateParts as v, getPreviousYear as w, getEndOfWeek as x, getStartOfWeek as y, getPreviousDay as z };
|