@salyra-ui/date-picker 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +27 -0
- package/dist/angular.d.ts +21 -0
- package/dist/angular.js +1 -0
- package/dist/astro/Action.astro +7 -0
- package/dist/astro/Calendar.astro +7 -0
- package/dist/astro/Cell.astro +7 -0
- package/dist/astro/Continuous.astro +7 -0
- package/dist/astro/DatePicker.astro +7 -0
- package/dist/astro/DayTrigger.astro +7 -0
- package/dist/astro/Field.astro +7 -0
- package/dist/astro/Grid.astro +7 -0
- package/dist/astro/Heading.astro +7 -0
- package/dist/astro/MonthSelect.astro +7 -0
- package/dist/astro/Number.astro +7 -0
- package/dist/astro/Period.astro +7 -0
- package/dist/astro/Root.astro +7 -0
- package/dist/astro/Segment.astro +7 -0
- package/dist/astro/Week.astro +7 -0
- package/dist/astro/Weekday.astro +7 -0
- package/dist/astro/YearSelect.astro +7 -0
- package/dist/browser/date-picker.js +1554 -0
- package/dist/browser/date-picker.min.js +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +1 -0
- package/dist/react.d.ts +38 -0
- package/dist/react.js +1 -0
- package/dist/styles.css +115 -0
- package/dist/styles.min.css +1 -0
- package/dist/svelte.ts +1 -0
- package/dist/vanilla.d.ts +43 -0
- package/dist/vanilla.js +1 -0
- package/dist/vue.d.ts +227 -0
- package/dist/vue.js +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var SalyraDatePicker=(()=>{var Q=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var De=Object.prototype.hasOwnProperty;var Ee=(e,t)=>{for(var n in t)Q(e,n,{get:t[n],enumerable:!0})},Me=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Se(t))!De.call(e,l)&&l!==n&&Q(e,l,{get:()=>t[l],enumerable:!(a=we(t,l))||a.enumerable});return e};var xe=e=>Me(Q({},"__esModule",{value:!0}),e);var $e={};Ee($e,{addDays:()=>q,addMonths:()=>P,attribute:()=>w,bindCalendar:()=>K,bindDateField:()=>de,bindDayTrigger:()=>ue,bindMonthScroller:()=>fe,bindPickerForm:()=>Le,bindPickerPopover:()=>Re,bindTimeSegment:()=>ce,calendarMarkup:()=>_,createCalendarEngine:()=>z,createDatePickerStore:()=>Ae,createPickerStore:()=>be,dateFormatter:()=>ee,dateString:()=>C,dayAttributes:()=>U,dayNumber:()=>T,dayTriggerAttributes:()=>le,daysInMonth:()=>R,escapeHTML:()=>$,formatDate:()=>I,formatMonth:()=>F,fromDayNumber:()=>G,isRange:()=>V,leapYear:()=>he,monthScrollerMarkup:()=>Ce,mountDatePicker:()=>Ne,mountPicker:()=>ke,parseDate:()=>S,pointFor:()=>E,resolveZonedDateTime:()=>Te,shiftDateMonths:()=>X,timeParts:()=>ae,timeSeconds:()=>M,timeSegmentValue:()=>ie,timeSlots:()=>Oe,timeString:()=>re,today:()=>ne,updateTime:()=>oe,utcDate:()=>te,validateWeekStart:()=>W,weekNumber:()=>Pe,weekday:()=>N,weekdayLabels:()=>J});function he(e){return e%4===0&&(e%100!==0||e%400===0)}function R(e,t){if(!Number.isInteger(e)||e<1||e>9999||!Number.isInteger(t)||t<1||t>12)throw new RangeError("Calendar supports Gregorian years 1\u20139999 and months 1\u201312");return t===2?he(e)?29:28:[4,6,9,11].includes(t)?30:31}function S(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)throw new RangeError("Use YYYY-MM-DD");let[,n,a,l]=t,o={year:Number(n),month:Number(a),day:Number(l)};if(o.day<1||o.day>R(o.year,o.month))throw new RangeError("Invalid calendar date");return o}function C(e){if(!Number.isInteger(e.day)||e.day<1||e.day>R(e.year,e.month))throw new RangeError("Invalid calendar date");return`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`}function T(e){let t=S(typeof e=="string"?e:C(e)),n=t.year-(t.month<=2?1:0),a=Math.floor(n/400),l=n-a*400,o=t.month+(t.month>2?-3:9),f=Math.floor((153*o+2)/5)+t.day-1;return a*146097+l*365+Math.floor(l/4)-Math.floor(l/100)+f-719468}function G(e){if(!Number.isInteger(e))throw new RangeError("Day number must be an integer");let t=e+719468,n=Math.floor(t/146097),a=t-n*146097,l=Math.floor((a-Math.floor(a/1460)+Math.floor(a/36524)-Math.floor(a/146096))/365),o=l+n*400,f=a-(365*l+Math.floor(l/4)-Math.floor(l/100)),g=Math.floor((5*f+2)/153),y=f-Math.floor((153*g+2)/5)+1,d=g+(g<10?3:-9);o+=d<=2?1:0;let i={year:o,month:d,day:y};return C(i),i}function q(e,t){return C(G(T(e)+t))}function N(e){return((T(e)+4)%7+7)%7}function P(e,t){if(R(e.year,e.month),!Number.isInteger(t))throw new RangeError("Month offset must be an integer");let n=(e.year-1)*12+e.month-1+t,a={year:Math.floor(n/12)+1,month:(n%12+12)%12+1};return R(a.year,a.month),a}function X(e,t){let n=S(e),a=P(n,t);return C({...a,day:Math.min(n.day,R(a.year,a.month))})}function Pe(e){let t=T(e),n=(N(e)+6)%7,a=G(t+3-n),l=`${String(a.year).padStart(4,"0")}-01-04`,o=T(l)-(N(l)+6)%7;return{year:a.year,week:Math.floor((t-o)/7)+1}}function W(e){if(!Number.isInteger(e)||e<0||e>6)throw new RangeError("weekStartsOn must be 0\u20136");return e}function z(e=48){if(!Number.isInteger(e)||e<1)throw new RangeError("Cache capacity must be positive");let t=new Map;return{month(n,a,l={}){R(n,a);let o=W(l.weekStartsOn??1),f=`${n}:${a}:${o}:${!!l.fixedWeeks}:${l.outsideDays??"visible"}`,g=t.get(f);if(g)return t.delete(f),t.set(f,g),g;let y=C({year:n,month:a,day:1}),d=(N(y)-o+7)%7,i=T(y),b=T("0001-01-01"),s=T("9999-12-31"),p=l.fixedWeeks?42:Math.ceil((d+R(n,a))/7)*7,m=[];for(let c=0;c<p/7;c++){let u=[];for(let h=0;h<7;h++){let k=i-d+c*7+h;if(k<b||k>s){u.push(Object.freeze({date:"",day:0,weekday:(o+h)%7,outside:!0,hidden:!0}));continue}let D=G(k),O=D.month!==a;u.push(Object.freeze({date:C(D),day:D.day,weekday:(o+h)%7,outside:O,hidden:O&&l.outsideDays==="hidden"}))}m.push(Object.freeze(u))}let r=Object.freeze({year:n,month:a,weeks:Object.freeze(m)});return t.set(f,r),t.size>e&&t.delete(t.keys().next().value),r},clear(){t.clear()},get cacheSize(){return t.size}}}var B=new Map;function ee(e,t){let n=JSON.stringify([e,t]),a=B.get(n);return a||(a=new Intl.DateTimeFormat(e,{...t,calendar:"gregory",timeZone:"UTC"}),B.set(n,a),B.size>32&&B.delete(B.keys().next().value)),a}function te(e){let{year:t,month:n,day:a}=S(e),l=new Date(0);return l.setUTCFullYear(t,n-1,a),l.setUTCHours(12,0,0,0),l}function I(e,t="en-GB",n={dateStyle:"long"}){return ee(t,n).format(te(e))}function F(e,t="en-GB"){return I(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-01`,t,{month:"long",year:"numeric"})}function J(e,t,n="short"){let a=ee(e,{weekday:n});return Array.from({length:7},(l,o)=>{let f=(t+o)%7;return{weekday:f,label:a.format(te(`2023-01-${String(f+1).padStart(2,"0")}`))}})}function ne(e="UTC",t=new Date){let n=new Intl.DateTimeFormat("en-CA",{timeZone:e,calendar:"gregory",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(t),a=l=>n.find(o=>o.type===l).value;return`${a("year").padStart(4,"0")}-${a("month")}-${a("day")}`}function M(e){let t=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);if(!t||Number(t[1])>23||Number(t[2])>59||Number(t[3]??0)>59)throw new RangeError("Use HH:mm or HH:mm:ss");return Number(t[1])*3600+Number(t[2])*60+Number(t[3]??0)}function re(e,t=!1){if(!Number.isInteger(e)||e<0||e>86399)throw new RangeError("Time must fit within a day");let n=[Math.floor(e/3600),Math.floor(e/60)%60];return t&&n.push(e%60),n.map(a=>String(a).padStart(2,"0")).join(":")}function ae(e,t=24){let n=M(e),a=Math.floor(n/3600);return{hour:t===12?a%12||12:a,minute:Math.floor(n/60)%60,second:n%60,period:a<12?"AM":"PM"}}function oe(e,t,n,a=24,l=!1){let o=ae(e,24),f=o.hour,g=o.minute,y=o.second;if(t==="period"){if(n!=="AM"&&n!=="PM")throw new RangeError("Use AM or PM");f=f%12+(n==="PM"?12:0)}else{let d=Number(n),i=t==="hour"?a===12?12:23:59,b=t==="hour"&&a===12?1:0;if(!Number.isInteger(d)||d<b||d>i)throw new RangeError("Invalid time segment");t==="hour"&&(f=a===12?d%12+(o.period==="PM"?12:0):d),t==="minute"&&(g=d),t==="second"&&(y=d)}return re(f*3600+g*60+y,l)}function Oe(e=30,t="00:00",n="23:59"){if(!Number.isInteger(e)||e<1||e>1440)throw new RangeError("Time step must be 1\u20131440 minutes");let a=[],l=M(t),o=M(n),f=t.length===8||n.length===8;if(l>o)throw new RangeError("Time slot bounds must be ordered within one day");for(let g=l;g<=o;g+=e*60)a.push(re(g,f));return Object.freeze(a)}function ie(e,t,n=24){return!e&&t!=="period"?"":String(ae(e??"00:00",n)[t])}function V(e){return e!==null&&"start"in e}function E(e,t="start"){return V(e)?e[t]:t==="start"?e:null}var ge=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function ye(e){if(e.kind&&!["date","time","datetime"].includes(e.kind))throw new RangeError("Invalid picker kind");if(e.selection&&!["single","range","none"].includes(e.selection))throw new RangeError("Invalid selection");if(e.hourCycle!==void 0&&e.hourCycle!==12&&e.hourCycle!==24)throw new RangeError("hourCycle must be 12 or 24");let t=e.referenceDate??ne(e.timeZone??"UTC");S(t);let n=e.months??1,a=e.minuteStep??1;if(!Number.isInteger(n)||n<1||n>12)throw new RangeError("months must be 1\u201312");if(!Number.isInteger(a)||a<1||a>60)throw new RangeError("minuteStep must be 1\u201360");if(e.minDate&&S(e.minDate),e.maxDate&&S(e.maxDate),e.minDate&&e.maxDate&&e.minDate>e.maxDate)throw new RangeError("minDate must precede maxDate");if(e.minTime&&M(e.minTime),e.maxTime&&M(e.maxTime),e.minTime&&e.maxTime&&M(e.minTime)>M(e.maxTime))throw new RangeError("minTime must precede maxTime");for(let f of[e.minDuration,e.maxDuration])if(f!==void 0&&(!Number.isFinite(f)||f<0))throw new RangeError("Duration must be nonnegative");if(e.minDuration!==void 0&&e.maxDuration!==void 0&&e.minDuration>e.maxDuration)throw new RangeError("minDuration must not exceed maxDuration");let l=Object.freeze([...e.weekend??[0,6]]);l.forEach(W);let o=e.timeZone??"UTC";return new Intl.DateTimeFormat("en",{timeZone:o}),Object.freeze({...e,kind:e.kind??"date",selection:e.selection??"single",referenceDate:t,locale:e.locale??"en-GB",timeZone:o,weekStartsOn:W(e.weekStartsOn??1),months:n,weekend:l,hourCycle:e.hourCycle??24,minuteStep:a})}function se(e,t){if(!e)return null;let n={};if(t.kind!=="time"){if(!e.date)throw new RangeError("Date is required");S(e.date),n.date=e.date}else e.date&&(S(e.date),n.date=e.date);if(t.kind!=="date"&&(e.time&&(M(e.time),n.time=e.time),e.dayOffset!==void 0)){if(n.date)throw new RangeError("Use date or dayOffset, not both");if(!Number.isInteger(e.dayOffset)||e.dayOffset<0)throw new RangeError("dayOffset must be nonnegative");n.dayOffset=e.dayOffset}return Object.freeze(n)}function Z(e,t){if(!e)return t.selection==="range"?Object.freeze({start:null,end:null}):null;if(t.selection==="range"){if(!V(e))throw new RangeError("A range requires start and end");return Object.freeze({start:se(e.start,t),end:se(e.end,t)})}if(V(e))throw new RangeError("Single selection expects one point");return se(e,t)}function pe(e){return(e.date?T(e.date):e.dayOffset??0)*86400+(e.time?M(e.time):0)}function Y(e={}){let t=ye(e),n=Z(e.value===void 0?e.defaultValue??null:e.value,t),a=z(),l=e.month??S(E(n)?.date??t.referenceDate);P(l,t.months-1);let o=Object.freeze({options:t,value:n,draft:n,visibleMonth:Object.freeze({year:l.year,month:l.month}),focusedDate:E(n)?.date??t.referenceDate,hoverDate:null,activeEndpoint:"start",open:!1,error:null}),f=new Set,g=new Set,y=r=>{let c=o;Object.entries(r).every(([u,h])=>u==="options"?c.options===h:ge(c[u],h))||(o=Object.freeze({...o,...r}),f.forEach(u=>u()),ge(c.value,o.value)||(g.forEach(u=>u(o.value)),t.onValueChange?.(o.value)))},d=r=>!!(t.minDate&&r<t.minDate||t.maxDate&&r>t.maxDate||t.isDateUnavailable?.(r));function i(r,c=!1){let u=V(r)?[r.start,r.end]:[r];if(u.every(h=>h===null))return null;for(let h of u){if(!h){if(c)return"Choose a complete value";continue}if(h.date&&d(h.date))return"This date is unavailable";if(t.kind!=="date"){if(!h.time){if(c)return"Choose a time";continue}let k=M(h.time);if(t.minTime&&k<M(t.minTime)||t.maxTime&&k>M(t.maxTime)||t.isTimeUnavailable?.(h.time,h))return"This time is unavailable"}}if(V(r)&&r.start&&r.end&&(t.kind==="date"||r.start.time&&r.end.time)){if(t.kind==="time"&&!!r.start.date!=!!r.end.date)return"Both endpoints need dates, or neither";let h=pe(r.end)-pe(r.start);if(h<0)return"The end must follow the start";let k=t.kind==="date"?h/86400+1:h;if(t.minDuration!==void 0&&k<t.minDuration)return"The interval is too short";if(t.maxDuration!==void 0&&k>t.maxDuration)return"The interval is too long";if(t.isRangeUnavailable?.(r.start,r.end))return"This interval is unavailable"}return null}function b(r,c=o.activeEndpoint,u=!1){let h=Z(r,t),k=i(h);if(k)return y(u?{draft:h,error:k,activeEndpoint:c}:{error:k}),!1;let D=i(h,!0)===null;return y({draft:h,error:null,activeEndpoint:c,...t.commit!=="explicit"&&D?{value:h}:{}}),!0}function s(r,c){return b(t.selection==="range"?{start:E(o.draft,"start"),end:E(o.draft,"end"),[c]:r}:r,c,!0)}let p={getSnapshot:()=>o,subscribe(r){return f.add(r),()=>{f.delete(r)}},subscribeValue(r){return g.add(r),()=>{g.delete(r)}},getMonth(r=0){let c=P(o.visibleMonth,r);return a.month(c.year,c.month,t)},getDay(r){if(!r)return{selected:!1,rangeStart:!1,rangeEnd:!1,inRange:!1,preview:!1,disabled:!0,today:!1,weekend:!1,focused:!1};let c=o.draft,u=E(c)?.date,h=V(c)?c.end?.date:void 0,k=!h&&u?o.hoverDate:null,D=k&&k<u?k:u,O=k&&k<u?u:k??h;return{selected:r===u||r===h,rangeStart:r===u,rangeEnd:r===h,inRange:!!(D&&O&&r>=D&&r<=O),preview:!!k,disabled:!!t.disabled||d(r),today:r===t.referenceDate,weekend:t.weekend.includes(N(r)),focused:r===o.focusedDate}},setVisibleMonth(r){P(r,t.months-1),y({visibleMonth:Object.freeze({year:r.year,month:r.month}),hoverDate:null})},navigate(r){p.setVisibleMonth(P(o.visibleMonth,r))},focus(r){S(r),y({focusedDate:r});let c=S(r),u=C({...o.visibleMonth,day:1}),h=P(o.visibleMonth,t.months-1);if(r<u||r>C({...h,day:R(h.year,h.month)})){let k=P({year:9999,month:12},-(t.months-1));p.setVisibleMonth(c.year>k.year||c.year===k.year&&c.month>k.month?k:c)}},moveFocus(r,c=!1){let u=o.focusedDate,h={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};if(r in h)u=q(u,h[r]);else if(r==="Home")u=q(u,-((N(u)-t.weekStartsOn+7)%7));else if(r==="End")u=q(u,6-(N(u)-t.weekStartsOn+7)%7);else if(r==="PageUp"||r==="PageDown")u=X(u,(r==="PageUp"?-1:1)*(c?12:1));else return!1;return p.focus(u),!0},hover(r){r&&S(r),t.selection==="range"&&E(o.draft)?.date&&!E(o.draft,"end")&&y({hoverDate:r})},selectDate(r){if(S(r),t.disabled||t.readOnly||d(r))return!1;if(t.selection==="none")return t.onSelect?.(r),!0;if(t.kind==="time")return p.setDate(r,o.activeEndpoint);let c=E(o.draft,o.activeEndpoint),u={date:r,...t.kind==="datetime"&&c?.time?{time:c.time}:{}},h=u,k="start";if(t.selection==="range"){let O=E(o.draft),v=E(o.draft,"end");!O||v?(h={start:u,end:null},k="end"):(h=r<O.date?{start:u,end:O}:{start:O,end:u},k="end")}let D=b(h,k);return D&&(y({focusedDate:r,hoverDate:null}),t.onSelect?.(r)),D},setDate(r,c="start"){if(S(r),t.disabled||t.readOnly)return!1;let u=E(o.draft,c);return s({date:r,...t.kind!=="date"&&u?.time?{time:u.time}:{}},c)},setTime(r,c="start"){if(M(r),t.disabled||t.readOnly||t.kind==="date")return!1;let u=E(o.draft,c);return s({...u,time:r,...t.kind==="datetime"&&!u?.date?{date:t.referenceDate}:{}},c)},setDayOffset(r,c="end"){if(!Number.isInteger(r)||r<0)throw new RangeError("Day offset must be nonnegative");if(t.disabled||t.readOnly||t.kind!=="time")return!1;let u=E(o.draft,c);return s({...u,date:void 0,dayOffset:r},c)},setEndpoint(r){if(r==="end"&&t.selection!=="range")throw new RangeError("End is available only for a range");y({activeEndpoint:r})},setValue(r){let c=Z(r,t),u=i(c);if(u)throw new RangeError(u);y({value:c,draft:c,error:null,hoverDate:null})},apply(){if(t.disabled||t.readOnly)return!1;let r=i(o.draft,!0);return r?(y({error:r}),!1):(y({value:o.draft,error:null,open:!1}),!0)},cancel(){y({draft:o.value,error:null,hoverDate:null,open:!1})},clear(){if(t.disabled||t.readOnly)return;let r=Z(null,t);y({draft:r,value:t.commit==="explicit"?o.value:r,error:null,hoverDate:null,activeEndpoint:"start"})},setOpen(r){r&&t.disabled||y({open:r})},setOptions(r){if(Object.entries(r).every(([u,h])=>Object.is(t[u],h)))return;if(r.kind&&r.kind!==t.kind||r.selection&&r.selection!==t.selection)throw new RangeError("Create a new store to change kind or selection");let c=ye({...t,...r});P(o.visibleMonth,c.months-1),t=c,y({options:c,error:i(o.draft)})},validate:()=>i(o.draft,!0),destroy(){f.clear(),g.clear(),a.clear()},get cacheSize(){return a.cacheSize}},m=i(n);if(m)throw new RangeError(m);return p}function Te(e,t,n="reject"){if(!e.date||!e.time)throw new RangeError("Date and time are required");S(e.date);let a=T(e.date)*864e5+M(e.time)*1e3,l=new Intl.DateTimeFormat("en-CA",{timeZone:t,calendar:"gregory",numberingSystem:"latn",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),o=i=>{let b=l.formatToParts(new Date(i)),s=p=>b.find(m=>m.type===p).value;return T(`${s("year").padStart(4,"0")}-${s("month")}-${s("day")}`)*864e5+M(`${s("hour")}:${s("minute")}:${s("second")}`)*1e3},f=new Set;for(let i of[-48,-24,-12,0,12,24,48]){let b=a+i*36e5;f.add(o(b)-b)}let g=[...f].map(i=>a-i).sort((i,b)=>i-b),y=g.filter(i=>o(i)===a);if(y.length===1)return new Date(y[0]);if(n==="reject")throw new RangeError(y.length?"This local time occurs twice":"This local time does not exist");let d=y.length?y:g;return new Date(n==="earlier"?d[0]:d[d.length-1])}function $(e){return String(e??"").replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t])}function w(e,t,n){if(n===!1||n==null)e.hasAttribute(t)&&e.removeAttribute(t);else{let a=n===!0?"":n;e.getAttribute(t)!==a&&e.setAttribute(t,a)}}function U(e,t,n=!1){let a=e.getDay(t),l=e.getSnapshot().options;return{"data-date":t,"data-selected":a.selected?"":void 0,"data-range-start":a.rangeStart?"":void 0,"data-range-end":a.rangeEnd?"":void 0,"data-in-range":a.inRange?"":void 0,"data-preview":a.preview&&a.inRange?"":void 0,"data-weekend":a.weekend?"":void 0,"data-outside":n?"":void 0,"data-today":a.today?"":void 0,"aria-selected":a.selected||a.inRange&&!a.preview?"true":"false"}}function le(e,t,n=!1){let{"aria-selected":a,...l}=U(e,t,n);return l}function _(e,t={}){let{options:n,focusedDate:a}=e.getSnapshot(),l=J(n.locale,n.weekStartsOn),o=J(n.locale,n.weekStartsOn,"long"),f=Array.from({length:n.months},(d,i)=>e.getMonth(i)),g=f.flatMap(d=>d.weeks.flat()).filter(d=>!d.hidden&&!d.outside),y=g.some(d=>d.date===a&&!e.getDay(d.date).disabled)?a:g.find(d=>!e.getDay(d.date).disabled)?.date;return Array.from({length:n.months},(d,i)=>{let b=f[i],s=l.map(p=>{let m=t.weekdays?.[p.weekday],r=m?.label??p.label,c=m?.ariaLabel??(m?.label||o.find(u=>u.weekday===p.weekday).label);return`<th scope="col" data-part="weekday" data-weekday="${p.weekday}" class="${$(m?.class??"")}" ${n.weekend.includes(p.weekday)?"data-weekend":""} aria-label="${$(c)}">${t.renderWeekday?.(p.weekday,r)??$(r)}</th>`}).join("");return`<section class="sp-month" data-part="month"><h3 data-part="month-title" aria-live="polite">${$(F(b,n.locale))}</h3><table role="grid" aria-readonly="${!!n.readOnly}" aria-multiselectable="${n.selection==="range"}" aria-label="${$(F(b,n.locale))}" class="sp-grid"><thead><tr>${s}</tr></thead><tbody>${b.weeks.map(p=>`<tr>${p.map(m=>{if(m.hidden)return'<td role="gridcell" aria-disabled="true"></td>';let r=e.getDay(m.date),c=r.disabled||m.outside&&n.outsideSelectable===!1,u=Object.entries(U(e,m.date,m.outside)).map(([k,D])=>D==null?"":`${k}="${$(D)}"`).join(" "),h=t.renderCell?.(m,r)??`<button type="button" data-day-trigger data-date="${m.date}" aria-label="${$(I(m.date,n.locale))}" ${c?"disabled":""} tabindex="${m.date===y&&!m.outside?"0":"-1"}"><span data-part="number">${m.day}</span></button>`;return`<td role="gridcell" data-part="cell" ${u}>${h}</td>`}).join("")}</tr>`).join("")}</tbody></table></section>`}).join("")}function K(e,t,n={}){let a="",l=!0,o=new Set,f=()=>{let{options:s,visibleMonth:p,focusedDate:m}=t.getSnapshot(),r=JSON.stringify([p,s.months,s.weekStartsOn,s.outsideDays,s.fixedWeeks,s.locale,s.weekend,n.weekdays]),c=e.contains(e.ownerDocument.activeElement);r!==a&&(e.innerHTML=_(t,n),a=r);let u;for(let h of e.querySelectorAll('[data-part="cell"]')){let k=h.dataset.date,D=h.hasAttribute("data-outside"),O=t.getDay(k);for(let[j,H]of Object.entries(U(t,k,D)))w(h,j,H);let v=h.querySelector("[data-day-trigger]");v&&(v.disabled=O.disabled||D&&s.outsideSelectable===!1,v.hasAttribute("aria-label")||w(v,"aria-label",I(k,s.locale)),w(v,"aria-current",O.today?"date":null),v.tabIndex=-1,!v.disabled&&!D&&(!u||k===m)&&(u=v))}u&&(u.tabIndex=0),c&&u&&m===u.dataset.date&&e.ownerDocument.activeElement!==u&&u.focus();for(let h of e.querySelectorAll('[role="grid"]'))w(h,"aria-readonly",String(!!s.readOnly)),w(h,"aria-multiselectable",String(s.selection==="range"))},g=s=>{let p=s.target.closest("[data-day-trigger]");if(!p||!e.contains(p)||p.disabled)return;let m=p.dataset.date;n.onDayClick?.(m,s);let r=setTimeout(()=>{o.delete(r),l&&e.isConnected&&!s.defaultPrevented&&t.selectDate(m)&&n.onSelect?.(m)},0);o.add(r)},y=s=>{if(s.pointerType==="touch")return;let p=s.target.closest("[data-day-trigger]");p&&!p.hasAttribute("disabled")&&t.hover(p.dataset.date)},d=()=>t.hover(null),i=s=>{let p=s.target.closest("[data-day-trigger]");if(p){if(s.key==="Escape"){t.cancel(),s.preventDefault();return}if(s.key==="ArrowLeft"||s.key==="ArrowRight"||s.key==="ArrowUp"||s.key==="ArrowDown"||s.key==="Home"||s.key==="End"||s.key==="PageUp"||s.key==="PageDown"){s.preventDefault(),t.focus(p.dataset.date);let m=getComputedStyle(e).direction==="rtl",r=m&&s.key==="ArrowLeft"?"ArrowRight":m&&s.key==="ArrowRight"?"ArrowLeft":s.key;try{t.moveFocus(r,s.shiftKey)}catch(c){if(!(c instanceof RangeError))throw c}}}};f();let b=t.subscribe(f);return e.addEventListener("click",g),e.addEventListener("pointerover",y),e.addEventListener("pointerleave",d),e.addEventListener("keydown",i),()=>{l=!1;for(let s of o)clearTimeout(s);o.clear(),b(),e.removeEventListener("click",g),e.removeEventListener("pointerover",y),e.removeEventListener("pointerleave",d),e.removeEventListener("keydown",i)}}function de(e,t,n="start"){let a=e.value,l=e.disabled,o=e.readOnly,f=()=>{let i=t.getSnapshot();e.disabled=l||!!i.options.disabled,e.readOnly=o||!!i.options.readOnly,e.ownerDocument.activeElement!==e&&(e.value=E(i.draft,n)?.date??"",w(e,"aria-invalid",String(!!i.error)))},g=()=>{try{S(e.value);let i=t.setDate(e.value,n);w(e,"aria-invalid",String(!i))}catch{w(e,"aria-invalid","true")}},y=()=>{e.value=E(t.getSnapshot().draft,n)?.date??"",w(e,"aria-invalid",String(!!t.getSnapshot().error))};f();let d=t.subscribe(f);return e.addEventListener("input",g),e.addEventListener("blur",y),()=>{d(),e.removeEventListener("input",g),e.removeEventListener("blur",y),e.value=a}}function ce(e,t,n,a="start"){let l=!1,o=e.disabled,f=e instanceof e.ownerDocument.defaultView.HTMLInputElement&&e.readOnly,g=()=>ie(E(t.getSnapshot().draft,a)?.time,n,t.getSnapshot().options.hourCycle),y=()=>{let s=t.getSnapshot();e.disabled=o||!!s.options.disabled,e instanceof e.ownerDocument.defaultView.HTMLInputElement?(e.readOnly=f||!!s.options.readOnly,e.min=n==="hour"&&s.options.hourCycle===12?"1":"0",e.max=n==="hour"?s.options.hourCycle===12?"12":"23":"59",e.step=n==="minute"?String(s.options.minuteStep):"1"):e.disabled=o||!!s.options.disabled||!!s.options.readOnly,(e.ownerDocument.activeElement!==e||!l)&&(e.value=g(),s.error||(l=!1)),w(e,"aria-invalid",String(l||!!s.error))},d=()=>{if(e.value.trim()===""){l=!0,w(e,"aria-invalid","true");return}try{let s=t.getSnapshot(),p=E(s.draft,a)?.time??"00:00";if(n==="minute"&&Number(e.value)%s.options.minuteStep!==0)throw new RangeError("Minute must match the configured step");let m=oe(p,n,e.value,s.options.hourCycle,!!s.options.seconds||p.length===8||n==="second");l=!t.setTime(m,a),w(e,"aria-invalid",String(l))}catch{l=!0,w(e,"aria-invalid","true")}},i=()=>{l=!1,e.value=g(),w(e,"aria-invalid",String(!!t.getSnapshot().error))};y();let b=t.subscribe(y);return e.addEventListener("input",d),e.addEventListener("blur",i),()=>{b(),e.removeEventListener("input",d),e.removeEventListener("blur",i)}}function Le(e,t,{name:n="date",required:a=!1}={}){let l=e.ownerDocument.createElement("input");l.type="hidden",l.name=n,e.append(l);let o=t.getSnapshot().value,f=()=>{l.disabled=!!t.getSnapshot().options.disabled,l.value=JSON.stringify(t.getSnapshot().value)},g=i=>{if(l.disabled)return;let b=t.getSnapshot().value,s=!b||"start"in b&&!b.start&&!b.end;s&&!a||(a&&s||t.validate())&&(i.preventDefault(),e.dispatchEvent(new CustomEvent("picker-invalid",{detail:t.validate()??"Choose a value"})))},y=()=>queueMicrotask(()=>t.setValue(o));f();let d=t.subscribe(f);return e.addEventListener("submit",g),e.addEventListener("reset",y),()=>{d(),l.remove(),e.removeEventListener("submit",g),e.removeEventListener("reset",y)}}function ue(e,t,n,{outside:a=!1,onSelect:l,disabled:o}={}){let f=!0,g=new Set,y=o??e.disabled,d=e.getAttribute("aria-label"),i=()=>{let r=t.getSnapshot(),c=t.getDay(n);for(let[h,k]of Object.entries(le(t,n,a)))w(e,h,k);e.disabled=y||c.disabled||a&&r.options.outsideSelectable===!1,e.tabIndex=c.focused&&!a?0:-1,w(e,"data-day-trigger",!0),w(e,"aria-current",c.today?"date":null),w(e,"aria-label",d??I(n,r.options.locale));let u=e.ownerDocument.activeElement;c.focused&&!a&&u!==e&&u?.matches("[data-day-trigger]")&&u.closest('[role="grid"]')===e.closest('[role="grid"]')&&e.focus()},b=r=>{let c=setTimeout(()=>{g.delete(c),f&&e.isConnected&&!e.disabled&&!r.defaultPrevented&&!(a&&t.getSnapshot().options.outsideSelectable===!1)&&t.selectDate(n)&&l?.(n)},0);g.add(c)},s=r=>{r.pointerType!=="touch"&&!e.disabled&&t.hover(n)},p=r=>{if(!r.defaultPrevented)try{if(r.key==="Escape"){t.cancel(),r.preventDefault();return}t.focus(n);let c=getComputedStyle(e).direction==="rtl",u=c&&r.key==="ArrowLeft"?"ArrowRight":c&&r.key==="ArrowRight"?"ArrowLeft":r.key;t.moveFocus(u,r.shiftKey)&&r.preventDefault()}catch(c){if(!(c instanceof RangeError))throw c}};i();let m=t.subscribe(i);return e.addEventListener("click",b),e.addEventListener("pointerenter",s),e.addEventListener("keydown",p),()=>{f=!1;for(let r of g)clearTimeout(r);g.clear(),m(),e.removeEventListener("click",b),e.removeEventListener("pointerenter",s),e.removeEventListener("keydown",p)}}function Re(e,t,n,{modal:a=!1,label:l="Choose a date"}={}){let o=t.ownerDocument,f=t.hidden,g=e.disabled;t.setAttribute("role","dialog"),t.setAttribute("aria-label",t.getAttribute("aria-label")??l),a&&t.setAttribute("aria-modal","true"),e.setAttribute("aria-haspopup","dialog");let y=n.getSnapshot().open,d=()=>{let m=n.getSnapshot();t.hidden=!m.open,e.disabled=g||!!m.options.disabled,e.setAttribute("aria-expanded",String(m.open)),m.open&&!y&&queueMicrotask(()=>{n.getSnapshot().open&&(t.querySelector('[data-day-trigger][tabindex="0"],input:not(:disabled),button:not(:disabled)')??t).focus()}),!m.open&&y&&e.focus(),y=m.open},i=m=>{m.defaultPrevented||(n.getSnapshot().open?n.cancel():n.setOpen(!0))},b=m=>{n.getSnapshot().open&&!t.contains(m.target)&&!e.contains(m.target)&&n.cancel()},s=m=>{if(n.getSnapshot().open&&(m.key==="Escape"&&(m.preventDefault(),n.cancel()),a&&m.key==="Tab")){let r=[...t.querySelectorAll('button:not(:disabled),input:not(:disabled),select:not(:disabled),a[href],[tabindex="0"]')].filter(h=>h.tabIndex>=0&&!h.hidden&&h.getClientRects().length),c=r[0],u=r.at(-1);c?m.shiftKey&&o.activeElement===c?(m.preventDefault(),u.focus()):!m.shiftKey&&o.activeElement===u&&(m.preventDefault(),c.focus()):(m.preventDefault(),t.focus())}};d();let p=n.subscribe(d);return e.addEventListener("click",i),o.addEventListener("pointerdown",b),o.addEventListener("keydown",s),()=>{p(),t.hidden=f,e.removeEventListener("click",i),o.removeEventListener("pointerdown",b),o.removeEventListener("keydown",s)}}function Ce(e,t={}){let n=e.getSnapshot(),a=z(1),l=t.from??{year:1900,month:1},o=t.to??{year:2100,month:12},f=d=>d.year*12+d.month,g=f(n.visibleMonth)<f(l)?l:f(n.visibleMonth)>f(o)?o:n.visibleMonth,y={...e,getSnapshot:()=>({...n,visibleMonth:g,options:{...n.options,months:1,fixedWeeks:!0}}),getMonth:(d=0)=>{let i=P(g,d);return a.month(i.year,i.month,{...n.options,fixedWeeks:!0})}};return _(y,t)}function fe(e,t,n={}){let a=n.from??{year:1900,month:1},l=n.to??{year:2100,month:12};P(a,0),P(l,0);let o=v=>(v.year-a.year)*12+v.month-a.month,f=o(l)+1,g=n.monthHeight??340,y=n.overscan??1;if(f<1||f>1e4||g<280||!Number.isFinite(g)||!Number.isInteger(y)||y<0||y>4)throw new RangeError("Invalid scrolling window or month geometry");let d=e.ownerDocument,i=d.createElement("div");i.style.height=`${f*g}px`,i.style.position="relative",e.replaceChildren(i);let b=z(12),s=new Map,p=0,m=!1,r=v=>{let j,H;return{...t,getSnapshot(){let A=t.getSnapshot();return A!==j&&(j=A,H=Object.freeze({...A,visibleMonth:v,options:Object.freeze({...A.options,months:1,fixedWeeks:!0})})),H},getMonth(A=0){let x=P(v,A);return b.month(x.year,x.month,{...t.getSnapshot().options,fixedWeeks:!0})}}},c=()=>{let v=Math.max(0,Math.min(f-1,Math.floor(e.scrollTop/g))),j=Math.ceil((e.clientHeight||g)/g),H=Math.max(0,v-y),A=Math.min(f-1,v+j+y);for(let[x,L]of s)(x<H||x>A)&&(L.stop(),L.element.remove(),s.delete(x));for(let x=H;x<=A;x++)if(!s.has(x)){let L=d.createElement("div");L.className="sp-scroll-month",L.style.cssText=`position:absolute;top:${x*g}px;left:0;right:0;height:${g}px;overflow:hidden`,i.append(L);let ve=P(a,x);s.set(x,{element:L,stop:K(L,r(ve),n)})}if(!m){let x=P(a,v),L=t.getSnapshot();(x.year!==L.visibleMonth.year||x.month!==L.visibleMonth.month)&&(m=!0,t.setVisibleMonth(x),m=!1)}},u=()=>{p||(p=e.ownerDocument.defaultView.requestAnimationFrame(()=>{p=0,c()}))},h=()=>{if(m)return;let v=o(t.getSnapshot().visibleMonth);v<0||v>=f||Math.floor(e.scrollTop/g)!==v&&(e.scrollTop=v*g,c())};e.scrollTop=Math.max(0,Math.min(f-1,o(t.getSnapshot().visibleMonth)))*g,c();let k=t.subscribe(h);e.addEventListener("scroll",u,{passive:!0});let D=e.ownerDocument.defaultView?.ResizeObserver,O=D?new D(u):void 0;return O?.observe(e),()=>{O?.disconnect(),k(),e.removeEventListener("scroll",u),p&&e.ownerDocument.defaultView.cancelAnimationFrame(p);for(let v of s.values())v.stop();s.clear(),b.clear(),i.remove()}}function be(e={}){return Y({...e,kind:"date"})}var Ae=be;function me(e,t={}){let n="getSnapshot"in t,a=n?t:Y(t),l=[],o=d=>[...e.querySelectorAll(d)].filter(i=>!i.parentElement?.closest("[data-picker-root]")||i.parentElement.closest("[data-picker-root]")===e);w(e,"data-picker-root",!0);for(let d of o("[data-continuous]"))l.push(fe(d,a,JSON.parse(d.dataset.continuous??"{}")));for(let d of o("[data-calendar]"))l.push(K(d,a,JSON.parse(d.dataset.calendarOptions??"{}")));for(let d of o("[data-day-trigger]"))d.closest("[data-calendar]")||l.push(ue(d,a,d.dataset.date));for(let d of o("[data-date-field]"))l.push(de(d,a,d.dataset.endpoint??"start"));for(let d of o("[data-time-segment]"))l.push(ce(d,a,d.dataset.timeSegment,d.dataset.endpoint??"start"));let f=d=>{if(d.defaultPrevented)return;let i=d.target.closest("[data-picker-action]");if(!i||!e.contains(i)||i.closest("[data-picker-root]")!==e||a.getSnapshot().options.disabled)return;let s=i.dataset.pickerAction;try{s==="previous"?a.navigate(-1):s==="next"?a.navigate(1):s==="open"?a.setOpen(!0):(s==="cancel"||s==="apply"||s==="clear")&&a[s]()}catch(p){if(!(p instanceof RangeError))throw p}},g=d=>{let i=d.target;if(!(i.closest("[data-picker-root]")!==e||a.getSnapshot().options.disabled))try{i.hasAttribute("data-month-select")&&a.setVisibleMonth({...a.getSnapshot().visibleMonth,month:Number(i.value)}),i.hasAttribute("data-year-select")&&a.setVisibleMonth({...a.getSnapshot().visibleMonth,year:Number(i.value)}),i.hasAttribute("data-day-offset")&&a.setDayOffset(Number(i.value),i.dataset.endpoint??"end")}catch(b){if(!(b instanceof RangeError))throw b}},y=()=>{let d=a.getSnapshot();for(let i of o("[data-calendar-cell]"))for(let[b,s]of Object.entries(U(a,i.dataset.date,i.hasAttribute("data-outside"))))w(i,b,s);for(let i of o("[data-picker-output]"))i.textContent=JSON.stringify(d.value,null,2);for(let i of o("[data-picker-error]"))i.textContent=d.error??"",i.hidden=!d.error;for(let i of o("[data-month-heading]"))i.textContent=F(d.visibleMonth,d.options.locale);for(let i of o("[data-month-select]"))i.value=String(d.visibleMonth.month);for(let i of o("[data-year-select]"))i.value=String(d.visibleMonth.year);for(let i of o("[data-picker-action], [data-month-select], [data-year-select], [data-day-offset]"))i.disabled=!!d.options.disabled};return y(),l.push(a.subscribe(y)),e.addEventListener("click",f),e.addEventListener("change",g),{store:a,destroy(){l.forEach(d=>d()),e.removeEventListener("click",f),e.removeEventListener("change",g),n||a.destroy()}}}function ke(e,t={}){if("getSnapshot"in t){if(t.getSnapshot().options.kind!=="date")throw new RangeError("Use a date store with DatePicker");return me(e,t)}return me(e,{...t,kind:"date"})}var Ne=ke;return xe($e);})();
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export * from "@salyra-ui/calendar";
|
|
2
|
+
import { type PickerOptions } from "@salyra-ui/calendar";
|
|
3
|
+
export type DatePickerOptions = Omit<PickerOptions, "kind">;
|
|
4
|
+
export declare function createPickerStore(options?: DatePickerOptions): {
|
|
5
|
+
getSnapshot: () => import("@salyra-ui/calendar").PickerSnapshot;
|
|
6
|
+
subscribe(fn: () => void): () => void;
|
|
7
|
+
subscribeValue(fn: (v: import("@salyra-ui/calendar").PickerValue) => void): () => void;
|
|
8
|
+
getMonth(offset?: number): import("@salyra-ui/calendar").CalendarMonth;
|
|
9
|
+
getDay(date: string): {
|
|
10
|
+
selected: boolean;
|
|
11
|
+
rangeStart: boolean;
|
|
12
|
+
rangeEnd: boolean;
|
|
13
|
+
inRange: boolean;
|
|
14
|
+
preview: boolean;
|
|
15
|
+
disabled: boolean;
|
|
16
|
+
today: boolean;
|
|
17
|
+
weekend: boolean;
|
|
18
|
+
focused: boolean;
|
|
19
|
+
};
|
|
20
|
+
setVisibleMonth(next: import("@salyra-ui/calendar").Month): void;
|
|
21
|
+
navigate(count: number): void;
|
|
22
|
+
focus(date: string): void;
|
|
23
|
+
moveFocus(key: string, shift?: boolean): boolean;
|
|
24
|
+
hover(date: string | null): void;
|
|
25
|
+
selectDate(date: string): boolean;
|
|
26
|
+
setDate(date: string, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
27
|
+
setTime(time: string, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
28
|
+
setDayOffset(offset: number, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
29
|
+
setEndpoint(endpoint: import("@salyra-ui/calendar").Endpoint): void;
|
|
30
|
+
setValue(value: import("@salyra-ui/calendar").PickerValue): void;
|
|
31
|
+
apply(): boolean;
|
|
32
|
+
cancel(): void;
|
|
33
|
+
clear(): void;
|
|
34
|
+
setOpen(open: boolean): void;
|
|
35
|
+
setOptions(patch: Partial<PickerOptions>): void;
|
|
36
|
+
validate: () => string | null;
|
|
37
|
+
destroy(): void;
|
|
38
|
+
readonly cacheSize: number;
|
|
39
|
+
};
|
|
40
|
+
export declare const createDatePickerStore: typeof createPickerStore;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"@salyra-ui/calendar";import{createPickerStore as t}from"@salyra-ui/calendar";function r(e={}){return t({...e,kind:"date"})}var i=r;export{i as createDatePickerStore,r as createPickerStore};
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export * from "./index";
|
|
2
|
+
import { Action, MonthSelect, YearSelect, Output } from "@salyra-ui/calendar/react";
|
|
3
|
+
export declare const DatePicker: {
|
|
4
|
+
Root: (props: import("@salyra-ui/calendar/react").RootProps) => import("react").JSX.Element;
|
|
5
|
+
Field: import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & {
|
|
6
|
+
endpoint?: import("@salyra-ui/calendar").Endpoint;
|
|
7
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
8
|
+
Action: typeof Action;
|
|
9
|
+
MonthSelect: typeof MonthSelect;
|
|
10
|
+
YearSelect: typeof YearSelect;
|
|
11
|
+
Output: typeof Output;
|
|
12
|
+
Calendar: import("react").ForwardRefExoticComponent<import("@salyra-ui/calendar/react").CalendarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
13
|
+
View: import("react").ForwardRefExoticComponent<import("@salyra-ui/calendar/react").CalendarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
Continuous: typeof import("@salyra-ui/calendar/react").Continuous;
|
|
15
|
+
Grid: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
Week: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
17
|
+
Cell: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
18
|
+
date: string;
|
|
19
|
+
outside?: boolean;
|
|
20
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
21
|
+
Number: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & {
|
|
22
|
+
date: string;
|
|
23
|
+
} & import("react").RefAttributes<HTMLSpanElement>>;
|
|
24
|
+
DayTrigger: import("react").ForwardRefExoticComponent<Omit<import("react").ButtonHTMLAttributes<HTMLButtonElement>, "onSelect"> & {
|
|
25
|
+
date: string;
|
|
26
|
+
outside?: boolean;
|
|
27
|
+
onSelect?: (date: string) => void;
|
|
28
|
+
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
29
|
+
Heading: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLHeadingElement> & {
|
|
30
|
+
offset?: number;
|
|
31
|
+
} & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
32
|
+
Weekday: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & {
|
|
33
|
+
day: number;
|
|
34
|
+
} & import("react").RefAttributes<HTMLSpanElement>>;
|
|
35
|
+
Navigation: typeof import("@salyra-ui/calendar/react").Navigation;
|
|
36
|
+
};
|
|
37
|
+
export { DateRoot as Root, Field, Action, MonthSelect, YearSelect, Output, } from "@salyra-ui/calendar/react";
|
|
38
|
+
export { usePickerStore } from "@salyra-ui/calendar/react";
|
package/dist/react.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";var s=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var l=(r,t)=>{for(var c in t)s(r,c,{get:t[c],enumerable:!0})},k=(r,t,c,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of u(t))!x.call(r,a)&&a!==c&&s(r,a,{get:()=>t[a],enumerable:!(p=S(t,a))||p.enumerable});return r},o=(r,t,c)=>(k(r,t,"default"),c&&k(c,t,"default"));var i={};l(i,{Action:()=>M,DatePicker:()=>A,Field:()=>F,MonthSelect:()=>Y,Output:()=>V,Root:()=>C,YearSelect:()=>w,createDatePickerStore:()=>m,createPickerStore:()=>n,usePickerStore:()=>b});var e={};l(e,{createDatePickerStore:()=>m,createPickerStore:()=>n});o(e,q);import*as q from"@salyra-ui/calendar";import{createPickerStore as d}from"@salyra-ui/calendar";function n(r={}){return d({...r,kind:"date"})}var m=n;o(i,e);import{Calendar as P,Field as f,Action as O,MonthSelect as D,YearSelect as R,Output as h,DateRoot as y}from"@salyra-ui/calendar/react";import{DateRoot as C,Field as F,Action as M,MonthSelect as Y,YearSelect as w,Output as V}from"@salyra-ui/calendar/react";import{usePickerStore as b}from"@salyra-ui/calendar/react";var A={...P,Root:y,Field:f,Action:O,MonthSelect:D,YearSelect:R,Output:h,Calendar:P.View};export{M as Action,A as DatePicker,F as Field,Y as MonthSelect,V as Output,C as Root,w as YearSelect,m as createDatePickerStore,n as createPickerStore,b as usePickerStore};
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
:where(.sp-calendar) {
|
|
2
|
+
--sp-accent: #e4002b;
|
|
3
|
+
--sp-selected-text: #fff;
|
|
4
|
+
--sp-range: #fce5ea;
|
|
5
|
+
--sp-outside: #737373;
|
|
6
|
+
--sp-border: #dddde2;
|
|
7
|
+
color: #181818;
|
|
8
|
+
font-family:
|
|
9
|
+
"Helvetica Neue",
|
|
10
|
+
Helvetica,
|
|
11
|
+
Arial,
|
|
12
|
+
sans-serif;
|
|
13
|
+
}
|
|
14
|
+
.sp-calendar {
|
|
15
|
+
display: grid;
|
|
16
|
+
grid-template-columns: repeat(var(--sp-months, 1), minmax(0, 1fr));
|
|
17
|
+
gap: 24px;
|
|
18
|
+
}
|
|
19
|
+
.sp-month {
|
|
20
|
+
min-width: 0;
|
|
21
|
+
}
|
|
22
|
+
.sp-month h3 {
|
|
23
|
+
margin: 0 0 20px;
|
|
24
|
+
font-size: 15px;
|
|
25
|
+
font-weight: 600;
|
|
26
|
+
}
|
|
27
|
+
.sp-grid {
|
|
28
|
+
width: 100%;
|
|
29
|
+
table-layout: fixed;
|
|
30
|
+
border-collapse: collapse;
|
|
31
|
+
}
|
|
32
|
+
.sp-grid th {
|
|
33
|
+
height: 32px;
|
|
34
|
+
font-size: 11px;
|
|
35
|
+
font-weight: 500;
|
|
36
|
+
color: #656565;
|
|
37
|
+
text-align: center;
|
|
38
|
+
}
|
|
39
|
+
.sp-grid td {
|
|
40
|
+
padding: 2px 0;
|
|
41
|
+
position: relative;
|
|
42
|
+
height: 40px;
|
|
43
|
+
text-align: center;
|
|
44
|
+
}
|
|
45
|
+
.sp-grid [data-day-trigger] {
|
|
46
|
+
position: relative;
|
|
47
|
+
z-index: 1;
|
|
48
|
+
display: inline-grid;
|
|
49
|
+
place-items: center;
|
|
50
|
+
width: 36px;
|
|
51
|
+
height: 36px;
|
|
52
|
+
border: 1px solid transparent;
|
|
53
|
+
border-radius: var(--sp-day-radius, 4px);
|
|
54
|
+
background: transparent;
|
|
55
|
+
color: inherit;
|
|
56
|
+
font: inherit;
|
|
57
|
+
font-size: 13px;
|
|
58
|
+
font-variant-numeric: tabular-nums;
|
|
59
|
+
cursor: pointer;
|
|
60
|
+
}
|
|
61
|
+
.sp-grid [data-day-trigger]:hover {
|
|
62
|
+
border-color: var(--sp-border);
|
|
63
|
+
}
|
|
64
|
+
.sp-grid [data-part=cell][data-in-range] {
|
|
65
|
+
background: var(--sp-range);
|
|
66
|
+
}
|
|
67
|
+
.sp-grid [data-part=cell][data-selected] [data-day-trigger] {
|
|
68
|
+
background: var(--sp-accent);
|
|
69
|
+
color: var(--sp-selected-text);
|
|
70
|
+
}
|
|
71
|
+
.sp-grid [data-part=cell][data-outside]:not([data-selected]) {
|
|
72
|
+
color: var(--sp-outside);
|
|
73
|
+
}
|
|
74
|
+
.sp-grid [data-part=cell][data-today]:not([data-selected]) [data-part=number] {
|
|
75
|
+
text-decoration: underline;
|
|
76
|
+
text-underline-offset: 4px;
|
|
77
|
+
}
|
|
78
|
+
.sp-grid [data-day-trigger]:focus-visible {
|
|
79
|
+
outline: 2px solid var(--sp-accent);
|
|
80
|
+
outline-offset: 2px;
|
|
81
|
+
}
|
|
82
|
+
.sp-grid [data-day-trigger]:disabled {
|
|
83
|
+
opacity: 0.3;
|
|
84
|
+
cursor: default;
|
|
85
|
+
}
|
|
86
|
+
.sp-time {
|
|
87
|
+
display: flex;
|
|
88
|
+
gap: 12px;
|
|
89
|
+
flex-wrap: wrap;
|
|
90
|
+
}
|
|
91
|
+
.sp-time label {
|
|
92
|
+
display: grid;
|
|
93
|
+
gap: 8px;
|
|
94
|
+
font: inherit;
|
|
95
|
+
font-size: 12px;
|
|
96
|
+
}
|
|
97
|
+
.sp-time input,
|
|
98
|
+
.sp-time select {
|
|
99
|
+
width: 72px;
|
|
100
|
+
min-height: 40px;
|
|
101
|
+
border: 1px solid #dddde2;
|
|
102
|
+
padding: 8px;
|
|
103
|
+
box-sizing: border-box;
|
|
104
|
+
background: transparent;
|
|
105
|
+
color: inherit;
|
|
106
|
+
font: inherit;
|
|
107
|
+
}
|
|
108
|
+
.sp-time [aria-invalid=true] {
|
|
109
|
+
outline: 2px solid #e4002b;
|
|
110
|
+
}
|
|
111
|
+
@media (max-width: 640px) {
|
|
112
|
+
.sp-calendar {
|
|
113
|
+
grid-template-columns: 1fr;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:where(.sp-calendar){--sp-accent: #e4002b;--sp-selected-text: #fff;--sp-range: #fce5ea;--sp-outside: #737373;--sp-border: #dddde2;color:#181818;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.sp-calendar{display:grid;grid-template-columns:repeat(var(--sp-months, 1),minmax(0,1fr));gap:24px}.sp-month{min-width:0}.sp-month h3{margin:0 0 20px;font-size:15px;font-weight:600}.sp-grid{width:100%;table-layout:fixed;border-collapse:collapse}.sp-grid th{height:32px;font-size:11px;font-weight:500;color:#656565;text-align:center}.sp-grid td{padding:2px 0;position:relative;height:40px;text-align:center}.sp-grid [data-day-trigger]{position:relative;z-index:1;display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:var(--sp-day-radius, 4px);background:transparent;color:inherit;font:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.sp-grid [data-day-trigger]:hover{border-color:var(--sp-border)}.sp-grid [data-part=cell][data-in-range]{background:var(--sp-range)}.sp-grid [data-part=cell][data-selected] [data-day-trigger]{background:var(--sp-accent);color:var(--sp-selected-text)}.sp-grid [data-part=cell][data-outside]:not([data-selected]){color:var(--sp-outside)}.sp-grid [data-part=cell][data-today]:not([data-selected]) [data-part=number]{text-decoration:underline;text-underline-offset:4px}.sp-grid [data-day-trigger]:focus-visible{outline:2px solid var(--sp-accent);outline-offset:2px}.sp-grid [data-day-trigger]:disabled{opacity:.3;cursor:default}.sp-time{display:flex;gap:12px;flex-wrap:wrap}.sp-time label{display:grid;gap:8px;font:inherit;font-size:12px}.sp-time input,.sp-time select{width:72px;min-height:40px;border:1px solid #dddde2;padding:8px;box-sizing:border-box;background:transparent;color:inherit;font:inherit}.sp-time [aria-invalid=true]{outline:2px solid #e4002b}@media(max-width:640px){.sp-calendar{grid-template-columns:1fr}}
|
package/dist/svelte.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./index";import{Calendar,Field,Action,MonthSelect,YearSelect,DateRoot}from"@salyra-ui/calendar/svelte";export const DatePicker={...Calendar,Root:DateRoot,Field,Action,MonthSelect,YearSelect,Calendar:Calendar.View};export{DateRoot as Root,Field,Action,MonthSelect,YearSelect}from"@salyra-ui/calendar/svelte";export{usePickerStore}from"@salyra-ui/calendar/svelte";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export * from "./index";
|
|
2
|
+
import type { PickerStore } from "@salyra-ui/calendar";
|
|
3
|
+
import type { DatePickerOptions } from "./index";
|
|
4
|
+
export declare function mountPicker(element: HTMLElement, options?: DatePickerOptions | PickerStore): {
|
|
5
|
+
store: {
|
|
6
|
+
getSnapshot: () => import("@salyra-ui/calendar").PickerSnapshot;
|
|
7
|
+
subscribe(fn: () => void): () => void;
|
|
8
|
+
subscribeValue(fn: (v: import("@salyra-ui/calendar").PickerValue) => void): () => void;
|
|
9
|
+
getMonth(offset?: number): import("@salyra-ui/calendar").CalendarMonth;
|
|
10
|
+
getDay(date: string): {
|
|
11
|
+
selected: boolean;
|
|
12
|
+
rangeStart: boolean;
|
|
13
|
+
rangeEnd: boolean;
|
|
14
|
+
inRange: boolean;
|
|
15
|
+
preview: boolean;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
today: boolean;
|
|
18
|
+
weekend: boolean;
|
|
19
|
+
focused: boolean;
|
|
20
|
+
};
|
|
21
|
+
setVisibleMonth(next: import("@salyra-ui/calendar").Month): void;
|
|
22
|
+
navigate(count: number): void;
|
|
23
|
+
focus(date: string): void;
|
|
24
|
+
moveFocus(key: string, shift?: boolean): boolean;
|
|
25
|
+
hover(date: string | null): void;
|
|
26
|
+
selectDate(date: string): boolean;
|
|
27
|
+
setDate(date: string, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
28
|
+
setTime(time: string, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
29
|
+
setDayOffset(offset: number, endpoint?: import("@salyra-ui/calendar").Endpoint): boolean;
|
|
30
|
+
setEndpoint(endpoint: import("@salyra-ui/calendar").Endpoint): void;
|
|
31
|
+
setValue(value: import("@salyra-ui/calendar").PickerValue): void;
|
|
32
|
+
apply(): boolean;
|
|
33
|
+
cancel(): void;
|
|
34
|
+
clear(): void;
|
|
35
|
+
setOpen(open: boolean): void;
|
|
36
|
+
setOptions(patch: Partial<import("@salyra-ui/calendar").PickerOptions>): void;
|
|
37
|
+
validate: () => string | null;
|
|
38
|
+
destroy(): void;
|
|
39
|
+
readonly cacheSize: number;
|
|
40
|
+
};
|
|
41
|
+
destroy(): void;
|
|
42
|
+
};
|
|
43
|
+
export declare const mountDatePicker: typeof mountPicker;
|
package/dist/vanilla.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var P=(r,e)=>{for(var i in e)m(r,i,{get:e[i],enumerable:!0})},k=(r,e,i,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of x(e))!S.call(r,a)&&a!==i&&m(r,a,{get:()=>e[a],enumerable:!(p=u(e,a))||p.enumerable});return r},o=(r,e,i)=>(k(r,e,"default"),i&&k(i,e,"default"));var n={};P(n,{createDatePickerStore:()=>s,createPickerStore:()=>c,mountDatePicker:()=>O,mountPicker:()=>f});var t={};P(t,{createDatePickerStore:()=>s,createPickerStore:()=>c});o(t,g);import*as g from"@salyra-ui/calendar";import{createPickerStore as D}from"@salyra-ui/calendar";function c(r={}){return D({...r,kind:"date"})}var s=c;o(n,t);import{mountPicker as d}from"@salyra-ui/calendar/vanilla";function f(r,e={}){if("getSnapshot"in e){if(e.getSnapshot().options.kind!=="date")throw new RangeError("Use a date store with DatePicker");return d(r,e)}return d(r,{...e,kind:"date"})}var O=f;export{s as createDatePickerStore,c as createPickerStore,O as mountDatePicker,f as mountPicker};
|
package/dist/vue.d.ts
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
export * from "./index";
|
|
2
|
+
export declare const DatePicker: {
|
|
3
|
+
Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
|
+
store: import("vue").PropType<import("@salyra-ui/calendar").PickerStore>;
|
|
5
|
+
options: {
|
|
6
|
+
type: import("vue").PropType<import("@salyra-ui/calendar").PickerOptions>;
|
|
7
|
+
default: () => {};
|
|
8
|
+
};
|
|
9
|
+
modelValue: import("vue").PropType<import("@salyra-ui/calendar").PickerValue>;
|
|
10
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "valueChange")[], "update:modelValue" | "valueChange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
store: import("vue").PropType<import("@salyra-ui/calendar").PickerStore>;
|
|
14
|
+
options: {
|
|
15
|
+
type: import("vue").PropType<import("@salyra-ui/calendar").PickerOptions>;
|
|
16
|
+
default: () => {};
|
|
17
|
+
};
|
|
18
|
+
modelValue: import("vue").PropType<import("@salyra-ui/calendar").PickerValue>;
|
|
19
|
+
}>> & Readonly<{
|
|
20
|
+
onValueChange?: ((...args: any[]) => any) | undefined;
|
|
21
|
+
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
options: import("@salyra-ui/calendar").PickerOptions;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
25
|
+
Field: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
26
|
+
endpoint: {
|
|
27
|
+
type: import("vue").PropType<import("@salyra-ui/calendar").Endpoint>;
|
|
28
|
+
default: "start";
|
|
29
|
+
};
|
|
30
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
33
|
+
endpoint: {
|
|
34
|
+
type: import("vue").PropType<import("@salyra-ui/calendar").Endpoint>;
|
|
35
|
+
default: "start";
|
|
36
|
+
};
|
|
37
|
+
}>> & Readonly<{}>, {
|
|
38
|
+
endpoint: import("@salyra-ui/calendar").Endpoint;
|
|
39
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
40
|
+
Action: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
41
|
+
action: {
|
|
42
|
+
type: import("vue").PropType<"apply" | "cancel" | "clear">;
|
|
43
|
+
default: "apply";
|
|
44
|
+
};
|
|
45
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
48
|
+
action: {
|
|
49
|
+
type: import("vue").PropType<"apply" | "cancel" | "clear">;
|
|
50
|
+
default: "apply";
|
|
51
|
+
};
|
|
52
|
+
}>> & Readonly<{}>, {
|
|
53
|
+
action: "cancel" | "apply" | "clear";
|
|
54
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
55
|
+
MonthSelect: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
56
|
+
from: {
|
|
57
|
+
type: NumberConstructor;
|
|
58
|
+
default: number;
|
|
59
|
+
};
|
|
60
|
+
to: {
|
|
61
|
+
type: NumberConstructor;
|
|
62
|
+
default: number;
|
|
63
|
+
};
|
|
64
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
65
|
+
[key: string]: any;
|
|
66
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
67
|
+
from: {
|
|
68
|
+
type: NumberConstructor;
|
|
69
|
+
default: number;
|
|
70
|
+
};
|
|
71
|
+
to: {
|
|
72
|
+
type: NumberConstructor;
|
|
73
|
+
default: number;
|
|
74
|
+
};
|
|
75
|
+
}>> & Readonly<{}>, {
|
|
76
|
+
from: number;
|
|
77
|
+
to: number;
|
|
78
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
79
|
+
YearSelect: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
80
|
+
from: {
|
|
81
|
+
type: NumberConstructor;
|
|
82
|
+
default: number;
|
|
83
|
+
};
|
|
84
|
+
to: {
|
|
85
|
+
type: NumberConstructor;
|
|
86
|
+
default: number;
|
|
87
|
+
};
|
|
88
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
89
|
+
[key: string]: any;
|
|
90
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
91
|
+
from: {
|
|
92
|
+
type: NumberConstructor;
|
|
93
|
+
default: number;
|
|
94
|
+
};
|
|
95
|
+
to: {
|
|
96
|
+
type: NumberConstructor;
|
|
97
|
+
default: number;
|
|
98
|
+
};
|
|
99
|
+
}>> & Readonly<{}>, {
|
|
100
|
+
from: number;
|
|
101
|
+
to: number;
|
|
102
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
103
|
+
Output: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
104
|
+
[key: string]: any;
|
|
105
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
106
|
+
Calendar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
107
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").CalendarRenderOptions>;
|
|
108
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
109
|
+
[key: string]: any;
|
|
110
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
111
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").CalendarRenderOptions>;
|
|
112
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
113
|
+
Continuous: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
114
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").MonthScrollerOptions>;
|
|
115
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
116
|
+
[key: string]: any;
|
|
117
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
118
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").MonthScrollerOptions>;
|
|
119
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
120
|
+
Grid: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
121
|
+
[key: string]: any;
|
|
122
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
123
|
+
Week: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
126
|
+
Cell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
127
|
+
date: {
|
|
128
|
+
type: StringConstructor;
|
|
129
|
+
required: true;
|
|
130
|
+
};
|
|
131
|
+
outside: BooleanConstructor;
|
|
132
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
133
|
+
[key: string]: any;
|
|
134
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
135
|
+
date: {
|
|
136
|
+
type: StringConstructor;
|
|
137
|
+
required: true;
|
|
138
|
+
};
|
|
139
|
+
outside: BooleanConstructor;
|
|
140
|
+
}>> & Readonly<{}>, {
|
|
141
|
+
outside: boolean;
|
|
142
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
143
|
+
Number: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
144
|
+
date: {
|
|
145
|
+
type: StringConstructor;
|
|
146
|
+
required: true;
|
|
147
|
+
};
|
|
148
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
149
|
+
[key: string]: any;
|
|
150
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
151
|
+
date: {
|
|
152
|
+
type: StringConstructor;
|
|
153
|
+
required: true;
|
|
154
|
+
};
|
|
155
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
156
|
+
DayTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
157
|
+
date: {
|
|
158
|
+
type: StringConstructor;
|
|
159
|
+
required: true;
|
|
160
|
+
};
|
|
161
|
+
outside: BooleanConstructor;
|
|
162
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
163
|
+
[key: string]: any;
|
|
164
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "select"[], "select", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
165
|
+
date: {
|
|
166
|
+
type: StringConstructor;
|
|
167
|
+
required: true;
|
|
168
|
+
};
|
|
169
|
+
outside: BooleanConstructor;
|
|
170
|
+
}>> & Readonly<{
|
|
171
|
+
onSelect?: ((...args: any[]) => any) | undefined;
|
|
172
|
+
}>, {
|
|
173
|
+
outside: boolean;
|
|
174
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
175
|
+
Heading: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
176
|
+
offset: {
|
|
177
|
+
type: NumberConstructor;
|
|
178
|
+
default: number;
|
|
179
|
+
};
|
|
180
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
181
|
+
[key: string]: any;
|
|
182
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
183
|
+
offset: {
|
|
184
|
+
type: NumberConstructor;
|
|
185
|
+
default: number;
|
|
186
|
+
};
|
|
187
|
+
}>> & Readonly<{}>, {
|
|
188
|
+
offset: number;
|
|
189
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
190
|
+
Weekday: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
191
|
+
day: {
|
|
192
|
+
type: NumberConstructor;
|
|
193
|
+
required: true;
|
|
194
|
+
};
|
|
195
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
196
|
+
[key: string]: any;
|
|
197
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
198
|
+
day: {
|
|
199
|
+
type: NumberConstructor;
|
|
200
|
+
required: true;
|
|
201
|
+
};
|
|
202
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
203
|
+
Navigation: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
204
|
+
direction: {
|
|
205
|
+
type: NumberConstructor;
|
|
206
|
+
default: number;
|
|
207
|
+
};
|
|
208
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
209
|
+
[key: string]: any;
|
|
210
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
211
|
+
direction: {
|
|
212
|
+
type: NumberConstructor;
|
|
213
|
+
default: number;
|
|
214
|
+
};
|
|
215
|
+
}>> & Readonly<{}>, {
|
|
216
|
+
direction: number;
|
|
217
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
218
|
+
View: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
219
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").CalendarRenderOptions>;
|
|
220
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
221
|
+
[key: string]: any;
|
|
222
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
223
|
+
options: import("vue").PropType<import("@salyra-ui/calendar").CalendarRenderOptions>;
|
|
224
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
225
|
+
};
|
|
226
|
+
export { DateRoot as Root, Field, Action, MonthSelect, YearSelect, Output, } from "@salyra-ui/calendar/vue";
|
|
227
|
+
export { usePickerStore } from "@salyra-ui/calendar/vue";
|
package/dist/vue.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var s=(r,t)=>{for(var c in t)m(r,c,{get:t[c],enumerable:!0})},k=(r,t,c,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of x(t))!d.call(r,a)&&a!==c&&m(r,a,{get:()=>t[a],enumerable:!(n=l(t,a))||n.enumerable});return r},o=(r,t,c)=>(k(r,t,"default"),c&&k(c,t,"default"));var i={};s(i,{Action:()=>M,DatePicker:()=>A,Field:()=>F,MonthSelect:()=>Y,Output:()=>V,Root:()=>C,YearSelect:()=>w,createDatePickerStore:()=>P,createPickerStore:()=>p,usePickerStore:()=>b});var e={};s(e,{createDatePickerStore:()=>P,createPickerStore:()=>p});o(e,q);import*as q from"@salyra-ui/calendar";import{createPickerStore as f}from"@salyra-ui/calendar";function p(r={}){return f({...r,kind:"date"})}var P=p;o(i,e);import{Calendar as S,Field as u,Action as O,MonthSelect as D,YearSelect as R,Output as h,DateRoot as y}from"@salyra-ui/calendar/vue";import{DateRoot as C,Field as F,Action as M,MonthSelect as Y,YearSelect as w,Output as V}from"@salyra-ui/calendar/vue";import{usePickerStore as b}from"@salyra-ui/calendar/vue";var A={...S,Root:y,Field:u,Action:O,MonthSelect:D,YearSelect:R,Output:h,Calendar:S.View};export{M as Action,A as DatePicker,F as Field,Y as MonthSelect,V as Output,C as Root,w as YearSelect,P as createDatePickerStore,p as createPickerStore,b as usePickerStore};
|