@ionic/core 8.8.20-dev.11791573097.1f843ab0 → 8.8.20-dev.11792194859.16be5d7f

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 (33) hide show
  1. package/components/ion-datetime-button.js +1 -1
  2. package/components/ion-datetime.js +1 -1
  3. package/components/{p-BE21dB_a.js → p-Bpr3edV8.js} +1 -1
  4. package/dist/cjs/ion-datetime-button.cjs.entry.js +28 -10
  5. package/dist/cjs/ion-datetime_3.cjs.entry.js +354 -30
  6. package/dist/cjs/ionic.cjs.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/collection/components/datetime/datetime.ionic.css +144 -1
  9. package/dist/collection/components/datetime/datetime.ios.css +118 -0
  10. package/dist/collection/components/datetime/datetime.js +407 -27
  11. package/dist/collection/components/datetime/datetime.md.css +117 -0
  12. package/dist/collection/components/datetime/utils/state.js +18 -1
  13. package/dist/collection/components/datetime-button/datetime-button.js +28 -10
  14. package/dist/docs.json +151 -1
  15. package/dist/esm/{format-2WlZcMvG.js → format-BNGmd1mx.js} +1 -1
  16. package/dist/esm/ion-datetime-button.entry.js +29 -11
  17. package/dist/esm/ion-datetime_3.entry.js +355 -31
  18. package/dist/esm/ionic.js +1 -1
  19. package/dist/esm/loader.js +1 -1
  20. package/dist/html.html-data.json +20 -0
  21. package/dist/ionic/ionic.esm.js +1 -1
  22. package/dist/ionic/p-4aa6153d.entry.js +4 -0
  23. package/dist/ionic/p-4f2e482f.entry.js +4 -0
  24. package/dist/ionic/{p-7k7Q1A38.js → p-CrgdPEJR.js} +1 -1
  25. package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
  26. package/dist/types/components/datetime/datetime.d.ts +66 -2
  27. package/dist/types/components/datetime/utils/state.d.ts +5 -2
  28. package/dist/types/components.d.ts +33 -0
  29. package/hydrate/index.js +390 -40
  30. package/hydrate/index.mjs +390 -40
  31. package/package.json +1 -1
  32. package/dist/ionic/p-3a4f9b8a.entry.js +0 -4
  33. package/dist/ionic/p-f6768728.entry.js +0 -4
@@ -349,11 +349,83 @@
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
+ * The ::before pseudo-element on the calendar-day-wrapper
368
+ * draws the colored background track that connects the
369
+ * range start to the range end. The track is vertically
370
+ * centered and sized to match the day button height.
371
+ *
372
+ * @prop --range-background: The background color of the range selection track.
373
+ */
374
+ :host .calendar-day-wrapper-range-start::before,
375
+ :host .calendar-day-wrapper-in-range::before,
376
+ :host .calendar-day-wrapper-range-end::before {
377
+ position: absolute;
378
+ /**
379
+ * Vertically center the track and size it to
380
+ * match the calendar day button height.
381
+ */
382
+ top: 50%;
383
+ height: var(--range-track-height);
384
+ transform: translateY(-50%);
385
+ background: var(--range-background);
386
+ content: "";
387
+ z-index: -1;
388
+ }
389
+
390
+ :host .calendar-day-wrapper-range-start::before {
391
+ inset-inline-start: 50%;
392
+ inset-inline-end: 0;
393
+ }
394
+
395
+ :host .calendar-day-wrapper-in-range::before {
396
+ inset-inline-start: 0;
397
+ inset-inline-end: 0;
398
+ }
399
+
400
+ :host .calendar-day-wrapper-range-end::before {
401
+ inset-inline-start: 0;
402
+ inset-inline-end: 50%;
403
+ }
404
+
405
+ /**
406
+ * When a single day is both the start and end of the range,
407
+ * do not show a track since there is nothing to connect.
408
+ */
409
+ :host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before {
410
+ display: none;
411
+ }
412
+
413
+ /**
414
+ * When the component is disabled, move the opacity to the wrapper
415
+ * so both the track and day button fade equally. Without this,
416
+ * the day button becomes semi-transparent (via native disabled opacity)
417
+ * while the track stays opaque, causing a visible overlap.
418
+ */
419
+ :host(.datetime-disabled) .calendar-day-wrapper-range-start,
420
+ :host(.datetime-disabled) .calendar-day-wrapper-in-range,
421
+ :host(.datetime-disabled) .calendar-day-wrapper-range-end {
422
+ opacity: 0.4;
423
+ }
424
+
425
+ :host(.datetime-disabled) .calendar-day-wrapper-range-start .calendar-day[disabled],
426
+ :host(.datetime-disabled) .calendar-day-wrapper-in-range .calendar-day[disabled],
427
+ :host(.datetime-disabled) .calendar-day-wrapper-range-end .calendar-day[disabled] {
428
+ opacity: 1;
357
429
  }
358
430
 
359
431
  /**
@@ -1000,6 +1072,52 @@ ion-picker {
1000
1072
  color: var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));
1001
1073
  }
1002
1074
 
1075
+ :host {
1076
+ --range-background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);
1077
+ --range-track-height: 40px;
1078
+ }
1079
+
1080
+ :host(.ion-color) {
1081
+ --range-background: rgba(var(--ion-color-base-rgb), 0.2);
1082
+ }
1083
+
1084
+ :host .calendar-day.calendar-day-range-start {
1085
+ border-radius: 50% 0 0 50%;
1086
+ background: var(--ion-color-primary, #0054e9);
1087
+ color: var(--ion-color-primary-contrast, #fff);
1088
+ font-weight: 600;
1089
+ }
1090
+
1091
+ :host .calendar-day.calendar-day-range-end {
1092
+ border-radius: 0 50% 50% 0;
1093
+ background: var(--ion-color-primary, #0054e9);
1094
+ color: var(--ion-color-primary-contrast, #fff);
1095
+ font-weight: 600;
1096
+ }
1097
+
1098
+ :host .calendar-day.calendar-day-range-start.calendar-day-range-end {
1099
+ border-radius: 50%;
1100
+ }
1101
+
1102
+ :host .calendar-day.calendar-day-in-range {
1103
+ border-radius: 0;
1104
+ background: none;
1105
+ }
1106
+
1107
+ :host(.ion-color) .calendar-day.calendar-day-range-start,
1108
+ :host(.ion-color) .calendar-day.calendar-day-range-end {
1109
+ background: var(--ion-color-base);
1110
+ color: var(--ion-color-contrast);
1111
+ }
1112
+
1113
+ :host .calendar-day.calendar-day-today.calendar-day-in-range {
1114
+ color: var(--ion-color-primary, #0054e9);
1115
+ }
1116
+
1117
+ :host(.ion-color) .calendar-day.calendar-day-today.calendar-day-in-range {
1118
+ color: var(--ion-color-base);
1119
+ }
1120
+
1003
1121
  :host .datetime-time {
1004
1122
  -webkit-padding-start: 16px;
1005
1123
  padding-inline-start: 16px;