@acusti/date-picker 0.11.1 → 0.12.0

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.
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
1
  export type Props = {
3
2
  className?: string;
4
3
  dateEnd?: Date | number | string;
@@ -20,4 +19,4 @@ export type Props = {
20
19
  showEndInitially?: boolean;
21
20
  useMonthAbbreviations?: boolean;
22
21
  };
23
- export default function DatePicker({ className, dateEnd: _dateEnd, dateStart: _dateStart, initialMonth, isRange: _isRange, isTwoUp, monthLimitFirst, monthLimitLast: _monthLimitLast, onChange, showEndInitially, useMonthAbbreviations, }: Props): React.JSX.Element;
22
+ export default function DatePicker({ className, dateEnd: _dateEnd, dateStart: _dateStart, initialMonth, isRange: _isRange, isTwoUp, monthLimitFirst, monthLimitLast: _monthLimitLast, onChange, showEndInitially, useMonthAbbreviations, }: Props): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
1
  export type Props = {
3
2
  className?: string;
4
3
  dateEnd?: Date | null | number | string;
@@ -10,4 +9,4 @@ export type Props = {
10
9
  onChangeEndPreview?: (date: string) => void;
11
10
  title?: string;
12
11
  };
13
- export default function MonthCalendar({ className, dateEnd, dateEndPreview, dateStart, isRange, month, onChange, onChangeEndPreview, title, }: Props): React.JSX.Element;
12
+ export default function MonthCalendar({ className, dateEnd, dateEndPreview, dateStart, isRange, month, onChange, onChangeEndPreview, title, }: Props): import("react/jsx-runtime").JSX.Element;
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { Style } from "@acusti/styling";
4
4
  import clsx from "clsx";
5
- import * as React from "react";
5
+ import { Fragment, useState, useRef, useEffect } from "react";
6
6
  const ROOT_CLASS_NAME$1 = "uktmonthcalendar";
7
7
  const STYLES$1 = `
8
8
  .${ROOT_CLASS_NAME$1} {
@@ -183,9 +183,6 @@ const getDateFromMonthAndDay = (month, day, asUTC) => {
183
183
  const getLastDateFromMonth = (month, asUTC) => {
184
184
  return getDateFromMonthAndDay(month + 1, 0, asUTC);
185
185
  };
186
- const {
187
- Fragment: Fragment$1
188
- } = React;
189
186
  const DAYS = Array(7).fill(null);
190
187
  function MonthCalendar(t0) {
191
188
  const $ = c(56);
@@ -444,7 +441,7 @@ function MonthCalendar(t0) {
444
441
  }
445
442
  let t19;
446
443
  if ($[52] !== t18 || $[53] !== t7 || $[54] !== t8) {
447
- t19 = /* @__PURE__ */ jsxs(Fragment$1, { children: [
444
+ t19 = /* @__PURE__ */ jsxs(Fragment, { children: [
448
445
  t6,
449
446
  /* @__PURE__ */ jsxs("div", { className: t7, children: [
450
447
  t8,
@@ -522,15 +519,9 @@ const STYLES = `
522
519
  justify-content: space-between;
523
520
  }
524
521
  `;
525
- const {
526
- Fragment,
527
- useEffect,
528
- useRef,
529
- useState
530
- } = React;
531
522
  const getAbbreviatedMonthTitle = (month) => `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;
532
523
  function DatePicker(t0) {
533
- const $ = c(79);
524
+ const $ = c(68);
534
525
  let {
535
526
  className,
536
527
  dateEnd: _dateEnd,
@@ -568,61 +559,51 @@ function DatePicker(t0) {
568
559
  const [dateStart, setDateStart] = useState(dateStartFromProps ?? null);
569
560
  const updatingDateEndRef = useRef(false);
570
561
  let t3;
571
- if ($[4] !== dateEndFromProps || $[5] !== setDateEnd) {
562
+ let t4;
563
+ if ($[4] !== dateEndFromProps) {
572
564
  t3 = () => {
573
565
  if (dateEndFromProps == null) {
574
566
  return;
575
567
  }
576
568
  setDateEnd(dateEndFromProps);
577
569
  };
578
- $[4] = dateEndFromProps;
579
- $[5] = setDateEnd;
580
- $[6] = t3;
581
- } else {
582
- t3 = $[6];
583
- }
584
- let t4;
585
- if ($[7] !== dateEndFromProps) {
586
570
  t4 = [dateEndFromProps];
587
- $[7] = dateEndFromProps;
588
- $[8] = t4;
571
+ $[4] = dateEndFromProps;
572
+ $[5] = t3;
573
+ $[6] = t4;
589
574
  } else {
590
- t4 = $[8];
575
+ t3 = $[5];
576
+ t4 = $[6];
591
577
  }
592
578
  useEffect(t3, t4);
593
579
  let t5;
594
- if ($[9] !== dateStartFromProps || $[10] !== setDateStart) {
580
+ let t6;
581
+ if ($[7] !== dateStartFromProps) {
595
582
  t5 = () => {
596
583
  if (dateStartFromProps == null) {
597
584
  return;
598
585
  }
599
586
  setDateStart(dateStartFromProps);
600
587
  };
601
- $[9] = dateStartFromProps;
602
- $[10] = setDateStart;
603
- $[11] = t5;
604
- } else {
605
- t5 = $[11];
606
- }
607
- let t6;
608
- if ($[12] !== dateStartFromProps) {
609
588
  t6 = [dateStartFromProps];
610
- $[12] = dateStartFromProps;
611
- $[13] = t6;
589
+ $[7] = dateStartFromProps;
590
+ $[8] = t5;
591
+ $[9] = t6;
612
592
  } else {
613
- t6 = $[13];
593
+ t5 = $[8];
594
+ t6 = $[9];
614
595
  }
615
596
  useEffect(t5, t6);
616
597
  if (initialMonth == null) {
617
598
  const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);
618
599
  const initialDate = useDateEnd ? dateEnd : dateStart;
619
600
  let t72;
620
- if ($[14] !== initialDate) {
601
+ if ($[10] !== initialDate) {
621
602
  t72 = getMonthFromDate(initialDate == null ? /* @__PURE__ */ new Date() : new Date(initialDate));
622
- $[14] = initialDate;
623
- $[15] = t72;
603
+ $[10] = initialDate;
604
+ $[11] = t72;
624
605
  } else {
625
- t72 = $[15];
606
+ t72 = $[11];
626
607
  }
627
608
  initialMonth = t72;
628
609
  if (useDateEnd && isTwoUp) {
@@ -633,33 +614,31 @@ function DatePicker(t0) {
633
614
  const [month, setMonth] = useState(initialMonth);
634
615
  const delta = isTwoUp ? 2 : 1;
635
616
  let t7;
636
- if ($[16] !== delta || $[17] !== monthLimitFirst || $[18] !== setMonth) {
617
+ if ($[12] !== delta || $[13] !== monthLimitFirst) {
637
618
  t7 = () => {
638
619
  setMonth((existingMonth) => Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity));
639
620
  };
640
- $[16] = delta;
641
- $[17] = monthLimitFirst;
642
- $[18] = setMonth;
643
- $[19] = t7;
621
+ $[12] = delta;
622
+ $[13] = monthLimitFirst;
623
+ $[14] = t7;
644
624
  } else {
645
- t7 = $[19];
625
+ t7 = $[14];
646
626
  }
647
627
  const handleClickLeftArrow = t7;
648
628
  let t8;
649
- if ($[20] !== delta || $[21] !== monthLimitLast || $[22] !== setMonth) {
629
+ if ($[15] !== delta || $[16] !== monthLimitLast) {
650
630
  t8 = () => {
651
631
  setMonth((existingMonth_0) => Math.min(existingMonth_0 + delta, monthLimitLast ?? Infinity));
652
632
  };
653
- $[20] = delta;
654
- $[21] = monthLimitLast;
655
- $[22] = setMonth;
656
- $[23] = t8;
633
+ $[15] = delta;
634
+ $[16] = monthLimitLast;
635
+ $[17] = t8;
657
636
  } else {
658
- t8 = $[23];
637
+ t8 = $[17];
659
638
  }
660
639
  const handleClickRightArrow = t8;
661
640
  let t9;
662
- if ($[24] !== dateEnd || $[25] !== dateStart || $[26] !== isRange || $[27] !== onChange || $[28] !== setDateEnd || $[29] !== setDateStart) {
641
+ if ($[18] !== dateEnd || $[19] !== dateStart || $[20] !== isRange || $[21] !== onChange) {
663
642
  t9 = (date) => {
664
643
  if (isRange && dateStart != null && (updatingDateEndRef.current || dateEnd == null)) {
665
644
  if (date < dateStart) {
@@ -693,152 +672,147 @@ function DatePicker(t0) {
693
672
  }
694
673
  }
695
674
  };
696
- $[24] = dateEnd;
697
- $[25] = dateStart;
698
- $[26] = isRange;
699
- $[27] = onChange;
700
- $[28] = setDateEnd;
701
- $[29] = setDateStart;
702
- $[30] = t9;
675
+ $[18] = dateEnd;
676
+ $[19] = dateStart;
677
+ $[20] = isRange;
678
+ $[21] = onChange;
679
+ $[22] = t9;
703
680
  } else {
704
- t9 = $[30];
681
+ t9 = $[22];
705
682
  }
706
683
  const handleChange = t9;
707
684
  let t10;
708
- if ($[31] !== setDateEndPreview) {
685
+ if ($[23] === Symbol.for("react.memo_cache_sentinel")) {
709
686
  t10 = (date_0) => {
710
687
  setDateEndPreview(date_0);
711
688
  };
712
- $[31] = setDateEndPreview;
713
- $[32] = t10;
689
+ $[23] = t10;
714
690
  } else {
715
- t10 = $[32];
691
+ t10 = $[23];
716
692
  }
717
693
  const handleChangeEndPreview = t10;
718
694
  let t11;
719
- if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
695
+ if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
720
696
  t11 = /* @__PURE__ */ jsx(Style, { href: "@acusti/date-picker/DatePicker", children: STYLES });
721
- $[33] = t11;
697
+ $[24] = t11;
722
698
  } else {
723
- t11 = $[33];
699
+ t11 = $[24];
724
700
  }
725
701
  let t12;
726
- if ($[34] !== className || $[35] !== isTwoUp) {
702
+ if ($[25] !== className || $[26] !== isTwoUp) {
727
703
  t12 = clsx(ROOT_CLASS_NAME, className, {
728
704
  "two-up": isTwoUp
729
705
  });
730
- $[34] = className;
731
- $[35] = isTwoUp;
732
- $[36] = t12;
706
+ $[25] = className;
707
+ $[26] = isTwoUp;
708
+ $[27] = t12;
733
709
  } else {
734
- t12 = $[36];
710
+ t12 = $[27];
735
711
  }
736
712
  const t13 = monthLimitFirst != null && month <= monthLimitFirst;
737
713
  let t14;
738
- if ($[37] !== t13) {
714
+ if ($[28] !== t13) {
739
715
  t14 = clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {
740
716
  disabled: t13
741
717
  });
742
- $[37] = t13;
743
- $[38] = t14;
718
+ $[28] = t13;
719
+ $[29] = t14;
744
720
  } else {
745
- t14 = $[38];
721
+ t14 = $[29];
746
722
  }
747
723
  let t15;
748
- if ($[39] !== handleClickLeftArrow || $[40] !== t14) {
724
+ if ($[30] !== handleClickLeftArrow || $[31] !== t14) {
749
725
  t15 = /* @__PURE__ */ jsx("div", { className: t14, onClick: handleClickLeftArrow });
750
- $[39] = handleClickLeftArrow;
751
- $[40] = t14;
752
- $[41] = t15;
726
+ $[30] = handleClickLeftArrow;
727
+ $[31] = t14;
728
+ $[32] = t15;
753
729
  } else {
754
- t15 = $[41];
730
+ t15 = $[32];
755
731
  }
756
732
  const t16 = monthLimitLast != null && month >= monthLimitLast;
757
733
  let t17;
758
- if ($[42] !== t16) {
734
+ if ($[33] !== t16) {
759
735
  t17 = clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {
760
736
  disabled: t16
761
737
  });
762
- $[42] = t16;
763
- $[43] = t17;
738
+ $[33] = t16;
739
+ $[34] = t17;
764
740
  } else {
765
- t17 = $[43];
741
+ t17 = $[34];
766
742
  }
767
743
  let t18;
768
- if ($[44] !== handleClickRightArrow || $[45] !== t17) {
744
+ if ($[35] !== handleClickRightArrow || $[36] !== t17) {
769
745
  t18 = /* @__PURE__ */ jsx("div", { className: t17, onClick: handleClickRightArrow });
770
- $[44] = handleClickRightArrow;
771
- $[45] = t17;
772
- $[46] = t18;
746
+ $[35] = handleClickRightArrow;
747
+ $[36] = t17;
748
+ $[37] = t18;
773
749
  } else {
774
- t18 = $[46];
750
+ t18 = $[37];
775
751
  }
776
752
  let t19;
777
- if ($[47] !== t15 || $[48] !== t18) {
753
+ if ($[38] !== t15 || $[39] !== t18) {
778
754
  t19 = /* @__PURE__ */ jsxs("div", { className: `${ROOT_CLASS_NAME}-range-arrow-wrap`, children: [
779
755
  t15,
780
756
  t18
781
757
  ] });
782
- $[47] = t15;
783
- $[48] = t18;
784
- $[49] = t19;
758
+ $[38] = t15;
759
+ $[39] = t18;
760
+ $[40] = t19;
785
761
  } else {
786
- t19 = $[49];
762
+ t19 = $[40];
787
763
  }
788
764
  let t20;
789
- if ($[50] !== month || $[51] !== useMonthAbbreviations) {
765
+ if ($[41] !== month || $[42] !== useMonthAbbreviations) {
790
766
  t20 = useMonthAbbreviations ? getAbbreviatedMonthTitle(month) : void 0;
791
- $[50] = month;
792
- $[51] = useMonthAbbreviations;
793
- $[52] = t20;
767
+ $[41] = month;
768
+ $[42] = useMonthAbbreviations;
769
+ $[43] = t20;
794
770
  } else {
795
- t20 = $[52];
771
+ t20 = $[43];
796
772
  }
797
773
  let t21;
798
- if ($[53] !== dateEnd || $[54] !== dateEndPreview || $[55] !== dateStart || $[56] !== handleChange || $[57] !== handleChangeEndPreview || $[58] !== isRange || $[59] !== month || $[60] !== t20) {
774
+ if ($[44] !== dateEnd || $[45] !== dateEndPreview || $[46] !== dateStart || $[47] !== handleChange || $[48] !== isRange || $[49] !== month || $[50] !== t20) {
799
775
  t21 = /* @__PURE__ */ jsx(MonthCalendar, { dateEnd, dateEndPreview, dateStart, isRange, month, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: t20 });
800
- $[53] = dateEnd;
801
- $[54] = dateEndPreview;
802
- $[55] = dateStart;
803
- $[56] = handleChange;
804
- $[57] = handleChangeEndPreview;
805
- $[58] = isRange;
806
- $[59] = month;
807
- $[60] = t20;
808
- $[61] = t21;
776
+ $[44] = dateEnd;
777
+ $[45] = dateEndPreview;
778
+ $[46] = dateStart;
779
+ $[47] = handleChange;
780
+ $[48] = isRange;
781
+ $[49] = month;
782
+ $[50] = t20;
783
+ $[51] = t21;
809
784
  } else {
810
- t21 = $[61];
785
+ t21 = $[51];
811
786
  }
812
787
  let t22;
813
- if ($[62] !== dateEnd || $[63] !== dateEndPreview || $[64] !== dateStart || $[65] !== handleChange || $[66] !== handleChangeEndPreview || $[67] !== isRange || $[68] !== isTwoUp || $[69] !== month || $[70] !== useMonthAbbreviations) {
788
+ if ($[52] !== dateEnd || $[53] !== dateEndPreview || $[54] !== dateStart || $[55] !== handleChange || $[56] !== isRange || $[57] !== isTwoUp || $[58] !== month || $[59] !== useMonthAbbreviations) {
814
789
  t22 = isTwoUp ? /* @__PURE__ */ jsx(MonthCalendar, { dateEnd, dateEndPreview, dateStart, isRange, month: month + 1, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: useMonthAbbreviations ? getAbbreviatedMonthTitle(month + 1) : void 0 }) : null;
815
- $[62] = dateEnd;
816
- $[63] = dateEndPreview;
817
- $[64] = dateStart;
818
- $[65] = handleChange;
819
- $[66] = handleChangeEndPreview;
820
- $[67] = isRange;
821
- $[68] = isTwoUp;
822
- $[69] = month;
823
- $[70] = useMonthAbbreviations;
824
- $[71] = t22;
825
- } else {
826
- t22 = $[71];
790
+ $[52] = dateEnd;
791
+ $[53] = dateEndPreview;
792
+ $[54] = dateStart;
793
+ $[55] = handleChange;
794
+ $[56] = isRange;
795
+ $[57] = isTwoUp;
796
+ $[58] = month;
797
+ $[59] = useMonthAbbreviations;
798
+ $[60] = t22;
799
+ } else {
800
+ t22 = $[60];
827
801
  }
828
802
  let t23;
829
- if ($[72] !== t21 || $[73] !== t22) {
803
+ if ($[61] !== t21 || $[62] !== t22) {
830
804
  t23 = /* @__PURE__ */ jsxs("div", { className: `${ROOT_CLASS_NAME}-month-container`, children: [
831
805
  t21,
832
806
  t22
833
807
  ] });
834
- $[72] = t21;
835
- $[73] = t22;
836
- $[74] = t23;
808
+ $[61] = t21;
809
+ $[62] = t22;
810
+ $[63] = t23;
837
811
  } else {
838
- t23 = $[74];
812
+ t23 = $[63];
839
813
  }
840
814
  let t24;
841
- if ($[75] !== t12 || $[76] !== t19 || $[77] !== t23) {
815
+ if ($[64] !== t12 || $[65] !== t19 || $[66] !== t23) {
842
816
  t24 = /* @__PURE__ */ jsxs(Fragment, { children: [
843
817
  t11,
844
818
  /* @__PURE__ */ jsxs("div", { className: t12, children: [
@@ -846,12 +820,12 @@ function DatePicker(t0) {
846
820
  t23
847
821
  ] })
848
822
  ] });
849
- $[75] = t12;
850
- $[76] = t19;
851
- $[77] = t23;
852
- $[78] = t24;
823
+ $[64] = t12;
824
+ $[65] = t19;
825
+ $[66] = t23;
826
+ $[67] = t24;
853
827
  } else {
854
- t24 = $[78];
828
+ t24 = $[67];
855
829
  }
856
830
  return t24;
857
831
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/styles/month-calendar.ts","../src/utils.ts","../src/MonthCalendar.tsx","../src/styles/date-picker.ts","../src/DatePicker.tsx"],"sourcesContent":["export const ROOT_CLASS_NAME = 'uktmonthcalendar';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n box-sizing: border-box;\n max-width: 325px;\n}\n\n.${ROOT_CLASS_NAME}-month-title {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n padding-bottom: 25px;\n}\n\nh3.${ROOT_CLASS_NAME}-month-title-text {\n font-size: 18px;\n line-height: 23px;\n font-weight: 600;\n color: #000;\n margin: 0px;\n text-align: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week {\n flex: 0 0 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n box-sizing: border-box;\n padding-bottom: 12px;\n}\n\n.${ROOT_CLASS_NAME}-month-week .week-day-item {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week span.week-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #9a9a9a;\n}\n\n.${ROOT_CLASS_NAME}-month-days {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n}\n\n.${ROOT_CLASS_NAME}-month-row {\n flex: 1 1 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n margin-bottom: 1px;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n height: 46px;\n width: 46px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:disabled {\n cursor: auto;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-selected {\n background-color: #f8f8f8;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date {\n background-color: #f8f8f8;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.start-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date {\n background-color: #f8f8f8;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.end-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:hover:after {\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n border-radius: 50%;\n border: 1px solid #000;\n width: 43px;\n height: 43px;\n transition: opacity 0.25s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-empty:after {\n content: none;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item span.month-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #000;\n position: relative;\n z-index: 1;\n}\n`;\n","// The following utils work on a “month” as a unique numerical value\n// representing the number of months since the unix epoch (jan 1970)\nconst START_YEAR = 1970;\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst getYearFromDate = (date: Date, asUTC?: boolean) =>\n (asUTC ? date.getUTCFullYear() : date.getFullYear()) - START_YEAR;\n\nexport const getMonthFromDate = (date: Date, asUTC?: boolean) => {\n const yearAsMonths = getYearFromDate(date, asUTC) * 12;\n return yearAsMonths + (asUTC ? date.getUTCMonth() : date.getMonth());\n};\n\nexport const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;\n\nexport const getMonthNameFromMonth = (month: number): string => {\n let index = month % 12;\n if (Number.isNaN(index)) return '';\n if (index < 0) index = 12 + index;\n return MONTH_NAMES[index];\n};\n\nexport const getMonthAbbreviationFromMonth = (month: number) => {\n const monthName = getMonthNameFromMonth(month);\n if (monthName === 'September') return 'Sept';\n return monthName.substring(0, 3);\n};\n\nexport const getDateFromMonthAndDay = (month: number, day: number, asUTC?: boolean) => {\n const monthIn12 = month < 0 ? (12 - Math.abs(month % 12)) % 12 : month % 12;\n const year = getYearFromMonth(month);\n return asUTC\n ? new Date(Date.UTC(year, monthIn12, day))\n : new Date(year, monthIn12, day);\n};\n\nexport const getLastDateFromMonth = (month: number, asUTC?: boolean) => {\n // day 0 of the next month is the last day of the current month\n return getDateFromMonthAndDay(month + 1, 0, asUTC);\n};\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport * as React from 'react';\n\nimport { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';\nimport {\n getDateFromMonthAndDay,\n getLastDateFromMonth,\n getMonthFromDate,\n getMonthNameFromMonth,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateEndPreview?: null | string;\n dateStart?: Date | null | number | string;\n isRange?: boolean;\n month: number; // a unique numerical value representing the number of months since jan 1970\n onChange?: (date: string) => void;\n onChangeEndPreview?: (date: string) => void;\n title?: string;\n};\n\ntype DateRangeDays = [null | number, null | number, null | number];\n\nconst { Fragment } = React;\n\nconst DAYS = Array(7).fill(null);\n\nexport default function MonthCalendar({\n className,\n dateEnd,\n dateEndPreview,\n dateStart,\n isRange,\n month,\n onChange,\n onChangeEndPreview,\n title,\n}: Props) {\n const year = getYearFromMonth(month);\n title = title ?? `${getMonthNameFromMonth(month)} ${year}`;\n const firstDate = getDateFromMonthAndDay(month, 1);\n const lastDate = getLastDateFromMonth(month);\n const totalDays = lastDate.getDate();\n const firstDay = firstDate.getDay();\n const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore\n const daySpaces = totalDays + firstDay + spacesAfterLastDay;\n\n const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay]: DateRangeDays = [\n dateStart,\n dateEnd,\n dateEndPreview,\n ].reduce(\n (acc: DateRangeDays, date, index) => {\n if (date != null && !(date instanceof Date)) {\n date = new Date(date);\n }\n if (date == null || Number.isNaN(date.getTime())) return acc;\n\n const dateMonth = getMonthFromDate(date);\n if (dateMonth < month) acc[index] = -1;\n else if (dateMonth > month) acc[index] = totalDays + 1;\n else acc[index] = date.getDate();\n if (index === 1) {\n const startDay = acc[index - 1];\n const endDay = acc[index];\n // Ensure that end date is after start date and swap them if not\n if (startDay != null && endDay != null && startDay > endDay) {\n acc[index - 1] = endDay;\n acc[index] = startDay;\n }\n }\n\n return acc;\n },\n [null, null, null],\n );\n\n const handleClickDay = (event: React.SyntheticEvent<HTMLElement>) => {\n const { date } = event.currentTarget.dataset;\n if (date && onChange) onChange(date);\n };\n\n const handleMouseEnterDay = (event: React.SyntheticEvent<HTMLElement>) => {\n if (isRange && onChangeEndPreview) {\n const { date } = event.currentTarget.dataset;\n if (date) onChangeEndPreview(date);\n }\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/MonthCalendar\">{STYLES}</Style>\n <div className={clsx(ROOT_CLASS_NAME, className)}>\n <div className={`${ROOT_CLASS_NAME}-month-title`}>\n <h3 className={`${ROOT_CLASS_NAME}-month-title-text`}>{title}</h3>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-week`}>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Su</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Mo</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Tu</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">We</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Th</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Fr</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Sa</span>\n </div>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-days`}>\n {Array(Math.floor(daySpaces / 7))\n .fill(null)\n .map((_, weekIndex) => (\n <div\n className={`${ROOT_CLASS_NAME}-month-row`}\n key={`MonthRow-${weekIndex}`}\n >\n {DAYS.map((__, dayIndex) => {\n dayIndex += weekIndex * 7;\n const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore\n const isEmpty =\n dayNumber < 1 || dayNumber > totalDays;\n const date = isEmpty\n ? null\n : getDateFromMonthAndDay(month, dayNumber);\n const isAfterDateRangeStart =\n dateRangeStartDay != null &&\n dayNumber > dateRangeStartDay;\n const isBeforeDateRangeEnd =\n (dateRangeEndDay == null &&\n dateRangeEndPreviewDay != null &&\n dayNumber < dateRangeEndPreviewDay) ||\n (dateRangeEndDay != null &&\n dayNumber < dateRangeEndDay);\n\n return (\n <button\n className={clsx(\n `${ROOT_CLASS_NAME}-month-day-item`,\n {\n 'end-date':\n !isEmpty &&\n dayNumber === dateRangeEndDay,\n 'is-empty': isEmpty,\n 'is-selected':\n !isEmpty &&\n isAfterDateRangeStart &&\n isBeforeDateRangeEnd,\n 'start-date':\n !isEmpty &&\n dayNumber === dateRangeStartDay,\n },\n )}\n data-date={date?.toISOString()}\n disabled={isEmpty}\n key={`MonthDayItem-${dayNumber}`}\n onClick={handleClickDay}\n onMouseEnter={handleMouseEnterDay}\n type=\"button\"\n >\n {isEmpty ? null : (\n <span className=\"month-day-item-text\">\n {dayNumber}\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Fragment>\n );\n}\n","export const ROOT_CLASS_NAME = 'uktdatepicker';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n box-sizing: border-box;\n padding: 40px 60px 60px;\n flex: 1 1 auto;\n position: relative;\n max-width: 450px;\n}\n\n.${ROOT_CLASS_NAME}.two-up {\n max-width: 820px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow-wrap {\n position: absolute;\n top: 30px;\n left: 0px;\n display: flex;\n justify-content: space-between;\n height: 0px;\n width: 100%;\n padding: 0px 60px;\n box-sizing: border-box;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow {\n width: 35px;\n height: 35px;\n text-align: center;\n cursor: pointer;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.disabled {\n color: #ccc;\n cursor: default;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow:active {\n transform: translateY(1px);\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"‹\";\n font-size: 24px;\n line-height: 35px;\n font-weight: bold;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"›\";\n}\n\n.${ROOT_CLASS_NAME}-month-container {\n display: flex;\n flex: 1 1 auto;\n justify-content: space-between;\n}\n`;\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\nimport { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport * as React from 'react';\n\nimport MonthCalendar from './MonthCalendar.js';\nimport { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';\nimport {\n getMonthAbbreviationFromMonth,\n getMonthFromDate,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | number | string;\n dateStart?: Date | number | string;\n initialMonth?: number;\n isRange?: boolean;\n isTwoUp?: boolean;\n monthLimitFirst?: number;\n monthLimitLast?: number;\n onChange: (payload: { dateEnd?: null | string; dateStart: string }) => void;\n /**\n * Boolean to specify that date picker should initially render with the\n * end date’s month visible. The default behavior is to initially render\n * with the start date’s month visible.\n */\n showEndInitially?: boolean;\n useMonthAbbreviations?: boolean;\n};\n\nconst { Fragment, useEffect, useRef, useState } = React;\n\nconst getAbbreviatedMonthTitle = (month: number) =>\n `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;\n\nexport default function DatePicker({\n className,\n dateEnd: _dateEnd,\n dateStart: _dateStart,\n initialMonth,\n isRange: _isRange,\n isTwoUp,\n monthLimitFirst,\n monthLimitLast: _monthLimitLast,\n onChange,\n showEndInitially,\n useMonthAbbreviations,\n}: Props) {\n const isRange = _isRange ?? _dateEnd != null;\n // In two-up view we see 1 more month, so monthLimitLast needs to be 1 less\n const monthLimitLast =\n isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;\n const dateEndFromProps =\n _dateEnd != null && typeof _dateEnd !== 'string'\n ? new Date(_dateEnd).toISOString()\n : _dateEnd;\n const dateStartFromProps =\n _dateStart != null && typeof _dateStart !== 'string'\n ? new Date(_dateStart).toISOString()\n : _dateStart;\n const [dateEnd, setDateEnd] = useState<null | string>(dateEndFromProps ?? null);\n const [dateStart, setDateStart] = useState<null | string>(dateStartFromProps ?? null);\n const updatingDateEndRef = useRef(false);\n\n useEffect(() => {\n if (dateEndFromProps == null) return;\n setDateEnd(dateEndFromProps);\n }, [dateEndFromProps]);\n\n useEffect(() => {\n if (dateStartFromProps == null) return;\n setDateStart(dateStartFromProps);\n }, [dateStartFromProps]);\n\n if (initialMonth == null) {\n // if no valid initial date, initially show present month as date end\n const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);\n // use date from props if set\n const initialDate = useDateEnd ? dateEnd : dateStart;\n initialMonth = getMonthFromDate(\n initialDate == null ? new Date() : new Date(initialDate),\n );\n if (useDateEnd && isTwoUp) {\n initialMonth -= 1;\n }\n }\n\n const [dateEndPreview, setDateEndPreview] = useState<null | string>(null);\n const [month, setMonth] = useState<number>(initialMonth);\n\n const delta = isTwoUp ? 2 : 1;\n\n const handleClickLeftArrow = () => {\n setMonth((existingMonth: number) =>\n Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity),\n );\n };\n\n const handleClickRightArrow = () => {\n setMonth((existingMonth: number) =>\n Math.min(existingMonth + delta, monthLimitLast ?? Infinity),\n );\n };\n\n const handleChange = (date: string) => {\n // If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd\n if (\n isRange &&\n dateStart != null &&\n (updatingDateEndRef.current || dateEnd == null)\n ) {\n // Ensure that dateEnd is after dateStart; if not, swap them\n if (date < dateStart) {\n setDateStart(date);\n setDateEnd(dateStart);\n onChange({ dateEnd: dateStart, dateStart: date });\n } else {\n setDateEnd(date);\n onChange({ dateEnd: date, dateStart });\n }\n updatingDateEndRef.current = false;\n } else {\n setDateStart(date);\n setDateEnd(null);\n if (isRange) {\n onChange({ dateEnd: null, dateStart: date });\n updatingDateEndRef.current = true;\n } else {\n onChange({ dateStart: date });\n }\n }\n };\n\n const handleChangeEndPreview = (date: string) => {\n setDateEndPreview(date);\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/DatePicker\">{STYLES}</Style>\n <div\n className={clsx(ROOT_CLASS_NAME, className, {\n 'two-up': isTwoUp,\n })}\n >\n <div className={`${ROOT_CLASS_NAME}-range-arrow-wrap`}>\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {\n disabled: monthLimitFirst != null && month <= monthLimitFirst,\n })}\n onClick={handleClickLeftArrow}\n />\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {\n disabled: monthLimitLast != null && month >= monthLimitLast,\n })}\n onClick={handleClickRightArrow}\n />\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-container`}>\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month)\n : undefined\n }\n />\n {isTwoUp ? (\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month + 1}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month + 1)\n : undefined\n }\n />\n ) : null}\n </div>\n </div>\n </Fragment>\n );\n}\n"],"names":["ROOT_CLASS_NAME","STYLES","START_YEAR","MONTH_NAMES","getYearFromDate","date","asUTC","getUTCFullYear","getFullYear","getMonthFromDate","yearAsMonths","getUTCMonth","getMonth","getYearFromMonth","month","Math","floor","getMonthNameFromMonth","index","Number","isNaN","getMonthAbbreviationFromMonth","monthName","substring","getDateFromMonthAndDay","day","monthIn12","abs","year","Date","UTC","getLastDateFromMonth","Fragment","React","DAYS","Array","fill","MonthCalendar","t0","$","_c","className","dateEnd","dateEndPreview","dateStart","isRange","onChange","onChangeEndPreview","title","firstDay","t1","t2","totalDays","firstDate","lastDate","getDate","getDay","spacesAfterLastDay","daySpaces","t3","t4","acc","getTime","dateMonth","startDay","endDay","reduce","dateRangeStartDay","dateRangeEndDay","dateRangeEndPreviewDay","event","date_0","currentTarget","dataset","handleClickDay","t5","event_0","date_1","handleMouseEnterDay","t6","Symbol","for","t7","clsx","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","_","weekIndex","map","__","dayIndex","dayNumber","isEmpty","date_2","isAfterDateRangeStart","isBeforeDateRangeEnd","toISOString","t19","useEffect","useRef","useState","getAbbreviatedMonthTitle","DatePicker","_dateEnd","_dateStart","initialMonth","_isRange","isTwoUp","monthLimitFirst","monthLimitLast","_monthLimitLast","showEndInitially","useMonthAbbreviations","dateEndFromProps","dateStartFromProps","setDateEnd","setDateStart","updatingDateEndRef","useDateEnd","Boolean","initialDate","setDateEndPreview","setMonth","delta","existingMonth","max","Infinity","handleClickLeftArrow","existingMonth_0","min","handleClickRightArrow","current","handleChange","handleChangeEndPreview","disabled","t20","undefined","t21","t22","t23","t24"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/styles/month-calendar.ts","../src/utils.ts","../src/MonthCalendar.tsx","../src/styles/date-picker.ts","../src/DatePicker.tsx"],"sourcesContent":["export const ROOT_CLASS_NAME = 'uktmonthcalendar';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n box-sizing: border-box;\n max-width: 325px;\n}\n\n.${ROOT_CLASS_NAME}-month-title {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n padding-bottom: 25px;\n}\n\nh3.${ROOT_CLASS_NAME}-month-title-text {\n font-size: 18px;\n line-height: 23px;\n font-weight: 600;\n color: #000;\n margin: 0px;\n text-align: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week {\n flex: 0 0 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n box-sizing: border-box;\n padding-bottom: 12px;\n}\n\n.${ROOT_CLASS_NAME}-month-week .week-day-item {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week span.week-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #9a9a9a;\n}\n\n.${ROOT_CLASS_NAME}-month-days {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n}\n\n.${ROOT_CLASS_NAME}-month-row {\n flex: 1 1 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n margin-bottom: 1px;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n height: 46px;\n width: 46px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:disabled {\n cursor: auto;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-selected {\n background-color: #f8f8f8;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date {\n background-color: #f8f8f8;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.start-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date {\n background-color: #f8f8f8;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.end-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:hover:after {\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n border-radius: 50%;\n border: 1px solid #000;\n width: 43px;\n height: 43px;\n transition: opacity 0.25s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-empty:after {\n content: none;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item span.month-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #000;\n position: relative;\n z-index: 1;\n}\n`;\n","// The following utils work on a “month” as a unique numerical value\n// representing the number of months since the unix epoch (jan 1970)\nconst START_YEAR = 1970;\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst getYearFromDate = (date: Date, asUTC?: boolean) =>\n (asUTC ? date.getUTCFullYear() : date.getFullYear()) - START_YEAR;\n\nexport const getMonthFromDate = (date: Date, asUTC?: boolean) => {\n const yearAsMonths = getYearFromDate(date, asUTC) * 12;\n return yearAsMonths + (asUTC ? date.getUTCMonth() : date.getMonth());\n};\n\nexport const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;\n\nexport const getMonthNameFromMonth = (month: number): string => {\n let index = month % 12;\n if (Number.isNaN(index)) return '';\n if (index < 0) index = 12 + index;\n return MONTH_NAMES[index];\n};\n\nexport const getMonthAbbreviationFromMonth = (month: number) => {\n const monthName = getMonthNameFromMonth(month);\n if (monthName === 'September') return 'Sept';\n return monthName.substring(0, 3);\n};\n\nexport const getDateFromMonthAndDay = (month: number, day: number, asUTC?: boolean) => {\n const monthIn12 = month < 0 ? (12 - Math.abs(month % 12)) % 12 : month % 12;\n const year = getYearFromMonth(month);\n return asUTC\n ? new Date(Date.UTC(year, monthIn12, day))\n : new Date(year, monthIn12, day);\n};\n\nexport const getLastDateFromMonth = (month: number, asUTC?: boolean) => {\n // day 0 of the next month is the last day of the current month\n return getDateFromMonthAndDay(month + 1, 0, asUTC);\n};\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment } from 'react';\n\nimport { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';\nimport {\n getDateFromMonthAndDay,\n getLastDateFromMonth,\n getMonthFromDate,\n getMonthNameFromMonth,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateEndPreview?: null | string;\n dateStart?: Date | null | number | string;\n isRange?: boolean;\n month: number; // a unique numerical value representing the number of months since jan 1970\n onChange?: (date: string) => void;\n onChangeEndPreview?: (date: string) => void;\n title?: string;\n};\n\ntype DateRangeDays = [null | number, null | number, null | number];\n\nconst DAYS = Array(7).fill(null);\n\nexport default function MonthCalendar({\n className,\n dateEnd,\n dateEndPreview,\n dateStart,\n isRange,\n month,\n onChange,\n onChangeEndPreview,\n title,\n}: Props) {\n const year = getYearFromMonth(month);\n title = title ?? `${getMonthNameFromMonth(month)} ${year}`;\n const firstDate = getDateFromMonthAndDay(month, 1);\n const lastDate = getLastDateFromMonth(month);\n const totalDays = lastDate.getDate();\n const firstDay = firstDate.getDay();\n const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore\n const daySpaces = totalDays + firstDay + spacesAfterLastDay;\n\n const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay]: DateRangeDays = [\n dateStart,\n dateEnd,\n dateEndPreview,\n ].reduce(\n (acc: DateRangeDays, date, index) => {\n if (date != null && !(date instanceof Date)) {\n date = new Date(date);\n }\n if (date == null || Number.isNaN(date.getTime())) return acc;\n\n const dateMonth = getMonthFromDate(date);\n if (dateMonth < month) acc[index] = -1;\n else if (dateMonth > month) acc[index] = totalDays + 1;\n else acc[index] = date.getDate();\n if (index === 1) {\n const startDay = acc[index - 1];\n const endDay = acc[index];\n // Ensure that end date is after start date and swap them if not\n if (startDay != null && endDay != null && startDay > endDay) {\n acc[index - 1] = endDay;\n acc[index] = startDay;\n }\n }\n\n return acc;\n },\n [null, null, null],\n );\n\n const handleClickDay = (event: React.SyntheticEvent<HTMLElement>) => {\n const { date } = event.currentTarget.dataset;\n if (date && onChange) onChange(date);\n };\n\n const handleMouseEnterDay = (event: React.SyntheticEvent<HTMLElement>) => {\n if (isRange && onChangeEndPreview) {\n const { date } = event.currentTarget.dataset;\n if (date) onChangeEndPreview(date);\n }\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/MonthCalendar\">{STYLES}</Style>\n <div className={clsx(ROOT_CLASS_NAME, className)}>\n <div className={`${ROOT_CLASS_NAME}-month-title`}>\n <h3 className={`${ROOT_CLASS_NAME}-month-title-text`}>{title}</h3>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-week`}>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Su</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Mo</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Tu</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">We</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Th</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Fr</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Sa</span>\n </div>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-days`}>\n {Array(Math.floor(daySpaces / 7))\n .fill(null)\n .map((_, weekIndex) => (\n <div\n className={`${ROOT_CLASS_NAME}-month-row`}\n key={`MonthRow-${weekIndex}`}\n >\n {DAYS.map((__, dayIndex) => {\n dayIndex += weekIndex * 7;\n const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore\n const isEmpty =\n dayNumber < 1 || dayNumber > totalDays;\n const date = isEmpty\n ? null\n : getDateFromMonthAndDay(month, dayNumber);\n const isAfterDateRangeStart =\n dateRangeStartDay != null &&\n dayNumber > dateRangeStartDay;\n const isBeforeDateRangeEnd =\n (dateRangeEndDay == null &&\n dateRangeEndPreviewDay != null &&\n dayNumber < dateRangeEndPreviewDay) ||\n (dateRangeEndDay != null &&\n dayNumber < dateRangeEndDay);\n\n return (\n <button\n className={clsx(\n `${ROOT_CLASS_NAME}-month-day-item`,\n {\n 'end-date':\n !isEmpty &&\n dayNumber === dateRangeEndDay,\n 'is-empty': isEmpty,\n 'is-selected':\n !isEmpty &&\n isAfterDateRangeStart &&\n isBeforeDateRangeEnd,\n 'start-date':\n !isEmpty &&\n dayNumber === dateRangeStartDay,\n },\n )}\n data-date={date?.toISOString()}\n disabled={isEmpty}\n key={`MonthDayItem-${dayNumber}`}\n onClick={handleClickDay}\n onMouseEnter={handleMouseEnterDay}\n type=\"button\"\n >\n {isEmpty ? null : (\n <span className=\"month-day-item-text\">\n {dayNumber}\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Fragment>\n );\n}\n","export const ROOT_CLASS_NAME = 'uktdatepicker';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n box-sizing: border-box;\n padding: 40px 60px 60px;\n flex: 1 1 auto;\n position: relative;\n max-width: 450px;\n}\n\n.${ROOT_CLASS_NAME}.two-up {\n max-width: 820px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow-wrap {\n position: absolute;\n top: 30px;\n left: 0px;\n display: flex;\n justify-content: space-between;\n height: 0px;\n width: 100%;\n padding: 0px 60px;\n box-sizing: border-box;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow {\n width: 35px;\n height: 35px;\n text-align: center;\n cursor: pointer;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.disabled {\n color: #ccc;\n cursor: default;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow:active {\n transform: translateY(1px);\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"‹\";\n font-size: 24px;\n line-height: 35px;\n font-weight: bold;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"›\";\n}\n\n.${ROOT_CLASS_NAME}-month-container {\n display: flex;\n flex: 1 1 auto;\n justify-content: space-between;\n}\n`;\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\nimport { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment, useEffect, useRef, useState } from 'react';\n\nimport MonthCalendar from './MonthCalendar.js';\nimport { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';\nimport {\n getMonthAbbreviationFromMonth,\n getMonthFromDate,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | number | string;\n dateStart?: Date | number | string;\n initialMonth?: number;\n isRange?: boolean;\n isTwoUp?: boolean;\n monthLimitFirst?: number;\n monthLimitLast?: number;\n onChange: (payload: { dateEnd?: null | string; dateStart: string }) => void;\n /**\n * Boolean to specify that date picker should initially render with the\n * end date’s month visible. The default behavior is to initially render\n * with the start date’s month visible.\n */\n showEndInitially?: boolean;\n useMonthAbbreviations?: boolean;\n};\n\nconst getAbbreviatedMonthTitle = (month: number) =>\n `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;\n\nexport default function DatePicker({\n className,\n dateEnd: _dateEnd,\n dateStart: _dateStart,\n initialMonth,\n isRange: _isRange,\n isTwoUp,\n monthLimitFirst,\n monthLimitLast: _monthLimitLast,\n onChange,\n showEndInitially,\n useMonthAbbreviations,\n}: Props) {\n const isRange = _isRange ?? _dateEnd != null;\n // In two-up view we see 1 more month, so monthLimitLast needs to be 1 less\n const monthLimitLast =\n isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;\n const dateEndFromProps =\n _dateEnd != null && typeof _dateEnd !== 'string'\n ? new Date(_dateEnd).toISOString()\n : _dateEnd;\n const dateStartFromProps =\n _dateStart != null && typeof _dateStart !== 'string'\n ? new Date(_dateStart).toISOString()\n : _dateStart;\n const [dateEnd, setDateEnd] = useState<null | string>(dateEndFromProps ?? null);\n const [dateStart, setDateStart] = useState<null | string>(dateStartFromProps ?? null);\n const updatingDateEndRef = useRef(false);\n\n useEffect(() => {\n if (dateEndFromProps == null) return;\n setDateEnd(dateEndFromProps);\n }, [dateEndFromProps]);\n\n useEffect(() => {\n if (dateStartFromProps == null) return;\n setDateStart(dateStartFromProps);\n }, [dateStartFromProps]);\n\n if (initialMonth == null) {\n // if no valid initial date, initially show present month as date end\n const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);\n // use date from props if set\n const initialDate = useDateEnd ? dateEnd : dateStart;\n initialMonth = getMonthFromDate(\n initialDate == null ? new Date() : new Date(initialDate),\n );\n if (useDateEnd && isTwoUp) {\n initialMonth -= 1;\n }\n }\n\n const [dateEndPreview, setDateEndPreview] = useState<null | string>(null);\n const [month, setMonth] = useState<number>(initialMonth);\n\n const delta = isTwoUp ? 2 : 1;\n\n const handleClickLeftArrow = () => {\n setMonth((existingMonth: number) =>\n Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity),\n );\n };\n\n const handleClickRightArrow = () => {\n setMonth((existingMonth: number) =>\n Math.min(existingMonth + delta, monthLimitLast ?? Infinity),\n );\n };\n\n const handleChange = (date: string) => {\n // If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd\n if (\n isRange &&\n dateStart != null &&\n (updatingDateEndRef.current || dateEnd == null)\n ) {\n // Ensure that dateEnd is after dateStart; if not, swap them\n if (date < dateStart) {\n setDateStart(date);\n setDateEnd(dateStart);\n onChange({ dateEnd: dateStart, dateStart: date });\n } else {\n setDateEnd(date);\n onChange({ dateEnd: date, dateStart });\n }\n updatingDateEndRef.current = false;\n } else {\n setDateStart(date);\n setDateEnd(null);\n if (isRange) {\n onChange({ dateEnd: null, dateStart: date });\n updatingDateEndRef.current = true;\n } else {\n onChange({ dateStart: date });\n }\n }\n };\n\n const handleChangeEndPreview = (date: string) => {\n setDateEndPreview(date);\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/DatePicker\">{STYLES}</Style>\n <div\n className={clsx(ROOT_CLASS_NAME, className, {\n 'two-up': isTwoUp,\n })}\n >\n <div className={`${ROOT_CLASS_NAME}-range-arrow-wrap`}>\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {\n disabled: monthLimitFirst != null && month <= monthLimitFirst,\n })}\n onClick={handleClickLeftArrow}\n />\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {\n disabled: monthLimitLast != null && month >= monthLimitLast,\n })}\n onClick={handleClickRightArrow}\n />\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-container`}>\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month)\n : undefined\n }\n />\n {isTwoUp ? (\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month + 1}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month + 1)\n : undefined\n }\n />\n ) : null}\n </div>\n </div>\n </Fragment>\n );\n}\n"],"names":["ROOT_CLASS_NAME","STYLES","START_YEAR","MONTH_NAMES","getYearFromDate","date","asUTC","getUTCFullYear","getFullYear","getMonthFromDate","yearAsMonths","getUTCMonth","getMonth","getYearFromMonth","month","Math","floor","getMonthNameFromMonth","index","Number","isNaN","getMonthAbbreviationFromMonth","monthName","substring","getDateFromMonthAndDay","day","monthIn12","abs","year","Date","UTC","getLastDateFromMonth","DAYS","Array","fill","MonthCalendar","t0","$","_c","className","dateEnd","dateEndPreview","dateStart","isRange","onChange","onChangeEndPreview","title","firstDay","t1","t2","totalDays","firstDate","lastDate","getDate","getDay","spacesAfterLastDay","daySpaces","t3","t4","acc","getTime","dateMonth","startDay","endDay","reduce","dateRangeStartDay","dateRangeEndDay","dateRangeEndPreviewDay","event","date_0","currentTarget","dataset","handleClickDay","t5","event_0","date_1","handleMouseEnterDay","t6","Symbol","for","t7","clsx","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","_","weekIndex","map","__","dayIndex","dayNumber","isEmpty","date_2","isAfterDateRangeStart","isBeforeDateRangeEnd","toISOString","t19","getAbbreviatedMonthTitle","DatePicker","_dateEnd","_dateStart","initialMonth","_isRange","isTwoUp","monthLimitFirst","monthLimitLast","_monthLimitLast","showEndInitially","useMonthAbbreviations","dateEndFromProps","dateStartFromProps","setDateEnd","useState","setDateStart","updatingDateEndRef","useRef","useEffect","useDateEnd","Boolean","initialDate","setDateEndPreview","setMonth","delta","existingMonth","max","Infinity","handleClickLeftArrow","existingMonth_0","min","handleClickRightArrow","current","handleChange","handleChangeEndPreview","disabled","t20","undefined","t21","t22","t23","t24"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acusti/date-picker",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -61,7 +61,7 @@
61
61
  "vitest": "^3.1.4"
62
62
  },
63
63
  "dependencies": {
64
- "@acusti/styling": "^2.0.1",
64
+ "@acusti/styling": "^2.1.0",
65
65
  "clsx": "^2"
66
66
  },
67
67
  "peerDependencies": {