@ecopages/radiant-ui 0.1.0-beta.5 → 0.1.0-beta.6
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/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +2 -2
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +2 -2
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +3 -3
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +3 -3
- package/dist/components/ui/toc/toc.ssr.test.d.ts +1 -0
- package/dist/components/ui/toc/toc.test.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +5 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as N,jsxs as Pe}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Se,customElement as dn,event as pn,onEvent as k,onUpdated as Ee,prop as b,query as Ce,state as ft}from"@ecopages/radiant";function F(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),i=Number(t[2])-1,r=Number(t[3]),o=new Date(n,i,r);return o.getFullYear()!==n||o.getMonth()!==i||o.getDate()!==r?null:o}function it(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${i}`}var Mt=new Map;function Le(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function T(e,t){let n=Le(e,t),i=Mt.get(n);if(i)return i;let r=new Intl.DateTimeFormat(e,t);return Mt.set(n,r),r}function rt(e,t,n="medium"){return T(t,{dateStyle:n}).format(e)}var Ae={0:"digit",a:"letter","*":"any"},Ne=/\p{L}/u;function $e(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let i=Ae[e];return i?{kind:i}:null}function Tt(e,t,n){return n?n.test(e):t==="digit"?/\d/.test(e):t==="letter"?Ne.test(e):e.length>0}function Pt(e,t,n=!1){let i=[],r=0;for(;r<e.length;){let o=e[r];if(o==="\\"){let a=e[r+1];a&&i.push({type:"literal",value:a}),r+=2;continue}if(o==="{"){let a=e.indexOf("}",r+1);if(a<0){i.push({type:"literal",value:"{"}),r+=1;continue}i.push({type:"fixed",value:e.slice(r+1,a)}),r=a+1;continue}if(o==="["){let a=je(e,r+1);if(a<0){i.push({type:"literal",value:"["}),r+=1;continue}let l=Pt(e.slice(r+1,a),t,!0);i.push(...l),r=a+1;continue}if(o==="]")break;let s=$e(o,t);if(s){i.push({type:"input",definition:o,kind:s.kind,pattern:s.pattern,optional:n}),r+=1;continue}i.push({type:"literal",value:o}),r+=1}return i}function je(e,t){let n=1;for(let i=t;i<e.length;i+=1)if(e[i]==="["&&e[i-1]!=="\\"&&(n+=1),e[i]==="]"&&e[i-1]!=="\\"&&(n-=1,n===0))return i;return-1}function ot(e,t){return Pt(e,t)}function at(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}function We(e,t){let n="",i=0;for(let r of t){if(r.type==="fixed"||r.type==="literal"){e.slice(i,i+r.value.length)===r.value&&(i+=r.value.length);continue}if(i>=e.length)continue;let o=e[i];Tt(o,r.kind,r.pattern)&&(n+=o,i+=1)}return n}function Be(e,t){if(!e)return"";let n=0,i="";for(let r of t){if(r.type==="fixed"||r.type==="literal"){i+=r.value;continue}if(n>=e.length){if(r.optional)continue;break}let o=e[n];if(!Tt(o,r.kind,r.pattern)){if(r.optional)continue;break}i+=o,n+=1}return i}function He(e){return e.every(t=>t.type!=="input"||t.kind==="digit")}function qe(e,t){let n=e.replace(/\D/g,""),i=t.filter(r=>r.type==="fixed").map(r=>r.value.replace(/\D/g,"")).join("");return i&&n.startsWith(i)?n.slice(i.length):n}function St(e,t,n){let i=ot(t,n),r=at(i),o=We(e,i);return o.length===0&&/\S/.test(e)&&He(i)&&(o=qe(e,i)),o.length>r&&(o=o.slice(0,r)),Be(o,i)}var st=new Date(2001,8,3);function Y(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function O(e){let t=T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st),n="";for(let i of t){if(i.type==="literal"){n+=i.value;continue}(i.type==="month"||i.type==="day"||i.type==="year")&&(n+=i.value.replace(/\d/g,"0"))}return n}function lt(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st).map(n=>n.type==="literal"?n.value:n.type==="year"?"yyyy":n.type==="month"?"mm":n.type==="day"?"dd":"").join("")}function R(e){return e.replace(/\D/g,"")}function U(e,t){return St(R(e),t)}function A(e){return at(ot(e),{requiredOnly:!0})}function Ye(e){return e>=100?e:e>=69?1900+e:2e3+e}function ut(e,t){let n=Y(t),i=0,r={};for(let o of n){let s=o==="year"?4:2,a=e.slice(i,i+s);if(a.length<s)return null;let l=Number(a);o==="year"&&(l=Ye(l)),r[o]=l,i+=s}return r}function ct(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var Ue=new Date(2001,8,3);function Et(e){return T(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(Ue).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Ct(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ft(e){let t=e.year,n=e.month,i=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(i))return null;let r=new Date(t,n-1,i);return r.getFullYear()!==t||r.getMonth()!==n-1||r.getDate()!==i?null:r}function dt(e,t){let n=(e??"").trim();if(!n)return null;let i=F(n);if(i)return i;let r=Ke(n,t);if(r)return r;let o=Je(n,t);if(o)return o;let s=Et(t),a=n.match(/\d+/g);if(!a||a.length<3)return null;let l={day:0,month:0,year:0};for(let f=0;f<3;f+=1){let m=s[f];if(!m)return null;let g=Number(a[f]);m==="year"&&(g=Ct(g)),l[m]=g}return Ft(l)}function Ke(e,t){let n=O(t),i=R(e);return i.length<A(n)?null:ct(ut(i,t)??{})}function ze(e){let t=new Map;for(let n of["short","long"])for(let i=0;i<12;i+=1){let r=T(e,{month:n}).formatToParts(new Date(2020,i,1)).find(o=>o.type==="month")?.value;r&&t.set(r.toLowerCase(),i+1)}return t}function Je(e,t){let n=ze(t),i=e.toLowerCase();for(let[r,o]of n){if(i.indexOf(r)<0)continue;let a=e.match(/\d+/g);if(!a||a.length<2)continue;let l=a.find(v=>v.length===4)??a[a.length-1],f=a.find(v=>v!==l&&Number(v)<=31);if(!f||!l)continue;let m=Ct(Number(l)),g=Number(f);return Ft({year:m,month:o,day:g})}return null}import{jsx as K,jsxs as Xe}from"@ecopages/jsx/jsx-runtime";function Ot(...e){return e.filter(Boolean).join(" ")}function pt({class:e,size:t="sm",...n}){return Xe("svg",{...n,class:Ot("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[K("path",{d:"M8 2v4"}),K("path",{d:"M16 2v4"}),K("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),K("path",{d:"M3 10h18"})]})}function Rt(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var Ge={top:"bottom",bottom:"top",left:"right",right:"left"},Qe=8;function Ze(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),i=e.slice(t+1);return{side:n,align:i==="start"||i==="end"?i:"center"}}function At(e){return e==="top"||e==="bottom"?"y":"x"}function Vt(e,t,n,i,r){let{width:o,height:s}=t,a=0,l=0;switch(n){case"top":l=e.top-s-r;break;case"bottom":l=e.bottom+r;break;case"left":a=e.left-o-r;break;case"right":a=e.right+r;break}return At(n)==="y"?i==="start"?a=e.left:i==="end"?a=e.right-o:a=e.left+(e.width-o)/2:i==="start"?l=e.top:i==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:a,y:l}}function tn(e,t,n,i){let{padding:r,width:o,height:s}=i;return n==="top"?Math.max(0,r-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-r)):n==="left"?Math.max(0,r-e.x):Math.max(0,e.x+t.width-(o-r))}function Lt(e,t,n,i){let{padding:r,width:o,height:s}=i;return n==="top"?e.top-r-t.height:n==="bottom"?s-r-t.height-e.bottom:n==="left"?e.left-r-t.width:o-r-t.width-e.right}function en(e,t){return t==="center"?e:`${e}-${t}`}function nn(e,t,n,i){let{padding:r,width:o,height:s}=i;if(At(n)==="y"){let l=Math.max(r,o-r-t.width);return{x:Math.min(Math.max(e.x,r),l),y:e.y}}let a=Math.max(r,s-r-t.height);return{x:e.x,y:Math.min(Math.max(e.y,r),a)}}function rn(e,t,n,i,r={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Qe}){let{side:o,align:s}=Ze(n),a=Vt(e,t,o,s,i),l=tn(a,t,o,r),f=o,m=a;if(l>0){let g=Ge[o],v=Vt(e,t,g,s,i),$=Lt(e,t,o,r);Lt(e,t,g,r)>$&&(f=g,m=v)}return{coords:nn(m,t,f,r),placement:en(f,s)}}function on(e,t,n,i,r={}){let{coords:o,placement:s}=rn(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,i);return Object.assign(t.style,{position:"fixed",left:`${o.x}px`,top:`${o.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),r.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Nt({anchor:e,floating:t,getPlacement:n,gap:i,matchAnchorWidth:r}){let o=()=>{t.hidden||on(e,t,n(),i,{matchAnchorWidth:r})};o(),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0);let s=new ResizeObserver(o);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),s.disconnect()}}function $t(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let i=document.createComment("rui-portal");return n.insertBefore(i,e),t.appendChild(e),{unmount:()=>{let r=i.parentNode;r&&(r.insertBefore(e,i),i.remove())}}}function jt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function Wt(e,t,n){return n instanceof Node?!jt(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let i=this.config.getAnchor();if(!i)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=$t(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Nt({anchor:i,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return jt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};function an(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function Bt(e,t,n){if(!t||t.hasAttribute("data-rui-field-managed"))return;let i=an(e);if(i){i.id||(i.id=n.labelId),i.htmlFor||(i.htmlFor=n.controlId),t.setAttribute("aria-labelledby",i.id),t.removeAttribute("aria-label");return}if(n.label){t.setAttribute("aria-label",n.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Ht,qt,Yt,Ut,Kt,zt,Jt,Xt,Gt,Qt,Zt,te,ee,ne,ie,re,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,ve,be,xe,De,_e,we,ke,Ie,Me;function sn(e,t,n,i,r,o){var s,a,l,f,m,g,v,$=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,ht=[G(null),G(null)],mt=t.length;function j(u,_,x){return function(c,d){_&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,x?[d]:[]);return x?d:c}}function P(u,_,x,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(_+" must "+(x||"be")+" a function"+(c?"":" or undefined"));return u}function gt(u,_,x,c,d,w,E,D,I,M,vt){function Q(h){if(!vt(h))throw new TypeError("Attempted to access private element on non-instance")}var Z=[].concat(_[0]),bt=_[3],tt=!E,V=d===1,xt=d===3,Dt=d===4,W=d===2;function B(h,C,kt){return function(q,It){return C&&(It=q,q=u),kt&&kt(q),p[h].call(q,It)}}if(!tt){var p={},et=[],S=xt?"get":Dt||V?"set":"value";if(I?(M||V?p={get:Te(function(){return bt(this)},c,"get"),set:function(h){_[4](this,h)}}:p[S]=bt,M||Te(p[S],c,W?"":S)):M||(p=Object.getOwnPropertyDescriptor(u,c)),!M&&!I){if((a=ht[+D][c])&&(a^d)!==7)throw Error("Decorating two elements with the same name ("+p[S].name+") is not supported yet");ht[+D][c]=d<3?1:d}}for(var y=u,H=Z.length-1;H>=0;H-=x?2:1){var _t=P(Z[H],"A decorator","be",!0),wt=x?Z[H-1]:void 0,nt={},L={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(h,C){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");P(C,"An initializer","be",!0),w.push(C)}.bind(null,nt)};if(tt)a=_t.call(wt,y,L),nt.v=1,P(a,"class decorators","return")&&(y=a);else if(L.static=D,L.private=I,a=L.access={has:I?vt.bind():function(h){return c in h}},Dt||(a.get=I?W?function(h){return Q(h),p.value}:B("get",0,Q):function(h){return h[c]}),W||xt||(a.set=I?B("set",0,Q):function(h,C){h[c]=C}),y=_t.call(wt,V?{get:p.get,set:p.set}:p[S],L),nt.v=1,V){if(typeof y=="object"&&y)(a=P(y.get,"accessor.get"))&&(p.get=a),(a=P(y.set,"accessor.set"))&&(p.set=a),(a=P(y.init,"accessor.init"))&&et.unshift(a);else if(y!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else P(y,(M?"field":"method")+" decorators","return")&&(M?et.unshift(y):p[S]=y)}return d<2&&E.push(j(et,D,1),j(w,D,0)),M||tt||(I?V?E.splice(-1,0,B("get",D),B("set",D)):E.push(W?p[S]:P.call.bind(p[S])):X(u,c,p)),y}function yt(u){return X(u,$,{configurable:!0,enumerable:!0,value:s})}return o!==void 0&&(s=o[$]),s=G(s??null),m=[],g=function(u){u&&m.push(j(u))},v=function(u,_){for(var x=0;x<n.length;x++){var c=n[x],d=c[1],w=7&d;if((8&d)==u&&!w==_){var E=c[2],D=!!c[3],I=16&d;gt(u?e:e.prototype,c,I,D?"#"+E:ln(E),w,w<2?[]:u?f=f||[]:l=l||[],m,!!u,D,_,u&&D?function(M){return cn(M)===e}:r)}}},v(8,0),v(0,0),v(8,1),v(0,1),g(l),g(f),a=m,mt||yt(e),{e:a,get c(){var u=[];return mt&&[yt(e=gt(e,[t],i,e.name,5,u)),j(u,1)]}}}function ln(e){var t=un(e,"string");return typeof t=="symbol"?t:t+""}function un(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var i=n.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Te(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function cn(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var J,Fe=class extends Se{static{({e:[Yt,Ut,Kt,zt,Jt,Xt,Gt,Qt,Zt,te,ee,ne,ie,re,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,ve,be,xe,De,_e,we,ke,Ie,Me,Ht],c:[J,qt]}=sn(this,[dn("rui-date-field")],[[b({type:String,reflect:!0,defaultValue:""}),0,"value"],[b({type:String,defaultValue:""}),0,"min"],[b({type:String,defaultValue:""}),0,"max"],[b({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[b({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[b({type:String,defaultValue:""}),0,"label"],[b({type:String,defaultValue:""}),0,"name"],[b({type:String,defaultValue:""}),0,"placeholder"],[b({type:String,defaultValue:""}),0,"locale"],[b({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[b({type:Boolean,reflect:!0,defaultValue:!0}),0,"masked"],[b({type:Number,attribute:"visible-months",defaultValue:1}),0,"visibleMonths"],[pn({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[ft,0,"displayValue"],[ft,0,"editing"],[ft,0,"open"],[Ce({ref:"root"}),0,"rootTarget"],[Ce({ref:"popover"}),0,"popoverTarget"],[Ee(["value","min","max","label","placeholder","disabled","readOnly","locale","dateStyle","masked"]),2,"onPropsUpdated"],[Ee(["open"]),2,"onOpenUpdated"],[k({selector:"[data-date-field-input]",type:"focusin"}),2,"onInputFocus"],[k({selector:"[data-date-field-input]",type:"input"}),2,"onInput"],[k({selector:"[data-date-field-input]",type:"change"}),2,"onInputChange"],[k({selector:"[data-date-field-input]",type:"keydown"}),2,"onInputKeydown"],[k({ref:"root",type:"focusout"}),2,"onRootFocusOut"],[k({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[k({ref:"trigger",type:"click"}),2,"onTriggerClick"],[k({selector:"[data-date-field-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[k({ref:"root",type:"rui-change"}),2,"onCalendarChange"],[k({ref:"root",type:"keydown"}),2,"onRootKeydown"]],0,void 0,Se))}constructor(...t){super(...t),Me(this)}value=(Ht(this),Yt(this));min=(Ut(this),Kt(this));max=(zt(this),Jt(this));disabled=(Xt(this),Gt(this));readOnly=(Qt(this),Zt(this));label=(te(this),ee(this));name=(ne(this),ie(this));placeholder=(re(this),oe(this));locale=(ae(this),se(this));dateStyle=(le(this),ue(this));masked=(ce(this),de(this));visibleMonths=(pe(this),fe(this));changeEvent=(he(this),me(this));displayValue=(ge(this),ye(this,""));editing=(ve(this),be(this,!1));open=(xe(this),De(this,!1));uid=(_e(this),Math.random().toString(36).slice(2,9));popoverController=null;suppressPopoverDismiss=!1;rootTarget=we(this);popoverTarget=(ke(this),Ie(this));get isoValue(){return this.value??""}get resolvedLocale(){return Rt(this.locale)}get inputId(){return`rui-date-field-input-${this.uid}`}get resolvedPlaceholder(){return this.placeholder||lt(this.resolvedLocale)}getInput(){return this.querySelector("[data-date-field-input]")}syncLabel(){let t=this.getInput();Bt(this,t,{controlId:this.inputId,label:this.label,labelId:`rui-date-field-label-${this.uid}`})}syncInput(){let t=this.getInput();if(!t)return;t.id||(t.id=this.inputId),this.name&&(t.name=this.name),this.disabled&&(t.disabled=!0);let n=this.resolvedPlaceholder;n&&(t.placeholder=n)}formatForDisplay(t){if(!t)return"";let n=F(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}formatForEditing(t){if(!t)return"";if(!this.masked)return this.formatForDisplay(t);let n=F(t);if(!n)return"";let i=O(this.resolvedLocale),r=fn(n,this.resolvedLocale);return U(r,i)}syncDisplayValue(){if(this.editing)return;this.displayValue=this.formatForDisplay(this.isoValue);let t=this.getInput();t&&(t.value=this.displayValue)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitValue(t){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValue();return}if(t===this.isoValue){this.syncDisplayValue();return}this.value=t,this.changeEvent.emit({value:t}),this.syncDisplayValue()}parseAndCommit(t){let n=(t??"").trim();if(!n){this.commitValue("");return}let i=dt(n,this.resolvedLocale);if(!i){this.syncDisplayValue();return}this.commitValue(it(i))}handleMaskedInput(t){let n=O(this.resolvedLocale),i=R(t),r=U(i,n);return i.length>=A(n)&&this.parseAndCommit(r),r}initialize(){this.syncLabel(),this.syncInput(),this.syncDisplayValue()}setOpen(t){this.open=t,queueMicrotask(()=>this.syncPopoverPosition())}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.rootTarget,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t||!this.rootTarget)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.syncDisplayValue()}onOpenUpdated(){this.syncPopoverPosition()}onInputFocus(){this.editing=!0;let t=this.getInput();t&&(t.value=this.isoValue?this.formatForEditing(this.isoValue):"",this.displayValue=t.value)}onInput(t){let n=t.target;if(this.masked){let i=this.handleMaskedInput(n.value);n.value=i,this.displayValue=i;return}this.displayValue=n.value}onInputChange(){let t=this.getInput();t&&this.parseAndCommit(t.value)}onInputKeydown(t){if(t.key==="Escape"){if(this.open){t.preventDefault(),this.setOpen(!1);return}this.editing=!1,this.syncDisplayValue()}}onRootFocusOut(t){let n=t.target,i=t.relatedTarget;n.matches("[data-date-field-input]")&&n instanceof HTMLInputElement&&queueMicrotask(()=>{this.editing&&(this.editing=!1,this.parseAndCommit(n.value))}),queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=i instanceof Node?i:document.activeElement;Wt(this.rootTarget,this.popoverTarget,r)&&this.setOpen(!1)})}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||n.tagName.toLowerCase()!=="rui-calendar")return;let i=t.detail;i?.value&&(this.commitValue(i.value),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}render(){let t={"prop:selectionMode":"single","prop:visibleMonths":this.visibleMonths,"prop:value":this.isoValue,"prop:min":this.min,"prop:max":this.max,"prop:locale":this.locale,"prop:disabled":this.disabled};return Pe("div",{class:"rui-date-field","data-ref":"root",children:[Pe("div",{class:"rui-date-field__group",children:[N("input",{type:"text","data-date-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:"rui-date-field__input",id:this.inputId,autocomplete:"off",inputmode:this.masked?"numeric":"text",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.$.placeholder||this.resolvedPlaceholder}),N("button",{type:"button",class:"rui-control-toggle","data-ref":"trigger","data-date-field-trigger":!0,"aria-label":"Open calendar","aria-haspopup":"dialog","aria-expanded":this.$.open?"true":"false",disabled:this.$.disabled||this.$.readOnly,children:N(pt,{})})]}),N("div",{class:"rui-date-field__popover rui-popover rui-floating","data-ref":"popover","data-date-field-popover":!0,hidden:!this.$.open,role:"dialog",children:this.$.open?N("rui-calendar",{...t}):null})]})}static{qt()}};function fn(e,t){let n=Y(t),i={month:String(e.getMonth()+1).padStart(2,"0"),day:String(e.getDate()).padStart(2,"0"),year:String(e.getFullYear())};return n.map(r=>i[r]).join("")}import{jsx as gn}from"@ecopages/jsx/jsx-runtime";var hn=Symbol.for("@ecopages/storybook-radiant.viewElement"),Oe=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Re=Symbol.for("@ecopages/storybook-radiant.scriptExport");function mn(e,t){e[hn]=t;let n=t[Oe];n&&(e[Oe]=n,e[Re]=t[Re]??t.name)}function Ve(e,t,n){let i=r=>t(r);return mn(i,e),i}var yn=Ve(J,({children:e,...t})=>gn("rui-date-field",{...t,children:e}),{stylesheets:["./date-field.css","../shared/control-toggle.css","../../../lib/icons/icons.css","../calendar/calendar.css"]});export{yn as RuiDateField,J as RuiDateFieldElement};
|
|
1
|
+
import{jsx as N,jsxs as Pe}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Se,customElement as dn,event as pn,onEvent as k,onUpdated as Ee,prop as b,query as Ce,state as ft}from"@ecopages/radiant";function F(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),i=Number(t[2])-1,r=Number(t[3]),o=new Date(n,i,r);return o.getFullYear()!==n||o.getMonth()!==i||o.getDate()!==r?null:o}function it(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${i}`}var Mt=new Map;function Le(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function T(e,t){let n=Le(e,t),i=Mt.get(n);if(i)return i;let r=new Intl.DateTimeFormat(e,t);return Mt.set(n,r),r}function rt(e,t,n="medium"){return T(t,{dateStyle:n}).format(e)}var Ae={0:"digit",a:"letter","*":"any"},Ne=/\p{L}/u;function je(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let i=Ae[e];return i?{kind:i}:null}function Tt(e,t,n){return n?n.test(e):t==="digit"?/\d/.test(e):t==="letter"?Ne.test(e):e.length>0}function Pt(e,t,n=!1){let i=[],r=0;for(;r<e.length;){let o=e[r];if(o==="\\"){let a=e[r+1];a&&i.push({type:"literal",value:a}),r+=2;continue}if(o==="{"){let a=e.indexOf("}",r+1);if(a<0){i.push({type:"literal",value:"{"}),r+=1;continue}i.push({type:"fixed",value:e.slice(r+1,a)}),r=a+1;continue}if(o==="["){let a=$e(e,r+1);if(a<0){i.push({type:"literal",value:"["}),r+=1;continue}let l=Pt(e.slice(r+1,a),t,!0);i.push(...l),r=a+1;continue}if(o==="]")break;let s=je(o,t);if(s){i.push({type:"input",definition:o,kind:s.kind,pattern:s.pattern,optional:n}),r+=1;continue}i.push({type:"literal",value:o}),r+=1}return i}function $e(e,t){let n=1;for(let i=t;i<e.length;i+=1)if(e[i]==="["&&e[i-1]!=="\\"&&(n+=1),e[i]==="]"&&e[i-1]!=="\\"&&(n-=1,n===0))return i;return-1}function ot(e,t){return Pt(e,t)}function at(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}function We(e,t){let n="",i=0;for(let r of t){if(r.type==="fixed"||r.type==="literal"){e.slice(i,i+r.value.length)===r.value&&(i+=r.value.length);continue}if(i>=e.length)continue;let o=e[i];Tt(o,r.kind,r.pattern)&&(n+=o,i+=1)}return n}function Be(e,t){if(!e)return"";let n=0,i="";for(let r of t){if(r.type==="fixed"||r.type==="literal"){i+=r.value;continue}if(n>=e.length){if(r.optional)continue;break}let o=e[n];if(!Tt(o,r.kind,r.pattern)){if(r.optional)continue;break}i+=o,n+=1}return i}function He(e){return e.every(t=>t.type!=="input"||t.kind==="digit")}function qe(e,t){let n=e.replace(/\D/g,""),i=t.filter(r=>r.type==="fixed").map(r=>r.value.replace(/\D/g,"")).join("");return i&&n.startsWith(i)?n.slice(i.length):n}function St(e,t,n){let i=ot(t,n),r=at(i),o=We(e,i);return o.length===0&&/\S/.test(e)&&He(i)&&(o=qe(e,i)),o.length>r&&(o=o.slice(0,r)),Be(o,i)}var st=new Date(2001,8,3);function Y(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function O(e){let t=T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st),n="";for(let i of t){if(i.type==="literal"){n+=i.value;continue}(i.type==="month"||i.type==="day"||i.type==="year")&&(n+=i.value.replace(/\d/g,"0"))}return n}function lt(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(st).map(n=>n.type==="literal"?n.value:n.type==="year"?"yyyy":n.type==="month"?"mm":n.type==="day"?"dd":"").join("")}function R(e){return e.replace(/\D/g,"")}function U(e,t){return St(R(e),t)}function A(e){return at(ot(e),{requiredOnly:!0})}function Ye(e){return e>=100?e:e>=69?1900+e:2e3+e}function ut(e,t){let n=Y(t),i=0,r={};for(let o of n){let s=o==="year"?4:2,a=e.slice(i,i+s);if(a.length<s)return null;let l=Number(a);o==="year"&&(l=Ye(l)),r[o]=l,i+=s}return r}function ct(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var Ue=new Date(2001,8,3);function Et(e){return T(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(Ue).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Ct(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ft(e){let t=e.year,n=e.month,i=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(i))return null;let r=new Date(t,n-1,i);return r.getFullYear()!==t||r.getMonth()!==n-1||r.getDate()!==i?null:r}function dt(e,t){let n=(e??"").trim();if(!n)return null;let i=F(n);if(i)return i;let r=Ke(n,t);if(r)return r;let o=Je(n,t);if(o)return o;let s=Et(t),a=n.match(/\d+/g);if(!a||a.length<3)return null;let l={day:0,month:0,year:0};for(let f=0;f<3;f+=1){let m=s[f];if(!m)return null;let g=Number(a[f]);m==="year"&&(g=Ct(g)),l[m]=g}return Ft(l)}function Ke(e,t){let n=O(t),i=R(e);return i.length<A(n)?null:ct(ut(i,t)??{})}function ze(e){let t=new Map;for(let n of["short","long"])for(let i=0;i<12;i+=1){let r=T(e,{month:n}).formatToParts(new Date(2020,i,1)).find(o=>o.type==="month")?.value;r&&t.set(r.toLowerCase(),i+1)}return t}function Je(e,t){let n=ze(t),i=e.toLowerCase();for(let[r,o]of n){if(i.indexOf(r)<0)continue;let a=e.match(/\d+/g);if(!a||a.length<2)continue;let l=a.find(v=>v.length===4)??a[a.length-1],f=a.find(v=>v!==l&&Number(v)<=31);if(!f||!l)continue;let m=Ct(Number(l)),g=Number(f);return Ft({year:m,month:o,day:g})}return null}import{jsx as K,jsxs as Xe}from"@ecopages/jsx/jsx-runtime";function Ot(...e){return e.filter(Boolean).join(" ")}function pt({class:e,size:t="sm",...n}){return Xe("svg",{...n,class:Ot("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[K("path",{d:"M8 2v4"}),K("path",{d:"M16 2v4"}),K("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),K("path",{d:"M3 10h18"})]})}function Rt(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var Ge={top:"bottom",bottom:"top",left:"right",right:"left"},Qe=8;function Ze(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),i=e.slice(t+1);return{side:n,align:i==="start"||i==="end"?i:"center"}}function At(e){return e==="top"||e==="bottom"?"y":"x"}function Vt(e,t,n,i,r){let{width:o,height:s}=t,a=0,l=0;switch(n){case"top":l=e.top-s-r;break;case"bottom":l=e.bottom+r;break;case"left":a=e.left-o-r;break;case"right":a=e.right+r;break}return At(n)==="y"?i==="start"?a=e.left:i==="end"?a=e.right-o:a=e.left+(e.width-o)/2:i==="start"?l=e.top:i==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:a,y:l}}function tn(e,t,n,i){let{padding:r,width:o,height:s}=i;return n==="top"?Math.max(0,r-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-r)):n==="left"?Math.max(0,r-e.x):Math.max(0,e.x+t.width-(o-r))}function Lt(e,t,n,i){let{padding:r,width:o,height:s}=i;return n==="top"?e.top-r-t.height:n==="bottom"?s-r-t.height-e.bottom:n==="left"?e.left-r-t.width:o-r-t.width-e.right}function en(e,t){return t==="center"?e:`${e}-${t}`}function nn(e,t,n,i){let{padding:r,width:o,height:s}=i;if(At(n)==="y"){let l=Math.max(r,o-r-t.width);return{x:Math.min(Math.max(e.x,r),l),y:e.y}}let a=Math.max(r,s-r-t.height);return{x:e.x,y:Math.min(Math.max(e.y,r),a)}}function rn(e,t,n,i,r={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Qe}){let{side:o,align:s}=Ze(n),a=Vt(e,t,o,s,i),l=tn(a,t,o,r),f=o,m=a;if(l>0){let g=Ge[o],v=Vt(e,t,g,s,i),j=Lt(e,t,o,r);Lt(e,t,g,r)>j&&(f=g,m=v)}return{coords:nn(m,t,f,r),placement:en(f,s)}}function on(e,t,n,i,r={}){let{coords:o,placement:s}=rn(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,i);return Object.assign(t.style,{position:"fixed",left:`${o.x}px`,top:`${o.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),r.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Nt({anchor:e,floating:t,getPlacement:n,gap:i,matchAnchorWidth:r}){let o=()=>{t.hidden||on(e,t,n(),i,{matchAnchorWidth:r})};o(),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0);let s=new ResizeObserver(o);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),s.disconnect()}}function jt(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let i=document.createComment("rui-portal");return n.insertBefore(i,e),t.appendChild(e),{unmount:()=>{let r=i.parentNode;r&&(r.insertBefore(e,i),i.remove())}}}function $t(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function Wt(e,t,n){return n instanceof Node?!$t(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let i=this.config.getAnchor();if(!i)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=jt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Nt({anchor:i,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return $t(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};function an(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function Bt(e,t,n){if(!t||t.hasAttribute("data-rui-field-managed"))return;let i=an(e);if(i){i.id||(i.id=n.labelId),i.htmlFor||(i.htmlFor=n.controlId),t.setAttribute("aria-labelledby",i.id),t.removeAttribute("aria-label");return}if(n.label){t.setAttribute("aria-label",n.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Ht,qt,Yt,Ut,Kt,zt,Jt,Xt,Gt,Qt,Zt,te,ee,ne,ie,re,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,ve,be,xe,De,_e,we,ke,Ie,Me;function sn(e,t,n,i,r,o){var s,a,l,f,m,g,v,j=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,ht=[G(null),G(null)],mt=t.length;function $(u,_,x){return function(c,d){_&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,x?[d]:[]);return x?d:c}}function P(u,_,x,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(_+" must "+(x||"be")+" a function"+(c?"":" or undefined"));return u}function gt(u,_,x,c,d,w,E,D,I,M,vt){function Q(h){if(!vt(h))throw new TypeError("Attempted to access private element on non-instance")}var Z=[].concat(_[0]),bt=_[3],tt=!E,V=d===1,xt=d===3,Dt=d===4,W=d===2;function B(h,C,kt){return function(q,It){return C&&(It=q,q=u),kt&&kt(q),p[h].call(q,It)}}if(!tt){var p={},et=[],S=xt?"get":Dt||V?"set":"value";if(I?(M||V?p={get:Te(function(){return bt(this)},c,"get"),set:function(h){_[4](this,h)}}:p[S]=bt,M||Te(p[S],c,W?"":S)):M||(p=Object.getOwnPropertyDescriptor(u,c)),!M&&!I){if((a=ht[+D][c])&&(a^d)!==7)throw Error("Decorating two elements with the same name ("+p[S].name+") is not supported yet");ht[+D][c]=d<3?1:d}}for(var y=u,H=Z.length-1;H>=0;H-=x?2:1){var _t=P(Z[H],"A decorator","be",!0),wt=x?Z[H-1]:void 0,nt={},L={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(h,C){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");P(C,"An initializer","be",!0),w.push(C)}.bind(null,nt)};if(tt)a=_t.call(wt,y,L),nt.v=1,P(a,"class decorators","return")&&(y=a);else if(L.static=D,L.private=I,a=L.access={has:I?vt.bind():function(h){return c in h}},Dt||(a.get=I?W?function(h){return Q(h),p.value}:B("get",0,Q):function(h){return h[c]}),W||xt||(a.set=I?B("set",0,Q):function(h,C){h[c]=C}),y=_t.call(wt,V?{get:p.get,set:p.set}:p[S],L),nt.v=1,V){if(typeof y=="object"&&y)(a=P(y.get,"accessor.get"))&&(p.get=a),(a=P(y.set,"accessor.set"))&&(p.set=a),(a=P(y.init,"accessor.init"))&&et.unshift(a);else if(y!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else P(y,(M?"field":"method")+" decorators","return")&&(M?et.unshift(y):p[S]=y)}return d<2&&E.push($(et,D,1),$(w,D,0)),M||tt||(I?V?E.splice(-1,0,B("get",D),B("set",D)):E.push(W?p[S]:P.call.bind(p[S])):X(u,c,p)),y}function yt(u){return X(u,j,{configurable:!0,enumerable:!0,value:s})}return o!==void 0&&(s=o[j]),s=G(s??null),m=[],g=function(u){u&&m.push($(u))},v=function(u,_){for(var x=0;x<n.length;x++){var c=n[x],d=c[1],w=7&d;if((8&d)==u&&!w==_){var E=c[2],D=!!c[3],I=16&d;gt(u?e:e.prototype,c,I,D?"#"+E:ln(E),w,w<2?[]:u?f=f||[]:l=l||[],m,!!u,D,_,u&&D?function(M){return cn(M)===e}:r)}}},v(8,0),v(0,0),v(8,1),v(0,1),g(l),g(f),a=m,mt||yt(e),{e:a,get c(){var u=[];return mt&&[yt(e=gt(e,[t],i,e.name,5,u)),$(u,1)]}}}function ln(e){var t=un(e,"string");return typeof t=="symbol"?t:t+""}function un(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var i=n.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Te(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function cn(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var J,Fe=class extends Se{static{({e:[Yt,Ut,Kt,zt,Jt,Xt,Gt,Qt,Zt,te,ee,ne,ie,re,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,ve,be,xe,De,_e,we,ke,Ie,Me,Ht],c:[J,qt]}=sn(this,[dn("rui-date-field")],[[b({type:String,reflect:!0,defaultValue:""}),0,"value"],[b({type:String,defaultValue:""}),0,"min"],[b({type:String,defaultValue:""}),0,"max"],[b({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[b({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[b({type:String,defaultValue:""}),0,"label"],[b({type:String,defaultValue:""}),0,"name"],[b({type:String,defaultValue:""}),0,"placeholder"],[b({type:String,defaultValue:""}),0,"locale"],[b({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[b({type:Boolean,reflect:!0,defaultValue:!0}),0,"masked"],[b({type:Number,attribute:"visible-months",defaultValue:1}),0,"visibleMonths"],[pn({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[ft,0,"displayValue"],[ft,0,"editing"],[ft,0,"open"],[Ce({ref:"root"}),0,"rootTarget"],[Ce({ref:"popover"}),0,"popoverTarget"],[Ee(["value","min","max","label","placeholder","disabled","readOnly","locale","dateStyle","masked"]),2,"onPropsUpdated"],[Ee(["open"]),2,"onOpenUpdated"],[k({selector:"[data-date-field-input]",type:"focusin"}),2,"onInputFocus"],[k({selector:"[data-date-field-input]",type:"input"}),2,"onInput"],[k({selector:"[data-date-field-input]",type:"change"}),2,"onInputChange"],[k({selector:"[data-date-field-input]",type:"keydown"}),2,"onInputKeydown"],[k({ref:"root",type:"focusout"}),2,"onRootFocusOut"],[k({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[k({ref:"trigger",type:"click"}),2,"onTriggerClick"],[k({selector:"[data-date-field-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[k({ref:"root",type:"rui-change"}),2,"onCalendarChange"],[k({ref:"root",type:"keydown"}),2,"onRootKeydown"]],0,void 0,Se))}constructor(...t){super(...t),Me(this)}value=(Ht(this),Yt(this));min=(Ut(this),Kt(this));max=(zt(this),Jt(this));disabled=(Xt(this),Gt(this));readOnly=(Qt(this),Zt(this));label=(te(this),ee(this));name=(ne(this),ie(this));placeholder=(re(this),oe(this));locale=(ae(this),se(this));dateStyle=(le(this),ue(this));masked=(ce(this),de(this));visibleMonths=(pe(this),fe(this));changeEvent=(he(this),me(this));displayValue=(ge(this),ye(this,""));editing=(ve(this),be(this,!1));open=(xe(this),De(this,!1));uid=(_e(this),Math.random().toString(36).slice(2,9));popoverController=null;suppressPopoverDismiss=!1;rootTarget=we(this);popoverTarget=(ke(this),Ie(this));get isoValue(){return this.value??""}get resolvedLocale(){return Rt(this.locale)}get inputId(){return`rui-date-field-input-${this.uid}`}get resolvedPlaceholder(){return this.placeholder||lt(this.resolvedLocale)}getInput(){return this.querySelector("[data-date-field-input]")}syncLabel(){let t=this.getInput();Bt(this,t,{controlId:this.inputId,label:this.label,labelId:`rui-date-field-label-${this.uid}`})}syncInput(){let t=this.getInput();if(!t)return;t.id||(t.id=this.inputId),this.name&&(t.name=this.name),this.disabled&&(t.disabled=!0);let n=this.resolvedPlaceholder;n&&(t.placeholder=n)}formatForDisplay(t){if(!t)return"";let n=F(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}formatForEditing(t){if(!t)return"";if(!this.masked)return this.formatForDisplay(t);let n=F(t);if(!n)return"";let i=O(this.resolvedLocale),r=fn(n,this.resolvedLocale);return U(r,i)}syncDisplayValue(){if(this.editing)return;this.displayValue=this.formatForDisplay(this.isoValue);let t=this.getInput();t&&(t.value=this.displayValue)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitValue(t){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValue();return}if(t===this.isoValue){this.syncDisplayValue();return}this.value=t,this.changeEvent.emit({value:t}),this.syncDisplayValue()}parseAndCommit(t){let n=(t??"").trim();if(!n){this.commitValue("");return}let i=dt(n,this.resolvedLocale);if(!i){this.syncDisplayValue();return}this.commitValue(it(i))}handleMaskedInput(t){let n=O(this.resolvedLocale),i=R(t),r=U(i,n);return i.length>=A(n)&&this.parseAndCommit(r),r}initialize(){this.syncLabel(),this.syncInput(),this.syncDisplayValue()}setOpen(t){this.open=t,queueMicrotask(()=>this.syncPopoverPosition())}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.rootTarget,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t||!this.rootTarget)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.syncDisplayValue()}onOpenUpdated(){this.syncPopoverPosition()}onInputFocus(){this.editing=!0;let t=this.getInput();t&&(t.value=this.isoValue?this.formatForEditing(this.isoValue):"",this.displayValue=t.value)}onInput(t){let n=t.target;if(this.masked){let i=this.handleMaskedInput(n.value);n.value=i,this.displayValue=i;return}this.displayValue=n.value}onInputChange(){let t=this.getInput();t&&this.parseAndCommit(t.value)}onInputKeydown(t){if(t.key==="Escape"){if(this.open){t.preventDefault(),this.setOpen(!1);return}this.editing=!1,this.syncDisplayValue()}}onRootFocusOut(t){let n=t.target,i=t.relatedTarget;n.matches("[data-date-field-input]")&&n instanceof HTMLInputElement&&queueMicrotask(()=>{this.editing&&(this.editing=!1,this.parseAndCommit(n.value))}),queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=i instanceof Node?i:document.activeElement;Wt(this.rootTarget,this.popoverTarget,r)&&this.setOpen(!1)})}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||n.tagName.toLowerCase()!=="rui-calendar")return;let i=t.detail;i?.value&&(this.commitValue(i.value),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}render(){let t={"prop:selectionMode":"single","prop:visibleMonths":this.visibleMonths,"prop:value":this.isoValue,"prop:min":this.min,"prop:max":this.max,"prop:locale":this.locale,"prop:disabled":this.disabled};return Pe("div",{class:"rui-date-field","data-ref":"root",children:[Pe("div",{class:"rui-date-field__group",children:[N("input",{type:"text","data-date-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:"rui-date-field__input",id:this.inputId,autocomplete:"off",inputmode:this.masked?"numeric":"text",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.$.placeholder||this.resolvedPlaceholder}),N("button",{type:"button",class:"rui-control-toggle","data-ref":"trigger","data-date-field-trigger":!0,"aria-label":"Open calendar","aria-haspopup":"dialog","aria-expanded":this.open?"true":"false",disabled:this.$.disabled||this.$.readOnly,children:N(pt,{})})]}),N("div",{class:"rui-date-field__popover rui-popover rui-floating","data-ref":"popover","data-date-field-popover":!0,hidden:!this.open,role:"dialog",children:this.open?N("rui-calendar",{...t}):null})]})}static{qt()}};function fn(e,t){let n=Y(t),i={month:String(e.getMonth()+1).padStart(2,"0"),day:String(e.getDate()).padStart(2,"0"),year:String(e.getFullYear())};return n.map(r=>i[r]).join("")}import{jsx as gn}from"@ecopages/jsx/jsx-runtime";var hn=Symbol.for("@ecopages/storybook-radiant.viewElement"),Oe=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Re=Symbol.for("@ecopages/storybook-radiant.scriptExport");function mn(e,t){e[hn]=t;let n=t[Oe];n&&(e[Oe]=n,e[Re]=t[Re]??t.name)}function Ve(e,t,n){let i=r=>t(r);return mn(i,e),i}var yn=Ve(J,({children:e,...t})=>gn("rui-date-field",{...t,children:e}),{stylesheets:["./date-field.css","../shared/control-toggle.css","../../../lib/icons/icons.css","../calendar/calendar.css"]});export{yn as RuiDateField,J as RuiDateFieldElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/date-field/date-field.script.tsx", "../../../../src/lib/intl-date/iso.ts", "../../../../src/lib/intl-date/formatters.ts", "../../../../src/lib/mask/input-mask.ts", "../../../../src/lib/mask/date-mask.ts", "../../../../src/lib/intl-date/parts.ts", "../../../../src/lib/icons/calendar.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/intl/locale.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/date-field/date-field.tsx", "../../../../src/lib/radiant-view.ts"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { dateToIso, formatDisplayDate, isoToDate, parseLocaleDateString } from \"@/lib/intl-date\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport \"../calendar/calendar.script\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nimport { applyDateMask, buildDateMaskPattern, extractDateMaskDigits, getDefaultDatePlaceholder, getNumericPartOrder, maskDigitCapacity } from \"@/lib/mask\";\nlet _RuiDateField;\nclass RuiDateField extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-field\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"date-style\",\n defaultValue: \"medium\"\n }), 0, \"dateStyle\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: true\n }), 0, \"masked\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"displayValue\"], [state, 0, \"editing\"], [state, 0, \"open\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"label\", \"placeholder\", \"disabled\", \"readOnly\", \"locale\", \"dateStyle\", \"masked\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"focusin\"\n }), 2, \"onInputFocus\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"input\"\n }), 2, \"onInput\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"change\"\n }), 2, \"onInputChange\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"keydown\"\n }), 2, \"onInputKeydown\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-date-field-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n ref: \"root\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_popoverTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n name = (_init_extra_label(this), _init_name(this));\n placeholder = (_init_extra_name(this), _init_placeholder(this));\n locale = (_init_extra_placeholder(this), _init_locale(this));\n dateStyle = (_init_extra_locale(this), _init_dateStyle(this));\n masked = (_init_extra_dateStyle(this), _init_masked(this));\n visibleMonths = (_init_extra_masked(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n displayValue = (_init_extra_changeEvent(this), _init_displayValue(this, \"\"));\n editing = (_init_extra_displayValue(this), _init_editing(this, false));\n open = (_init_extra_editing(this), _init_open(this, false));\n uid = (_init_extra_open(this), Math.random().toString(36).slice(2, 9));\n popoverController = null;\n suppressPopoverDismiss = false;\n rootTarget = _init_rootTarget(this);\n popoverTarget = (_init_extra_rootTarget(this), _init_popoverTarget(this));\n get isoValue() {\n return this.value ?? \"\";\n }\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get inputId() {\n return `rui-date-field-input-${this.uid}`;\n }\n get resolvedPlaceholder() {\n return this.placeholder || getDefaultDatePlaceholder(this.resolvedLocale);\n }\n getInput() {\n return this.querySelector(\"[data-date-field-input]\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-date-field-label-${this.uid}`\n });\n }\n syncInput() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (this.name) {\n input.name = this.name;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n const placeholder = this.resolvedPlaceholder;\n if (placeholder) {\n input.placeholder = placeholder;\n }\n }\n formatForDisplay(iso) {\n if (!iso) {\n return \"\";\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n return formatDisplayDate(date, this.resolvedLocale, this.dateStyle);\n }\n formatForEditing(iso) {\n if (!iso) {\n return \"\";\n }\n if (!this.masked) {\n return this.formatForDisplay(iso);\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = dateToMaskDigits(date, this.resolvedLocale);\n return applyDateMask(digits, pattern);\n }\n syncDisplayValue() {\n if (this.editing) {\n return;\n }\n this.displayValue = this.formatForDisplay(this.isoValue);\n const input = this.getInput();\n if (input) {\n input.value = this.displayValue;\n }\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n commitValue(iso) {\n if (iso && !this.isIsoAllowed(iso)) {\n this.syncDisplayValue();\n return;\n }\n if (iso === this.isoValue) {\n this.syncDisplayValue();\n return;\n }\n this.value = iso;\n this.changeEvent.emit({\n value: iso\n });\n this.syncDisplayValue();\n }\n parseAndCommit(raw) {\n const trimmed = (raw ?? \"\").trim();\n if (!trimmed) {\n this.commitValue(\"\");\n return;\n }\n const parsed = parseLocaleDateString(trimmed, this.resolvedLocale);\n if (!parsed) {\n this.syncDisplayValue();\n return;\n }\n this.commitValue(dateToIso(parsed));\n }\n handleMaskedInput(raw) {\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = extractDateMaskDigits(raw);\n const masked = applyDateMask(digits, pattern);\n if (digits.length >= maskDigitCapacity(pattern)) {\n this.parseAndCommit(masked);\n }\n return masked;\n }\n initialize() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => this.syncPopoverPosition());\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopoverPosition() {\n const popover = this.popoverTarget;\n if (!popover || !this.rootTarget) {\n return;\n }\n popover.hidden = !this.open;\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getOpen: () => this.open\n });\n controller.sync();\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n }\n onOpenUpdated() {\n this.syncPopoverPosition();\n }\n onInputFocus() {\n this.editing = true;\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.value = this.isoValue ? this.formatForEditing(this.isoValue) : \"\";\n this.displayValue = input.value;\n }\n onInput(event2) {\n const input = event2.target;\n if (this.masked) {\n const masked = this.handleMaskedInput(input.value);\n input.value = masked;\n this.displayValue = masked;\n return;\n }\n this.displayValue = input.value;\n }\n onInputChange() {\n const input = this.getInput();\n if (input) {\n this.parseAndCommit(input.value);\n }\n }\n onInputKeydown(event2) {\n if (event2.key === \"Escape\") {\n if (this.open) {\n event2.preventDefault();\n this.setOpen(false);\n return;\n }\n this.editing = false;\n this.syncDisplayValue();\n }\n }\n onRootFocusOut(event2) {\n const target = event2.target;\n const relatedTarget = event2.relatedTarget;\n if (target.matches(\"[data-date-field-input]\") && target instanceof HTMLInputElement) {\n queueMicrotask(() => {\n if (!this.editing) {\n return;\n }\n this.editing = false;\n this.parseAndCommit(target.value);\n });\n }\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.open) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this.rootTarget, this.popoverTarget, next)) {\n return;\n }\n this.setOpen(false);\n });\n }\n onTriggerPointerDown() {\n this.suppressPopoverDismiss = true;\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || target.tagName.toLowerCase() !== \"rui-calendar\") {\n return;\n }\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.commitValue(detail.value);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n render() {\n const calendarProps = {\n \"prop:selectionMode\": \"single\",\n \"prop:visibleMonths\": this.visibleMonths,\n \"prop:value\": this.isoValue,\n \"prop:min\": this.min,\n \"prop:max\": this.max,\n \"prop:locale\": this.locale,\n \"prop:disabled\": this.disabled\n };\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-field\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-field__group\",\n children: [/* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n \"data-date-field-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: \"rui-date-field__input\",\n id: this.inputId,\n autocomplete: \"off\",\n inputmode: this.masked ? \"numeric\" : \"text\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.$.placeholder || this.resolvedPlaceholder\n }), /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-control-toggle\",\n \"data-ref\": \"trigger\",\n \"data-date-field-trigger\": true,\n \"aria-label\": \"Open calendar\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": this.$.open ? \"true\" : \"false\",\n disabled: this.$.disabled || this.$.readOnly,\n children: /* @__PURE__ */jsx(RuiIconCalendar, {})\n })]\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-field__popover rui-popover rui-floating\",\n \"data-ref\": \"popover\",\n \"data-date-field-popover\": true,\n hidden: !this.$.open,\n role: \"dialog\",\n children: this.$.open ? /* @__PURE__ */jsx(\"rui-calendar\", {\n ...calendarProps\n }) : null\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateField as RuiDateField };\nfunction dateToMaskDigits(date, locale) {\n const order = getNumericPartOrder(locale);\n const values = {\n month: String(date.getMonth() + 1).padStart(2, \"0\"),\n day: String(date.getDate()).padStart(2, \"0\"),\n year: String(date.getFullYear())\n };\n return order.map(part => values[part]).join(\"\");\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskDigitSlotCount(tokens) {\n return maskInputSlotCount(tokens, {\n requiredOnly: true\n });\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function extractMaskDigits(masked, tokens) {\n return extractMaskInput(masked, tokens).replace(/\\D/g, \"\");\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "import { applyInputMask, maskInputSlotCount, parseMaskPattern } from \"./input-mask\";\nimport { getDateTimeFormat } from \"@/lib/intl-date/formatters\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nfunction getNumericPartOrder(locale) {\n return getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE).filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function buildDateMaskPattern(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n let pattern = \"\";\n for (const part of parts) {\n if (part.type === \"literal\") {\n pattern += part.value;\n continue;\n }\n if (part.type === \"month\" || part.type === \"day\" || part.type === \"year\") {\n pattern += part.value.replace(/\\d/g, \"0\");\n }\n }\n return pattern;\n}\nexport function getDefaultDatePlaceholder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n return parts.map(part => {\n if (part.type === \"literal\") {\n return part.value;\n }\n if (part.type === \"year\") {\n return \"yyyy\";\n }\n if (part.type === \"month\") {\n return \"mm\";\n }\n if (part.type === \"day\") {\n return \"dd\";\n }\n return \"\";\n }).join(\"\");\n}\nexport function maskPatternToPlaceholder(pattern) {\n return pattern.replace(/0/g, \"\\xB7\");\n}\nexport function extractMaskDigits(value) {\n return value.replace(/\\D/g, \"\");\n}\nexport function applyDateMask(digits, pattern) {\n return applyInputMask(extractMaskDigits(digits), pattern);\n}\nexport function maskDigitCapacity(pattern) {\n return maskInputSlotCount(parseMaskPattern(pattern), {\n requiredOnly: true\n });\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function maskedDigitsToParts(digits, locale) {\n const order = getNumericPartOrder(locale);\n let cursor = 0;\n const values = {};\n for (const type of order) {\n const width = type === \"year\" ? 4 : 2;\n const slice = digits.slice(cursor, cursor + width);\n if (slice.length < width) {\n return null;\n }\n let numeric = Number(slice);\n if (type === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[type] = numeric;\n cursor += width;\n }\n return values;\n}\nexport function partsToDate(parts) {\n if (parts.year == null || parts.month == null || parts.day == null) {\n return null;\n }\n const date = new Date(parts.year, parts.month - 1, parts.day);\n if (date.getFullYear() !== parts.year || date.getMonth() !== parts.month - 1 || date.getDate() !== parts.day) {\n return null;\n }\n return date;\n}\nexport { getNumericPartOrder };", "import { isoToDate } from \"./iso\";\nimport { getDateTimeFormat } from \"./formatters\";\nimport { buildDateMaskPattern, extractMaskDigits as extractDateMaskDigits, maskDigitCapacity, maskedDigitsToParts, partsToDate } from \"@/lib/mask/date-mask\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nexport function getDatePartOrder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function getDateSeparators(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"literal\").map(part => part.value);\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nfunction buildDateFromParts(parts) {\n const year = parts.year;\n const month = parts.month;\n const day = parts.day;\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function parseLocaleDateString(input, locale) {\n const trimmed = (input ?? \"\").trim();\n if (!trimmed) {\n return null;\n }\n const isoDate = isoToDate(trimmed);\n if (isoDate) {\n return isoDate;\n }\n const fromMask = parseMaskedInput(trimmed, locale);\n if (fromMask) {\n return fromMask;\n }\n const fromMonthName = parseDateWithMonthNames(trimmed, locale);\n if (fromMonthName) {\n return fromMonthName;\n }\n const order = getDatePartOrder(locale);\n const numbers = trimmed.match(/\\d+/g);\n if (!numbers || numbers.length < 3) {\n return null;\n }\n const values = {\n day: 0,\n month: 0,\n year: 0\n };\n for (let index = 0; index < 3; index += 1) {\n const partType = order[index];\n if (!partType) {\n return null;\n }\n let numeric = Number(numbers[index]);\n if (partType === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[partType] = numeric;\n }\n return buildDateFromParts(values);\n}\nfunction parseMaskedInput(input, locale) {\n const pattern = buildDateMaskPattern(locale);\n const digits = extractDateMaskDigits(input);\n if (digits.length < maskDigitCapacity(pattern)) {\n return null;\n }\n return partsToDate(maskedDigitsToParts(digits, locale) ?? {});\n}\nfunction getMonthNameLookup(locale) {\n const lookup = /* @__PURE__ */new Map();\n for (const style of [\"short\", \"long\"]) {\n for (let month = 0; month < 12; month += 1) {\n const label = getDateTimeFormat(locale, {\n month: style\n }).formatToParts(new Date(2020, month, 1)).find(part => part.type === \"month\")?.value;\n if (label) {\n lookup.set(label.toLowerCase(), month + 1);\n }\n }\n }\n return lookup;\n}\nfunction parseDateWithMonthNames(input, locale) {\n const months = getMonthNameLookup(locale);\n const normalized = input.toLowerCase();\n for (const [name, month] of months) {\n const index = normalized.indexOf(name);\n if (index < 0) {\n continue;\n }\n const numbers = input.match(/\\d+/g);\n if (!numbers || numbers.length < 2) {\n continue;\n }\n const yearToken = numbers.find(token => token.length === 4) ?? numbers[numbers.length - 1];\n const dayToken = numbers.find(token => token !== yearToken && Number(token) <= 31);\n if (!dayToken || !yearToken) {\n continue;\n }\n const year = normalizeYear(Number(yearToken));\n const day = Number(dayToken);\n return buildDateFromParts({\n year,\n month,\n day\n });\n }\n return null;\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiDateField as RuiDateFieldElement } from \"./date-field.script\";\nexport const RuiDateField = defineRadiantView(RuiDateFieldElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-date-field\", {\n ...props,\n children\n}), {\n stylesheets: [\"./date-field.css\", \"../shared/control-toggle.css\", \"../../../lib/icons/icons.css\", \"../calendar/calendar.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { dateToIso, formatDisplayDate, isoToDate, parseLocaleDateString } from \"@/lib/intl-date\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport \"../calendar/calendar.script\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nimport { applyDateMask, buildDateMaskPattern, extractDateMaskDigits, getDefaultDatePlaceholder, getNumericPartOrder, maskDigitCapacity } from \"@/lib/mask\";\nlet _RuiDateField;\nclass RuiDateField extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-field\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"date-style\",\n defaultValue: \"medium\"\n }), 0, \"dateStyle\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: true\n }), 0, \"masked\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"displayValue\"], [state, 0, \"editing\"], [state, 0, \"open\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"label\", \"placeholder\", \"disabled\", \"readOnly\", \"locale\", \"dateStyle\", \"masked\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"focusin\"\n }), 2, \"onInputFocus\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"input\"\n }), 2, \"onInput\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"change\"\n }), 2, \"onInputChange\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"keydown\"\n }), 2, \"onInputKeydown\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-date-field-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n ref: \"root\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_popoverTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n name = (_init_extra_label(this), _init_name(this));\n placeholder = (_init_extra_name(this), _init_placeholder(this));\n locale = (_init_extra_placeholder(this), _init_locale(this));\n dateStyle = (_init_extra_locale(this), _init_dateStyle(this));\n masked = (_init_extra_dateStyle(this), _init_masked(this));\n visibleMonths = (_init_extra_masked(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n displayValue = (_init_extra_changeEvent(this), _init_displayValue(this, \"\"));\n editing = (_init_extra_displayValue(this), _init_editing(this, false));\n open = (_init_extra_editing(this), _init_open(this, false));\n uid = (_init_extra_open(this), Math.random().toString(36).slice(2, 9));\n popoverController = null;\n suppressPopoverDismiss = false;\n rootTarget = _init_rootTarget(this);\n popoverTarget = (_init_extra_rootTarget(this), _init_popoverTarget(this));\n get isoValue() {\n return this.value ?? \"\";\n }\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get inputId() {\n return `rui-date-field-input-${this.uid}`;\n }\n get resolvedPlaceholder() {\n return this.placeholder || getDefaultDatePlaceholder(this.resolvedLocale);\n }\n getInput() {\n return this.querySelector(\"[data-date-field-input]\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-date-field-label-${this.uid}`\n });\n }\n syncInput() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (this.name) {\n input.name = this.name;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n const placeholder = this.resolvedPlaceholder;\n if (placeholder) {\n input.placeholder = placeholder;\n }\n }\n formatForDisplay(iso) {\n if (!iso) {\n return \"\";\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n return formatDisplayDate(date, this.resolvedLocale, this.dateStyle);\n }\n formatForEditing(iso) {\n if (!iso) {\n return \"\";\n }\n if (!this.masked) {\n return this.formatForDisplay(iso);\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = dateToMaskDigits(date, this.resolvedLocale);\n return applyDateMask(digits, pattern);\n }\n syncDisplayValue() {\n if (this.editing) {\n return;\n }\n this.displayValue = this.formatForDisplay(this.isoValue);\n const input = this.getInput();\n if (input) {\n input.value = this.displayValue;\n }\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n commitValue(iso) {\n if (iso && !this.isIsoAllowed(iso)) {\n this.syncDisplayValue();\n return;\n }\n if (iso === this.isoValue) {\n this.syncDisplayValue();\n return;\n }\n this.value = iso;\n this.changeEvent.emit({\n value: iso\n });\n this.syncDisplayValue();\n }\n parseAndCommit(raw) {\n const trimmed = (raw ?? \"\").trim();\n if (!trimmed) {\n this.commitValue(\"\");\n return;\n }\n const parsed = parseLocaleDateString(trimmed, this.resolvedLocale);\n if (!parsed) {\n this.syncDisplayValue();\n return;\n }\n this.commitValue(dateToIso(parsed));\n }\n handleMaskedInput(raw) {\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = extractDateMaskDigits(raw);\n const masked = applyDateMask(digits, pattern);\n if (digits.length >= maskDigitCapacity(pattern)) {\n this.parseAndCommit(masked);\n }\n return masked;\n }\n initialize() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => this.syncPopoverPosition());\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopoverPosition() {\n const popover = this.popoverTarget;\n if (!popover || !this.rootTarget) {\n return;\n }\n popover.hidden = !this.open;\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getOpen: () => this.open\n });\n controller.sync();\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n }\n onOpenUpdated() {\n this.syncPopoverPosition();\n }\n onInputFocus() {\n this.editing = true;\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.value = this.isoValue ? this.formatForEditing(this.isoValue) : \"\";\n this.displayValue = input.value;\n }\n onInput(event2) {\n const input = event2.target;\n if (this.masked) {\n const masked = this.handleMaskedInput(input.value);\n input.value = masked;\n this.displayValue = masked;\n return;\n }\n this.displayValue = input.value;\n }\n onInputChange() {\n const input = this.getInput();\n if (input) {\n this.parseAndCommit(input.value);\n }\n }\n onInputKeydown(event2) {\n if (event2.key === \"Escape\") {\n if (this.open) {\n event2.preventDefault();\n this.setOpen(false);\n return;\n }\n this.editing = false;\n this.syncDisplayValue();\n }\n }\n onRootFocusOut(event2) {\n const target = event2.target;\n const relatedTarget = event2.relatedTarget;\n if (target.matches(\"[data-date-field-input]\") && target instanceof HTMLInputElement) {\n queueMicrotask(() => {\n if (!this.editing) {\n return;\n }\n this.editing = false;\n this.parseAndCommit(target.value);\n });\n }\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.open) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this.rootTarget, this.popoverTarget, next)) {\n return;\n }\n this.setOpen(false);\n });\n }\n onTriggerPointerDown() {\n this.suppressPopoverDismiss = true;\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || target.tagName.toLowerCase() !== \"rui-calendar\") {\n return;\n }\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.commitValue(detail.value);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n render() {\n const calendarProps = {\n \"prop:selectionMode\": \"single\",\n \"prop:visibleMonths\": this.visibleMonths,\n \"prop:value\": this.isoValue,\n \"prop:min\": this.min,\n \"prop:max\": this.max,\n \"prop:locale\": this.locale,\n \"prop:disabled\": this.disabled\n };\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-field\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-field__group\",\n children: [/* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n \"data-date-field-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: \"rui-date-field__input\",\n id: this.inputId,\n autocomplete: \"off\",\n inputmode: this.masked ? \"numeric\" : \"text\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.$.placeholder || this.resolvedPlaceholder\n }), /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-control-toggle\",\n \"data-ref\": \"trigger\",\n \"data-date-field-trigger\": true,\n \"aria-label\": \"Open calendar\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": this.open ? \"true\" : \"false\",\n disabled: this.$.disabled || this.$.readOnly,\n children: /* @__PURE__ */jsx(RuiIconCalendar, {})\n })]\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-field__popover rui-popover rui-floating\",\n \"data-ref\": \"popover\",\n \"data-date-field-popover\": true,\n hidden: !this.open,\n role: \"dialog\",\n children: this.open ? /* @__PURE__ */jsx(\"rui-calendar\", {\n ...calendarProps\n }) : null\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateField as RuiDateField };\nfunction dateToMaskDigits(date, locale) {\n const order = getNumericPartOrder(locale);\n const values = {\n month: String(date.getMonth() + 1).padStart(2, \"0\"),\n day: String(date.getDate()).padStart(2, \"0\"),\n year: String(date.getFullYear())\n };\n return order.map(part => values[part]).join(\"\");\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskDigitSlotCount(tokens) {\n return maskInputSlotCount(tokens, {\n requiredOnly: true\n });\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function extractMaskDigits(masked, tokens) {\n return extractMaskInput(masked, tokens).replace(/\\D/g, \"\");\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "import { applyInputMask, maskInputSlotCount, parseMaskPattern } from \"./input-mask\";\nimport { getDateTimeFormat } from \"@/lib/intl-date/formatters\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nfunction getNumericPartOrder(locale) {\n return getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE).filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function buildDateMaskPattern(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n let pattern = \"\";\n for (const part of parts) {\n if (part.type === \"literal\") {\n pattern += part.value;\n continue;\n }\n if (part.type === \"month\" || part.type === \"day\" || part.type === \"year\") {\n pattern += part.value.replace(/\\d/g, \"0\");\n }\n }\n return pattern;\n}\nexport function getDefaultDatePlaceholder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n return parts.map(part => {\n if (part.type === \"literal\") {\n return part.value;\n }\n if (part.type === \"year\") {\n return \"yyyy\";\n }\n if (part.type === \"month\") {\n return \"mm\";\n }\n if (part.type === \"day\") {\n return \"dd\";\n }\n return \"\";\n }).join(\"\");\n}\nexport function maskPatternToPlaceholder(pattern) {\n return pattern.replace(/0/g, \"\\xB7\");\n}\nexport function extractMaskDigits(value) {\n return value.replace(/\\D/g, \"\");\n}\nexport function applyDateMask(digits, pattern) {\n return applyInputMask(extractMaskDigits(digits), pattern);\n}\nexport function maskDigitCapacity(pattern) {\n return maskInputSlotCount(parseMaskPattern(pattern), {\n requiredOnly: true\n });\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function maskedDigitsToParts(digits, locale) {\n const order = getNumericPartOrder(locale);\n let cursor = 0;\n const values = {};\n for (const type of order) {\n const width = type === \"year\" ? 4 : 2;\n const slice = digits.slice(cursor, cursor + width);\n if (slice.length < width) {\n return null;\n }\n let numeric = Number(slice);\n if (type === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[type] = numeric;\n cursor += width;\n }\n return values;\n}\nexport function partsToDate(parts) {\n if (parts.year == null || parts.month == null || parts.day == null) {\n return null;\n }\n const date = new Date(parts.year, parts.month - 1, parts.day);\n if (date.getFullYear() !== parts.year || date.getMonth() !== parts.month - 1 || date.getDate() !== parts.day) {\n return null;\n }\n return date;\n}\nexport { getNumericPartOrder };", "import { isoToDate } from \"./iso\";\nimport { getDateTimeFormat } from \"./formatters\";\nimport { buildDateMaskPattern, extractMaskDigits as extractDateMaskDigits, maskDigitCapacity, maskedDigitsToParts, partsToDate } from \"@/lib/mask/date-mask\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nexport function getDatePartOrder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function getDateSeparators(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"literal\").map(part => part.value);\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nfunction buildDateFromParts(parts) {\n const year = parts.year;\n const month = parts.month;\n const day = parts.day;\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function parseLocaleDateString(input, locale) {\n const trimmed = (input ?? \"\").trim();\n if (!trimmed) {\n return null;\n }\n const isoDate = isoToDate(trimmed);\n if (isoDate) {\n return isoDate;\n }\n const fromMask = parseMaskedInput(trimmed, locale);\n if (fromMask) {\n return fromMask;\n }\n const fromMonthName = parseDateWithMonthNames(trimmed, locale);\n if (fromMonthName) {\n return fromMonthName;\n }\n const order = getDatePartOrder(locale);\n const numbers = trimmed.match(/\\d+/g);\n if (!numbers || numbers.length < 3) {\n return null;\n }\n const values = {\n day: 0,\n month: 0,\n year: 0\n };\n for (let index = 0; index < 3; index += 1) {\n const partType = order[index];\n if (!partType) {\n return null;\n }\n let numeric = Number(numbers[index]);\n if (partType === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[partType] = numeric;\n }\n return buildDateFromParts(values);\n}\nfunction parseMaskedInput(input, locale) {\n const pattern = buildDateMaskPattern(locale);\n const digits = extractDateMaskDigits(input);\n if (digits.length < maskDigitCapacity(pattern)) {\n return null;\n }\n return partsToDate(maskedDigitsToParts(digits, locale) ?? {});\n}\nfunction getMonthNameLookup(locale) {\n const lookup = /* @__PURE__ */new Map();\n for (const style of [\"short\", \"long\"]) {\n for (let month = 0; month < 12; month += 1) {\n const label = getDateTimeFormat(locale, {\n month: style\n }).formatToParts(new Date(2020, month, 1)).find(part => part.type === \"month\")?.value;\n if (label) {\n lookup.set(label.toLowerCase(), month + 1);\n }\n }\n }\n return lookup;\n}\nfunction parseDateWithMonthNames(input, locale) {\n const months = getMonthNameLookup(locale);\n const normalized = input.toLowerCase();\n for (const [name, month] of months) {\n const index = normalized.indexOf(name);\n if (index < 0) {\n continue;\n }\n const numbers = input.match(/\\d+/g);\n if (!numbers || numbers.length < 2) {\n continue;\n }\n const yearToken = numbers.find(token => token.length === 4) ?? numbers[numbers.length - 1];\n const dayToken = numbers.find(token => token !== yearToken && Number(token) <= 31);\n if (!dayToken || !yearToken) {\n continue;\n }\n const year = normalizeYear(Number(yearToken));\n const day = Number(dayToken);\n return buildDateFromParts({\n year,\n month,\n day\n });\n }\n return null;\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiDateField as RuiDateFieldElement } from \"./date-field.script\";\nexport const RuiDateField = defineRadiantView(RuiDateFieldElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-date-field\", {\n ...props,\n children\n}), {\n stylesheets: [\"./date-field.css\", \"../shared/control-toggle.css\", \"../../../lib/icons/icons.css\", \"../calendar/calendar.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "state", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatDisplayDate", "date", "style", "DEFAULT_DEFINITIONS", "LETTER", "resolveDefinition", "char", "definitions", "custom", "builtIn", "matchesInput", "kind", "pattern", "parseMaskPatternInternal", "optional", "tokens", "index", "next", "end", "findClosingBracket", "inner", "definition", "start", "depth", "parseMaskPattern", "maskInputSlotCount", "options", "token", "extractMaskInput", "masked", "tokens", "input", "cursor", "token", "char", "matchesInput", "formatWithMask", "input", "tokens", "inputIndex", "result", "token", "char", "matchesInput", "isDigitOnlyPattern", "looseInputFromRaw", "raw", "loose", "fixedDigits", "applyInputMask", "pattern", "definitions", "parseMaskPattern", "capacity", "maskInputSlotCount", "extractMaskInput", "REFERENCE_DATE", "getNumericPartOrder", "locale", "getDateTimeFormat", "part", "buildDateMaskPattern", "parts", "pattern", "getDefaultDatePlaceholder", "extractMaskDigits", "value", "applyDateMask", "digits", "pattern", "applyInputMask", "maskDigitCapacity", "maskInputSlotCount", "parseMaskPattern", "normalizeYear", "maskedDigitsToParts", "locale", "order", "getNumericPartOrder", "cursor", "values", "type", "width", "slice", "numeric", "partsToDate", "parts", "date", "REFERENCE_DATE", "getDatePartOrder", "locale", "getDateTimeFormat", "part", "normalizeYear", "value", "buildDateFromParts", "parts", "year", "month", "day", "date", "parseLocaleDateString", "input", "locale", "trimmed", "isoDate", "isoToDate", "fromMask", "parseMaskedInput", "fromMonthName", "parseDateWithMonthNames", "order", "getDatePartOrder", "numbers", "values", "index", "partType", "numeric", "pattern", "buildDateMaskPattern", "digits", "extractMaskDigits", "maskDigitCapacity", "partsToDate", "maskedDigitsToParts", "getMonthNameLookup", "lookup", "style", "label", "getDateTimeFormat", "part", "months", "normalized", "name", "yearToken", "token", "dayToken", "jsx", "jsxs", "cx", "parts", "RuiIconCalendar", "className", "size", "props", "jsxs", "cx", "jsx", "resolveLocale", "locale", "tags", "tag", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_name", "_init_extra_name", "_init_placeholder", "_init_extra_placeholder", "_init_locale", "_init_extra_locale", "_init_dateStyle", "_init_extra_dateStyle", "_init_masked", "_init_extra_masked", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_changeEvent", "_init_extra_changeEvent", "_init_displayValue", "_init_extra_displayValue", "_init_editing", "_init_extra_editing", "_init_open", "_init_extra_open", "_init_rootTarget", "_init_extra_rootTarget", "_init_popoverTarget", "_init_extra_popoverTarget", "_applyDecs", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiDateField", "RuiDateField", "RadiantElement", "customElement", "prop", "event", "state", "query", "onUpdated", "onEvent", "args", "resolveLocale", "getDefaultDatePlaceholder", "input", "syncFieldLabel", "placeholder", "iso", "date", "isoToDate", "formatDisplayDate", "pattern", "buildDateMaskPattern", "digits", "dateToMaskDigits", "applyDateMask", "raw", "trimmed", "parsed", "parseLocaleDateString", "dateToIso", "extractMaskDigits", "masked", "maskDigitCapacity", "next", "PopoverController", "popover", "controller", "event2", "target", "relatedTarget", "shouldDismissPopoverFocus", "detail", "calendarProps", "jsxs", "jsx", "RuiIconCalendar", "dateToMaskDigits", "date", "locale", "order", "getNumericPartOrder", "values", "part", "jsx", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiDateField", "defineRadiantView", "_RuiDateField", "children", "props", "jsx"]
|
|
7
7
|
}
|