@theengineerguy/chronos-picker 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,30 +1 @@
1
- (function(A,b){typeof exports=="object"&&typeof module<"u"?b(exports,require("react"),require("luxon")):typeof define=="function"&&define.amd?define(["exports","react","luxon"],b):(A=typeof globalThis<"u"?globalThis:A||self,b(A.ChronosPicker={},A.React,A.luxon))})(this,function(A,b,L){"use strict";var de={exports:{}},X={};/**
2
- * @license React
3
- * react-jsx-runtime.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var _e;function Be(){if(_e)return X;_e=1;var o=b,l=Symbol.for("react.element"),d=Symbol.for("react.fragment"),c=Object.prototype.hasOwnProperty,y=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,R={key:!0,ref:!0,__self:!0,__source:!0};function v(O,g,w){var T,C={},P=null,x=null;w!==void 0&&(P=""+w),g.key!==void 0&&(P=""+g.key),g.ref!==void 0&&(x=g.ref);for(T in g)c.call(g,T)&&!R.hasOwnProperty(T)&&(C[T]=g[T]);if(O&&O.defaultProps)for(T in g=O.defaultProps,g)C[T]===void 0&&(C[T]=g[T]);return{$$typeof:l,type:O,key:P,ref:x,props:C,_owner:y.current}}return X.Fragment=d,X.jsx=v,X.jsxs=v,X}var H={};/**
10
- * @license React
11
- * react-jsx-runtime.development.js
12
- *
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var Se;function Ke(){return Se||(Se=1,process.env.NODE_ENV!=="production"&&function(){var o=b,l=Symbol.for("react.element"),d=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),R=Symbol.for("react.profiler"),v=Symbol.for("react.provider"),O=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),C=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),x=Symbol.for("react.offscreen"),I=Symbol.iterator,U="@@iterator";function M(e){if(e===null||typeof e!="object")return null;var r=I&&e[I]||e[U];return typeof r=="function"?r:null}var i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function n(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),s=1;s<r;s++)t[s-1]=arguments[s];j("error",e,t)}}function j(e,r,t){{var s=i.ReactDebugCurrentFrame,h=s.getStackAddendum();h!==""&&(r+="%s",t=t.concat([h]));var p=t.map(function(f){return String(f)});p.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,p)}}var m=!1,Q=!1,q=!1,J=!1,ee=!1,re;re=Symbol.for("react.module.reference");function ve(e){return!!(typeof e=="string"||typeof e=="function"||e===c||e===R||ee||e===y||e===w||e===T||J||e===x||m||Q||q||typeof e=="object"&&e!==null&&(e.$$typeof===P||e.$$typeof===C||e.$$typeof===v||e.$$typeof===O||e.$$typeof===g||e.$$typeof===re||e.getModuleId!==void 0))}function me(e,r,t){var s=e.displayName;if(s)return s;var h=r.displayName||r.name||"";return h!==""?t+"("+h+")":t}function ae(e){return e.displayName||"Context"}function W(e){if(e==null)return null;if(typeof e.tag=="number"&&n("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case c:return"Fragment";case d:return"Portal";case R:return"Profiler";case y:return"StrictMode";case w:return"Suspense";case T:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case O:var r=e;return ae(r)+".Consumer";case v:var t=e;return ae(t._context)+".Provider";case g:return me(e,e.render,"ForwardRef");case C:var s=e.displayName||null;return s!==null?s:W(e.type)||"Memo";case P:{var h=e,p=h._payload,f=h._init;try{return W(f(p))}catch{return null}}}return null}var z=Object.assign,B=0,oe,se,_,E,Y,V,ie;function Oe(){}Oe.__reactDisabledLog=!0;function qe(){{if(B===0){oe=console.log,se=console.info,_=console.warn,E=console.error,Y=console.group,V=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Oe,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}B++}}function er(){{if(B--,B===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:z({},e,{value:oe}),info:z({},e,{value:se}),warn:z({},e,{value:_}),error:z({},e,{value:E}),group:z({},e,{value:Y}),groupCollapsed:z({},e,{value:V}),groupEnd:z({},e,{value:ie})})}B<0&&n("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var pe=i.ReactCurrentDispatcher,be;function le(e,r,t){{if(be===void 0)try{throw Error()}catch(h){var s=h.stack.trim().match(/\n( *(at )?)/);be=s&&s[1]||""}return`
18
- `+be+e}}var ye=!1,ce;{var rr=typeof WeakMap=="function"?WeakMap:Map;ce=new rr}function we(e,r){if(!e||ye)return"";{var t=ce.get(e);if(t!==void 0)return t}var s;ye=!0;var h=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var p;p=pe.current,pe.current=null,qe();try{if(r){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(N){s=N}Reflect.construct(e,[],f)}else{try{f.call()}catch(N){s=N}e.call(f.prototype)}}else{try{throw Error()}catch(N){s=N}e()}}catch(N){if(N&&s&&typeof N.stack=="string"){for(var u=N.stack.split(`
19
- `),D=s.stack.split(`
20
- `),S=u.length-1,k=D.length-1;S>=1&&k>=0&&u[S]!==D[k];)k--;for(;S>=1&&k>=0;S--,k--)if(u[S]!==D[k]){if(S!==1||k!==1)do if(S--,k--,k<0||u[S]!==D[k]){var F=`
21
- `+u[S].replace(" at new "," at ");return e.displayName&&F.includes("<anonymous>")&&(F=F.replace("<anonymous>",e.displayName)),typeof e=="function"&&ce.set(e,F),F}while(S>=1&&k>=0);break}}}finally{ye=!1,pe.current=p,er(),Error.prepareStackTrace=h}var G=e?e.displayName||e.name:"",K=G?le(G):"";return typeof e=="function"&&ce.set(e,K),K}function tr(e,r,t){return we(e,!1)}function nr(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function ue(e,r,t){if(e==null)return"";if(typeof e=="function")return we(e,nr(e));if(typeof e=="string")return le(e);switch(e){case w:return le("Suspense");case T:return le("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case g:return tr(e.render);case C:return ue(e.type,r,t);case P:{var s=e,h=s._payload,p=s._init;try{return ue(p(h),r,t)}catch{}}}return""}var te=Object.prototype.hasOwnProperty,Ce={},Pe=i.ReactDebugCurrentFrame;function fe(e){if(e){var r=e._owner,t=ue(e.type,e._source,r?r.type:null);Pe.setExtraStackFrame(t)}else Pe.setExtraStackFrame(null)}function ar(e,r,t,s,h){{var p=Function.call.bind(te);for(var f in e)if(p(e,f)){var u=void 0;try{if(typeof e[f]!="function"){var D=Error((s||"React class")+": "+t+" type `"+f+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[f]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw D.name="Invariant Violation",D}u=e[f](r,f,s,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(S){u=S}u&&!(u instanceof Error)&&(fe(h),n("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",s||"React class",t,f,typeof u),fe(null)),u instanceof Error&&!(u.message in Ce)&&(Ce[u.message]=!0,fe(h),n("Failed %s type: %s",t,u.message),fe(null))}}}var or=Array.isArray;function ge(e){return or(e)}function sr(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function ir(e){try{return Me(e),!1}catch{return!0}}function Me(e){return""+e}function De(e){if(ir(e))return n("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",sr(e)),Me(e)}var Ne=i.ReactCurrentOwner,lr={key:!0,ref:!0,__self:!0,__source:!0},Ae,Ie;function cr(e){if(te.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function ur(e){if(te.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function fr(e,r){typeof e.ref=="string"&&Ne.current}function dr(e,r){{var t=function(){Ae||(Ae=!0,n("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function hr(e,r){{var t=function(){Ie||(Ie=!0,n("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var vr=function(e,r,t,s,h,p,f){var u={$$typeof:l,type:e,key:r,ref:t,props:f,_owner:p};return u._store={},Object.defineProperty(u._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(u,"_self",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.defineProperty(u,"_source",{configurable:!1,enumerable:!1,writable:!1,value:h}),Object.freeze&&(Object.freeze(u.props),Object.freeze(u)),u};function mr(e,r,t,s,h){{var p,f={},u=null,D=null;t!==void 0&&(De(t),u=""+t),ur(r)&&(De(r.key),u=""+r.key),cr(r)&&(D=r.ref,fr(r,h));for(p in r)te.call(r,p)&&!lr.hasOwnProperty(p)&&(f[p]=r[p]);if(e&&e.defaultProps){var S=e.defaultProps;for(p in S)f[p]===void 0&&(f[p]=S[p])}if(u||D){var k=typeof e=="function"?e.displayName||e.name||"Unknown":e;u&&dr(f,k),D&&hr(f,k)}return vr(e,u,D,h,s,Ne.current,f)}}var Ee=i.ReactCurrentOwner,Fe=i.ReactDebugCurrentFrame;function Z(e){if(e){var r=e._owner,t=ue(e.type,e._source,r?r.type:null);Fe.setExtraStackFrame(t)}else Fe.setExtraStackFrame(null)}var Te;Te=!1;function xe(e){return typeof e=="object"&&e!==null&&e.$$typeof===l}function We(){{if(Ee.current){var e=W(Ee.current.type);if(e)return`
22
-
23
- Check the render method of \``+e+"`."}return""}}function pr(e){return""}var Ye={};function br(e){{var r=We();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=`
24
-
25
- Check the top-level render call using <`+t+">.")}return r}}function Le(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=br(r);if(Ye[t])return;Ye[t]=!0;var s="";e&&e._owner&&e._owner!==Ee.current&&(s=" It was passed a child from "+W(e._owner.type)+"."),Z(e),n('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,s),Z(null)}}function Ue(e,r){{if(typeof e!="object")return;if(ge(e))for(var t=0;t<e.length;t++){var s=e[t];xe(s)&&Le(s,r)}else if(xe(e))e._store&&(e._store.validated=!0);else if(e){var h=M(e);if(typeof h=="function"&&h!==e.entries)for(var p=h.call(e),f;!(f=p.next()).done;)xe(f.value)&&Le(f.value,r)}}}function yr(e){{var r=e.type;if(r==null||typeof r=="string")return;var t;if(typeof r=="function")t=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===g||r.$$typeof===C))t=r.propTypes;else return;if(t){var s=W(r);ar(t,e.props,"prop",s,e)}else if(r.PropTypes!==void 0&&!Te){Te=!0;var h=W(r);n("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",h||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&n("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function gr(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var s=r[t];if(s!=="children"&&s!=="key"){Z(e),n("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",s),Z(null);break}}e.ref!==null&&(Z(e),n("Invalid attribute `ref` supplied to `React.Fragment`."),Z(null))}}var ze={};function Ve(e,r,t,s,h,p){{var f=ve(e);if(!f){var u="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(u+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var D=pr();D?u+=D:u+=We();var S;e===null?S="null":ge(e)?S="array":e!==void 0&&e.$$typeof===l?(S="<"+(W(e.type)||"Unknown")+" />",u=" Did you accidentally export a JSX literal instead of a component?"):S=typeof e,n("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",S,u)}var k=mr(e,r,t,h,p);if(k==null)return k;if(f){var F=r.children;if(F!==void 0)if(s)if(ge(F)){for(var G=0;G<F.length;G++)Ue(F[G],e);Object.freeze&&Object.freeze(F)}else n("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Ue(F,e)}if(te.call(r,"key")){var K=W(e),N=Object.keys(r).filter(function(Sr){return Sr!=="key"}),je=N.length>0?"{key: someKey, "+N.join(": ..., ")+": ...}":"{key: someKey}";if(!ze[K+je]){var _r=N.length>0?"{"+N.join(": ..., ")+": ...}":"{}";n(`A props object containing a "key" prop is being spread into JSX:
26
- let props = %s;
27
- <%s {...props} />
28
- React keys must be passed directly to JSX without using spread:
29
- let props = %s;
30
- <%s key={someKey} {...props} />`,je,K,_r,K),ze[K+je]=!0}}return e===c?gr(k):yr(k),k}}function Er(e,r,t){return Ve(e,r,t,!0)}function Tr(e,r,t){return Ve(e,r,t,!1)}var xr=Tr,jr=Er;H.Fragment=c,H.jsx=xr,H.jsxs=jr}()),H}process.env.NODE_ENV==="production"?de.exports=Be():de.exports=Ke();var a=de.exports;const Re="Asia/Kolkata",he=[{value:"Asia/Kolkata",label:"India (IST)"},{value:"America/New_York",label:"Eastern Time (ET)"},{value:"America/Chicago",label:"Central Time (CT)"},{value:"America/Denver",label:"Mountain Time (MT)"},{value:"America/Los_Angeles",label:"Pacific Time (PT)"},{value:"Europe/London",label:"London (GMT/BST)"},{value:"Europe/Paris",label:"Central Europe (CET)"},{value:"Asia/Dubai",label:"Dubai (GST)"},{value:"Asia/Singapore",label:"Singapore (SGT)"},{value:"Asia/Tokyo",label:"Tokyo (JST)"},{value:"Australia/Sydney",label:"Sydney (AEDT)"},{value:"UTC",label:"UTC"}];function $(o,l){return L.DateTime.isDateTime(o)?o.setZone(l):typeof o=="string"?L.DateTime.fromISO(o,{zone:l}):L.DateTime.fromJSDate(o,{zone:l})}function ne(o){return L.DateTime.now().setZone(o)}function ke(o){const d=L.DateTime.now().setZone(o).offset,c=Math.floor(Math.abs(d)/60),y=Math.abs(d)%60;return`UTC${d>=0?"+":"-"}${c}${y>0?`:${y.toString().padStart(2,"0")}`:""}`}function Je(o,l,d,c,y,R){const v=L.DateTime.fromObject({year:o,month:l,day:1},{zone:d}),O=v.startOf("week"),w=v.endOf("month").endOf("week"),T=L.DateTime.now().setZone(d).startOf("day"),C=[];let P=[],x=O;for(;x<=w;){const I=x.month===l,U=x.hasSame(T,"day"),M=c?x.hasSame(c,"day"):!1;let i=!1;y&&x<y.startOf("day")&&(i=!0),R&&x>R.endOf("day")&&(i=!0),P.push({date:x,isCurrentMonth:I,isToday:U,isSelected:M,isDisabled:i}),P.length===7&&(C.push(P),P=[]),x=x.plus({days:1})}return C}function Ze(){const o=L.DateTime.now().startOf("week"),l=[];for(let d=0;d<7;d++){const c=o.plus({days:d});l.push(c.toFormat("ccc"))}return l}function Ge(){const o=[];for(let l=1;l<=12;l++){const d=L.DateTime.fromObject({month:l});o.push(d.toFormat("MMMM"))}return o}const Xe=({viewDate:o,selectedDate:l,onDateSelect:d,onViewDateChange:c,timezone:y,minDate:R,maxDate:v})=>{const O=b.useMemo(()=>Je(o.year,o.month,y,l??void 0,R,v),[o,l,y,R,v]),g=b.useMemo(()=>Ze(),[]),w=b.useMemo(()=>Ge(),[]),T=()=>{c(o.minus({months:1}))},C=()=>{c(o.plus({months:1}))},P=n=>{const j=parseInt(n.target.value,10);c(o.set({month:j}))},x=n=>{const j=parseInt(n.target.value,10);c(o.set({year:j}))},I=(n,j)=>{j||d(n)},U=(n,j,m)=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),I(j,m))},M=o.year,i=Array.from({length:21},(n,j)=>M-10+j);return a.jsxs("div",{className:"chronos-calendar",role:"region","aria-label":"Calendar",children:[a.jsxs("div",{className:"chronos-calendar-header",children:[a.jsx("button",{type:"button",className:"chronos-nav-button",onClick:T,"aria-label":"Previous month",children:"‹"}),a.jsxs("div",{className:"chronos-month-year-selectors",children:[a.jsx("select",{className:"chronos-month-select",value:o.month,onChange:P,"aria-label":"Select month",children:w.map((n,j)=>a.jsx("option",{value:j+1,children:n},j))}),a.jsx("select",{className:"chronos-year-select",value:o.year,onChange:x,"aria-label":"Select year",children:i.map(n=>a.jsx("option",{value:n,children:n},n))})]}),a.jsx("button",{type:"button",className:"chronos-nav-button",onClick:C,"aria-label":"Next month",children:"›"})]}),a.jsxs("div",{className:"chronos-calendar-grid",children:[a.jsx("div",{className:"chronos-weekday-row",children:g.map(n=>a.jsx("div",{className:"chronos-weekday",children:n},n))}),O.map((n,j)=>a.jsx("div",{className:"chronos-week-row",children:n.map((m,Q)=>a.jsx("button",{type:"button",className:`chronos-day ${m.isSelected?"selected":""} ${m.isToday?"today":""} ${m.isCurrentMonth?"":"other-month"} ${m.isDisabled?"disabled":""}`,onClick:()=>I(m.date,m.isDisabled),onKeyDown:q=>U(q,m.date,m.isDisabled),disabled:m.isDisabled,"aria-label":m.date.toFormat("MMMM d, yyyy"),"aria-selected":m.isSelected,"aria-current":m.isToday?"date":void 0,children:m.date.day},Q))},j))]})]})},He=({value:o,onChange:l,use24Hour:d})=>{const[c,y]=b.useState((o==null?void 0:o.hour)??12),[R,v]=b.useState((o==null?void 0:o.minute)??0),[O,g]=b.useState(o&&o.hour>=12?"PM":"AM");b.useEffect(()=>{o&&(y(o.hour),v(o.minute),g(o.hour>=12?"PM":"AM"))},[o]);const w=i=>{y(i);let n=i;d||(O==="PM"&&i!==12?n=i+12:O==="AM"&&i===12&&(n=0)),l(n,R)},T=i=>{v(i),l(c,i)},C=()=>{const i=O==="AM"?"PM":"AM";g(i);let n=c;i==="PM"&&c!==12?n=c+12:i==="AM"&&c===12?n=0:i==="AM"&&c>12&&(n=c-12),l(n,R)},P=d?c:c%12||12,x=d?23:12,I=d?0:1,U=Array.from({length:x-I+1},(i,n)=>I+n),M=Array.from({length:60},(i,n)=>n);return a.jsxs("div",{className:"chronos-time-picker",role:"group","aria-label":"Time picker",children:[a.jsxs("div",{className:"chronos-time-header",children:[a.jsxs("svg",{className:"chronos-clock-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("polyline",{points:"12 6 12 12 16 14"})]}),a.jsx("span",{children:"Time"})]}),a.jsxs("div",{className:"chronos-time-controls",children:[a.jsxs("div",{className:"chronos-time-input-group",children:[a.jsx("label",{htmlFor:"chronos-hour-select",className:"chronos-time-label",children:"Hour"}),a.jsx("select",{id:"chronos-hour-select",className:"chronos-time-select",value:P,onChange:i=>w(parseInt(i.target.value,10)),"aria-label":"Select hour",children:U.map(i=>a.jsx("option",{value:i,children:i.toString().padStart(2,"0")},i))})]}),a.jsx("span",{className:"chronos-time-separator",children:":"}),a.jsxs("div",{className:"chronos-time-input-group",children:[a.jsx("label",{htmlFor:"chronos-minute-select",className:"chronos-time-label",children:"Minute"}),a.jsx("select",{id:"chronos-minute-select",className:"chronos-time-select",value:R,onChange:i=>T(parseInt(i.target.value,10)),"aria-label":"Select minute",children:M.map(i=>a.jsx("option",{value:i,children:i.toString().padStart(2,"0")},i))})]}),!d&&a.jsx("button",{type:"button",className:"chronos-period-toggle",onClick:C,"aria-label":`Switch to ${O==="AM"?"PM":"AM"}`,children:O})]})]})},$e=({value:o,onChange:l})=>{const[d,c]=b.useState(!1),y=he.find(v=>v.value===o)||{label:o},R=v=>{l(v),c(!1)};return a.jsxs("div",{className:"chronos-timezone-selector",children:[a.jsxs("div",{className:"chronos-timezone-header",children:[a.jsxs("svg",{className:"chronos-globe-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),a.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]}),a.jsx("span",{children:"Timezone"})]}),a.jsxs("button",{type:"button",className:"chronos-timezone-button",onClick:()=>c(!d),"aria-expanded":d,"aria-label":"Select timezone",children:[a.jsx("span",{className:"chronos-timezone-label",children:y.label}),a.jsx("span",{className:"chronos-timezone-offset",children:ke(o)}),a.jsx("svg",{className:`chronos-chevron ${d?"expanded":""}`,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:a.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),d&&a.jsx("div",{className:"chronos-timezone-list",role:"listbox",children:he.map(v=>a.jsxs("button",{type:"button",className:`chronos-timezone-option ${v.value===o?"selected":""}`,onClick:()=>R(v.value),role:"option","aria-selected":v.value===o,children:[a.jsx("span",{className:"chronos-timezone-option-label",children:v.label}),a.jsx("span",{className:"chronos-timezone-option-offset",children:ke(v.value)})]},v.value))})]})},Qe=({value:o,onChange:l,timezone:d=Re,dateFormat:c="DD",timeFormat:y="HH:mm",minDate:R,maxDate:v,placeholder:O="Select date and time",disabled:g=!1,showTime:w=!0,use24Hour:T=!0,className:C="",ariaLabel:P="Date and time picker",showTimezoneSelector:x=!1,theme:I="light",orientation:U="portrait"})=>{const[M,i]=b.useState(!1),[n,j]=b.useState(()=>o?$(o,d):null),[m,Q]=b.useState(d),[q,J]=b.useState(()=>n||ne(d)),ee=b.useRef(null),re=b.useRef(null);b.useEffect(()=>{o&&j($(o,m))},[o,m]),b.useEffect(()=>{const _=E=>{ee.current&&!ee.current.contains(E.target)&&i(!1)};if(M)return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[M]),b.useEffect(()=>{const _=E=>{var Y;E.key==="Escape"&&M&&(i(!1),(Y=re.current)==null||Y.focus())};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[M]);const ve=b.useCallback(_=>{let E=_;if(n&&(E=_.set({hour:n.hour,minute:n.minute,second:n.second})),j(E),J(E),w||i(!1),l){const Y={iso:E.toISO()||"",formatted:E.toFormat(`${c} ${y}`),timestamp:E.toMillis(),dateTime:E};l(Y)}},[n,w,l,c,y]),me=b.useCallback((_,E)=>{const V=(n||ne(m)).set({hour:_,minute:E,second:0});if(j(V),l){const ie={iso:V.toISO()||"",formatted:V.toFormat(`${c} ${y}`),timestamp:V.toMillis(),dateTime:V};l(ie)}},[n,m,l,c,y]),ae=b.useCallback(_=>{if(Q(_),n){const E=n.setZone(_);if(j(E),J(E),l){const Y={iso:E.toISO()||"",formatted:E.toFormat(`${c} ${y}`),timestamp:E.toMillis(),dateTime:E};l(Y)}}else J(ne(_))},[n,l,c,y]),W=()=>{g||i(!M)},z=_=>{(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),W())},B=n?n.toFormat(`${c} ${w?y:""}`):"",oe=R?$(R,m):void 0,se=v?$(v,m):void 0;return a.jsxs("div",{ref:ee,className:`chronos-picker ${C}`,"data-disabled":g,"data-theme":I,children:[a.jsxs("div",{className:"chronos-input-wrapper",onClick:W,children:[a.jsx("input",{ref:re,type:"text",className:"chronos-input",value:B,placeholder:O,readOnly:!0,disabled:g,onKeyDown:z,"aria-label":P,"aria-expanded":M,"aria-haspopup":"dialog",role:"combobox"}),a.jsxs("svg",{className:"chronos-calendar-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[a.jsx("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),a.jsx("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),a.jsx("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),a.jsx("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})]}),M&&a.jsx("div",{className:"chronos-dropdown","data-orientation":U,role:"dialog","aria-label":"Date and time picker dialog",children:a.jsxs("div",{className:"chronos-dropdown-content",children:[a.jsx(Xe,{viewDate:q,selectedDate:n,onDateSelect:ve,onViewDateChange:J,timezone:m,minDate:oe,maxDate:se}),(w||x)&&a.jsxs("div",{className:"chronos-sidebar",children:[w&&a.jsx(He,{value:n,onChange:me,use24Hour:T,timezone:m}),x&&a.jsx($e,{value:m,onChange:ae})]})]})})]})};A.COMMON_TIMEZONES=he,A.DEFAULT_TIMEZONE=Re,A.DateTimePicker=Qe,A.convertToTimezone=$,A.nowInTimezone=ne,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
1
+ (function(v,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("luxon")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","luxon"],e):(v=typeof globalThis<"u"?globalThis:v||self,e(v.ChronosPicker={},v.jsxRuntime,v.React,v.luxon))})(this,function(v,e,i,C){"use strict";const U="Asia/Kolkata",W=[{value:"Asia/Kolkata",label:"India (IST)"},{value:"America/New_York",label:"Eastern Time (ET)"},{value:"America/Chicago",label:"Central Time (CT)"},{value:"America/Denver",label:"Mountain Time (MT)"},{value:"America/Los_Angeles",label:"Pacific Time (PT)"},{value:"Europe/London",label:"London (GMT/BST)"},{value:"Europe/Paris",label:"Central Europe (CET)"},{value:"Asia/Dubai",label:"Dubai (GST)"},{value:"Asia/Singapore",label:"Singapore (SGT)"},{value:"Asia/Tokyo",label:"Tokyo (JST)"},{value:"Australia/Sydney",label:"Sydney (AEDT)"},{value:"UTC",label:"UTC"}];function E(s,t){return C.DateTime.isDateTime(s)?s.setZone(t):typeof s=="string"?C.DateTime.fromISO(s,{zone:t}):C.DateTime.fromJSDate(s,{zone:t})}function j(s){return C.DateTime.now().setZone(s)}function Y(s){const r=C.DateTime.now().setZone(s).offset,a=Math.floor(Math.abs(r)/60),d=Math.abs(r)%60;return`UTC${r>=0?"+":"-"}${a}${d>0?`:${d.toString().padStart(2,"0")}`:""}`}function Q(s,t,r,a,d,b,h,p){const T=C.DateTime.fromObject({year:s,month:t,day:1},{zone:r}),M=T.startOf("week"),P=T.endOf("month").endOf("week"),z=C.DateTime.now().setZone(r).startOf("day"),A=h!=null&&p!=null,D=h==null?void 0:h.startOf("day"),x=p==null?void 0:p.endOf("day"),I=[];let o=[],c=M;for(;c<=P;){const y=c.month===t,S=c.hasSame(z,"day"),g=c.startOf("day");let n=!1,f=!1,l=!1,O=!1;A&&D&&x?(l=g.hasSame(D,"day"),O=g.hasSame(x,"day"),f=g>=D&&g<=x||l||O,n=l||O):a&&(n=c.hasSame(a,"day"));let N=!1;d&&c<d.startOf("day")&&(N=!0),b&&c>b.endOf("day")&&(N=!0),o.push({date:c,isCurrentMonth:y,isToday:S,isSelected:n,isDisabled:N,isInRange:f,isRangeStart:l,isRangeEnd:O}),o.length===7&&(I.push(o),o=[]),c=c.plus({days:1})}return I}function X(){const s=C.DateTime.now().startOf("week"),t=[];for(let r=0;r<7;r++){const a=s.plus({days:r});t.push(a.toFormat("ccc"))}return t}function F(){const s=[];for(let t=1;t<=12;t++){const r=C.DateTime.fromObject({month:t});s.push(r.toFormat("MMMM"))}return s}const V=({viewDate:s,selectedDate:t,onDateSelect:r,onViewDateChange:a,timezone:d,minDate:b,maxDate:h,selectedStart:p,selectedEnd:T,onRangeSelect:M})=>{const L=M!=null,P=i.useMemo(()=>Q(s.year,s.month,d,t??void 0,b,h,p??void 0,T??void 0),[s,t,d,b,h,p,T]),z=i.useMemo(()=>X(),[]),A=i.useMemo(()=>F(),[]),D=()=>{a(s.minus({months:1}))},x=()=>{a(s.plus({months:1}))},I=n=>{const f=parseInt(n.target.value,10);a(s.set({month:f}))},o=n=>{const f=parseInt(n.target.value,10);a(s.set({year:f}))},c=(n,f)=>{if(!f)if(L&&M){const l=n.startOf("day");if(p==null)M(n,n);else if(T!=null&&p.hasSame(T,"day")){const O=p.startOf("day");l<O?M(n,p):M(p,n)}else M(n,n)}else r(n)},y=(n,f,l)=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),c(f,l))},S=s.year,g=Array.from({length:21},(n,f)=>S-10+f);return e.jsxs("div",{className:"chronos-calendar",role:"region","aria-label":"Calendar",children:[e.jsxs("div",{className:"chronos-calendar-header",children:[e.jsx("button",{type:"button",className:"chronos-nav-button",onClick:D,"aria-label":"Previous month",children:"‹"}),e.jsxs("div",{className:"chronos-month-year-selectors",children:[e.jsx("select",{className:"chronos-month-select",value:s.month,onChange:I,"aria-label":"Select month",children:A.map((n,f)=>e.jsx("option",{value:f+1,children:n},f))}),e.jsx("select",{className:"chronos-year-select",value:s.year,onChange:o,"aria-label":"Select year",children:g.map(n=>e.jsx("option",{value:n,children:n},n))})]}),e.jsx("button",{type:"button",className:"chronos-nav-button",onClick:x,"aria-label":"Next month",children:"›"})]}),e.jsxs("div",{className:"chronos-calendar-grid",children:[e.jsx("div",{className:"chronos-weekday-row",children:z.map(n=>e.jsx("div",{className:"chronos-weekday",children:n},n))}),P.map((n,f)=>e.jsx("div",{className:"chronos-week-row",children:n.map((l,O)=>e.jsx("button",{type:"button",className:`chronos-day ${l.isSelected?"selected":""} ${l.isToday?"today":""} ${l.isCurrentMonth?"":"other-month"} ${l.isDisabled?"disabled":""} ${l.isInRange?"in-range":""} ${l.isRangeStart?"range-start":""} ${l.isRangeEnd?"range-end":""}`,onClick:()=>c(l.date,l.isDisabled),onKeyDown:N=>y(N,l.date,l.isDisabled),disabled:l.isDisabled,"aria-label":l.date.toFormat("MMMM d, yyyy"),"aria-selected":l.isSelected,"aria-current":l.isToday?"date":void 0,children:l.date.day},O))},f))]})]})},R=({value:s,onChange:t,use24Hour:r})=>{const[a,d]=i.useState((s==null?void 0:s.hour)??12),[b,h]=i.useState((s==null?void 0:s.minute)??0),[p,T]=i.useState(s&&s.hour>=12?"PM":"AM");i.useEffect(()=>{s&&(d(s.hour),h(s.minute),T(s.hour>=12?"PM":"AM"))},[s]);const M=o=>{d(o);let c=o;r||(p==="PM"&&o!==12?c=o+12:p==="AM"&&o===12&&(c=0)),t(c,b)},L=o=>{h(o),t(a,o)},P=()=>{const o=p==="AM"?"PM":"AM";T(o);let c=a;o==="PM"&&a!==12?c=a+12:o==="AM"&&a===12?c=0:o==="AM"&&a>12&&(c=a-12),t(c,b)},z=r?a:a%12||12,A=r?23:12,D=r?0:1,x=Array.from({length:A-D+1},(o,c)=>D+c),I=Array.from({length:60},(o,c)=>c);return e.jsxs("div",{className:"chronos-time-picker",role:"group","aria-label":"Time picker",children:[e.jsxs("div",{className:"chronos-time-header",children:[e.jsxs("svg",{className:"chronos-clock-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("polyline",{points:"12 6 12 12 16 14"})]}),e.jsx("span",{children:"Time"})]}),e.jsxs("div",{className:"chronos-time-controls",children:[e.jsxs("div",{className:"chronos-time-input-group",children:[e.jsx("label",{htmlFor:"chronos-hour-select",className:"chronos-time-label",children:"Hour"}),e.jsx("select",{id:"chronos-hour-select",className:"chronos-time-select",value:z,onChange:o=>M(parseInt(o.target.value,10)),"aria-label":"Select hour",children:x.map(o=>e.jsx("option",{value:o,children:o.toString().padStart(2,"0")},o))})]}),e.jsx("span",{className:"chronos-time-separator",children:":"}),e.jsxs("div",{className:"chronos-time-input-group",children:[e.jsx("label",{htmlFor:"chronos-minute-select",className:"chronos-time-label",children:"Minute"}),e.jsx("select",{id:"chronos-minute-select",className:"chronos-time-select",value:b,onChange:o=>L(parseInt(o.target.value,10)),"aria-label":"Select minute",children:I.map(o=>e.jsx("option",{value:o,children:o.toString().padStart(2,"0")},o))})]}),!r&&e.jsx("button",{type:"button",className:"chronos-period-toggle",onClick:P,"aria-label":`Switch to ${p==="AM"?"PM":"AM"}`,children:p})]})]})},ee=({value:s,onChange:t})=>{const[r,a]=i.useState(!1),d=W.find(h=>h.value===s)||{label:s},b=h=>{t(h),a(!1)};return e.jsxs("div",{className:"chronos-timezone-selector",children:[e.jsxs("div",{className:"chronos-timezone-header",children:[e.jsxs("svg",{className:"chronos-globe-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),e.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]}),e.jsx("span",{children:"Timezone"})]}),e.jsxs("button",{type:"button",className:"chronos-timezone-button",onClick:()=>a(!r),"aria-expanded":r,"aria-label":"Select timezone",children:[e.jsx("span",{className:"chronos-timezone-label",children:d.label}),e.jsx("span",{className:"chronos-timezone-offset",children:Y(s)}),e.jsx("svg",{className:`chronos-chevron ${r?"expanded":""}`,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),r&&e.jsx("div",{className:"chronos-timezone-list",role:"listbox",children:W.map(h=>e.jsxs("button",{type:"button",className:`chronos-timezone-option ${h.value===s?"selected":""}`,onClick:()=>b(h.value),role:"option","aria-selected":h.value===s,children:[e.jsx("span",{className:"chronos-timezone-option-label",children:h.label}),e.jsx("span",{className:"chronos-timezone-option-offset",children:Y(h.value)})]},h.value))})]})};function q(s,t,r){return{iso:s.toISO()||"",formatted:s.toFormat(`${t} ${r}`),timestamp:s.toMillis(),dateTime:s}}const se=({value:s,onChange:t,timezone:r=U,dateFormat:a="DD",timeFormat:d="HH:mm",minDate:b,maxDate:h,placeholder:p="Select date and time",disabled:T=!1,showTime:M=!0,use24Hour:L=!0,className:P="",ariaLabel:z="Date and time picker",showTimezoneSelector:A=!1,theme:D="light",orientation:x="portrait",selectionMode:I="single",rangeValue:o,onRangeChange:c})=>{const y=I==="range",[S,g]=i.useState(!1),[n,f]=i.useState(()=>!y&&s?E(s,r):null),[l,O]=i.useState(()=>y&&(o!=null&&o.start)?E(o.start,r):null),[N,G]=i.useState(()=>y&&(o!=null&&o.end)?E(o.end,r):null),[k,oe]=i.useState(r),[ne,_]=i.useState(()=>n||l||N||j(r)),K=i.useRef(null),J=i.useRef(null);i.useEffect(()=>{!y&&s&&f(E(s,k))},[s,k,y]),i.useEffect(()=>{y&&(o==null?void 0:o.start)!=null&&(o==null?void 0:o.end)!=null&&(O(E(o.start,k)),G(E(o.end,k)))},[y,o,k]),i.useEffect(()=>{const u=m=>{K.current&&!K.current.contains(m.target)&&g(!1)};if(S)return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[S]),i.useEffect(()=>{const u=m=>{var w;m.key==="Escape"&&S&&(g(!1),(w=J.current)==null||w.focus())};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[S]);const te=i.useCallback(u=>{let m=u;if(n&&(m=u.set({hour:n.hour,minute:n.minute,second:n.second})),f(m),_(m),M||g(!1),t){const w={iso:m.toISO()||"",formatted:m.toFormat(`${a} ${d}`),timestamp:m.toMillis(),dateTime:m};t(w)}},[n,M,t,a,d]),ae=i.useCallback((u,m)=>{const $=(n||j(k)).set({hour:u,minute:m,second:0});if(f($),t){const Z={iso:$.toISO()||"",formatted:$.toFormat(`${a} ${d}`),timestamp:$.toMillis(),dateTime:$};t(Z)}},[n,k,t,a,d]),re=i.useCallback((u,m)=>{const w=u.startOf("day"),$=m.startOf("day"),[Z,B]=w<=$?[w,$]:[$,w];if(O(Z),G(B),_(Z),c){const fe=q(Z,a,d),me=q(B,a,d),pe=Math.max(0,Math.ceil(B.diff(Z,"days").days));c({start:fe,end:me,nights:pe})}},[c,a,d]),le=i.useCallback(u=>{if(oe(u),n){const m=n.setZone(u);if(f(m),_(m),t){const w={iso:m.toISO()||"",formatted:m.toFormat(`${a} ${d}`),timestamp:m.toMillis(),dateTime:m};t(w)}}else _(j(u))},[n,t,a,d]),H=()=>{T||g(!S)},ce=u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),H())},ie=y?l&&N?`${l.toFormat("d MMM yyyy")} – ${N.toFormat("d MMM yyyy")}`:"":n?n.toFormat(`${a} ${M?d:""}`):"",de=b?E(b,k):void 0,he=h?E(h,k):void 0;return e.jsxs("div",{ref:K,className:`chronos-picker ${P}`,"data-disabled":T,"data-theme":D,children:[e.jsxs("div",{className:"chronos-input-wrapper",onClick:H,children:[e.jsx("input",{ref:J,type:"text",className:"chronos-input",value:ie,placeholder:p,readOnly:!0,disabled:T,onKeyDown:ce,"aria-label":z,"aria-expanded":S,"aria-haspopup":"dialog",role:"combobox"}),e.jsxs("svg",{className:"chronos-calendar-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),e.jsx("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),e.jsx("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),e.jsx("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})]}),S&&e.jsx("div",{className:"chronos-dropdown","data-orientation":x,"data-range-mode":y,role:"dialog","aria-label":"Date and time picker dialog",children:e.jsxs("div",{className:"chronos-dropdown-content",children:[y&&l&&N&&e.jsxs("div",{className:"chronos-range-summary",children:[e.jsxs("div",{className:"chronos-range-nights",children:[Math.max(0,Math.ceil(N.diff(l,"days").days))," nights"]}),e.jsxs("div",{className:"chronos-range-dates",children:[l.toFormat("d MMM yyyy")," – ",N.toFormat("d MMM yyyy")]})]}),e.jsx(V,{viewDate:ne,selectedDate:y?null:n,onDateSelect:te,onViewDateChange:_,timezone:k,minDate:de,maxDate:he,selectedStart:y?l:void 0,selectedEnd:y?N:void 0,onRangeSelect:y?re:void 0}),!y&&(M||A)&&e.jsxs("div",{className:"chronos-sidebar",children:[M&&e.jsx(R,{value:n,onChange:ae,use24Hour:L,timezone:k}),A&&e.jsx(ee,{value:k,onChange:le})]})]})})]})};v.COMMON_TIMEZONES=W,v.DEFAULT_TIMEZONE=U,v.DateTimePicker=se,v.convertToTimezone=E,v.nowInTimezone=j,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
@@ -9,6 +9,10 @@ interface CalendarProps {
9
9
  timezone: string;
10
10
  minDate?: DateTime;
11
11
  maxDate?: DateTime;
12
+ /** Range mode: start and end for range selection */
13
+ selectedStart?: DateTime | null;
14
+ selectedEnd?: DateTime | null;
15
+ onRangeSelect?: (start: DateTime, end: DateTime) => void;
12
16
  }
13
17
  export declare const Calendar: React.FC<CalendarProps>;
14
18
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,UAAU,aAAa;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwK5C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAiB,MAAM,UAAU,CAAC;AAK9D,OAAO,8BAA8B,CAAC;AAWtC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuSxD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqIhD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimezoneSelector.d.ts","sourceRoot":"","sources":["../../../src/components/TimezoneSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgF5D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { DateTimePicker } from './components/DateTimePicker';
2
+ export type { DateTimePickerProps, DateTimeValue, DateTimeRangeValue } from './types';
3
+ export { DEFAULT_TIMEZONE, COMMON_TIMEZONES, convertToTimezone, nowInTimezone } from './utils/timezone';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -10,6 +10,14 @@ export interface DateTimeValue {
10
10
  /** Luxon DateTime object */
11
11
  dateTime: DateTime;
12
12
  }
13
+ export interface DateTimeRangeValue {
14
+ /** Start of range */
15
+ start: DateTimeValue;
16
+ /** End of range */
17
+ end: DateTimeValue;
18
+ /** Number of nights/days in range (end - start in days) */
19
+ nights: number;
20
+ }
13
21
  export interface DateTimePickerProps {
14
22
  /** Selected date and time value */
15
23
  value?: Date | string | DateTime;
@@ -43,6 +51,15 @@ export interface DateTimePickerProps {
43
51
  theme?: 'light' | 'dark';
44
52
  /** Orientation: 'portrait' (stacked, default) or 'landscape' (side-by-side) */
45
53
  orientation?: 'portrait' | 'landscape';
54
+ /** Selection mode: 'single' (default) or 'range' for start/end date range */
55
+ selectionMode?: 'single' | 'range';
56
+ /** Range value when selectionMode is 'range' */
57
+ rangeValue?: {
58
+ start: Date | string | DateTime;
59
+ end: Date | string | DateTime;
60
+ } | null;
61
+ /** Callback when range changes (selectionMode is 'range') */
62
+ onRangeChange?: (value: DateTimeRangeValue) => void;
46
63
  }
47
64
  export interface CalendarDate {
48
65
  date: DateTime;
@@ -50,5 +67,11 @@ export interface CalendarDate {
50
67
  isToday: boolean;
51
68
  isSelected: boolean;
52
69
  isDisabled: boolean;
70
+ /** In range (between start and end, or start/end day) */
71
+ isInRange?: boolean;
72
+ /** Is the range start date */
73
+ isRangeStart?: boolean;
74
+ /** Is the range end date */
75
+ isRangeEnd?: boolean;
53
76
  }
54
77
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,mBAAmB;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEjC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAEvC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEnC,gDAAgD;IAChD,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAEvF,6DAA6D;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -4,7 +4,7 @@ import { CalendarDate } from '../types';
4
4
  /**
5
5
  * Generate calendar grid for a given month
6
6
  */
7
- export declare function generateCalendarMonth(year: number, month: number, timezone: string, selectedDate?: DateTime, minDate?: DateTime, maxDate?: DateTime): CalendarDate[][];
7
+ export declare function generateCalendarMonth(year: number, month: number, timezone: string, selectedDate?: DateTime, minDate?: DateTime, maxDate?: DateTime, selectedStart?: DateTime, selectedEnd?: DateTime): CalendarDate[][];
8
8
  /**
9
9
  * Get weekday names
10
10
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/utils/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,QAAQ,EACvB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,QAAQ,EACxB,WAAW,CAAC,EAAE,QAAQ,GACrB,YAAY,EAAE,EAAE,CAmElB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAU1C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CASxC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../../src/utils/timezone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;GAa5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAU5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAExD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .chronos-picker{position:relative;display:inline-block;width:100%;max-width:320px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:#1a1a1a}.chronos-picker[data-disabled=true]{opacity:.6;cursor:not-allowed}.chronos-input-wrapper{position:relative;display:flex;align-items:center;cursor:pointer}.chronos-input{width:100%;padding:10px 40px 10px 14px;border:1.5px solid #d1d5db;border-radius:8px;font-size:14px;color:#1a1a1a;background-color:#fff;transition:all .2s ease;cursor:pointer;outline:none}.chronos-input:hover:not(:disabled){border-color:#9ca3af}.chronos-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.chronos-input::placeholder{color:#9ca3af}.chronos-calendar-icon{position:absolute;right:12px;width:20px;height:20px;color:#6b7280;pointer-events:none;transition:color .2s ease}.chronos-input:hover:not(:disabled)~.chronos-calendar-icon,.chronos-input:focus~.chronos-calendar-icon{color:#3b82f6}.chronos-dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:9999;min-width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 4px 6px -1px #00000014,0 10px 30px -4px #0000001f;overflow:hidden;animation:chronos-dropdown-appear .2s ease}.chronos-dropdown-content{display:flex;flex-direction:column}.chronos-dropdown[data-orientation=portrait] .chronos-dropdown-content{flex-direction:column}.chronos-dropdown[data-orientation=landscape]{min-width:auto}.chronos-dropdown[data-orientation=landscape] .chronos-dropdown-content{flex-direction:row}.chronos-dropdown[data-orientation=landscape] .chronos-calendar{border-right:1px solid #e5e7eb;border-bottom:none}.chronos-dropdown[data-orientation=landscape] .chronos-sidebar{display:flex;flex-direction:column;min-width:240px}.chronos-dropdown[data-orientation=landscape] .chronos-time-picker{border-top:none;border-bottom:1px solid #e5e7eb}.chronos-dropdown[data-orientation=landscape] .chronos-time-picker:last-child{border-bottom:none}.chronos-dropdown[data-orientation=landscape] .chronos-timezone-selector{border-top:none}@keyframes chronos-dropdown-appear{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chronos-calendar{padding:16px}.chronos-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.chronos-nav-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#4b5563;font-size:20px;font-weight:600;cursor:pointer;transition:all .15s ease}.chronos-nav-button:hover{background:#f3f4f6;color:#1a1a1a}.chronos-nav-button:active{transform:scale(.95)}.chronos-month-year-selectors{display:flex;gap:8px;flex:1;justify-content:center}.chronos-month-select,.chronos-year-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-month-select:hover,.chronos-year-select:hover{border-color:#9ca3af}.chronos-month-select:focus,.chronos-year-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-calendar-grid{display:flex;flex-direction:column;gap:4px}.chronos-weekday-row,.chronos-week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.chronos-weekday{display:flex;align-items:center;justify-content:center;height:32px;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.chronos-day{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 auto;border:none;border-radius:50%;font-size:14px;font-weight:500;color:#1a1a1a;background:transparent;cursor:pointer;transition:all .2s ease;position:relative}.chronos-day:hover:not(.disabled){background:#f3f4f6;transform:scale(1.08)}.chronos-day.other-month{color:#9ca3af}.chronos-day.today{color:#3b82f6;font-weight:600}.chronos-day.today:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#3b82f6}.chronos-day.selected{background:#3b82f6;color:#fff;font-weight:600;box-shadow:0 2px 8px #3b82f659}.chronos-day.selected:hover{background:#2563eb;box-shadow:0 2px 12px #2563eb66}.chronos-day.disabled{color:#d1d5db;cursor:not-allowed;opacity:.5}.chronos-day.disabled:hover{background:transparent;transform:none}.chronos-day:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.chronos-time-picker{padding:16px}.chronos-dropdown[data-orientation=portrait] .chronos-time-picker{border-top:1px solid #e5e7eb}.chronos-time-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;color:#4b5563}.chronos-clock-icon{width:18px;height:18px;color:#6b7280}.chronos-time-controls{display:flex;align-items:flex-end;justify-content:center;gap:8px}.chronos-time-input-group{display:flex;flex-direction:column;gap:4px}.chronos-time-label{font-size:11px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.chronos-time-select{width:70px;padding:8px 10px;border:1.5px solid #d1d5db;border-radius:6px;font-size:16px;font-weight:600;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none;text-align:center}.chronos-time-select:hover{border-color:#9ca3af}.chronos-time-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-time-separator{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:8px}.chronos-period-toggle{padding:8px 16px;border:1.5px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:600;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-period-toggle:hover{border-color:#3b82f6;background-color:#eff6ff;color:#3b82f6}.chronos-period-toggle:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-period-toggle:active{transform:scale(.95)}.chronos-timezone-selector{padding:16px}.chronos-dropdown[data-orientation=portrait] .chronos-timezone-selector{border-top:1px solid #e5e7eb}.chronos-timezone-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;color:#4b5563}.chronos-globe-icon{width:18px;height:18px;color:#6b7280}.chronos-timezone-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:1.5px solid #d1d5db;border-radius:8px;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-timezone-button:hover{border-color:#9ca3af}.chronos-timezone-button:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-timezone-label{font-weight:500;color:#1a1a1a;flex:1;text-align:left}.chronos-timezone-offset{font-size:12px;color:#6b7280;margin-right:8px}.chronos-chevron{width:16px;height:16px;color:#6b7280;transition:transform .2s ease}.chronos-chevron.expanded{transform:rotate(180deg)}.chronos-timezone-list{margin-top:8px;max-height:240px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff;animation:chronos-timezone-list-appear .2s ease}@keyframes chronos-timezone-list-appear{0%{opacity:0;max-height:0}to{opacity:1;max-height:240px}}.chronos-timezone-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;border-bottom:1px solid #f3f4f6;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;outline:none}.chronos-timezone-option:last-child{border-bottom:none}.chronos-timezone-option:hover{background:#f9fafb}.chronos-timezone-option.selected{background:#eff6ff}.chronos-timezone-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.chronos-timezone-option-label{font-weight:500;color:#1a1a1a}.chronos-timezone-option.selected .chronos-timezone-option-label{color:#3b82f6;font-weight:600}.chronos-timezone-option-offset{font-size:12px;color:#6b7280}@media (max-width: 480px){.chronos-dropdown{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.chronos-picker{max-width:100%}}.chronos-timezone-list::-webkit-scrollbar{width:6px}.chronos-timezone-list::-webkit-scrollbar-track{background:#f3f4f6}.chronos-timezone-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.chronos-timezone-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.chronos-picker[data-theme=dark]{color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=landscape] .chronos-calendar{border-right-color:#374151}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=landscape] .chronos-time-picker{border-bottom-color:#374151}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=portrait] .chronos-time-picker,.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=portrait] .chronos-timezone-selector{border-top-color:#374151}.chronos-picker[data-theme=dark] .chronos-input{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-input:hover:not(:disabled){border-color:#4b5563}.chronos-picker[data-theme=dark] .chronos-input:disabled{background-color:#111827}.chronos-picker[data-theme=dark] .chronos-input::placeholder{color:#6b7280}.chronos-picker[data-theme=dark] .chronos-calendar-icon{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-dropdown{background:#1f2937;border-color:#374151;box-shadow:0 10px 40px #0006}.chronos-picker[data-theme=dark] .chronos-nav-button{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-nav-button:hover{background:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-month-select,.chronos-picker[data-theme=dark] .chronos-year-select{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-weekday{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-day{color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-day:hover:not(.disabled){background:#374151}.chronos-picker[data-theme=dark] .chronos-day.other-month{color:#6b7280}.chronos-picker[data-theme=dark] .chronos-day.today{color:#60a5fa}.chronos-picker[data-theme=dark] .chronos-day.today:after{background:#60a5fa}.chronos-picker[data-theme=dark] .chronos-day.selected{background:#3b82f6;color:#fff}.chronos-picker[data-theme=dark] .chronos-time-header,.chronos-picker[data-theme=dark] .chronos-timezone-header{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-time-select,.chronos-picker[data-theme=dark] .chronos-period-toggle,.chronos-picker[data-theme=dark] .chronos-timezone-button{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-timezone-list{background:#1f2937;border-color:#374151}.chronos-picker[data-theme=dark] .chronos-timezone-option:hover{background:#374151}.chronos-picker[data-theme=dark] .chronos-timezone-option.selected{background:#1e3a5f}.chronos-picker[data-theme=dark] .chronos-timezone-option.selected .chronos-timezone-option-label{color:#60a5fa}
1
+ .chronos-picker{position:relative;display:inline-block;width:100%;max-width:320px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:#1a1a1a}.chronos-picker[data-disabled=true]{opacity:.6;cursor:not-allowed}.chronos-input-wrapper{position:relative;display:flex;align-items:center;cursor:pointer}.chronos-input{width:100%;padding:10px 40px 10px 14px;border:1.5px solid #d1d5db;border-radius:8px;font-size:14px;color:#1a1a1a;background-color:#fff;transition:all .2s ease;cursor:pointer;outline:none}.chronos-input:hover:not(:disabled){border-color:#9ca3af}.chronos-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.chronos-input::placeholder{color:#9ca3af}.chronos-calendar-icon{position:absolute;right:12px;width:20px;height:20px;color:#6b7280;pointer-events:none;transition:color .2s ease}.chronos-input:hover:not(:disabled)~.chronos-calendar-icon,.chronos-input:focus~.chronos-calendar-icon{color:#3b82f6}.chronos-dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:9999;min-width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 4px 6px -1px #00000014,0 10px 30px -4px #0000001f;overflow:hidden;animation:chronos-dropdown-appear .2s ease}.chronos-dropdown-content{display:flex;flex-direction:column}.chronos-dropdown[data-orientation=portrait] .chronos-dropdown-content{flex-direction:column}.chronos-dropdown[data-orientation=landscape]{min-width:auto}.chronos-dropdown[data-orientation=landscape] .chronos-dropdown-content{flex-direction:row}.chronos-dropdown[data-orientation=landscape] .chronos-calendar{border-right:1px solid #e5e7eb;border-bottom:none}.chronos-dropdown[data-orientation=landscape] .chronos-sidebar{display:flex;flex-direction:column;min-width:240px}.chronos-dropdown[data-orientation=landscape] .chronos-time-picker{border-top:none;border-bottom:1px solid #e5e7eb}.chronos-dropdown[data-orientation=landscape] .chronos-time-picker:last-child{border-bottom:none}.chronos-dropdown[data-orientation=landscape] .chronos-timezone-selector{border-top:none}@keyframes chronos-dropdown-appear{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chronos-range-summary{padding:16px 16px 0;margin-bottom:8px}.chronos-range-nights{font-size:1.5rem;font-weight:700;color:#1a1a1a;letter-spacing:-.025em;line-height:1.2}.chronos-range-dates{font-size:.875rem;color:#6b7280;margin-top:4px}.chronos-calendar{padding:16px}.chronos-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.chronos-nav-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#4b5563;font-size:20px;font-weight:600;cursor:pointer;transition:all .15s ease}.chronos-nav-button:hover{background:#f3f4f6;color:#1a1a1a}.chronos-nav-button:active{transform:scale(.95)}.chronos-month-year-selectors{display:flex;gap:8px;flex:1;justify-content:center}.chronos-month-select,.chronos-year-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-month-select:hover,.chronos-year-select:hover{border-color:#9ca3af}.chronos-month-select:focus,.chronos-year-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-calendar-grid{display:flex;flex-direction:column;gap:4px}.chronos-weekday-row,.chronos-week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.chronos-weekday{display:flex;align-items:center;justify-content:center;height:32px;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.chronos-day{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 auto;border:none;border-radius:50%;font-size:14px;font-weight:500;color:#1a1a1a;background:transparent;cursor:pointer;transition:all .2s ease;position:relative}.chronos-day:hover:not(.disabled){background:#f3f4f6;transform:scale(1.08)}.chronos-day.other-month{color:#9ca3af}.chronos-day.today{color:#3b82f6;font-weight:600}.chronos-day.today:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#3b82f6}.chronos-day.selected{background:#3b82f6;color:#fff;font-weight:600;box-shadow:0 2px 8px #3b82f659}.chronos-day.selected:hover{background:#2563eb;box-shadow:0 2px 12px #2563eb66}.chronos-day.disabled{color:#d1d5db;cursor:not-allowed;opacity:.5}.chronos-day.disabled:hover{background:transparent;transform:none}.chronos-day.in-range{background:#e5e7eb;border-radius:0}.chronos-day.in-range:hover{background:#d1d5db}.chronos-day.range-start{border-radius:50% 0 0 50%}.chronos-day.range-start.in-range{background:#e5e7eb}.chronos-day.range-end{border-radius:0 50% 50% 0}.chronos-day.range-end.in-range{background:#e5e7eb}.chronos-day.range-start.selected,.chronos-day.range-end.selected{background:#1a1a1a;color:#fff;font-weight:600;box-shadow:0 0 0 2px #fff}.chronos-day.range-start.selected:hover,.chronos-day.range-end.selected:hover{background:#374151}.chronos-day.range-start.range-end{border-radius:50%}.chronos-day:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.chronos-time-picker{padding:16px}.chronos-dropdown[data-orientation=portrait] .chronos-time-picker{border-top:1px solid #e5e7eb}.chronos-time-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;color:#4b5563}.chronos-clock-icon{width:18px;height:18px;color:#6b7280}.chronos-time-controls{display:flex;align-items:flex-end;justify-content:center;gap:8px}.chronos-time-input-group{display:flex;flex-direction:column;gap:4px}.chronos-time-label{font-size:11px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.chronos-time-select{width:70px;padding:8px 10px;border:1.5px solid #d1d5db;border-radius:6px;font-size:16px;font-weight:600;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none;text-align:center}.chronos-time-select:hover{border-color:#9ca3af}.chronos-time-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-time-separator{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:8px}.chronos-period-toggle{padding:8px 16px;border:1.5px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:600;color:#1a1a1a;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-period-toggle:hover{border-color:#3b82f6;background-color:#eff6ff;color:#3b82f6}.chronos-period-toggle:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-period-toggle:active{transform:scale(.95)}.chronos-timezone-selector{padding:16px}.chronos-dropdown[data-orientation=portrait] .chronos-timezone-selector{border-top:1px solid #e5e7eb}.chronos-timezone-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;color:#4b5563}.chronos-globe-icon{width:18px;height:18px;color:#6b7280}.chronos-timezone-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:1.5px solid #d1d5db;border-radius:8px;background-color:#fff;cursor:pointer;transition:all .15s ease;outline:none}.chronos-timezone-button:hover{border-color:#9ca3af}.chronos-timezone-button:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chronos-timezone-label{font-weight:500;color:#1a1a1a;flex:1;text-align:left}.chronos-timezone-offset{font-size:12px;color:#6b7280;margin-right:8px}.chronos-chevron{width:16px;height:16px;color:#6b7280;transition:transform .2s ease}.chronos-chevron.expanded{transform:rotate(180deg)}.chronos-timezone-list{margin-top:8px;max-height:240px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff;animation:chronos-timezone-list-appear .2s ease}@keyframes chronos-timezone-list-appear{0%{opacity:0;max-height:0}to{opacity:1;max-height:240px}}.chronos-timezone-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;border-bottom:1px solid #f3f4f6;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;outline:none}.chronos-timezone-option:last-child{border-bottom:none}.chronos-timezone-option:hover{background:#f9fafb}.chronos-timezone-option.selected{background:#eff6ff}.chronos-timezone-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.chronos-timezone-option-label{font-weight:500;color:#1a1a1a}.chronos-timezone-option.selected .chronos-timezone-option-label{color:#3b82f6;font-weight:600}.chronos-timezone-option-offset{font-size:12px;color:#6b7280}@media (max-width: 480px){.chronos-dropdown{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.chronos-picker{max-width:100%}}.chronos-timezone-list::-webkit-scrollbar{width:6px}.chronos-timezone-list::-webkit-scrollbar-track{background:#f3f4f6}.chronos-timezone-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.chronos-timezone-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.chronos-picker[data-theme=dark]{color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=landscape] .chronos-calendar{border-right-color:#374151}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=landscape] .chronos-time-picker{border-bottom-color:#374151}.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=portrait] .chronos-time-picker,.chronos-picker[data-theme=dark] .chronos-dropdown[data-orientation=portrait] .chronos-timezone-selector{border-top-color:#374151}.chronos-picker[data-theme=dark] .chronos-input{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-input:hover:not(:disabled){border-color:#4b5563}.chronos-picker[data-theme=dark] .chronos-input:disabled{background-color:#111827}.chronos-picker[data-theme=dark] .chronos-input::placeholder{color:#6b7280}.chronos-picker[data-theme=dark] .chronos-calendar-icon{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-dropdown{background:#1f2937;border-color:#374151;box-shadow:0 10px 40px #0006}.chronos-picker[data-theme=dark] .chronos-nav-button{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-nav-button:hover{background:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-month-select,.chronos-picker[data-theme=dark] .chronos-year-select{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-weekday{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-day{color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-day:hover:not(.disabled){background:#374151}.chronos-picker[data-theme=dark] .chronos-day.other-month{color:#6b7280}.chronos-picker[data-theme=dark] .chronos-day.today{color:#60a5fa}.chronos-picker[data-theme=dark] .chronos-day.today:after{background:#60a5fa}.chronos-picker[data-theme=dark] .chronos-day.selected{background:#3b82f6;color:#fff}.chronos-picker[data-theme=dark] .chronos-range-nights{color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-range-dates{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-day.in-range{background:#374151}.chronos-picker[data-theme=dark] .chronos-day.in-range:hover{background:#4b5563}.chronos-picker[data-theme=dark] .chronos-day.range-start.selected,.chronos-picker[data-theme=dark] .chronos-day.range-end.selected{background:#3b82f6;color:#fff;box-shadow:0 0 0 2px #1f2937}.chronos-picker[data-theme=dark] .chronos-time-header,.chronos-picker[data-theme=dark] .chronos-timezone-header{color:#9ca3af}.chronos-picker[data-theme=dark] .chronos-time-select,.chronos-picker[data-theme=dark] .chronos-period-toggle,.chronos-picker[data-theme=dark] .chronos-timezone-button{background-color:#1f2937;border-color:#374151;color:#f3f4f6}.chronos-picker[data-theme=dark] .chronos-timezone-list{background:#1f2937;border-color:#374151}.chronos-picker[data-theme=dark] .chronos-timezone-option:hover{background:#374151}.chronos-picker[data-theme=dark] .chronos-timezone-option.selected{background:#1e3a5f}.chronos-picker[data-theme=dark] .chronos-timezone-option.selected .chronos-timezone-option-label{color:#60a5fa}
@@ -0,0 +1,3 @@
1
+ declare const _default: import('vite').UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vite.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":";AAKA,wBAyBG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theengineerguy/chronos-picker",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "A modern, accessible date & time picker with comprehensive timezone support",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -33,14 +33,15 @@
33
33
  "url": "https://github.com/AnTIdoTe003/chronos-picker/issues"
34
34
  },
35
35
  "peerDependencies": {
36
- "react": "^18.0.0",
37
- "react-dom": "^18.0.0"
36
+ "react": "^18.0.0 || ^19.0.0",
37
+ "react-dom": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "luxon": "^3.4.4"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/luxon": "^3.4.2",
44
+ "@types/node": "^25.2.3",
44
45
  "@types/react": "^18.2.48",
45
46
  "@types/react-dom": "^18.2.18",
46
47
  "@typescript-eslint/eslint-plugin": "^6.19.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/components/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,UAAU,aAAa;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8I5C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../src/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAiB,MAAM,UAAU,CAAC;AAK9D,OAAO,8BAA8B,CAAC;AAEtC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8OxD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../src/components/TimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqIhD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimezoneSelector.d.ts","sourceRoot":"","sources":["../../src/components/TimezoneSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgF5D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEjC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/utils/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,QAAQ,EACvB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,QAAQ,GACjB,YAAY,EAAE,EAAE,CAgDlB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAU1C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CASxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;GAa5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAU5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAExD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD"}
File without changes