@archpublicwebsite/rangepicker 1.0.8 → 1.0.9

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,4 @@
1
- import { defineComponent, computed, ref, watch, onMounted, onUnmounted, createBlock, openBlock, Teleport, createVNode, Transition, withCtx, createElementBlock, createCommentVNode, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, Fragment, renderList, nextTick } from "vue";
1
+ import { defineComponent, computed, ref, watch, onMounted, onUnmounted, createBlock, openBlock, Teleport, createVNode, Transition, withCtx, createElementBlock, createCommentVNode, createElementVNode, withModifiers, normalizeStyle, normalizeClass, toDisplayString, Fragment, renderList, nextTick } from "vue";
2
2
  import { useBreakpoints, breakpointsTailwind, useWindowSize, onClickOutside } from "@vueuse/core";
3
3
  import dayjs from "dayjs";
4
4
  function getDefaultExportFromCjs(x) {
@@ -329,39 +329,38 @@ const _hoisted_1$1 = {
329
329
  class: "rangepicker-overlay"
330
330
  };
331
331
  const _hoisted_2 = { class: "rangepicker-header" };
332
- const _hoisted_3 = { class: "arch-flex arch-items-center arch-justify-between" };
332
+ const _hoisted_3 = { class: "flex items-center justify-between w-full" };
333
333
  const _hoisted_4 = {
334
334
  key: 0,
335
- class: "arch-text-xs arch-font-medium arch-text-gray-500 arch-mb-1 font-secondary"
335
+ class: "text-xs font-medium text-gray-500 mb-1"
336
336
  };
337
- const _hoisted_5 = { class: "arch-text-sm arch-font-semibold arch-text-gray-900 font-secondary" };
337
+ const _hoisted_5 = { class: "text-sm font-semibold text-gray-900" };
338
338
  const _hoisted_6 = {
339
339
  key: 0,
340
- class: "arch-text-xs arch-text-gray-500 arch-mt-1 font-secondary"
340
+ class: "text-xs text-gray-500 mt-1"
341
341
  };
342
342
  const _hoisted_7 = { class: "rangepicker-body" };
343
343
  const _hoisted_8 = { class: "rangepicker-month-header" };
344
344
  const _hoisted_9 = ["disabled"];
345
345
  const _hoisted_10 = {
346
346
  key: 1,
347
- class: "arch-w-8"
347
+ class: "w-8"
348
348
  };
349
- const _hoisted_11 = { class: "rangepicker-month-title font-secondary" };
349
+ const _hoisted_11 = { class: "rangepicker-month-title" };
350
350
  const _hoisted_12 = ["disabled"];
351
351
  const _hoisted_13 = {
352
352
  key: 3,
353
- class: "arch-w-8"
353
+ class: "w-8"
354
354
  };
355
355
  const _hoisted_14 = { class: "rangepicker-weekdays" };
356
356
  const _hoisted_15 = { class: "rangepicker-grid" };
357
357
  const _hoisted_16 = ["disabled", "aria-label", "onClick", "onMouseenter"];
358
- const _hoisted_17 = { class: "font-secondary" };
359
- const _hoisted_18 = {
358
+ const _hoisted_17 = {
360
359
  key: 0,
361
- class: "arch-mt-4 arch-flex arch-items-center arch-justify-end arch-gap-2 arch-border-t arch-border-gray-200 arch-pt-4"
360
+ class: "mt-4 flex items-center justify-end gap-2 border-t border-gray-200 pt-4"
362
361
  };
363
- const _hoisted_19 = ["disabled"];
364
- const _hoisted_20 = { class: "arch-flex arch-items-center arch-gap-1" };
362
+ const _hoisted_18 = ["disabled"];
363
+ const _hoisted_19 = { class: "flex items-center gap-1" };
365
364
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
366
365
  __name: "Rangepicker",
367
366
  props: {
@@ -509,14 +508,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
509
508
  if (day.isHoliday)
510
509
  classes.push("rangepicker-day-holiday");
511
510
  if (day.isSelected) {
512
- if (localStartDate.value && localEndDate.value && day.date.isSame(localStartDate.value, "day") && day.date.isSame(localEndDate.value, "day"))
511
+ if (localStartDate.value && localEndDate.value && day.date.isSame(localStartDate.value, "day") && day.date.isSame(localEndDate.value, "day")) {
513
512
  classes.push("rangepicker-day-selected-single");
514
- else if (localStartDate.value && day.date.isSame(localStartDate.value, "day"))
513
+ } else if (localStartDate.value && day.date.isSame(localStartDate.value, "day")) {
515
514
  classes.push("rangepicker-day-selected-start");
516
- else if (localEndDate.value && day.date.isSame(localEndDate.value, "day"))
515
+ } else if (localEndDate.value && day.date.isSame(localEndDate.value, "day")) {
517
516
  classes.push("rangepicker-day-selected-end");
518
- else
517
+ } else {
519
518
  classes.push("rangepicker-day-selected");
519
+ }
520
520
  }
521
521
  if (day.isInRange)
522
522
  classes.push("rangepicker-day-in-range");
@@ -530,7 +530,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
530
530
  }
531
531
  return classes;
532
532
  }
533
- function selectDate(day) {
533
+ function selectDate(event, day) {
534
+ console.log("[Rangepicker v1.1] selectDate called", day.date.format("YYYY-MM-DD"));
535
+ event.stopPropagation();
536
+ const target = event.currentTarget;
537
+ if (target) {
538
+ target.blur();
539
+ }
534
540
  if (day.isDisabled)
535
541
  return;
536
542
  emit("dateSelected", day.date);
@@ -565,7 +571,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
565
571
  apply();
566
572
  }
567
573
  }
568
- function handleDayHover(day, event) {
574
+ function handleDayHover(event, day) {
569
575
  hoveredDay.value = day;
570
576
  if (props.showTooltip && localStartDate.value && !localEndDate.value)
571
577
  updateTooltipPosition(event);
@@ -590,13 +596,25 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
590
596
  monthOffset.value++;
591
597
  }
592
598
  function close() {
599
+ var _a;
600
+ console.log("[Rangepicker v1.1] close called, activeElement:", (_a = document.activeElement) == null ? void 0 : _a.tagName);
593
601
  if (isFadingOut.value)
594
602
  return;
603
+ if (document.activeElement && document.activeElement !== document.body) {
604
+ document.activeElement.blur();
605
+ }
606
+ document.body.focus();
607
+ console.log("[Rangepicker v1.1] Focus moved to body");
595
608
  isFadingOut.value = true;
596
609
  setTimeout(() => {
597
610
  localIsOpen.value = false;
598
611
  emit("update:isOpen", false);
599
612
  isFadingOut.value = false;
613
+ nextTick(() => {
614
+ if (document.activeElement === document.body) {
615
+ document.body.blur();
616
+ }
617
+ });
600
618
  }, 200);
601
619
  }
602
620
  function apply() {
@@ -680,7 +698,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
680
698
  localIsOpen.value || isFadingOut.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
681
699
  createElementVNode("div", {
682
700
  class: "rangepicker-backdrop",
683
- onClick: close
701
+ onClick: withModifiers(close, ["stop"])
684
702
  }),
685
703
  createElementVNode("div", {
686
704
  ref_key: "calendarRef",
@@ -702,7 +720,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
702
720
  createElementVNode("div", _hoisted_7, [
703
721
  createElementVNode("div", {
704
722
  class: normalizeClass(["rangepicker-month-grid", [
705
- __props.variant === "mobile" ? "arch-grid-cols-1" : `lg:arch-grid-cols-${numberOfColumns.value}`
723
+ __props.variant === "mobile" ? "grid-cols-1" : `lg:grid-cols-${numberOfColumns.value}`
706
724
  ]])
707
725
  }, [
708
726
  (openBlock(true), createElementBlock(Fragment, null, renderList(calendarMonths.value, (monthData, index) => {
@@ -720,7 +738,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
720
738
  }, [..._cache[0] || (_cache[0] = [
721
739
  createElementVNode("svg", {
722
740
  xmlns: "http://www.w3.org/2000/svg",
723
- class: "arch-h-5 arch-w-5",
741
+ class: "h-5 w-5",
724
742
  viewBox: "0 0 20 20",
725
743
  fill: "currentColor"
726
744
  }, [
@@ -731,7 +749,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
731
749
  })
732
750
  ], -1)
733
751
  ])], 8, _hoisted_9)) : (openBlock(), createElementBlock("div", _hoisted_10)),
734
- createElementVNode("h3", _hoisted_11, toDisplayString(monthData.month.format("MMMM YYYY")), 1),
752
+ createElementVNode("span", _hoisted_11, toDisplayString(monthData.month.format("MMMM YYYY")), 1),
735
753
  __props.variant === "mobile" || index === calendarMonths.value.length - 1 ? (openBlock(), createElementBlock("button", {
736
754
  key: 2,
737
755
  class: "rangepicker-nav-button",
@@ -741,7 +759,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
741
759
  }, [..._cache[1] || (_cache[1] = [
742
760
  createElementVNode("svg", {
743
761
  xmlns: "http://www.w3.org/2000/svg",
744
- class: "arch-h-5 arch-w-5",
762
+ class: "h-5 w-5",
745
763
  viewBox: "0 0 20 20",
746
764
  fill: "currentColor"
747
765
  }, [
@@ -757,7 +775,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
757
775
  (openBlock(true), createElementBlock(Fragment, null, renderList(weekdays.value, (weekday) => {
758
776
  return openBlock(), createElementBlock("div", {
759
777
  key: weekday,
760
- class: "rangepicker-weekday font-secondary"
778
+ class: "rangepicker-weekday"
761
779
  }, toDisplayString(weekday), 1);
762
780
  }), 128))
763
781
  ]),
@@ -768,27 +786,27 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
768
786
  class: normalizeClass(getDayClasses(day)),
769
787
  disabled: day.isDisabled,
770
788
  "aria-label": day.date.format("MMMM D, YYYY"),
771
- onClick: ($event) => selectDate(day),
772
- onMouseenter: (e) => handleDayHover(day, e),
789
+ onClick: (e) => selectDate(e, day),
790
+ onMouseenter: (e) => handleDayHover(e, day),
773
791
  onMouseleave: handleDayLeave
774
792
  }, [
775
- createElementVNode("span", _hoisted_17, toDisplayString(day.date.date()), 1)
793
+ createElementVNode("span", null, toDisplayString(day.date.date()), 1)
776
794
  ], 42, _hoisted_16);
777
795
  }), 128))
778
796
  ])
779
797
  ]);
780
798
  }), 128))
781
799
  ], 2),
782
- !__props.autoApply ? (openBlock(), createElementBlock("div", _hoisted_18, [
800
+ !__props.autoApply ? (openBlock(), createElementBlock("div", _hoisted_17, [
783
801
  createElementVNode("button", {
784
- class: "arch-px-4 arch-py-2 arch-text-sm arch-font-medium arch-text-gray-700 hover:arch-bg-gray-100 arch-rounded-lg arch-transition-colors font-secondary",
802
+ class: "px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100 rounded-lg transition-colors",
785
803
  onClick: cancel
786
804
  }, " Cancel "),
787
805
  createElementVNode("button", {
788
- class: "arch-px-4 arch-py-2 arch-text-sm arch-font-medium arch-text-white arch-bg-blue-600 hover:arch-bg-blue-700 arch-rounded-lg arch-transition-colors disabled:arch-opacity-50 disabled:arch-cursor-not-allowed font-secondary",
806
+ class: "px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
789
807
  disabled: !localStartDate.value || !localEndDate.value,
790
808
  onClick: apply
791
- }, " Apply ", 8, _hoisted_19)
809
+ }, " Apply ", 8, _hoisted_18)
792
810
  ])) : createCommentVNode("", true)
793
811
  ]),
794
812
  showTooltipComputed.value ? (openBlock(), createElementBlock("div", {
@@ -796,7 +814,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
796
814
  class: "rangepicker-tooltip",
797
815
  style: normalizeStyle(tooltipStyle.value)
798
816
  }, [
799
- createElementVNode("div", _hoisted_20, toDisplayString(tooltipText.value), 1)
817
+ createElementVNode("div", _hoisted_19, toDisplayString(tooltipText.value), 1)
800
818
  ], 4)) : createCommentVNode("", true)
801
819
  ], 6)
802
820
  ])) : createCommentVNode("", true)
@@ -814,7 +832,7 @@ const _export_sfc = (sfc, props) => {
814
832
  }
815
833
  return target;
816
834
  };
817
- const Rangepicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-7adbca9a"]]);
835
+ const Rangepicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-10261b64"]]);
818
836
  const _hoisted_1 = ["id", "value", "placeholder", "readonly", "name"];
819
837
  const _sfc_main = /* @__PURE__ */ defineComponent({
820
838
  __name: "RangepickerInput",
@@ -876,13 +894,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
876
894
  return props.modelValue || "";
877
895
  });
878
896
  const inputClass = computed(() => {
879
- return props.class || "arch-w-full arch-px-3 arch-py-2 arch-border arch-border-gray-300 arch-rounded-lg arch-text-sm arch-text-gray-900 focus:arch-outline-none focus:arch-ring-2 focus:arch-ring-blue-500 focus:arch-border-blue-500";
897
+ return props.class || "tw-w-full tw-px-3 tw-py-2 tw-border tw-border-gray-300 tw-rounded-lg tw-text-sm tw-text-gray-900 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500 focus:tw-border-blue-500";
880
898
  });
881
899
  function openPicker() {
882
900
  isOpen.value = true;
883
901
  }
884
- function onFocus() {
885
- emit("focusin");
902
+ function onFocus(event) {
903
+ event.preventDefault();
904
+ event.stopPropagation();
886
905
  openPicker();
887
906
  }
888
907
  function handleUpdate(value) {
@@ -955,7 +974,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
955
974
  };
956
975
  }
957
976
  });
958
- const RangepickerInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4e3d84fa"]]);
977
+ const RangepickerInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-11a28dcf"]]);
959
978
  function useRangepicker(triggerRef, options = {}) {
960
979
  const isOpen = ref(false);
961
980
  const dateRange = ref({ startDate: "", endDate: "" });
@@ -1 +1 @@
1
- {"version":3,"file":"rangepicker.js","sources":["../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isBetween.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrBefore.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js","../src/utils/date.ts","../src/utils/calendar.ts","../src/utils/position.ts","../src/Rangepicker.vue","../src/RangepickerInput.vue","../src/index.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import type { Dayjs } from 'dayjs'\nimport dayjs from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(isBetween)\ndayjs.extend(isSameOrAfter)\ndayjs.extend(isSameOrBefore)\ndayjs.extend(customParseFormat)\n\nexport { dayjs }\nexport type { Dayjs }\n\nexport function parseDate(date: string | Date | Dayjs, format?: string): Dayjs {\n if (dayjs.isDayjs(date))\n return date\n return format ? dayjs(date, format) : dayjs(date)\n}\n\nexport function formatDate(date: Dayjs, format: string = 'YYYY-MM-DD'): string {\n return date.format(format)\n}\n\nexport function isDateInRange(date: Dayjs, start: Dayjs, end: Dayjs): boolean {\n return date.isBetween(start, end, 'day', '[]')\n}\n\nexport function getDaysBetween(start: Dayjs, end: Dayjs): number {\n return end.diff(start, 'day')\n}\n\nexport function isWeekend(date: Dayjs): boolean {\n const day = date.day()\n return day === 0 || day === 6 // Sunday or Saturday\n}\n\nexport function isToday(date: Dayjs): boolean {\n return date.isSame(dayjs(), 'day')\n}\n","import type { CalendarDay, CalendarMonth } from '../types'\nimport { type Dayjs, dayjs } from './date'\n\nexport function getMonthDays(\n monthOffset: number,\n currentDate: Dayjs = dayjs(),\n): {\n month: Dayjs\n days: Array<{\n date: Dayjs\n isPrevMonth: boolean\n isCurrentMonth: boolean\n isNextMonth: boolean\n }>\n } {\n const month = currentDate.add(monthOffset, 'month').startOf('month')\n const firstDayOfMonth = month.day()\n const daysInMonth = month.daysInMonth()\n const daysInPrevMonth = month.subtract(1, 'month').daysInMonth()\n\n const days: Array<{\n date: Dayjs\n isPrevMonth: boolean\n isCurrentMonth: boolean\n isNextMonth: boolean\n }> = []\n\n // Previous month days\n for (let i = firstDayOfMonth - 1; i >= 0; i--) {\n const date = month.subtract(1, 'month').date(daysInPrevMonth - i)\n days.push({\n date,\n isPrevMonth: true,\n isCurrentMonth: false,\n isNextMonth: false,\n })\n }\n\n // Current month days\n for (let i = 1; i <= daysInMonth; i++) {\n const date = month.date(i)\n days.push({\n date,\n isPrevMonth: false,\n isCurrentMonth: true,\n isNextMonth: false,\n })\n }\n\n // Next month days to complete the grid\n const remainingDays = 42 - days.length // 6 weeks * 7 days\n for (let i = 1; i <= remainingDays; i++) {\n const date = month.add(1, 'month').date(i)\n days.push({\n date,\n isPrevMonth: false,\n isCurrentMonth: false,\n isNextMonth: true,\n })\n }\n\n return { month, days }\n}\n\nexport function createCalendarDay(\n date: Dayjs,\n isPrevMonth: boolean,\n isCurrentMonth: boolean,\n isNextMonth: boolean,\n options: {\n startDate?: Dayjs | null\n endDate?: Dayjs | null\n minDate?: Dayjs | null\n maxDate?: Dayjs | null\n disabledDates?: Dayjs[]\n holidays?: Dayjs[]\n } = {},\n): CalendarDay {\n const {\n startDate = null,\n endDate = null,\n minDate = null,\n maxDate = null,\n disabledDates = [],\n holidays = [],\n } = options\n\n const isDisabled\n = (minDate && date.isBefore(minDate, 'day'))\n || (maxDate && date.isAfter(maxDate, 'day'))\n || disabledDates.some(d => d.isSame(date, 'day'))\n\n const isHoliday = holidays.some(h => h.isSame(date, 'day'))\n\n const isSelected\n = (startDate && date.isSame(startDate, 'day'))\n || (endDate && date.isSame(endDate, 'day'))\n\n const isInRange\n = startDate\n && endDate\n && date.isAfter(startDate, 'day')\n && date.isBefore(endDate, 'day')\n\n const isToday = date.isSame(dayjs(), 'day')\n\n const isWeekend = date.day() === 0 || date.day() === 6\n\n return {\n date,\n isPrevMonth,\n isCurrentMonth,\n isNextMonth,\n isDisabled,\n isHoliday,\n isWeekend,\n isSelected,\n isInRange,\n isToday,\n }\n}\n\nexport function generateCalendarMonths(\n numberOfMonths: number,\n startOffset: number = 0,\n options: {\n startDate?: Dayjs | null\n endDate?: Dayjs | null\n minDate?: Dayjs | null\n maxDate?: Dayjs | null\n disabledDates?: Dayjs[]\n holidays?: Dayjs[]\n } = {},\n): CalendarMonth[] {\n const months: CalendarMonth[] = []\n\n for (let i = 0; i < numberOfMonths; i++) {\n const { month, days } = getMonthDays(startOffset + i)\n\n const calendarDays = days.map(day =>\n createCalendarDay(\n day.date,\n day.isPrevMonth,\n day.isCurrentMonth,\n day.isNextMonth,\n options,\n ),\n )\n\n months.push({\n month,\n days: calendarDays,\n })\n }\n\n return months\n}\n\nexport function getWeekDays(locale: string = 'en', format: 'short' | 'narrow' = 'short'): string[] {\n const weekStart = dayjs().startOf('week')\n const days: string[] = []\n\n for (let i = 0; i < 7; i++) {\n const day = weekStart.add(i, 'day')\n days.push(format === 'short' ? day.format('ddd') : day.format('dd'))\n }\n\n return days\n}\n","export interface PositionResult {\n top?: number\n bottom?: number\n left: number\n transform?: string\n}\n\nexport function calculatePosition(\n triggerElement: HTMLElement | null,\n calendarElement: HTMLElement | null,\n preferredPosition: 'auto' | 'top' | 'bottom' = 'auto',\n): PositionResult {\n if (!triggerElement || !calendarElement)\n return { left: 0 }\n\n const triggerRect = triggerElement.getBoundingClientRect()\n const calendarRect = calendarElement.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n const viewportWidth = window.innerWidth\n\n // Calculate available space\n const spaceAbove = triggerRect.top\n const spaceBelow = viewportHeight - triggerRect.bottom\n\n // Determine vertical position\n const position: PositionResult = { left: triggerRect.left }\n\n if (preferredPosition === 'auto') {\n if (spaceBelow >= calendarRect.height || spaceBelow > spaceAbove) {\n // Position below\n position.top = triggerRect.bottom + 8\n }\n else {\n // Position above\n position.bottom = viewportHeight - triggerRect.top + 8\n }\n }\n else if (preferredPosition === 'top') {\n position.bottom = viewportHeight - triggerRect.top + 8\n }\n else {\n position.top = triggerRect.bottom + 8\n }\n\n // Adjust horizontal position to keep within viewport\n if (position.left + calendarRect.width > viewportWidth)\n position.left = viewportWidth - calendarRect.width - 16\n\n if (position.left < 16)\n position.left = 16\n\n return position\n}\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { breakpointsTailwind, onClickOutside, useBreakpoints, useWindowSize } from '@vueuse/core'\nimport type { Dayjs } from 'dayjs'\nimport { dayjs } from './utils/date'\nimport { generateCalendarMonths, getWeekDays } from './utils/calendar'\nimport { calculatePosition } from './utils/position'\nimport type { CalendarDay } from './types'\n\nconst props = withDefaults(defineProps<Props>(), {\n isOpen: false,\n variant: 'desktop',\n valueOfMonths: 2,\n valueOfColumns: 2,\n format: 'YYYY-MM-DD',\n delimiter: ' - ',\n showTooltip: true,\n autoApply: false,\n position: 'auto',\n})\nconst emit = defineEmits<{\n 'update:modelValue': [value: { startDate: string; endDate: string }]\n 'update:isOpen': [value: boolean]\n 'dateSelected': [date: Dayjs]\n 'rangeSelected': [start: Dayjs, end: Dayjs]\n}>()\nconst breakpoints = useBreakpoints(breakpointsTailwind)\nconst isMobile = breakpoints.smallerOrEqual('lg')\nconst numberOfMonths = computed(() =>\n isMobile.value ? 1 : props.valueOfMonths,\n)\nconst numberOfColumns = computed(() =>\n isMobile.value ? 1 : props.valueOfColumns,\n)\ninterface Props {\n modelValue?: {\n startDate?: string | Date | Dayjs\n endDate?: string | Date | Dayjs\n }\n isOpen?: boolean\n variant?: 'desktop' | 'mobile'\n minDate?: string | Date | Dayjs\n maxDate?: string | Date | Dayjs\n minDays?: number\n maxDays?: number\n close?: boolean\n valueOfMonths?: number\n valueOfColumns?: number\n disabledDates?: (string | Date)[]\n holidays?: (string | Date)[]\n format?: string\n delimiter?: string\n placeholder?: string\n label?: string\n showTooltip?: boolean\n autoApply?: boolean\n position?: 'auto' | 'top' | 'bottom'\n triggerElement?: HTMLElement | null\n colorStyles?: Record<string, string>\n}\n\n// Refs\nconst calendarRef = ref<HTMLElement | null>(null)\nconst isFadingOut = ref(false)\nconst hoveredDay = ref<CalendarDay | null>(null)\nconst monthOffset = ref(0)\n\n// Local state\nconst localIsOpen = ref(props.isOpen)\nconst localStartDate = ref<Dayjs | null>(null)\nconst localEndDate = ref<Dayjs | null>(null)\n\n// Parse dates from props\nconst parsedMinDate = computed(() =>\n props.minDate ? dayjs(props.minDate) : null,\n)\nconst parsedMaxDate = computed(() =>\n props.maxDate ? dayjs(props.maxDate) : null,\n)\nconst parsedDisabledDates = computed(() =>\n props.disabledDates?.map(d => dayjs(d)) || [],\n)\nconst parsedHolidays = computed(() =>\n props.holidays?.map(h => dayjs(h)) || [],\n)\n\n// Calendar data\nconst weekdays = computed(() => getWeekDays('en', 'narrow'))\n\n// For mobile view, show only 1 month\nconst effectiveNumberOfMonths = computed(() =>\n props.variant === 'mobile' ? 1 : numberOfMonths.value,\n)\n\nconst calendarMonths = computed(() =>\n generateCalendarMonths(effectiveNumberOfMonths.value, monthOffset.value, {\n startDate: localStartDate.value,\n endDate: localEndDate.value,\n minDate: parsedMinDate.value,\n maxDate: parsedMaxDate.value,\n disabledDates: parsedDisabledDates.value,\n holidays: parsedHolidays.value,\n }),\n)\n\nconst nightCount = computed(() => {\n if (!localStartDate.value || !localEndDate.value)\n return 0\n return localEndDate.value.diff(localStartDate.value, 'day')\n})\n\nconst formattedDateRange = computed(() => {\n if (!localStartDate.value && !localEndDate.value)\n return ''\n else if (localStartDate.value && !localEndDate.value)\n return localStartDate.value.format(props.format)\n else if (localStartDate.value && localEndDate.value)\n return `${localStartDate.value.format(props.format)}${props.delimiter}${localEndDate.value.format(props.format)}`\n else\n return ''\n})\n\n// Navigation\nconst canNavigatePrevious = computed(() => {\n if (!parsedMinDate.value)\n return true\n const firstMonth = dayjs().add(monthOffset.value, 'month').startOf('month')\n return firstMonth.isAfter(parsedMinDate.value, 'month')\n})\n\nconst canNavigateNext = computed(() => {\n if (!parsedMaxDate.value)\n return true\n const lastMonth = dayjs()\n .add(monthOffset.value + effectiveNumberOfMonths.value - 1, 'month')\n .endOf('month')\n return lastMonth.isBefore(parsedMaxDate.value, 'month')\n})\n\n// Positioning\nconst { width: windowWidth } = useWindowSize()\nconst calendarStyle = ref<Record<string, string>>({})\n\nfunction updatePosition() {\n if (props.variant === 'mobile')\n return\n\n nextTick(() => {\n const position = calculatePosition(\n props.triggerElement,\n calendarRef.value,\n props.position,\n )\n\n calendarStyle.value = {\n left: `${position.left}px`,\n ...(position.top !== undefined && { top: `${position.top}px` }),\n ...(position.bottom !== undefined && { bottom: `${position.bottom}px` }),\n ...(position.transform && { transform: position.transform }),\n }\n })\n}\n\n// Tooltip\nconst tooltipStyle = ref<Record<string, string>>({})\nconst tooltipText = computed(() => {\n if (!hoveredDay.value || !localStartDate.value)\n return ''\n const nights = hoveredDay.value.date.diff(localStartDate.value, 'day')\n if (nights <= 0)\n return ''\n return `${nights} ${nights === 1 ? 'night' : 'nights'}`\n})\n\nconst showTooltipComputed = computed(() => {\n return props.showTooltip\n && hoveredDay.value\n && localStartDate.value\n && !localEndDate.value\n && hoveredDay.value.date.isAfter(localStartDate.value, 'day')\n})\n\n// Methods\nfunction getDayClasses(day: CalendarDay) {\n const classes = ['rangepicker-day']\n\n if (!day.isCurrentMonth)\n classes.push('rangepicker-day-other-month')\n\n if (day.isDisabled)\n classes.push('rangepicker-day-disabled')\n\n if (day.isToday)\n classes.push('rangepicker-day-today')\n\n if (day.isWeekend && !day.isSelected)\n classes.push('rangepicker-day-weekend')\n\n if (day.isHoliday)\n classes.push('rangepicker-day-holiday')\n\n if (day.isSelected) {\n if (\n localStartDate.value\n && localEndDate.value\n && day.date.isSame(localStartDate.value, 'day')\n && day.date.isSame(localEndDate.value, 'day')\n )\n classes.push('rangepicker-day-selected-single')\n else if (\n localStartDate.value\n && day.date.isSame(localStartDate.value, 'day')\n )\n classes.push('rangepicker-day-selected-start')\n else if (localEndDate.value && day.date.isSame(localEndDate.value, 'day'))\n classes.push('rangepicker-day-selected-end')\n else\n classes.push('rangepicker-day-selected')\n }\n\n if (day.isInRange)\n classes.push('rangepicker-day-in-range')\n\n // Add hover effect for potential range\n if (localStartDate.value && !localEndDate.value && hoveredDay.value) {\n const start = localStartDate.value\n const hovered = hoveredDay.value.date\n if (day.date.isAfter(start, 'day') && day.date.isBefore(hovered, 'day'))\n classes.push('rangepicker-day-hover-range')\n else if (day.date.isSame(hovered, 'day') && hovered.isAfter(start, 'day'))\n classes.push('rangepicker-day-hover-end')\n }\n\n return classes\n}\n\nfunction selectDate(day: CalendarDay) {\n if (day.isDisabled)\n return\n\n emit('dateSelected', day.date)\n\n // Range selection logic\n if (!localStartDate.value || (localStartDate.value && localEndDate.value)) {\n // Start new range\n localStartDate.value = day.date\n localEndDate.value = null\n }\n else {\n // Complete range\n if (day.date.isBefore(localStartDate.value, 'day')) {\n // Swap if end is before start\n localEndDate.value = localStartDate.value\n localStartDate.value = day.date\n }\n else {\n localEndDate.value = day.date\n }\n\n // Validate min/max days\n if (props.minDays) {\n const days = localEndDate.value.diff(localStartDate.value, 'day')\n if (days < props.minDays) {\n // Invalid range, reset\n localStartDate.value = day.date\n localEndDate.value = null\n return\n }\n }\n\n if (props.maxDays) {\n const days = localEndDate.value.diff(localStartDate.value, 'day')\n if (days > props.maxDays) {\n // Invalid range, reset\n localStartDate.value = day.date\n localEndDate.value = null\n return\n }\n }\n\n emit('rangeSelected', localStartDate.value, localEndDate.value)\n\n if (props.autoApply)\n apply()\n }\n}\n\nfunction handleDayHover(day: CalendarDay, event: MouseEvent) {\n hoveredDay.value = day\n\n if (props.showTooltip && localStartDate.value && !localEndDate.value)\n updateTooltipPosition(event)\n}\n\nfunction updateTooltipPosition(event: MouseEvent) {\n const rect = (event.target as HTMLElement).getBoundingClientRect()\n tooltipStyle.value = {\n left: `${rect.left + rect.width / 2}px`,\n top: `${rect.top - 10}px`,\n transform: 'translateX(-50%) translateY(-100%)',\n }\n}\n\nfunction handleDayLeave() {\n hoveredDay.value = null\n}\n\nfunction previousMonth() {\n if (canNavigatePrevious.value)\n monthOffset.value--\n}\n\nfunction nextMonth() {\n if (canNavigateNext.value)\n monthOffset.value++\n}\n\nfunction close() {\n if (isFadingOut.value)\n return\n isFadingOut.value = true\n setTimeout(() => {\n localIsOpen.value = false\n emit('update:isOpen', false)\n isFadingOut.value = false\n }, 200) // match fade-leave-active duration\n}\n\nfunction apply() {\n if (localStartDate.value && localEndDate.value) {\n emit('update:modelValue', {\n startDate: localStartDate.value.format(props.format),\n endDate: localEndDate.value.format(props.format),\n })\n }\n close()\n}\n\nfunction cancel() {\n // Reset to initial values\n if (props.modelValue?.startDate)\n localStartDate.value = dayjs(props.modelValue.startDate)\n else\n localStartDate.value = null\n\n if (props.modelValue?.endDate)\n localEndDate.value = dayjs(props.modelValue.endDate)\n else\n localEndDate.value = null\n\n close()\n}\n\n// Watch props\nwatch(\n () => props.isOpen,\n (newVal) => {\n localIsOpen.value = newVal\n if (newVal)\n updatePosition()\n },\n)\n\n// Watch props\nwatch(\n () => props.close,\n (newVal) => {\n if (newVal)\n close()\n },\n)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (newVal?.startDate)\n localStartDate.value = dayjs(newVal.startDate)\n else\n localStartDate.value = null\n\n if (newVal?.endDate)\n localEndDate.value = dayjs(newVal.endDate)\n else\n localEndDate.value = null\n },\n { immediate: true, deep: true },\n)\n\nwatch([windowWidth, localIsOpen], () => {\n if (localIsOpen.value)\n updatePosition()\n})\n\n// Click outside to close\nonClickOutside(calendarRef, () => {\n if (localIsOpen.value && props.variant !== 'mobile')\n close()\n})\n\n// Keyboard navigation\nfunction handleKeydown(e: KeyboardEvent) {\n if (!localIsOpen.value)\n return\n\n if (e.key === 'Escape')\n close()\n}\n\nonMounted(() => {\n document.addEventListener('keydown', handleKeydown)\n if (props.isOpen)\n updatePosition()\n})\n\nonUnmounted(() => {\n document.removeEventListener('keydown', handleKeydown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition :name=\"variant === 'mobile' ? 'slide-up' : 'fade'\">\n <div v-if=\"localIsOpen || isFadingOut\" class=\"rangepicker-overlay\">\n <!-- Backdrop -->\n <div class=\"rangepicker-backdrop\" @click=\"close\" />\n\n <!-- Calendar Container -->\n <div ref=\"calendarRef\" class=\"rangepicker-container\" :class=\"[\n variant === 'mobile' ? 'rangepicker-mobile' : '',\n ]\" :style=\"{ ...calendarStyle, ...colorStyles }\">\n <!-- Header -->\n <div class=\"rangepicker-header\">\n <div class=\"arch-flex arch-items-center arch-justify-between\">\n <div>\n <p v-if=\"label\" class=\"arch-text-xs arch-font-medium arch-text-gray-500 arch-mb-1 font-secondary\">\n {{ label }}\n </p>\n <p class=\"arch-text-sm arch-font-semibold arch-text-gray-900 font-secondary\">\n {{ formattedDateRange || placeholder || 'Select dates' }}\n </p>\n </div>\n <p v-if=\"nightCount > 0\" class=\"arch-text-xs arch-text-gray-500 arch-mt-1 font-secondary\">\n {{ nightCount }} {{ nightCount === 1 ? 'night' : 'nights' }}\n </p>\n <!-- <button\n class=\"rangepicker-nav-button\"\n aria-label=\"Close\"\n @click=\"close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"arch-h-5 arch-w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button> -->\n </div>\n </div>\n\n <!-- Calendar Body -->\n <div class=\"rangepicker-body\">\n <div class=\"rangepicker-month-grid\" :class=\"[\n variant === 'mobile' ? 'arch-grid-cols-1' : `lg:arch-grid-cols-${numberOfColumns}`,\n ]\">\n <div v-for=\"(monthData, index) in calendarMonths\" :key=\"monthData.month.format('YYYY-MM')\"\n class=\"rangepicker-month\">\n <!-- Month Header -->\n <div class=\"rangepicker-month-header\">\n <button v-if=\"variant === 'mobile' || index === 0\" class=\"rangepicker-nav-button\"\n :disabled=\"!canNavigatePrevious\" aria-label=\"Previous month\" @click=\"previousMonth\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"arch-h-5 arch-w-5\" viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path fill-rule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <div v-else class=\"arch-w-8\"></div>\n\n <h3 class=\"rangepicker-month-title font-secondary\">\n {{ monthData.month.format('MMMM YYYY') }}\n </h3>\n\n <button v-if=\"variant === 'mobile' || index === calendarMonths.length - 1\"\n class=\"rangepicker-nav-button\" :disabled=\"!canNavigateNext\" aria-label=\"Next month\"\n @click=\"nextMonth\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"arch-h-5 arch-w-5\" viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path fill-rule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <div v-else class=\"arch-w-8\"></div>\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"rangepicker-weekdays\">\n <div v-for=\"weekday in weekdays\" :key=\"weekday\" class=\"rangepicker-weekday font-secondary\">\n {{ weekday }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"rangepicker-grid\">\n <button v-for=\"day in monthData.days\" :key=\"day.date.unix()\" :class=\"getDayClasses(day)\"\n :disabled=\"day.isDisabled\" :aria-label=\"day.date.format('MMMM D, YYYY')\" @click=\"selectDate(day)\"\n @mouseenter=\"(e) => handleDayHover(day, e)\" @mouseleave=\"handleDayLeave\">\n <span class=\"font-secondary\">{{ day.date.date() }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Apply/Cancel Buttons (if not autoApply) -->\n <div v-if=\"!autoApply\"\n class=\"arch-mt-4 arch-flex arch-items-center arch-justify-end arch-gap-2 arch-border-t arch-border-gray-200 arch-pt-4\">\n <button\n class=\"arch-px-4 arch-py-2 arch-text-sm arch-font-medium arch-text-gray-700 hover:arch-bg-gray-100 arch-rounded-lg arch-transition-colors font-secondary\"\n @click=\"cancel\">\n Cancel\n </button>\n <button\n class=\"arch-px-4 arch-py-2 arch-text-sm arch-font-medium arch-text-white arch-bg-blue-600 hover:arch-bg-blue-700 arch-rounded-lg arch-transition-colors disabled:arch-opacity-50 disabled:arch-cursor-not-allowed font-secondary\"\n :disabled=\"!localStartDate || !localEndDate\" @click=\"apply\">\n Apply\n </button>\n </div>\n </div>\n\n <!-- Tooltip -->\n <div v-if=\"showTooltipComputed\" class=\"rangepicker-tooltip\" :style=\"tooltipStyle\">\n <div class=\"arch-flex arch-items-center arch-gap-1\">\n {{ tooltipText }}\n </div>\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<style lang=\"scss\" scoped>\n@use './styles/rangepicker.scss';\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport Rangepicker from './Rangepicker.vue'\n\n// Helper function to convert HEX to RGB\nfunction hexToRgb(hex: string): string | null {\n // Remove # if present\n hex = hex.replace(/^#/, '')\n\n // Handle 3-digit hex\n if (hex.length === 3) {\n hex = hex.split('').map(char => char + char).join('')\n }\n\n if (hex.length !== 6) {\n console.warn(`[Rangepicker] Invalid hex color: ${hex}`)\n return null\n }\n\n const r = parseInt(hex.substring(0, 2), 16)\n const g = parseInt(hex.substring(2, 4), 16)\n const b = parseInt(hex.substring(4, 6), 16)\n\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n return null\n }\n\n return `${r} ${g} ${b}`\n}\n\ninterface LitepickerOptions {\n autoApply?: boolean\n allowRepick?: boolean\n dropdowns?: any\n startDate?: Date | string\n minDate?: Date | string\n maxDate?: Date | string\n format?: string\n numberOfColumns?: number\n numberOfMonths?: number\n singleMode?: boolean\n tooltipText?: any\n tooltipNumber?: any\n inlineMode?: boolean\n minDays?: number\n maxDays?: number\n showTooltip?: boolean\n}\n\ninterface Props {\n id?: string\n close?: boolean\n modelValue?: string\n name?: string\n placeholder?: string\n readonly?: boolean\n class?: string\n options?: LitepickerOptions\n variant?: 'desktop' | 'mobile'\n primaryColor?: string\n secondaryColor?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n readonly: true,\n variant: 'desktop',\n placeholder: 'Select dates',\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'focusin': []\n}>()\n\n// Refs\nconst inputRef = ref<HTMLInputElement | null>(null)\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst isOpen = ref(false)\n\n// Parse the modelValue into start/end dates\nfunction parseValue(value?: string) {\n if (!value)\n return { startDate: '', endDate: '' }\n\n const parts = value.split(' - ')\n if (parts.length === 2) {\n return {\n startDate: parts[0].trim(),\n endDate: parts[1].trim(),\n }\n }\n return { startDate: '', endDate: '' }\n}\n\nwatch(() => props?.close, (cur) => {\n if (cur)\n inputRef.value.blur()\n})\nconst localValue = ref(parseValue(props.modelValue))\n\nconst displayValue = computed(() => {\n return props.modelValue || ''\n})\n\nconst inputClass = computed(() => {\n return props.class || 'arch-w-full arch-px-3 arch-py-2 arch-border arch-border-gray-300 arch-rounded-lg arch-text-sm arch-text-gray-900 focus:arch-outline-none focus:arch-ring-2 focus:arch-ring-blue-500 focus:arch-border-blue-500'\n})\n\nfunction openPicker() {\n isOpen.value = true\n}\n\nfunction onFocus() {\n emit('focusin')\n openPicker()\n}\n\nfunction handleUpdate(value: { startDate: string; endDate: string }) {\n localValue.value = value\n const formatted = `${value.startDate} - ${value.endDate}`\n emit('update:modelValue', formatted)\n}\n\nwatch(() => props.modelValue, (newVal) => {\n localValue.value = parseValue(newVal)\n})\n\n// Compute CSS variables for scoped styling\nconst colorStyles = computed(() => {\n const styles: Record<string, string> = {}\n\n if (props.primaryColor) {\n const rgb = hexToRgb(props.primaryColor)\n if (rgb) {\n styles['--color-primary'] = rgb\n }\n }\n\n if (props.secondaryColor) {\n const rgb = hexToRgb(props.secondaryColor)\n if (rgb) {\n styles['--color-secondary'] = rgb\n }\n }\n\n return styles\n})\n</script>\n\n<template>\n <div ref=\"wrapperRef\" class=\"rangepicker-input-wrapper\">\n <input :id=\"id\" ref=\"inputRef\" type=\"text\" :value=\"displayValue\" :placeholder=\"placeholder\" :readonly=\"readonly\"\n :name=\"name\" :class=\"inputClass\" @click=\"openPicker\" @focus=\"onFocus\" />\n\n <Rangepicker v-model=\"localValue\" v-model:is-open=\"isOpen\" :trigger-element=\"inputRef\" :min-date=\"options?.minDate\"\n :max-date=\"options?.maxDate\" :min-days=\"options?.minDays\" :max-days=\"options?.maxDays\"\n :value-of-months=\"options?.numberOfMonths || 2\" :value-of-columns=\"options?.numberOfColumns || 2\"\n :format=\"options?.format || 'DD MMM YYYY'\" :auto-apply=\"options?.autoApply !== false\"\n :show-tooltip=\"options?.showTooltip !== false\" :variant=\"variant\" :close=\"props.close\" :color-styles=\"colorStyles\"\n @update:model-value=\"handleUpdate\" />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@use './styles/rangepicker.scss';\n\n.rangepicker-input-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n}\n\ninput {\n cursor: pointer;\n}\n</style>\n","import { ref } from 'vue'\nimport './styles/rangepicker.scss'\nimport Rangepicker from './Rangepicker.vue'\nimport RangepickerInput from './RangepickerInput.vue'\nimport type { DateRange, RangepickerProps } from './types'\n\n// Default export - RangepickerInput (Litepicker-compatible wrapper)\nexport default RangepickerInput\n\n// Named exports\nexport { Rangepicker, RangepickerInput }\n\n// Type exports\nexport type { RangepickerProps, DateRange }\n\n// Vue 3 composable for easy integration\nexport function useRangepicker(triggerRef: any, options: Partial<RangepickerProps> = {}) {\n const isOpen = ref(false)\n const dateRange = ref<DateRange>({ startDate: '', endDate: '' })\n\n const open = () => { isOpen.value = true }\n const close = () => { isOpen.value = false }\n const toggle = () => { isOpen.value = !isOpen.value }\n\n return {\n isOpen,\n dateRange,\n open,\n close,\n toggle,\n options,\n }\n}\n"],"names":["this","e","i","t","n","r","o","a","f","h","u","d","l","s","c","m","M","_createBlock","_Teleport","_createVNode","_Transition","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","_toDisplayString","_Fragment","_renderList","_normalizeClass"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"rangepicker.js","sources":["../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isBetween.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrBefore.js","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js","../src/utils/date.ts","../src/utils/calendar.ts","../src/utils/position.ts","../src/Rangepicker.vue","../src/RangepickerInput.vue","../src/index.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import type { Dayjs } from 'dayjs'\nimport dayjs from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(isBetween)\ndayjs.extend(isSameOrAfter)\ndayjs.extend(isSameOrBefore)\ndayjs.extend(customParseFormat)\n\nexport { dayjs }\nexport type { Dayjs }\n\nexport function parseDate(date: string | Date | Dayjs, format?: string): Dayjs {\n if (dayjs.isDayjs(date))\n return date\n return format ? dayjs(date, format) : dayjs(date)\n}\n\nexport function formatDate(date: Dayjs, format: string = 'YYYY-MM-DD'): string {\n return date.format(format)\n}\n\nexport function isDateInRange(date: Dayjs, start: Dayjs, end: Dayjs): boolean {\n return date.isBetween(start, end, 'day', '[]')\n}\n\nexport function getDaysBetween(start: Dayjs, end: Dayjs): number {\n return end.diff(start, 'day')\n}\n\nexport function isWeekend(date: Dayjs): boolean {\n const day = date.day()\n return day === 0 || day === 6 // Sunday or Saturday\n}\n\nexport function isToday(date: Dayjs): boolean {\n return date.isSame(dayjs(), 'day')\n}\n","import type { CalendarDay, CalendarMonth } from '../types'\nimport { type Dayjs, dayjs } from './date'\n\nexport function getMonthDays(\n monthOffset: number,\n currentDate: Dayjs = dayjs(),\n): {\n month: Dayjs\n days: Array<{\n date: Dayjs\n isPrevMonth: boolean\n isCurrentMonth: boolean\n isNextMonth: boolean\n }>\n } {\n const month = currentDate.add(monthOffset, 'month').startOf('month')\n const firstDayOfMonth = month.day()\n const daysInMonth = month.daysInMonth()\n const daysInPrevMonth = month.subtract(1, 'month').daysInMonth()\n\n const days: Array<{\n date: Dayjs\n isPrevMonth: boolean\n isCurrentMonth: boolean\n isNextMonth: boolean\n }> = []\n\n // Previous month days\n for (let i = firstDayOfMonth - 1; i >= 0; i--) {\n const date = month.subtract(1, 'month').date(daysInPrevMonth - i)\n days.push({\n date,\n isPrevMonth: true,\n isCurrentMonth: false,\n isNextMonth: false,\n })\n }\n\n // Current month days\n for (let i = 1; i <= daysInMonth; i++) {\n const date = month.date(i)\n days.push({\n date,\n isPrevMonth: false,\n isCurrentMonth: true,\n isNextMonth: false,\n })\n }\n\n // Next month days to complete the grid\n const remainingDays = 42 - days.length // 6 weeks * 7 days\n for (let i = 1; i <= remainingDays; i++) {\n const date = month.add(1, 'month').date(i)\n days.push({\n date,\n isPrevMonth: false,\n isCurrentMonth: false,\n isNextMonth: true,\n })\n }\n\n return { month, days }\n}\n\nexport function createCalendarDay(\n date: Dayjs,\n isPrevMonth: boolean,\n isCurrentMonth: boolean,\n isNextMonth: boolean,\n options: {\n startDate?: Dayjs | null\n endDate?: Dayjs | null\n minDate?: Dayjs | null\n maxDate?: Dayjs | null\n disabledDates?: Dayjs[]\n holidays?: Dayjs[]\n } = {},\n): CalendarDay {\n const {\n startDate = null,\n endDate = null,\n minDate = null,\n maxDate = null,\n disabledDates = [],\n holidays = [],\n } = options\n\n const isDisabled\n = (minDate && date.isBefore(minDate, 'day'))\n || (maxDate && date.isAfter(maxDate, 'day'))\n || disabledDates.some(d => d.isSame(date, 'day'))\n\n const isHoliday = holidays.some(h => h.isSame(date, 'day'))\n\n const isSelected\n = (startDate && date.isSame(startDate, 'day'))\n || (endDate && date.isSame(endDate, 'day'))\n\n const isInRange\n = startDate\n && endDate\n && date.isAfter(startDate, 'day')\n && date.isBefore(endDate, 'day')\n\n const isToday = date.isSame(dayjs(), 'day')\n\n const isWeekend = date.day() === 0 || date.day() === 6\n\n return {\n date,\n isPrevMonth,\n isCurrentMonth,\n isNextMonth,\n isDisabled,\n isHoliday,\n isWeekend,\n isSelected,\n isInRange,\n isToday,\n }\n}\n\nexport function generateCalendarMonths(\n numberOfMonths: number,\n startOffset: number = 0,\n options: {\n startDate?: Dayjs | null\n endDate?: Dayjs | null\n minDate?: Dayjs | null\n maxDate?: Dayjs | null\n disabledDates?: Dayjs[]\n holidays?: Dayjs[]\n } = {},\n): CalendarMonth[] {\n const months: CalendarMonth[] = []\n\n for (let i = 0; i < numberOfMonths; i++) {\n const { month, days } = getMonthDays(startOffset + i)\n\n const calendarDays = days.map(day =>\n createCalendarDay(\n day.date,\n day.isPrevMonth,\n day.isCurrentMonth,\n day.isNextMonth,\n options,\n ),\n )\n\n months.push({\n month,\n days: calendarDays,\n })\n }\n\n return months\n}\n\nexport function getWeekDays(locale: string = 'en', format: 'short' | 'narrow' = 'short'): string[] {\n const weekStart = dayjs().startOf('week')\n const days: string[] = []\n\n for (let i = 0; i < 7; i++) {\n const day = weekStart.add(i, 'day')\n days.push(format === 'short' ? day.format('ddd') : day.format('dd'))\n }\n\n return days\n}\n","export interface PositionResult {\n top?: number\n bottom?: number\n left: number\n transform?: string\n}\n\nexport function calculatePosition(\n triggerElement: HTMLElement | null,\n calendarElement: HTMLElement | null,\n preferredPosition: 'auto' | 'top' | 'bottom' = 'auto',\n): PositionResult {\n if (!triggerElement || !calendarElement)\n return { left: 0 }\n\n const triggerRect = triggerElement.getBoundingClientRect()\n const calendarRect = calendarElement.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n const viewportWidth = window.innerWidth\n\n // Calculate available space\n const spaceAbove = triggerRect.top\n const spaceBelow = viewportHeight - triggerRect.bottom\n\n // Determine vertical position\n const position: PositionResult = { left: triggerRect.left }\n\n if (preferredPosition === 'auto') {\n if (spaceBelow >= calendarRect.height || spaceBelow > spaceAbove) {\n // Position below\n position.top = triggerRect.bottom + 8\n }\n else {\n // Position above\n position.bottom = viewportHeight - triggerRect.top + 8\n }\n }\n else if (preferredPosition === 'top') {\n position.bottom = viewportHeight - triggerRect.top + 8\n }\n else {\n position.top = triggerRect.bottom + 8\n }\n\n // Adjust horizontal position to keep within viewport\n if (position.left + calendarRect.width > viewportWidth)\n position.left = viewportWidth - calendarRect.width - 16\n\n if (position.left < 16)\n position.left = 16\n\n return position\n}\n","<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs'\nimport type { CalendarDay } from './types'\nimport { breakpointsTailwind, onClickOutside, useBreakpoints, useWindowSize } from '@vueuse/core'\nimport { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { generateCalendarMonths, getWeekDays } from './utils/calendar'\nimport { dayjs } from './utils/date'\nimport { calculatePosition } from './utils/position'\n\nconst props = withDefaults(defineProps<Props>(), {\n isOpen: false,\n variant: 'desktop',\n valueOfMonths: 2,\n valueOfColumns: 2,\n format: 'YYYY-MM-DD',\n delimiter: ' - ',\n showTooltip: true,\n autoApply: false,\n position: 'auto',\n})\nconst emit = defineEmits<{\n 'update:modelValue': [value: { startDate: string, endDate: string }]\n 'update:isOpen': [value: boolean]\n 'dateSelected': [date: Dayjs]\n 'rangeSelected': [start: Dayjs, end: Dayjs]\n}>()\nconst breakpoints = useBreakpoints(breakpointsTailwind)\nconst isMobile = breakpoints.smallerOrEqual('lg')\nconst numberOfMonths = computed(() =>\n isMobile.value ? 1 : props.valueOfMonths,\n)\nconst numberOfColumns = computed(() =>\n isMobile.value ? 1 : props.valueOfColumns,\n)\ninterface Props {\n modelValue?: {\n startDate?: string | Date | Dayjs\n endDate?: string | Date | Dayjs\n }\n isOpen?: boolean\n variant?: 'desktop' | 'mobile'\n minDate?: string | Date | Dayjs\n maxDate?: string | Date | Dayjs\n minDays?: number\n maxDays?: number\n close?: boolean\n valueOfMonths?: number\n valueOfColumns?: number\n disabledDates?: (string | Date)[]\n holidays?: (string | Date)[]\n format?: string\n delimiter?: string\n placeholder?: string\n label?: string\n showTooltip?: boolean\n autoApply?: boolean\n position?: 'auto' | 'top' | 'bottom'\n triggerElement?: HTMLElement | null\n colorStyles?: Record<string, string>\n}\n\n// Refs\nconst calendarRef = ref<HTMLElement | null>(null)\nconst isFadingOut = ref(false)\nconst hoveredDay = ref<CalendarDay | null>(null)\nconst monthOffset = ref(0)\n\n// Local state\nconst localIsOpen = ref(props.isOpen)\nconst localStartDate = ref<Dayjs | null>(null)\nconst localEndDate = ref<Dayjs | null>(null)\n\n// Parse dates from props\nconst parsedMinDate = computed(() =>\n props.minDate ? dayjs(props.minDate) : null,\n)\nconst parsedMaxDate = computed(() =>\n props.maxDate ? dayjs(props.maxDate) : null,\n)\nconst parsedDisabledDates = computed(() =>\n props.disabledDates?.map(d => dayjs(d)) || [],\n)\nconst parsedHolidays = computed(() =>\n props.holidays?.map(h => dayjs(h)) || [],\n)\n\n// Calendar data\nconst weekdays = computed(() => getWeekDays('en', 'narrow'))\n\n// For mobile view, show only 1 month\nconst effectiveNumberOfMonths = computed(() =>\n props.variant === 'mobile' ? 1 : numberOfMonths.value,\n)\n\nconst calendarMonths = computed(() =>\n generateCalendarMonths(effectiveNumberOfMonths.value, monthOffset.value, {\n startDate: localStartDate.value,\n endDate: localEndDate.value,\n minDate: parsedMinDate.value,\n maxDate: parsedMaxDate.value,\n disabledDates: parsedDisabledDates.value,\n holidays: parsedHolidays.value,\n }),\n)\n\nconst nightCount = computed(() => {\n if (!localStartDate.value || !localEndDate.value)\n return 0\n return localEndDate.value.diff(localStartDate.value, 'day')\n})\n\nconst formattedDateRange = computed(() => {\n if (!localStartDate.value && !localEndDate.value)\n return ''\n else if (localStartDate.value && !localEndDate.value)\n return localStartDate.value.format(props.format)\n else if (localStartDate.value && localEndDate.value)\n return `${localStartDate.value.format(props.format)}${props.delimiter}${localEndDate.value.format(props.format)}`\n else\n return ''\n})\n\n// Navigation\nconst canNavigatePrevious = computed(() => {\n if (!parsedMinDate.value)\n return true\n const firstMonth = dayjs().add(monthOffset.value, 'month').startOf('month')\n return firstMonth.isAfter(parsedMinDate.value, 'month')\n})\n\nconst canNavigateNext = computed(() => {\n if (!parsedMaxDate.value)\n return true\n const lastMonth = dayjs()\n .add(monthOffset.value + effectiveNumberOfMonths.value - 1, 'month')\n .endOf('month')\n return lastMonth.isBefore(parsedMaxDate.value, 'month')\n})\n\n// Positioning\nconst { width: windowWidth } = useWindowSize()\nconst calendarStyle = ref<Record<string, string>>({})\n\nfunction updatePosition() {\n if (props.variant === 'mobile')\n return\n\n nextTick(() => {\n const position = calculatePosition(\n props.triggerElement,\n calendarRef.value,\n props.position,\n )\n\n calendarStyle.value = {\n left: `${position.left}px`,\n ...(position.top !== undefined && { top: `${position.top}px` }),\n ...(position.bottom !== undefined && { bottom: `${position.bottom}px` }),\n ...(position.transform && { transform: position.transform }),\n }\n })\n}\n\n// Tooltip\nconst tooltipStyle = ref<Record<string, string>>({})\nconst tooltipText = computed(() => {\n if (!hoveredDay.value || !localStartDate.value)\n return ''\n const nights = hoveredDay.value.date.diff(localStartDate.value, 'day')\n if (nights <= 0)\n return ''\n return `${nights} ${nights === 1 ? 'night' : 'nights'}`\n})\n\nconst showTooltipComputed = computed(() => {\n return props.showTooltip\n && hoveredDay.value\n && localStartDate.value\n && !localEndDate.value\n && hoveredDay.value.date.isAfter(localStartDate.value, 'day')\n})\n\n// Methods\nfunction getDayClasses(day: CalendarDay) {\n const classes = ['rangepicker-day']\n\n if (!day.isCurrentMonth)\n classes.push('rangepicker-day-other-month')\n\n if (day.isDisabled)\n classes.push('rangepicker-day-disabled')\n\n if (day.isToday)\n classes.push('rangepicker-day-today')\n\n if (day.isWeekend && !day.isSelected)\n classes.push('rangepicker-day-weekend')\n\n if (day.isHoliday)\n classes.push('rangepicker-day-holiday')\n\n if (day.isSelected) {\n if (\n localStartDate.value\n && localEndDate.value\n && day.date.isSame(localStartDate.value, 'day')\n && day.date.isSame(localEndDate.value, 'day')\n ) {\n classes.push('rangepicker-day-selected-single')\n }\n else if (\n localStartDate.value\n && day.date.isSame(localStartDate.value, 'day')\n ) {\n classes.push('rangepicker-day-selected-start')\n }\n else if (localEndDate.value && day.date.isSame(localEndDate.value, 'day')) {\n classes.push('rangepicker-day-selected-end')\n }\n else {\n classes.push('rangepicker-day-selected')\n }\n }\n\n if (day.isInRange)\n classes.push('rangepicker-day-in-range')\n\n // Add hover effect for potential range\n if (localStartDate.value && !localEndDate.value && hoveredDay.value) {\n const start = localStartDate.value\n const hovered = hoveredDay.value.date\n if (day.date.isAfter(start, 'day') && day.date.isBefore(hovered, 'day'))\n classes.push('rangepicker-day-hover-range')\n else if (day.date.isSame(hovered, 'day') && hovered.isAfter(start, 'day'))\n classes.push('rangepicker-day-hover-end')\n }\n\n return classes\n}\n\nfunction selectDate(event: MouseEvent, day: CalendarDay) {\n console.log('[Rangepicker v1.1] selectDate called', day.date.format('YYYY-MM-DD'))\n event.stopPropagation()\n\n // Blur the clicked button immediately to prevent focus from shifting to next element\n const target = event.currentTarget as HTMLElement\n if (target) {\n target.blur()\n }\n\n if (day.isDisabled)\n return\n\n emit('dateSelected', day.date)\n\n // Range selection logic\n if (!localStartDate.value || (localStartDate.value && localEndDate.value)) {\n // Start new range\n localStartDate.value = day.date\n localEndDate.value = null\n }\n else {\n // Complete range\n if (day.date.isBefore(localStartDate.value, 'day')) {\n // Swap if end is before start\n localEndDate.value = localStartDate.value\n localStartDate.value = day.date\n }\n else {\n localEndDate.value = day.date\n }\n\n // Validate min/max days\n if (props.minDays) {\n const days = localEndDate.value.diff(localStartDate.value, 'day')\n if (days < props.minDays) {\n // Invalid range, reset\n localStartDate.value = day.date\n localEndDate.value = null\n return\n }\n }\n\n if (props.maxDays) {\n const days = localEndDate.value.diff(localStartDate.value, 'day')\n if (days > props.maxDays) {\n // Invalid range, reset\n localStartDate.value = day.date\n localEndDate.value = null\n return\n }\n }\n\n emit('rangeSelected', localStartDate.value, localEndDate.value)\n\n if (props.autoApply)\n apply()\n }\n}\n\nfunction handleDayHover(event: MouseEvent, day: CalendarDay) {\n hoveredDay.value = day\n\n if (props.showTooltip && localStartDate.value && !localEndDate.value)\n updateTooltipPosition(event)\n}\n\nfunction updateTooltipPosition(event: MouseEvent) {\n const rect = (event.target as HTMLElement).getBoundingClientRect()\n tooltipStyle.value = {\n left: `${rect.left + rect.width / 2}px`,\n top: `${rect.top - 10}px`,\n transform: 'translateX(-50%) translateY(-100%)',\n }\n}\n\nfunction handleDayLeave() {\n hoveredDay.value = null\n}\n\nfunction previousMonth() {\n if (canNavigatePrevious.value)\n monthOffset.value--\n}\n\nfunction nextMonth() {\n if (canNavigateNext.value)\n monthOffset.value++\n}\n\nfunction close() {\n console.log('[Rangepicker v1.1] close called, activeElement:', document.activeElement?.tagName)\n if (isFadingOut.value)\n return\n\n // Move focus to body BEFORE starting close transition to prevent focus shift\n if (document.activeElement && document.activeElement !== document.body) {\n (document.activeElement as HTMLElement).blur()\n }\n // Explicitly set focus to body to prevent browser from auto-focusing next element\n document.body.focus()\n console.log('[Rangepicker v1.1] Focus moved to body')\n isFadingOut.value = true\n\n setTimeout(() => {\n localIsOpen.value = false\n emit('update:isOpen', false)\n isFadingOut.value = false\n\n // Blur body after transition to ensure clean state\n nextTick(() => {\n if (document.activeElement === document.body) {\n document.body.blur()\n }\n })\n }, 200) // match fade-leave-active duration\n}\n\nfunction apply() {\n if (localStartDate.value && localEndDate.value) {\n emit('update:modelValue', {\n startDate: localStartDate.value.format(props.format),\n endDate: localEndDate.value.format(props.format),\n })\n }\n close()\n}\n\nfunction cancel() {\n // Reset to initial values\n if (props.modelValue?.startDate)\n localStartDate.value = dayjs(props.modelValue.startDate)\n else\n localStartDate.value = null\n\n if (props.modelValue?.endDate)\n localEndDate.value = dayjs(props.modelValue.endDate)\n else\n localEndDate.value = null\n\n close()\n}\n\n// Watch props\nwatch(\n () => props.isOpen,\n (newVal) => {\n localIsOpen.value = newVal\n if (newVal)\n updatePosition()\n },\n)\n\n// Watch props\nwatch(\n () => props.close,\n (newVal) => {\n if (newVal)\n close()\n },\n)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (newVal?.startDate)\n localStartDate.value = dayjs(newVal.startDate)\n else\n localStartDate.value = null\n\n if (newVal?.endDate)\n localEndDate.value = dayjs(newVal.endDate)\n else\n localEndDate.value = null\n },\n { immediate: true, deep: true },\n)\n\nwatch([windowWidth, localIsOpen], () => {\n if (localIsOpen.value)\n updatePosition()\n})\n\n// Click outside to close\nonClickOutside(calendarRef, () => {\n if (localIsOpen.value && props.variant !== 'mobile')\n close()\n})\n\n// Keyboard navigation\nfunction handleKeydown(e: KeyboardEvent) {\n if (!localIsOpen.value)\n return\n\n if (e.key === 'Escape')\n close()\n}\n\nonMounted(() => {\n document.addEventListener('keydown', handleKeydown)\n if (props.isOpen)\n updatePosition()\n})\n\nonUnmounted(() => {\n document.removeEventListener('keydown', handleKeydown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition :name=\"variant === 'mobile' ? 'slide-up' : 'fade'\">\n <div v-if=\"localIsOpen || isFadingOut\" class=\"rangepicker-overlay\">\n <!-- Backdrop -->\n <div class=\"rangepicker-backdrop\" @click.stop=\"close\" />\n\n <!-- Calendar Container -->\n <div\n ref=\"calendarRef\"\n class=\"rangepicker-container\"\n :class=\"[\n variant === 'mobile' ? 'rangepicker-mobile' : '',\n ]\"\n :style=\"{ ...calendarStyle, ...colorStyles }\"\n >\n <!-- Header -->\n <div class=\"rangepicker-header\">\n <div class=\"flex items-center justify-between w-full\">\n <div>\n <p v-if=\"label\" class=\"text-xs font-medium text-gray-500 mb-1\">\n {{ label }}\n </p>\n <p class=\"text-sm font-semibold text-gray-900\">\n {{ formattedDateRange || placeholder || 'Select dates' }}\n </p>\n </div>\n <p v-if=\"nightCount > 0\" class=\"text-xs text-gray-500 mt-1\">\n {{ nightCount }} {{ nightCount === 1 ? 'night' : 'nights' }}\n </p>\n <!-- <button\n class=\"rangepicker-nav-button\"\n aria-label=\"Close\"\n @click=\"close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button> -->\n </div>\n </div>\n\n <!-- Calendar Body -->\n <div class=\"rangepicker-body\">\n <div\n class=\"rangepicker-month-grid\"\n :class=\"[\n variant === 'mobile' ? 'grid-cols-1' : `lg:grid-cols-${numberOfColumns}`,\n ]\"\n >\n <div\n v-for=\"(monthData, index) in calendarMonths\"\n :key=\"monthData.month.format('YYYY-MM')\"\n class=\"rangepicker-month\"\n >\n <!-- Month Header -->\n <div class=\"rangepicker-month-header\">\n <button\n v-if=\"variant === 'mobile' || index === 0\"\n class=\"rangepicker-nav-button\"\n :disabled=\"!canNavigatePrevious\"\n aria-label=\"Previous month\"\n @click=\"previousMonth\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n <div v-else class=\"w-8\" />\n\n <span class=\"rangepicker-month-title\">\n {{ monthData.month.format('MMMM YYYY') }}\n </span>\n\n <button\n v-if=\"variant === 'mobile' || index === calendarMonths.length - 1\"\n class=\"rangepicker-nav-button\"\n :disabled=\"!canNavigateNext\"\n aria-label=\"Next month\"\n @click=\"nextMonth\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n <div v-else class=\"w-8\" />\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"rangepicker-weekdays\">\n <div v-for=\"weekday in weekdays\" :key=\"weekday\" class=\"rangepicker-weekday\">\n {{ weekday }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"rangepicker-grid\">\n <button\n v-for=\"day in monthData.days\"\n :key=\"day.date.unix()\"\n :class=\"getDayClasses(day)\"\n :disabled=\"day.isDisabled\"\n :aria-label=\"day.date.format('MMMM D, YYYY')\"\n @click=\"(e) => selectDate(e, day)\"\n @mouseenter=\"(e) => handleDayHover(e, day)\"\n @mouseleave=\"handleDayLeave\"\n >\n <span>{{ day.date.date() }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Apply/Cancel Buttons (if not autoApply) -->\n <div\n v-if=\"!autoApply\"\n class=\"mt-4 flex items-center justify-end gap-2 border-t border-gray-200 pt-4\"\n >\n <button\n class=\"px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100 rounded-lg transition-colors\"\n @click=\"cancel\"\n >\n Cancel\n </button>\n <button\n class=\"px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed\"\n :disabled=\"!localStartDate || !localEndDate\"\n @click=\"apply\"\n >\n Apply\n </button>\n </div>\n </div>\n\n <!-- Tooltip -->\n <div v-if=\"showTooltipComputed\" class=\"rangepicker-tooltip\" :style=\"tooltipStyle\">\n <div class=\"flex items-center gap-1\">\n {{ tooltipText }}\n </div>\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<style lang=\"scss\" scoped>\n/* Styles are imported globally from compiled CSS */\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport Rangepicker from './Rangepicker.vue'\n\n// Helper function to convert HEX to RGB\nfunction hexToRgb(hex: string): string | null {\n // Remove # if present\n hex = hex.replace(/^#/, '')\n\n // Handle 3-digit hex\n if (hex.length === 3) {\n hex = hex.split('').map(char => char + char).join('')\n }\n\n if (hex.length !== 6) {\n console.warn(`[Rangepicker] Invalid hex color: ${hex}`)\n return null\n }\n\n const r = parseInt(hex.substring(0, 2), 16)\n const g = parseInt(hex.substring(2, 4), 16)\n const b = parseInt(hex.substring(4, 6), 16)\n\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n return null\n }\n\n return `${r} ${g} ${b}`\n}\n\ninterface LitepickerOptions {\n autoApply?: boolean\n allowRepick?: boolean\n dropdowns?: any\n startDate?: Date | string\n minDate?: Date | string\n maxDate?: Date | string\n format?: string\n numberOfColumns?: number\n numberOfMonths?: number\n singleMode?: boolean\n tooltipText?: any\n tooltipNumber?: any\n inlineMode?: boolean\n minDays?: number\n maxDays?: number\n showTooltip?: boolean\n}\n\ninterface Props {\n id?: string\n close?: boolean\n modelValue?: string\n name?: string\n placeholder?: string\n readonly?: boolean\n class?: string\n options?: LitepickerOptions\n variant?: 'desktop' | 'mobile'\n primaryColor?: string\n secondaryColor?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n readonly: true,\n variant: 'desktop',\n placeholder: 'Select dates',\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'focusin': []\n}>()\n\n// Refs\nconst inputRef = ref<HTMLInputElement | null>(null)\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst isOpen = ref(false)\n\n// Parse the modelValue into start/end dates\nfunction parseValue(value?: string) {\n if (!value)\n return { startDate: '', endDate: '' }\n\n const parts = value.split(' - ')\n if (parts.length === 2) {\n return {\n startDate: parts[0].trim(),\n endDate: parts[1].trim(),\n }\n }\n return { startDate: '', endDate: '' }\n}\n\nwatch(() => props?.close, (cur) => {\n if (cur)\n inputRef.value.blur()\n})\nconst localValue = ref(parseValue(props.modelValue))\n\nconst displayValue = computed(() => {\n return props.modelValue || ''\n})\n\nconst inputClass = computed(() => {\n return props.class || 'tw-w-full tw-px-3 tw-py-2 tw-border tw-border-gray-300 tw-rounded-lg tw-text-sm tw-text-gray-900 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500 focus:tw-border-blue-500'\n})\n\nfunction openPicker() {\n isOpen.value = true\n}\n\nfunction onFocus(event: FocusEvent) {\n event.preventDefault()\n event.stopPropagation()\n openPicker()\n}\n\nfunction handleUpdate(value: { startDate: string; endDate: string }) {\n localValue.value = value\n const formatted = `${value.startDate} - ${value.endDate}`\n emit('update:modelValue', formatted)\n}\n\nwatch(() => props.modelValue, (newVal) => {\n localValue.value = parseValue(newVal)\n})\n\n// Compute CSS variables for scoped styling\nconst colorStyles = computed(() => {\n const styles: Record<string, string> = {}\n\n if (props.primaryColor) {\n const rgb = hexToRgb(props.primaryColor)\n if (rgb) {\n styles['--color-primary'] = rgb\n }\n }\n\n if (props.secondaryColor) {\n const rgb = hexToRgb(props.secondaryColor)\n if (rgb) {\n styles['--color-secondary'] = rgb\n }\n }\n\n return styles\n})\n</script>\n\n<template>\n <div ref=\"wrapperRef\" class=\"rangepicker-input-wrapper\">\n <input :id=\"id\" ref=\"inputRef\" type=\"text\" :value=\"displayValue\" :placeholder=\"placeholder\" :readonly=\"readonly\"\n :name=\"name\" :class=\"inputClass\" @click=\"openPicker\" @focus=\"onFocus\" />\n\n <Rangepicker v-model=\"localValue\" v-model:is-open=\"isOpen\" :trigger-element=\"inputRef\" :min-date=\"options?.minDate\"\n :max-date=\"options?.maxDate\" :min-days=\"options?.minDays\" :max-days=\"options?.maxDays\"\n :value-of-months=\"options?.numberOfMonths || 2\" :value-of-columns=\"options?.numberOfColumns || 2\"\n :format=\"options?.format || 'DD MMM YYYY'\" :auto-apply=\"options?.autoApply !== false\"\n :show-tooltip=\"options?.showTooltip !== false\" :variant=\"variant\" :close=\"props.close\" :color-styles=\"colorStyles\"\n @update:model-value=\"handleUpdate\" />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n/* Rangepicker styles are imported globally */\n\n.rangepicker-input-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n}\n\ninput {\n cursor: pointer;\n}\n</style>\n","import { ref } from 'vue'\nimport './styles/rangepicker.scss'\nimport Rangepicker from './Rangepicker.vue'\nimport RangepickerInput from './RangepickerInput.vue'\nimport type { DateRange, RangepickerProps } from './types'\n\n// Default export - RangepickerInput (Litepicker-compatible wrapper)\nexport default RangepickerInput\n\n// Named exports\nexport { Rangepicker, RangepickerInput }\n\n// Type exports\nexport type { RangepickerProps, DateRange }\n\n// Vue 3 composable for easy integration\nexport function useRangepicker(triggerRef: any, options: Partial<RangepickerProps> = {}) {\n const isOpen = ref(false)\n const dateRange = ref<DateRange>({ startDate: '', endDate: '' })\n\n const open = () => { isOpen.value = true }\n const close = () => { isOpen.value = false }\n const toggle = () => { isOpen.value = !isOpen.value }\n\n return {\n isOpen,\n dateRange,\n open,\n close,\n toggle,\n options,\n }\n}\n"],"names":["this","e","i","t","n","r","o","a","f","h","u","d","l","s","c","m","M","_createBlock","_Teleport","_createVNode","_Transition","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","_toDisplayString","_Fragment","_renderList","_normalizeClass"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}