@ecopages/radiant-ui 0.1.0-rc.10 → 0.1.0-rc.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{RadiantElement as ct,customElement as xt,event as wt,onEvent as B,onUpdated as Vt,prop as p,query as I}from"@ecopages/radiant";function pt(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let i=e[1]?.length??0,r=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,i-r))}function he(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):pt(t)}function de(t,e){return Number.isFinite(t)?t.toFixed(e):""}function K(t,e,i){let r=Number.isFinite(t)?t:0,g=Number.isFinite(e)?e:100,s=Math.min(r,g),c=Math.max(r,g),n=Number.isFinite(i)&&i>0?i:1,b=c-s,m=u=>{let v=Number.isFinite(u)?u:s,f=s+Math.round((v-s)/n)*n;return Math.min(c,Math.max(s,f))};return{lowerBound:s,upperBound:c,step:n,clamp:m,ratioFor:u=>b===0?0:(m(u)-s)/b,valueFromRatio:u=>{let v=Math.min(1,Math.max(0,Number.isFinite(u)?u:0));return m(s+v*b)}}}function pe(t,e,i){switch(i){case"ArrowRight":case"ArrowUp":return t.clamp(e+t.step);case"ArrowLeft":case"ArrowDown":return t.clamp(e-t.step);case"Home":return t.lowerBound;case"End":return t.upperBound;case"PageUp":return t.clamp(e+t.step*10);case"PageDown":return t.clamp(e-t.step*10);default:return}}var me=120,L=300,mt=14,ft=L+(360-L)/2;function _t(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):mt))}function bt(t,e,i){return i.replace("{value}",de(t,e))}function X(t,e,i,r,g,s,c){let n=K(e,i,r),b=_t(g),m=50-b/2,u=2*Math.PI*m,v=L/360*u,f=n.clamp(t),S=he(r,c);return{startAngle:me,strokeWidth:b,radius:m,circumference:u,arcLength:v,progressLength:n.ratioFor(f)*v,valueText:bt(f,S,s)}}function H(t,e,i,r){if(i.width===0||i.height===0)return null;let s=(Math.atan2(e-(i.top+i.height/2),t-(i.left+i.width/2))*180/Math.PI-me+360)%360,c=s<=L?s:s<=ft?L:0;return r.valueFromRatio(c/L)}var fe,_e,be,ve,ge,ye,Te,xe,we,Ve,Pe,Ae,Ee,Re,Ie,Se,Ne,Me,ke,Ke,Le,Oe,ze,De,Be,Fe,Ce,Ue,je,We,$e,Ge,Xe,Ye,qe,Je,Qe,Ze,He,et,tt,it,rt,nt,at,ot,st,lt;function vt(t,e,i,r,g,s){var c,n,b,m,u,v,f,S=Symbol.metadata||Symbol.for("Symbol.metadata"),F=Object.defineProperty,M=Object.create,O=[M(null),M(null)],C=e.length;function U(a,x,y){return function(o,l){x&&(l=o,o=t);for(var w=0;w<a.length;w++)l=a[w].apply(o,y?[l]:[]);return y?l:o}}function E(a,x,y,o){if(typeof a!="function"&&(o||a!==void 0))throw new TypeError(x+" must "+(y||"be")+" a function"+(o?"":" or undefined"));return a}function te(a,x,y,o,l,w,N,T,P,A,re){function Y(d){if(!re(d))throw new TypeError("Attempted to access private element on non-instance")}var q=[].concat(x[0]),ne=x[3],J=!N,z=l===1,ae=l===3,oe=l===4,j=l===2;function W(d,k,ue){return function(G,ce){return k&&(ce=G,G=a),ue&&ue(G),h[d].call(G,ce)}}if(!J){var h={},Q=[],R=ae?"get":oe||z?"set":"value";if(P?(A||z?h={get:ut(function(){return ne(this)},o,"get"),set:function(d){x[4](this,d)}}:h[R]=ne,A||ut(h[R],o,j?"":R)):A||(h=Object.getOwnPropertyDescriptor(a,o)),!A&&!P){if((n=O[+T][o])&&(n^l)!==7)throw Error("Decorating two elements with the same name ("+h[R].name+") is not supported yet");O[+T][o]=l<3?1:l}}for(var _=a,$=q.length-1;$>=0;$-=y?2:1){var se=E(q[$],"A decorator","be",!0),le=y?q[$-1]:void 0,Z={},D={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:c,addInitializer:function(d,k){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(k,"An initializer","be",!0),w.push(k)}.bind(null,Z)};if(J)n=se.call(le,_,D),Z.v=1,E(n,"class decorators","return")&&(_=n);else if(D.static=T,D.private=P,n=D.access={has:P?re.bind():function(d){return o in d}},oe||(n.get=P?j?function(d){return Y(d),h.value}:W("get",0,Y):function(d){return d[o]}),j||ae||(n.set=P?W("set",0,Y):function(d,k){d[o]=k}),_=se.call(le,z?{get:h.get,set:h.set}:h[R],D),Z.v=1,z){if(typeof _=="object"&&_)(n=E(_.get,"accessor.get"))&&(h.get=n),(n=E(_.set,"accessor.set"))&&(h.set=n),(n=E(_.init,"accessor.init"))&&Q.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(_,(A?"field":"method")+" decorators","return")&&(A?Q.unshift(_):h[R]=_)}return l<2&&N.push(U(Q,T,1),U(w,T,0)),A||J||(P?z?N.splice(-1,0,W("get",T),W("set",T)):N.push(j?h[R]:E.call.bind(h[R])):F(a,o,h)),_}function ie(a){return F(a,S,{configurable:!0,enumerable:!0,value:c})}return s!==void 0&&(c=s[S]),c=M(c??null),u=[],v=function(a){a&&u.push(U(a))},f=function(a,x){for(var y=0;y<i.length;y++){var o=i[y],l=o[1],w=7&l;if((8&l)==a&&!w==x){var N=o[2],T=!!o[3],P=16&l;te(a?t:t.prototype,o,P,T?"#"+N:gt(N),w,w<2?[]:a?m=m||[]:b=b||[],u,!!a,T,x,a&&T?function(A){return Tt(A)===t}:g)}}},f(8,0),f(0,0),f(8,1),f(0,1),v(b),v(m),n=u,C||ie(t),{e:n,get c(){var a=[];return C&&[ie(t=te(t,[e],r,t.name,5,a)),U(a,1)]}}}function gt(t){var e=yt(t,"string");return typeof e=="symbol"?e:e+""}function yt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ut(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function Tt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var dt,ht=class extends ct{static{({e:[be,ve,ge,ye,Te,xe,we,Ve,Pe,Ae,Ee,Re,Ie,Se,Ne,Me,ke,Ke,Le,Oe,ze,De,Be,Fe,Ce,Ue,je,We,$e,Ge,Xe,Ye,qe,Je,Qe,Ze,He,et,tt,it,rt,nt,at,ot,st,lt,fe],c:[dt,_e]}=vt(this,[xt("rui-knob")],[[p({type:Number,reflect:!0,defaultValue:50}),0,"value"],[p({type:Number,defaultValue:0}),0,"min"],[p({type:Number,defaultValue:100}),0,"max"],[p({type:Number,defaultValue:1}),0,"step"],[p({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[p({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[p({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[p({type:String,defaultValue:""}),0,"label"],[p({type:String,defaultValue:""}),0,"name"],[p({type:Number}),0,"size"],[p({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[p({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[p({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[p({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[wt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[I({ref:"root"}),0,"rootTarget"],[I({ref:"label"}),0,"labelTarget"],[I({ref:"control"}),0,"controlTarget"],[I({ref:"track"}),0,"trackTarget"],[I({ref:"progress"}),0,"progressTarget"],[I({ref:"centerValue"}),0,"centerValueTarget"],[I({ref:"belowValue"}),0,"belowValueTarget"],[I({ref:"input"}),0,"inputTarget"],[Vt(["value","min","max","step","valuePrecision","disabled","readOnly","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[B({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[B({ref:"control",type:"pointermove"}),2,"onPointerMove"],[B({ref:"control",type:"pointerup"}),2,"onPointerUp"],[B({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[B({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,ct))}value=(fe(this),be(this));min=(ve(this),ge(this));max=(ye(this),Te(this));step=(xe(this),we(this));valuePrecision=(Ve(this),Pe(this));disabled=(Ae(this),Ee(this));readOnly=(Re(this),Ie(this));label=(Se(this),Ne(this));name=(Me(this),ke(this));size=(Ke(this),Le(this));strokeWidth=(Oe(this),ze(this));showValue=(De(this),Be(this));valuePosition=(Fe(this),Ce(this));valueTemplate=(Ue(this),je(this));changeEvent=(We(this),$e(this));rootTarget=(Ge(this),Xe(this));labelTarget=(Ye(this),qe(this));controlTarget=(Je(this),Qe(this));trackTarget=(Ze(this),He(this));progressTarget=(et(this),tt(this));centerValueTarget=(it(this),rt(this));belowValueTarget=(nt(this),at(this));inputTarget=(ot(this),st(this));activePointerId=(lt(this),null);lastEmitted=null;onConnected(){this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return K(this.min,this.max,this.step)}get resolvedSize(){return typeof this.size=="number"&&Number.isFinite(this.size)&&this.size>0?this.size:void 0}get resolvedValuePosition(){return this.valuePosition==="below"?"below":"center"}paint(e){let i=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),r=this.resolvedValuePosition;this.syncKnobLayout(r),this.syncControl(e,i.valueText),this.syncRing(i),this.syncReadout(i.valueText,r),this.syncFormValue(e)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.labelTarget?.toggleAttribute("hidden",!this.label),this.labelTarget&&(this.labelTarget.textContent=this.label),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControl(e,i){let r=this.controlTarget;r&&(r.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),r.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),r.setAttribute("aria-valuenow",String(e)),r.setAttribute("aria-valuetext",i),this.label?r.setAttribute("aria-label",this.label):r.removeAttribute("aria-label"),r.setAttribute("aria-readonly",String(this.readOnly)),r.disabled=this.disabled)}syncRing(e){for(let i of[this.trackTarget,this.progressTarget])i?.setAttribute("r",String(e.radius)),i?.setAttribute("stroke-width",String(e.strokeWidth));this.trackTarget?.setAttribute("stroke-dasharray",`${e.arcLength} ${e.circumference}`),this.progressTarget?.setAttribute("stroke-dasharray",`${e.progressLength} ${e.circumference}`)}syncReadout(e,i){for(let[r,g]of[[this.centerValueTarget,this.showValue&&i==="center"],[this.belowValueTarget,this.showValue&&i==="below"]])r&&(r.textContent=e,r.toggleAttribute("hidden",!g))}syncFormValue(e){let i=this.inputTarget;i&&(i.value=String(e),this.name?i.name=this.name:i.removeAttribute("name"),i.disabled=this.disabled)}syncPresentation(){let e=this.numericRange.clamp(this.value);this.paint(e),this.value!==e&&(this.value=e)}commitValue(e){if(this.disabled||this.readOnly)return;let i=this.numericRange.clamp(e);this.paint(i),i!==this.value&&(this.value=i,this.lastEmitted!==i&&(this.lastEmitted=i,this.changeEvent.emit({value:i})))}onPointerDown(e){if(e.button!==0||this.disabled||this.readOnly)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,this.controlTarget.setPointerCapture(e.pointerId);let i=this.controlTarget.getBoundingClientRect(),r=H(e.clientX,e.clientY,i,this.numericRange);r!=null&&this.commitValue(r),e.preventDefault()}onPointerMove(e){if(e.pointerId!==this.activePointerId)return;let i=this.controlTarget.getBoundingClientRect(),r=H(e.clientX,e.clientY,i,this.numericRange);r!=null&&this.commitValue(r)}onPointerUp(e){e.pointerId===this.activePointerId&&(this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onPointerCancel(e){e.pointerId===this.activePointerId&&(this.controlTarget.hasPointerCapture(e.pointerId)&&this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onKeydown(e){if(this.disabled||this.readOnly)return;let i=pe(this.numericRange,this.value,e.key);i!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(i))}static{_e()}};import{jsx as V,jsxs as ee}from"@ecopages/jsx/jsx-runtime";function Pt({value:t=50,min:e=0,max:i=100,step:r=1,disabled:g=!1,readOnly:s=!1,label:c,name:n,size:b,strokeWidth:m=14,showValue:u=!0,valuePosition:v="center",valueTemplate:f="{value}",valuePrecision:S,...F}){let M=K(e,i,r),O=M.clamp(t),C=X(O,e,i,r,m,f,S);return V(At,{props:F,value:O,min:e,max:i,step:r,disabled:g,readOnly:s,label:c,name:n,size:b,strokeWidth:m,showValue:u,valuePosition:v,valueTemplate:f,valuePrecision:S,ring:C,range:M})}function At({props:t,ring:e,range:i,...r}){return V("rui-knob",{...t,value:r.value,min:r.min,max:r.max,step:r.step,disabled:r.disabled,"prop:readOnly":r.readOnly,label:r.label,name:r.name,size:r.size,strokeWidth:r.strokeWidth,showValue:r.showValue,valuePosition:r.valuePosition,valueTemplate:r.valueTemplate,valuePrecision:r.valuePrecision,style:r.size?{"--rui-knob-size":`${r.size}px`}:void 0,children:V(Et,{knob:r,ring:e,range:i})})}function Et({knob:t,ring:e,range:i}){let r=t.valuePosition==="below";return ee("div",{class:r?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[V("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),V(Rt,{knob:t,ring:e,range:i,valueBelow:r}),V("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!r,children:e.valueText}),V("input",{"data-ref":"input",type:"hidden",name:t.name||void 0,value:t.value})]})}function Rt({knob:t,ring:e,range:i,valueBelow:r}){return ee("button",{type:"button",class:"rui-knob__control","data-ref":"control","data-knob-control":!0,role:"slider","aria-label":t.label||void 0,"aria-valuemin":i.lowerBound,"aria-valuemax":i.upperBound,"aria-valuenow":t.value,"aria-valuetext":e.valueText,"aria-readonly":t.readOnly,disabled:t.disabled,children:[ee("svg",{class:"rui-knob__svg",viewBox:"0 0 100 100","aria-hidden":"true",children:[V("circle",{class:"rui-knob__track","data-ref":"track",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.arcLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`}),V("circle",{class:"rui-knob__progress","data-ref":"progress",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.progressLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`})]}),V("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||r,children:e.valueText})]})}export{Pt as RuiKnob,dt as RuiKnobElement};
1
+ import{RadiantElement as pt,customElement as Vt,event as Pt,onEvent as B,onUpdated as At,prop as p,query as I}from"@ecopages/radiant";function H(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let i=e[1]?.length??0,r=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,i-r))}function me(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):H(t)}function fe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function ee(t,e,i){return Object.is(t,e)?!0:!Number.isFinite(t)||!Number.isFinite(e)?!1:t.toFixed(H(i))===e.toFixed(H(i))}function K(t,e,i){let r=Number.isFinite(t)?t:0,g=Number.isFinite(e)?e:100,s=Math.min(r,g),c=Math.max(r,g),n=Number.isFinite(i)&&i>0?i:1,b=c-s,m=u=>{let v=Number.isFinite(u)?u:s,f=s+Math.round((v-s)/n)*n;return Math.min(c,Math.max(s,f))};return{lowerBound:s,upperBound:c,step:n,clamp:m,ratioFor:u=>b===0?0:(m(u)-s)/b,valueFromRatio:u=>{let v=Math.min(1,Math.max(0,Number.isFinite(u)?u:0));return m(s+v*b)}}}function _e(t,e,i){switch(i){case"ArrowRight":case"ArrowUp":return t.clamp(e+t.step);case"ArrowLeft":case"ArrowDown":return t.clamp(e-t.step);case"Home":return t.lowerBound;case"End":return t.upperBound;case"PageUp":return t.clamp(e+t.step*10);case"PageDown":return t.clamp(e-t.step*10);default:return}}var be=120,M=300,_t=14,bt=M+(360-M)/2;function vt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):_t))}function gt(t,e,i){return i.replace("{value}",fe(t,e))}function X(t,e,i,r,g,s,c){let n=K(e,i,r),b=vt(g),m=50-b/2,u=2*Math.PI*m,v=M/360*u,f=n.clamp(t),S=me(r,c);return{startAngle:be,strokeWidth:b,radius:m,circumference:u,arcLength:v,progressLength:n.ratioFor(f)*v,valueText:gt(f,S,s)}}function te(t,e,i,r){if(i.width===0||i.height===0)return null;let s=(Math.atan2(e-(i.top+i.height/2),t-(i.left+i.width/2))*180/Math.PI-be+360)%360,c=s<=M?s:s<=bt?M:0;return r.valueFromRatio(c/M)}var ve,ge,ye,Te,xe,we,Ve,Pe,Ae,Ee,Re,Ie,Se,Ne,Le,Oe,Ke,Me,Fe,ke,De,Be,ze,Ce,Ue,je,We,$e,Ge,Xe,Ye,qe,Je,Qe,Ze,He,et,tt,it,rt,nt,at,ot,st,lt,ut,ct,ht;function yt(t,e,i,r,g,s){var c,n,b,m,u,v,f,S=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,L=Object.create,F=[L(null),L(null)],C=e.length;function U(a,x,y){return function(o,l){x&&(l=o,o=t);for(var w=0;w<a.length;w++)l=a[w].apply(o,y?[l]:[]);return y?l:o}}function E(a,x,y,o){if(typeof a!="function"&&(o||a!==void 0))throw new TypeError(x+" must "+(y||"be")+" a function"+(o?"":" or undefined"));return a}function ne(a,x,y,o,l,w,N,T,P,A,oe){function Y(d){if(!oe(d))throw new TypeError("Attempted to access private element on non-instance")}var q=[].concat(x[0]),se=x[3],J=!N,k=l===1,le=l===3,ue=l===4,j=l===2;function W(d,O,de){return function(G,pe){return O&&(pe=G,G=a),de&&de(G),h[d].call(G,pe)}}if(!J){var h={},Q=[],R=le?"get":ue||k?"set":"value";if(P?(A||k?h={get:dt(function(){return se(this)},o,"get"),set:function(d){x[4](this,d)}}:h[R]=se,A||dt(h[R],o,j?"":R)):A||(h=Object.getOwnPropertyDescriptor(a,o)),!A&&!P){if((n=F[+T][o])&&(n^l)!==7)throw Error("Decorating two elements with the same name ("+h[R].name+") is not supported yet");F[+T][o]=l<3?1:l}}for(var _=a,$=q.length-1;$>=0;$-=y?2:1){var ce=E(q[$],"A decorator","be",!0),he=y?q[$-1]:void 0,Z={},D={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:c,addInitializer:function(d,O){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(O,"An initializer","be",!0),w.push(O)}.bind(null,Z)};if(J)n=ce.call(he,_,D),Z.v=1,E(n,"class decorators","return")&&(_=n);else if(D.static=T,D.private=P,n=D.access={has:P?oe.bind():function(d){return o in d}},ue||(n.get=P?j?function(d){return Y(d),h.value}:W("get",0,Y):function(d){return d[o]}),j||le||(n.set=P?W("set",0,Y):function(d,O){d[o]=O}),_=ce.call(he,k?{get:h.get,set:h.set}:h[R],D),Z.v=1,k){if(typeof _=="object"&&_)(n=E(_.get,"accessor.get"))&&(h.get=n),(n=E(_.set,"accessor.set"))&&(h.set=n),(n=E(_.init,"accessor.init"))&&Q.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(_,(A?"field":"method")+" decorators","return")&&(A?Q.unshift(_):h[R]=_)}return l<2&&N.push(U(Q,T,1),U(w,T,0)),A||J||(P?k?N.splice(-1,0,W("get",T),W("set",T)):N.push(j?h[R]:E.call.bind(h[R])):z(a,o,h)),_}function ae(a){return z(a,S,{configurable:!0,enumerable:!0,value:c})}return s!==void 0&&(c=s[S]),c=L(c??null),u=[],v=function(a){a&&u.push(U(a))},f=function(a,x){for(var y=0;y<i.length;y++){var o=i[y],l=o[1],w=7&l;if((8&l)==a&&!w==x){var N=o[2],T=!!o[3],P=16&l;ne(a?t:t.prototype,o,P,T?"#"+N:Tt(N),w,w<2?[]:a?m=m||[]:b=b||[],u,!!a,T,x,a&&T?function(A){return wt(A)===t}:g)}}},f(8,0),f(0,0),f(8,1),f(0,1),v(b),v(m),n=u,C||ae(t),{e:n,get c(){var a=[];return C&&[ae(t=ne(t,[e],r,t.name,5,a)),U(a,1)]}}}function Tt(t){var e=xt(t,"string");return typeof e=="symbol"?e:e+""}function xt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function dt(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function wt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var ie=50,ft,mt=class extends pt{static{({e:[ye,Te,xe,we,Ve,Pe,Ae,Ee,Re,Ie,Se,Ne,Le,Oe,Ke,Me,Fe,ke,De,Be,ze,Ce,Ue,je,We,$e,Ge,Xe,Ye,qe,Je,Qe,Ze,He,et,tt,it,rt,nt,at,ot,st,lt,ut,ct,ht,ve],c:[ft,ge]}=yt(this,[Vt("rui-knob")],[[p({type:Number,reflect:!0,defaultValue:ie}),0,"value"],[p({type:Number,defaultValue:0}),0,"min"],[p({type:Number,defaultValue:100}),0,"max"],[p({type:Number,defaultValue:1}),0,"step"],[p({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[p({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[p({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[p({type:String,defaultValue:""}),0,"label"],[p({type:String,defaultValue:""}),0,"name"],[p({type:Number}),0,"size"],[p({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[p({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[p({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[p({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[Pt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[I({ref:"root"}),0,"rootTarget"],[I({ref:"label"}),0,"labelTarget"],[I({ref:"control"}),0,"controlTarget"],[I({ref:"track"}),0,"trackTarget"],[I({ref:"progress"}),0,"progressTarget"],[I({ref:"centerValue"}),0,"centerValueTarget"],[I({ref:"belowValue"}),0,"belowValueTarget"],[I({ref:"input"}),0,"inputTarget"],[At(["value","min","max","step","valuePrecision","disabled","readOnly","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[B({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[B({ref:"control",type:"pointermove"}),2,"onPointerMove"],[B({ref:"control",type:"pointerup"}),2,"onPointerUp"],[B({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[B({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,pt))}value=(ve(this),ye(this));min=(Te(this),xe(this));max=(we(this),Ve(this));step=(Pe(this),Ae(this));valuePrecision=(Ee(this),Re(this));disabled=(Ie(this),Se(this));readOnly=(Ne(this),Le(this));label=(Oe(this),Ke(this));name=(Me(this),Fe(this));size=(ke(this),De(this));strokeWidth=(Be(this),ze(this));showValue=(Ce(this),Ue(this));valuePosition=(je(this),We(this));valueTemplate=($e(this),Ge(this));changeEvent=(Xe(this),Ye(this));rootTarget=(qe(this),Je(this));labelTarget=(Qe(this),Ze(this));controlTarget=(He(this),et(this));trackTarget=(tt(this),it(this));progressTarget=(rt(this),nt(this));centerValueTarget=(at(this),ot(this));belowValueTarget=(st(this),lt(this));inputTarget=(ut(this),ct(this));activePointerId=(ht(this),null);lastEmitted=null;onConnected(){this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return K(this.min,this.max,this.step)}get resolvedSize(){return typeof this.size=="number"&&Number.isFinite(this.size)&&this.size>0?this.size:void 0}get resolvedValuePosition(){return this.valuePosition==="below"?"below":"center"}paint(e){let i=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),r=this.resolvedValuePosition;this.syncKnobLayout(r),this.syncControl(e,i.valueText),this.syncRing(i),this.syncReadout(i.valueText,r),this.syncFormValue(e)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.labelTarget?.toggleAttribute("hidden",!this.label),this.labelTarget&&(this.labelTarget.textContent=this.label),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControl(e,i){let r=this.controlTarget;r&&(r.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),r.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),r.setAttribute("aria-valuenow",String(e)),r.setAttribute("aria-valuetext",i),this.label?r.setAttribute("aria-label",this.label):r.removeAttribute("aria-label"),r.setAttribute("aria-readonly",String(this.readOnly)),r.disabled=this.disabled)}syncRing(e){for(let i of[this.trackTarget,this.progressTarget])i?.setAttribute("r",String(e.radius)),i?.setAttribute("stroke-width",String(e.strokeWidth));this.trackTarget?.setAttribute("stroke-dasharray",`${e.arcLength} ${e.circumference}`),this.progressTarget?.setAttribute("stroke-dasharray",`${e.progressLength} ${e.circumference}`)}syncReadout(e,i){for(let[r,g]of[[this.centerValueTarget,this.showValue&&i==="center"],[this.belowValueTarget,this.showValue&&i==="below"]])r&&(r.textContent=e,r.toggleAttribute("hidden",!g))}syncFormValue(e){let i=this.inputTarget;i&&(i.value=String(e),this.name?i.name=this.name:i.removeAttribute("name"),i.disabled=this.disabled)}syncPresentation(){let e=this.numericRange.clamp(this.value);this.paint(e),ee(this.value,e,this.step)||(this.value=e)}commitValue(e){if(this.disabled||this.readOnly)return;let i=this.numericRange.clamp(e);this.paint(i),!ee(i,this.value,this.step)&&(this.value=i,this.lastEmitted!==i&&(this.lastEmitted=i,this.changeEvent.emit({value:i})))}onPointerDown(e){if(e.button!==0||this.disabled||this.readOnly)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,this.controlTarget.setPointerCapture(e.pointerId);let i=this.controlTarget.getBoundingClientRect(),r=te(e.clientX,e.clientY,i,this.numericRange);r!=null&&this.commitValue(r),e.preventDefault()}onPointerMove(e){if(e.pointerId!==this.activePointerId)return;let i=this.controlTarget.getBoundingClientRect(),r=te(e.clientX,e.clientY,i,this.numericRange);r!=null&&this.commitValue(r)}onPointerUp(e){e.pointerId===this.activePointerId&&(this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onPointerCancel(e){e.pointerId===this.activePointerId&&(this.controlTarget.hasPointerCapture(e.pointerId)&&this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onKeydown(e){if(this.disabled||this.readOnly)return;let i=_e(this.numericRange,this.value,e.key);i!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(i))}static{ge()}};import{jsx as V,jsxs as re}from"@ecopages/jsx/jsx-runtime";function Et({value:t=ie,min:e=0,max:i=100,step:r=1,disabled:g=!1,readOnly:s=!1,label:c,name:n,size:b,strokeWidth:m=14,showValue:u=!0,valuePosition:v="center",valueTemplate:f="{value}",valuePrecision:S,...z}){let L=K(e,i,r),F=L.clamp(t),C=X(F,e,i,r,m,f,S);return V(Rt,{props:z,value:F,min:e,max:i,step:r,disabled:g,readOnly:s,label:c,name:n,size:b,strokeWidth:m,showValue:u,valuePosition:v,valueTemplate:f,valuePrecision:S,ring:C,range:L})}function Rt({props:t,ring:e,range:i,...r}){return V("rui-knob",{...t,value:r.value,min:r.min,max:r.max,step:r.step,disabled:r.disabled,"prop:readOnly":r.readOnly,label:r.label,name:r.name,size:r.size,strokeWidth:r.strokeWidth,showValue:r.showValue,valuePosition:r.valuePosition,valueTemplate:r.valueTemplate,valuePrecision:r.valuePrecision,style:r.size?{"--rui-knob-size":`${r.size}px`}:void 0,children:V(It,{knob:r,ring:e,range:i})})}function It({knob:t,ring:e,range:i}){let r=t.valuePosition==="below";return re("div",{class:r?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[V("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),V(St,{knob:t,ring:e,range:i,valueBelow:r}),V("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!r,children:e.valueText}),V("input",{"data-ref":"input",type:"hidden",name:t.name||void 0,value:t.value})]})}function St({knob:t,ring:e,range:i,valueBelow:r}){return re("button",{type:"button",class:"rui-knob__control","data-ref":"control","data-knob-control":!0,role:"slider","aria-label":t.label||void 0,"aria-valuemin":i.lowerBound,"aria-valuemax":i.upperBound,"aria-valuenow":t.value,"aria-valuetext":e.valueText,"aria-readonly":t.readOnly,disabled:t.disabled,children:[re("svg",{class:"rui-knob__svg",viewBox:"0 0 100 100","aria-hidden":"true",children:[V("circle",{class:"rui-knob__track","data-ref":"track",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.arcLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`}),V("circle",{class:"rui-knob__progress","data-ref":"progress",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.progressLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`})]}),V("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||r,children:e.valueText})]})}export{Et as RuiKnob,ft as RuiKnobElement};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/knob/knob.script.tsx", "../../../../src/components/ui/shared/numeric-range.ts", "../../../../src/components/ui/knob/knob-geometry.ts", "../../../../src/components/ui/knob/knob.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _init_inputTarget, _init_extra_inputTarget;\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 { RadiantElement, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { createNumericRange, valueFromSliderKey } from \"../shared/numeric-range\";\nimport { createKnobRing, knobValueFromPointer } from \"./knob-geometry\";\nlet _RuiKnob;\nclass RuiKnob extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _init_inputTarget, _init_extra_inputTarget, _initProto],\n c: [_RuiKnob, _initClass]\n } = _applyDecs(this, [customElement(\"rui-knob\")], [[prop({\n type: Number,\n reflect: true,\n defaultValue: 50\n }), 0, \"value\"], [prop({\n type: Number,\n defaultValue: 0\n }), 0, \"min\"], [prop({\n type: Number,\n defaultValue: 100\n }), 0, \"max\"], [prop({\n type: Number,\n defaultValue: 1\n }), 0, \"step\"], [prop({\n type: Number,\n attribute: \"value-precision\",\n defaultValue: Number.NaN\n }), 0, \"valuePrecision\"], [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: Number\n }), 0, \"size\"], [prop({\n type: Number,\n attribute: \"stroke-width\",\n defaultValue: 14\n }), 0, \"strokeWidth\"], [prop({\n type: Boolean,\n attribute: \"show-value\",\n defaultValue: true\n }), 0, \"showValue\"], [prop({\n type: String,\n attribute: \"value-position\",\n defaultValue: \"center\"\n }), 0, \"valuePosition\"], [prop({\n type: String,\n attribute: \"value-template\",\n defaultValue: \"{value}\"\n }), 0, \"valueTemplate\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"label\"\n }), 0, \"labelTarget\"], [query({\n ref: \"control\"\n }), 0, \"controlTarget\"], [query({\n ref: \"track\"\n }), 0, \"trackTarget\"], [query({\n ref: \"progress\"\n }), 0, \"progressTarget\"], [query({\n ref: \"centerValue\"\n }), 0, \"centerValueTarget\"], [query({\n ref: \"belowValue\"\n }), 0, \"belowValueTarget\"], [query({\n ref: \"input\"\n }), 0, \"inputTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"name\", \"label\", \"size\", \"strokeWidth\", \"showValue\", \"valuePosition\", \"valueTemplate\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"control\",\n type: \"pointerdown\"\n }), 2, \"onPointerDown\"], [onEvent({\n ref: \"control\",\n type: \"pointermove\"\n }), 2, \"onPointerMove\"], [onEvent({\n ref: \"control\",\n type: \"pointerup\"\n }), 2, \"onPointerUp\"], [onEvent({\n ref: \"control\",\n type: \"pointercancel\"\n }), 2, \"onPointerCancel\"], [onEvent({\n ref: \"control\",\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, RadiantElement));\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 step = (_init_extra_max(this), _init_step(this));\n valuePrecision = (_init_extra_step(this), _init_valuePrecision(this));\n disabled = (_init_extra_valuePrecision(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 size = (_init_extra_name(this), _init_size(this));\n strokeWidth = (_init_extra_size(this), _init_strokeWidth(this));\n showValue = (_init_extra_strokeWidth(this), _init_showValue(this));\n valuePosition = (_init_extra_showValue(this), _init_valuePosition(this));\n valueTemplate = (_init_extra_valuePosition(this), _init_valueTemplate(this));\n changeEvent = (_init_extra_valueTemplate(this), _init_changeEvent(this));\n rootTarget = (_init_extra_changeEvent(this), _init_rootTarget(this));\n labelTarget = (_init_extra_rootTarget(this), _init_labelTarget(this));\n controlTarget = (_init_extra_labelTarget(this), _init_controlTarget(this));\n trackTarget = (_init_extra_controlTarget(this), _init_trackTarget(this));\n progressTarget = (_init_extra_trackTarget(this), _init_progressTarget(this));\n centerValueTarget = (_init_extra_progressTarget(this), _init_centerValueTarget(this));\n belowValueTarget = (_init_extra_centerValueTarget(this), _init_belowValueTarget(this));\n inputTarget = (_init_extra_belowValueTarget(this), _init_inputTarget(this));\n activePointerId = (_init_extra_inputTarget(this), null);\n lastEmitted = null;\n onConnected() {\n this.syncPresentation();\n }\n onPropsUpdated() {\n this.syncPresentation();\n }\n get numericRange() {\n return createNumericRange(this.min, this.max, this.step);\n }\n get resolvedSize() {\n return typeof this.size === \"number\" && Number.isFinite(this.size) && this.size > 0 ? this.size : void 0;\n }\n get resolvedValuePosition() {\n return this.valuePosition === \"below\" ? \"below\" : \"center\";\n }\n paint(value) {\n const ring = createKnobRing(value, this.min, this.max, this.step, this.strokeWidth, this.valueTemplate, this.valuePrecision);\n const valuePosition = this.resolvedValuePosition;\n this.syncKnobLayout(valuePosition);\n this.syncControl(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n this.syncFormValue(value);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\n this.labelTarget?.toggleAttribute(\"hidden\", !this.label);\n if (this.labelTarget) this.labelTarget.textContent = this.label;\n if (this.resolvedSize) {\n this.style.setProperty(\"--rui-knob-size\", `${this.resolvedSize}px`);\n } else {\n this.style.removeProperty(\"--rui-knob-size\");\n }\n }\n syncControl(value, valueText) {\n const control = this.controlTarget;\n if (!control) return;\n control.setAttribute(\"aria-valuemin\", String(this.numericRange.lowerBound));\n control.setAttribute(\"aria-valuemax\", String(this.numericRange.upperBound));\n control.setAttribute(\"aria-valuenow\", String(value));\n control.setAttribute(\"aria-valuetext\", valueText);\n if (this.label) control.setAttribute(\"aria-label\", this.label);else control.removeAttribute(\"aria-label\");\n control.setAttribute(\"aria-readonly\", String(this.readOnly));\n control.disabled = this.disabled;\n }\n syncRing(ring) {\n for (const circle of [this.trackTarget, this.progressTarget]) {\n circle?.setAttribute(\"r\", String(ring.radius));\n circle?.setAttribute(\"stroke-width\", String(ring.strokeWidth));\n }\n this.trackTarget?.setAttribute(\"stroke-dasharray\", `${ring.arcLength} ${ring.circumference}`);\n this.progressTarget?.setAttribute(\"stroke-dasharray\", `${ring.progressLength} ${ring.circumference}`);\n }\n syncReadout(valueText, valuePosition) {\n for (const [target, visible] of [[this.centerValueTarget, this.showValue && valuePosition === \"center\"], [this.belowValueTarget, this.showValue && valuePosition === \"below\"]]) {\n if (!target) {\n continue;\n }\n target.textContent = valueText;\n target.toggleAttribute(\"hidden\", !visible);\n }\n }\n syncFormValue(value) {\n const input = this.inputTarget;\n if (!input) return;\n input.value = String(value);\n if (this.name) input.name = this.name;else input.removeAttribute(\"name\");\n input.disabled = this.disabled;\n }\n syncPresentation() {\n const value = this.numericRange.clamp(this.value);\n this.paint(value);\n if (this.value !== value) {\n this.value = value;\n }\n }\n commitValue(next) {\n if (this.disabled || this.readOnly) {\n return;\n }\n const value = this.numericRange.clamp(next);\n this.paint(value);\n if (value === this.value) {\n return;\n }\n this.value = value;\n if (this.lastEmitted !== value) {\n this.lastEmitted = value;\n this.changeEvent.emit({\n value\n });\n }\n }\n onPointerDown(event2) {\n if (event2.button !== 0 || this.disabled || this.readOnly) {\n return;\n }\n this.activePointerId = event2.pointerId;\n this.lastEmitted = this.value;\n this.controlTarget.setPointerCapture(event2.pointerId);\n const rect = this.controlTarget.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n event2.preventDefault();\n }\n onPointerMove(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n const rect = this.controlTarget.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n }\n onPointerUp(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n this.controlTarget.releasePointerCapture(event2.pointerId);\n this.activePointerId = null;\n }\n onPointerCancel(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n if (this.controlTarget.hasPointerCapture(event2.pointerId)) {\n this.controlTarget.releasePointerCapture(event2.pointerId);\n }\n this.activePointerId = null;\n }\n onKeydown(event2) {\n if (this.disabled || this.readOnly) {\n return;\n }\n const next = valueFromSliderKey(this.numericRange, this.value, event2.key);\n if (next == null) {\n return;\n }\n event2.preventDefault();\n this.lastEmitted = this.value;\n this.commitValue(next);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiKnob as RuiKnob };", "export const SLIDER_PAGE_STEP_MULTIPLIER = 10;\nexport const MAX_VALUE_FRACTION_DIGITS = 15;\nexport function fractionDigitsFromStep(step) {\n if (!Number.isFinite(step) || step <= 0) {\n return 0;\n }\n const match = step.toString().match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n const decimals = match[1]?.length ?? 0;\n const exponent = match[2] ? Number(match[2]) : 0;\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.max(0, decimals - exponent));\n}\nexport function resolveValuePrecision(step, valuePrecision) {\n if (typeof valuePrecision === \"number\" && Number.isFinite(valuePrecision) && valuePrecision >= 0) {\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.round(valuePrecision));\n }\n return fractionDigitsFromStep(step);\n}\nexport function formatNumericValue(value, valuePrecision) {\n return Number.isFinite(value) ? value.toFixed(valuePrecision) : \"\";\n}\nexport function createNumericRange(min, max, step) {\n const resolvedMin = Number.isFinite(min) ? min : 0;\n const resolvedMax = Number.isFinite(max) ? max : 100;\n const lowerBound = Math.min(resolvedMin, resolvedMax);\n const upperBound = Math.max(resolvedMin, resolvedMax);\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const span = upperBound - lowerBound;\n const clamp = value => {\n const candidate = Number.isFinite(value) ? value : lowerBound;\n const stepped = lowerBound + Math.round((candidate - lowerBound) / resolvedStep) * resolvedStep;\n return Math.min(upperBound, Math.max(lowerBound, stepped));\n };\n return {\n lowerBound,\n upperBound,\n step: resolvedStep,\n clamp,\n ratioFor: value => span === 0 ? 0 : (clamp(value) - lowerBound) / span,\n valueFromRatio: ratio => {\n const unit = Math.min(1, Math.max(0, Number.isFinite(ratio) ? ratio : 0));\n return clamp(lowerBound + unit * span);\n }\n };\n}\nexport function valueFromSliderKey(range, current, key) {\n switch (key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n return range.clamp(current + range.step);\n case \"ArrowLeft\":\n case \"ArrowDown\":\n return range.clamp(current - range.step);\n case \"Home\":\n return range.lowerBound;\n case \"End\":\n return range.upperBound;\n case \"PageUp\":\n return range.clamp(current + range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n case \"PageDown\":\n return range.clamp(current - range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n default:\n return void 0;\n }\n}", "import { createNumericRange, formatNumericValue, resolveValuePrecision } from \"../shared/numeric-range\";\nexport const KNOB_START_ANGLE = 120;\nexport const KNOB_ARC_ANGLE = 300;\nexport const KNOB_DEFAULT_STROKE_WIDTH = 14;\nconst KNOB_GAP_MIDPOINT = KNOB_ARC_ANGLE + (360 - KNOB_ARC_ANGLE) / 2;\nexport function resolveKnobStrokeWidth(strokeWidth) {\n return Math.min(100, Math.max(0, Number.isFinite(strokeWidth) ? Number(strokeWidth) : KNOB_DEFAULT_STROKE_WIDTH));\n}\nexport function formatKnobValue(value, valuePrecision, template) {\n return template.replace(\"{value}\", formatNumericValue(value, valuePrecision));\n}\nexport function createKnobRing(value, min, max, step, strokeWidth, valueTemplate, valuePrecision) {\n const range = createNumericRange(min, max, step);\n const resolvedStrokeWidth = resolveKnobStrokeWidth(strokeWidth);\n const radius = 50 - resolvedStrokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const arcLength = KNOB_ARC_ANGLE / 360 * circumference;\n const clamped = range.clamp(value);\n const precision = resolveValuePrecision(step, valuePrecision);\n return {\n startAngle: KNOB_START_ANGLE,\n strokeWidth: resolvedStrokeWidth,\n radius,\n circumference,\n arcLength,\n progressLength: range.ratioFor(clamped) * arcLength,\n valueText: formatKnobValue(clamped, precision, valueTemplate)\n };\n}\nexport function knobValueFromPointer(clientX, clientY, rect, range) {\n if (rect.width === 0 || rect.height === 0) {\n return null;\n }\n const pointerAngle = Math.atan2(clientY - (rect.top + rect.height / 2), clientX - (rect.left + rect.width / 2)) * 180 / Math.PI;\n const alongArc = (pointerAngle - KNOB_START_ANGLE + 360) % 360;\n const clampedAlong = alongArc <= KNOB_ARC_ANGLE ? alongArc : alongArc <= KNOB_GAP_MIDPOINT ? KNOB_ARC_ANGLE : 0;\n return range.valueFromRatio(clampedAlong / KNOB_ARC_ANGLE);\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { createNumericRange } from \"../shared/numeric-range\";\nimport { createKnobRing } from \"./knob-geometry\";\nimport \"./knob.script\";\nexport function RuiKnob({\n value = 50,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n readOnly = false,\n label,\n name,\n size,\n strokeWidth = 14,\n showValue = true,\n valuePosition = \"center\",\n valueTemplate = \"{value}\",\n valuePrecision,\n ...props\n}) {\n const range = createNumericRange(min, max, step);\n const resolvedValue = range.clamp(value);\n const ring = createKnobRing(resolvedValue, min, max, step, strokeWidth, valueTemplate, valuePrecision);\n return /* @__PURE__ */jsx(KnobSurface, {\n props,\n value: resolvedValue,\n min,\n max,\n step,\n disabled,\n readOnly,\n label,\n name,\n size,\n strokeWidth,\n showValue,\n valuePosition,\n valueTemplate,\n valuePrecision,\n ring,\n range\n });\n}\nfunction KnobSurface({\n props,\n ring,\n range,\n ...knob\n}) {\n return /* @__PURE__ */jsx(\"rui-knob\", {\n ...props,\n value: knob.value,\n min: knob.min,\n max: knob.max,\n step: knob.step,\n disabled: knob.disabled,\n \"prop:readOnly\": knob.readOnly,\n label: knob.label,\n name: knob.name,\n size: knob.size,\n strokeWidth: knob.strokeWidth,\n showValue: knob.showValue,\n valuePosition: knob.valuePosition,\n valueTemplate: knob.valueTemplate,\n valuePrecision: knob.valuePrecision,\n style: knob.size ? {\n \"--rui-knob-size\": `${knob.size}px`\n } : void 0,\n children: /* @__PURE__ */jsx(KnobBody, {\n knob,\n ring,\n range\n })\n });\n}\nfunction KnobBody({\n knob,\n ring,\n range\n}) {\n const valueBelow = knob.valuePosition === \"below\";\n return /* @__PURE__ */jsxs(\"div\", {\n class: valueBelow ? \"rui-knob rui-knob--value-below\" : \"rui-knob\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__label\",\n \"data-ref\": \"label\",\n hidden: !knob.label,\n children: knob.label\n }), /* @__PURE__ */jsx(KnobControl, {\n knob,\n ring,\n range,\n valueBelow\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value rui-knob__value--below\",\n \"data-ref\": \"belowValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || !valueBelow,\n children: ring.valueText\n }), /* @__PURE__ */jsx(\"input\", {\n \"data-ref\": \"input\",\n type: \"hidden\",\n name: knob.name || void 0,\n value: knob.value\n })]\n });\n}\nfunction KnobControl({\n knob,\n ring,\n range,\n valueBelow\n}) {\n return /* @__PURE__ */jsxs(\"button\", {\n type: \"button\",\n class: \"rui-knob__control\",\n \"data-ref\": \"control\",\n \"data-knob-control\": true,\n role: \"slider\",\n \"aria-label\": knob.label || void 0,\n \"aria-valuemin\": range.lowerBound,\n \"aria-valuemax\": range.upperBound,\n \"aria-valuenow\": knob.value,\n \"aria-valuetext\": ring.valueText,\n \"aria-readonly\": knob.readOnly,\n disabled: knob.disabled,\n children: [/* @__PURE__ */jsxs(\"svg\", {\n class: \"rui-knob__svg\",\n viewBox: \"0 0 100 100\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__track\",\n \"data-ref\": \"track\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.arcLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n }), /* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__progress\",\n \"data-ref\": \"progress\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.progressLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n })]\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value\",\n \"data-ref\": \"centerValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || valueBelow,\n children: ring.valueText\n })]\n });\n}"],
5
- "mappings": "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",
6
- "names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "fractionDigitsFromStep", "step", "match", "decimals", "exponent", "resolveValuePrecision", "valuePrecision", "formatNumericValue", "value", "createNumericRange", "min", "max", "resolvedMin", "resolvedMax", "lowerBound", "upperBound", "resolvedStep", "span", "clamp", "candidate", "stepped", "ratio", "unit", "valueFromSliderKey", "range", "current", "key", "KNOB_START_ANGLE", "KNOB_ARC_ANGLE", "KNOB_DEFAULT_STROKE_WIDTH", "KNOB_GAP_MIDPOINT", "resolveKnobStrokeWidth", "strokeWidth", "formatKnobValue", "value", "valuePrecision", "template", "formatNumericValue", "createKnobRing", "min", "max", "step", "valueTemplate", "range", "createNumericRange", "resolvedStrokeWidth", "radius", "circumference", "arcLength", "clamped", "precision", "resolveValuePrecision", "knobValueFromPointer", "clientX", "clientY", "rect", "alongArc", "clampedAlong", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_step", "_init_extra_step", "_init_valuePrecision", "_init_extra_valuePrecision", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_name", "_init_extra_name", "_init_size", "_init_extra_size", "_init_strokeWidth", "_init_extra_strokeWidth", "_init_showValue", "_init_extra_showValue", "_init_valuePosition", "_init_extra_valuePosition", "_init_valueTemplate", "_init_extra_valueTemplate", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_init_labelTarget", "_init_extra_labelTarget", "_init_controlTarget", "_init_extra_controlTarget", "_init_trackTarget", "_init_extra_trackTarget", "_init_progressTarget", "_init_extra_progressTarget", "_init_centerValueTarget", "_init_extra_centerValueTarget", "_init_belowValueTarget", "_init_extra_belowValueTarget", "_init_inputTarget", "_init_extra_inputTarget", "_applyDecs", "e", "t", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiKnob", "RuiKnob", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "createNumericRange", "value", "ring", "createKnobRing", "valuePosition", "valueText", "control", "circle", "target", "visible", "input", "next", "event2", "rect", "knobValueFromPointer", "valueFromSliderKey", "jsx", "jsxs", "RuiKnob", "value", "min", "max", "step", "disabled", "readOnly", "label", "name", "size", "strokeWidth", "showValue", "valuePosition", "valueTemplate", "valuePrecision", "props", "range", "createNumericRange", "resolvedValue", "ring", "createKnobRing", "jsx", "KnobSurface", "knob", "KnobBody", "valueBelow", "jsxs", "KnobControl"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _init_inputTarget, _init_extra_inputTarget;\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 { RadiantElement, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { createNumericRange, valueFromSliderKey, valuesAlignOnStep } from \"../shared/numeric-range\";\nimport { createKnobRing, knobValueFromPointer } from \"./knob-geometry\";\nexport const KNOB_DEFAULT_VALUE = 50;\nlet _RuiKnob;\nclass RuiKnob extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _init_inputTarget, _init_extra_inputTarget, _initProto],\n c: [_RuiKnob, _initClass]\n } = _applyDecs(this, [customElement(\"rui-knob\")], [[prop({\n type: Number,\n reflect: true,\n defaultValue: KNOB_DEFAULT_VALUE\n }), 0, \"value\"], [prop({\n type: Number,\n defaultValue: 0\n }), 0, \"min\"], [prop({\n type: Number,\n defaultValue: 100\n }), 0, \"max\"], [prop({\n type: Number,\n defaultValue: 1\n }), 0, \"step\"], [prop({\n type: Number,\n attribute: \"value-precision\",\n defaultValue: Number.NaN\n }), 0, \"valuePrecision\"], [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: Number\n }), 0, \"size\"], [prop({\n type: Number,\n attribute: \"stroke-width\",\n defaultValue: 14\n }), 0, \"strokeWidth\"], [prop({\n type: Boolean,\n attribute: \"show-value\",\n defaultValue: true\n }), 0, \"showValue\"], [prop({\n type: String,\n attribute: \"value-position\",\n defaultValue: \"center\"\n }), 0, \"valuePosition\"], [prop({\n type: String,\n attribute: \"value-template\",\n defaultValue: \"{value}\"\n }), 0, \"valueTemplate\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"label\"\n }), 0, \"labelTarget\"], [query({\n ref: \"control\"\n }), 0, \"controlTarget\"], [query({\n ref: \"track\"\n }), 0, \"trackTarget\"], [query({\n ref: \"progress\"\n }), 0, \"progressTarget\"], [query({\n ref: \"centerValue\"\n }), 0, \"centerValueTarget\"], [query({\n ref: \"belowValue\"\n }), 0, \"belowValueTarget\"], [query({\n ref: \"input\"\n }), 0, \"inputTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"name\", \"label\", \"size\", \"strokeWidth\", \"showValue\", \"valuePosition\", \"valueTemplate\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"control\",\n type: \"pointerdown\"\n }), 2, \"onPointerDown\"], [onEvent({\n ref: \"control\",\n type: \"pointermove\"\n }), 2, \"onPointerMove\"], [onEvent({\n ref: \"control\",\n type: \"pointerup\"\n }), 2, \"onPointerUp\"], [onEvent({\n ref: \"control\",\n type: \"pointercancel\"\n }), 2, \"onPointerCancel\"], [onEvent({\n ref: \"control\",\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, RadiantElement));\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 step = (_init_extra_max(this), _init_step(this));\n valuePrecision = (_init_extra_step(this), _init_valuePrecision(this));\n disabled = (_init_extra_valuePrecision(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 size = (_init_extra_name(this), _init_size(this));\n strokeWidth = (_init_extra_size(this), _init_strokeWidth(this));\n showValue = (_init_extra_strokeWidth(this), _init_showValue(this));\n valuePosition = (_init_extra_showValue(this), _init_valuePosition(this));\n valueTemplate = (_init_extra_valuePosition(this), _init_valueTemplate(this));\n changeEvent = (_init_extra_valueTemplate(this), _init_changeEvent(this));\n rootTarget = (_init_extra_changeEvent(this), _init_rootTarget(this));\n labelTarget = (_init_extra_rootTarget(this), _init_labelTarget(this));\n controlTarget = (_init_extra_labelTarget(this), _init_controlTarget(this));\n trackTarget = (_init_extra_controlTarget(this), _init_trackTarget(this));\n progressTarget = (_init_extra_trackTarget(this), _init_progressTarget(this));\n centerValueTarget = (_init_extra_progressTarget(this), _init_centerValueTarget(this));\n belowValueTarget = (_init_extra_centerValueTarget(this), _init_belowValueTarget(this));\n inputTarget = (_init_extra_belowValueTarget(this), _init_inputTarget(this));\n activePointerId = (_init_extra_inputTarget(this), null);\n lastEmitted = null;\n onConnected() {\n this.syncPresentation();\n }\n onPropsUpdated() {\n this.syncPresentation();\n }\n get numericRange() {\n return createNumericRange(this.min, this.max, this.step);\n }\n get resolvedSize() {\n return typeof this.size === \"number\" && Number.isFinite(this.size) && this.size > 0 ? this.size : void 0;\n }\n get resolvedValuePosition() {\n return this.valuePosition === \"below\" ? \"below\" : \"center\";\n }\n paint(value) {\n const ring = createKnobRing(value, this.min, this.max, this.step, this.strokeWidth, this.valueTemplate, this.valuePrecision);\n const valuePosition = this.resolvedValuePosition;\n this.syncKnobLayout(valuePosition);\n this.syncControl(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n this.syncFormValue(value);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\n this.labelTarget?.toggleAttribute(\"hidden\", !this.label);\n if (this.labelTarget) this.labelTarget.textContent = this.label;\n if (this.resolvedSize) {\n this.style.setProperty(\"--rui-knob-size\", `${this.resolvedSize}px`);\n } else {\n this.style.removeProperty(\"--rui-knob-size\");\n }\n }\n syncControl(value, valueText) {\n const control = this.controlTarget;\n if (!control) return;\n control.setAttribute(\"aria-valuemin\", String(this.numericRange.lowerBound));\n control.setAttribute(\"aria-valuemax\", String(this.numericRange.upperBound));\n control.setAttribute(\"aria-valuenow\", String(value));\n control.setAttribute(\"aria-valuetext\", valueText);\n if (this.label) control.setAttribute(\"aria-label\", this.label);else control.removeAttribute(\"aria-label\");\n control.setAttribute(\"aria-readonly\", String(this.readOnly));\n control.disabled = this.disabled;\n }\n syncRing(ring) {\n for (const circle of [this.trackTarget, this.progressTarget]) {\n circle?.setAttribute(\"r\", String(ring.radius));\n circle?.setAttribute(\"stroke-width\", String(ring.strokeWidth));\n }\n this.trackTarget?.setAttribute(\"stroke-dasharray\", `${ring.arcLength} ${ring.circumference}`);\n this.progressTarget?.setAttribute(\"stroke-dasharray\", `${ring.progressLength} ${ring.circumference}`);\n }\n syncReadout(valueText, valuePosition) {\n for (const [target, visible] of [[this.centerValueTarget, this.showValue && valuePosition === \"center\"], [this.belowValueTarget, this.showValue && valuePosition === \"below\"]]) {\n if (!target) {\n continue;\n }\n target.textContent = valueText;\n target.toggleAttribute(\"hidden\", !visible);\n }\n }\n syncFormValue(value) {\n const input = this.inputTarget;\n if (!input) return;\n input.value = String(value);\n if (this.name) input.name = this.name;else input.removeAttribute(\"name\");\n input.disabled = this.disabled;\n }\n syncPresentation() {\n const value = this.numericRange.clamp(this.value);\n this.paint(value);\n if (!valuesAlignOnStep(this.value, value, this.step)) {\n this.value = value;\n }\n }\n commitValue(next) {\n if (this.disabled || this.readOnly) {\n return;\n }\n const value = this.numericRange.clamp(next);\n this.paint(value);\n if (valuesAlignOnStep(value, this.value, this.step)) {\n return;\n }\n this.value = value;\n if (this.lastEmitted !== value) {\n this.lastEmitted = value;\n this.changeEvent.emit({\n value\n });\n }\n }\n onPointerDown(event2) {\n if (event2.button !== 0 || this.disabled || this.readOnly) {\n return;\n }\n this.activePointerId = event2.pointerId;\n this.lastEmitted = this.value;\n this.controlTarget.setPointerCapture(event2.pointerId);\n const rect = this.controlTarget.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n event2.preventDefault();\n }\n onPointerMove(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n const rect = this.controlTarget.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n }\n onPointerUp(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n this.controlTarget.releasePointerCapture(event2.pointerId);\n this.activePointerId = null;\n }\n onPointerCancel(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n if (this.controlTarget.hasPointerCapture(event2.pointerId)) {\n this.controlTarget.releasePointerCapture(event2.pointerId);\n }\n this.activePointerId = null;\n }\n onKeydown(event2) {\n if (this.disabled || this.readOnly) {\n return;\n }\n const next = valueFromSliderKey(this.numericRange, this.value, event2.key);\n if (next == null) {\n return;\n }\n event2.preventDefault();\n this.lastEmitted = this.value;\n this.commitValue(next);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiKnob as RuiKnob };", "export const SLIDER_PAGE_STEP_MULTIPLIER = 10;\nexport const MAX_VALUE_FRACTION_DIGITS = 15;\nexport function fractionDigitsFromStep(step) {\n if (!Number.isFinite(step) || step <= 0) {\n return 0;\n }\n const match = step.toString().match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n const decimals = match[1]?.length ?? 0;\n const exponent = match[2] ? Number(match[2]) : 0;\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.max(0, decimals - exponent));\n}\nexport function resolveValuePrecision(step, valuePrecision) {\n if (typeof valuePrecision === \"number\" && Number.isFinite(valuePrecision) && valuePrecision >= 0) {\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.round(valuePrecision));\n }\n return fractionDigitsFromStep(step);\n}\nexport function formatNumericValue(value, valuePrecision) {\n return Number.isFinite(value) ? value.toFixed(valuePrecision) : \"\";\n}\nexport function valuesAlignOnStep(left, right, step) {\n if (Object.is(left, right)) {\n return true;\n }\n if (!Number.isFinite(left) || !Number.isFinite(right)) {\n return false;\n }\n return left.toFixed(fractionDigitsFromStep(step)) === right.toFixed(fractionDigitsFromStep(step));\n}\nexport function createNumericRange(min, max, step) {\n const resolvedMin = Number.isFinite(min) ? min : 0;\n const resolvedMax = Number.isFinite(max) ? max : 100;\n const lowerBound = Math.min(resolvedMin, resolvedMax);\n const upperBound = Math.max(resolvedMin, resolvedMax);\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const span = upperBound - lowerBound;\n const clamp = value => {\n const candidate = Number.isFinite(value) ? value : lowerBound;\n const stepped = lowerBound + Math.round((candidate - lowerBound) / resolvedStep) * resolvedStep;\n return Math.min(upperBound, Math.max(lowerBound, stepped));\n };\n return {\n lowerBound,\n upperBound,\n step: resolvedStep,\n clamp,\n ratioFor: value => span === 0 ? 0 : (clamp(value) - lowerBound) / span,\n valueFromRatio: ratio => {\n const unit = Math.min(1, Math.max(0, Number.isFinite(ratio) ? ratio : 0));\n return clamp(lowerBound + unit * span);\n }\n };\n}\nexport function valueFromSliderKey(range, current, key) {\n switch (key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n return range.clamp(current + range.step);\n case \"ArrowLeft\":\n case \"ArrowDown\":\n return range.clamp(current - range.step);\n case \"Home\":\n return range.lowerBound;\n case \"End\":\n return range.upperBound;\n case \"PageUp\":\n return range.clamp(current + range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n case \"PageDown\":\n return range.clamp(current - range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n default:\n return void 0;\n }\n}", "import { createNumericRange, formatNumericValue, resolveValuePrecision } from \"../shared/numeric-range\";\nexport const KNOB_START_ANGLE = 120;\nexport const KNOB_ARC_ANGLE = 300;\nexport const KNOB_DEFAULT_STROKE_WIDTH = 14;\nconst KNOB_GAP_MIDPOINT = KNOB_ARC_ANGLE + (360 - KNOB_ARC_ANGLE) / 2;\nexport function resolveKnobStrokeWidth(strokeWidth) {\n return Math.min(100, Math.max(0, Number.isFinite(strokeWidth) ? Number(strokeWidth) : KNOB_DEFAULT_STROKE_WIDTH));\n}\nexport function formatKnobValue(value, valuePrecision, template) {\n return template.replace(\"{value}\", formatNumericValue(value, valuePrecision));\n}\nexport function createKnobRing(value, min, max, step, strokeWidth, valueTemplate, valuePrecision) {\n const range = createNumericRange(min, max, step);\n const resolvedStrokeWidth = resolveKnobStrokeWidth(strokeWidth);\n const radius = 50 - resolvedStrokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const arcLength = KNOB_ARC_ANGLE / 360 * circumference;\n const clamped = range.clamp(value);\n const precision = resolveValuePrecision(step, valuePrecision);\n return {\n startAngle: KNOB_START_ANGLE,\n strokeWidth: resolvedStrokeWidth,\n radius,\n circumference,\n arcLength,\n progressLength: range.ratioFor(clamped) * arcLength,\n valueText: formatKnobValue(clamped, precision, valueTemplate)\n };\n}\nexport function knobValueFromPointer(clientX, clientY, rect, range) {\n if (rect.width === 0 || rect.height === 0) {\n return null;\n }\n const pointerAngle = Math.atan2(clientY - (rect.top + rect.height / 2), clientX - (rect.left + rect.width / 2)) * 180 / Math.PI;\n const alongArc = (pointerAngle - KNOB_START_ANGLE + 360) % 360;\n const clampedAlong = alongArc <= KNOB_ARC_ANGLE ? alongArc : alongArc <= KNOB_GAP_MIDPOINT ? KNOB_ARC_ANGLE : 0;\n return range.valueFromRatio(clampedAlong / KNOB_ARC_ANGLE);\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { createNumericRange } from \"../shared/numeric-range\";\nimport { createKnobRing } from \"./knob-geometry\";\nimport { KNOB_DEFAULT_VALUE } from \"./knob.script\";\nimport \"./knob.script\";\nexport function RuiKnob({\n value = KNOB_DEFAULT_VALUE,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n readOnly = false,\n label,\n name,\n size,\n strokeWidth = 14,\n showValue = true,\n valuePosition = \"center\",\n valueTemplate = \"{value}\",\n valuePrecision,\n ...props\n}) {\n const range = createNumericRange(min, max, step);\n const resolvedValue = range.clamp(value);\n const ring = createKnobRing(resolvedValue, min, max, step, strokeWidth, valueTemplate, valuePrecision);\n return /* @__PURE__ */jsx(KnobSurface, {\n props,\n value: resolvedValue,\n min,\n max,\n step,\n disabled,\n readOnly,\n label,\n name,\n size,\n strokeWidth,\n showValue,\n valuePosition,\n valueTemplate,\n valuePrecision,\n ring,\n range\n });\n}\nfunction KnobSurface({\n props,\n ring,\n range,\n ...knob\n}) {\n return /* @__PURE__ */jsx(\"rui-knob\", {\n ...props,\n value: knob.value,\n min: knob.min,\n max: knob.max,\n step: knob.step,\n disabled: knob.disabled,\n \"prop:readOnly\": knob.readOnly,\n label: knob.label,\n name: knob.name,\n size: knob.size,\n strokeWidth: knob.strokeWidth,\n showValue: knob.showValue,\n valuePosition: knob.valuePosition,\n valueTemplate: knob.valueTemplate,\n valuePrecision: knob.valuePrecision,\n style: knob.size ? {\n \"--rui-knob-size\": `${knob.size}px`\n } : void 0,\n children: /* @__PURE__ */jsx(KnobBody, {\n knob,\n ring,\n range\n })\n });\n}\nfunction KnobBody({\n knob,\n ring,\n range\n}) {\n const valueBelow = knob.valuePosition === \"below\";\n return /* @__PURE__ */jsxs(\"div\", {\n class: valueBelow ? \"rui-knob rui-knob--value-below\" : \"rui-knob\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__label\",\n \"data-ref\": \"label\",\n hidden: !knob.label,\n children: knob.label\n }), /* @__PURE__ */jsx(KnobControl, {\n knob,\n ring,\n range,\n valueBelow\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value rui-knob__value--below\",\n \"data-ref\": \"belowValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || !valueBelow,\n children: ring.valueText\n }), /* @__PURE__ */jsx(\"input\", {\n \"data-ref\": \"input\",\n type: \"hidden\",\n name: knob.name || void 0,\n value: knob.value\n })]\n });\n}\nfunction KnobControl({\n knob,\n ring,\n range,\n valueBelow\n}) {\n return /* @__PURE__ */jsxs(\"button\", {\n type: \"button\",\n class: \"rui-knob__control\",\n \"data-ref\": \"control\",\n \"data-knob-control\": true,\n role: \"slider\",\n \"aria-label\": knob.label || void 0,\n \"aria-valuemin\": range.lowerBound,\n \"aria-valuemax\": range.upperBound,\n \"aria-valuenow\": knob.value,\n \"aria-valuetext\": ring.valueText,\n \"aria-readonly\": knob.readOnly,\n disabled: knob.disabled,\n children: [/* @__PURE__ */jsxs(\"svg\", {\n class: \"rui-knob__svg\",\n viewBox: \"0 0 100 100\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__track\",\n \"data-ref\": \"track\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.arcLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n }), /* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__progress\",\n \"data-ref\": \"progress\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.progressLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n })]\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value\",\n \"data-ref\": \"centerValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || valueBelow,\n children: ring.valueText\n })]\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "fractionDigitsFromStep", "step", "match", "decimals", "exponent", "resolveValuePrecision", "valuePrecision", "formatNumericValue", "value", "valuesAlignOnStep", "left", "right", "createNumericRange", "min", "max", "resolvedMin", "resolvedMax", "lowerBound", "upperBound", "resolvedStep", "span", "clamp", "candidate", "stepped", "ratio", "unit", "valueFromSliderKey", "range", "current", "key", "KNOB_START_ANGLE", "KNOB_ARC_ANGLE", "KNOB_DEFAULT_STROKE_WIDTH", "KNOB_GAP_MIDPOINT", "resolveKnobStrokeWidth", "strokeWidth", "formatKnobValue", "value", "valuePrecision", "template", "formatNumericValue", "createKnobRing", "min", "max", "step", "valueTemplate", "range", "createNumericRange", "resolvedStrokeWidth", "radius", "circumference", "arcLength", "clamped", "precision", "resolveValuePrecision", "knobValueFromPointer", "clientX", "clientY", "rect", "alongArc", "clampedAlong", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_step", "_init_extra_step", "_init_valuePrecision", "_init_extra_valuePrecision", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_name", "_init_extra_name", "_init_size", "_init_extra_size", "_init_strokeWidth", "_init_extra_strokeWidth", "_init_showValue", "_init_extra_showValue", "_init_valuePosition", "_init_extra_valuePosition", "_init_valueTemplate", "_init_extra_valueTemplate", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_init_labelTarget", "_init_extra_labelTarget", "_init_controlTarget", "_init_extra_controlTarget", "_init_trackTarget", "_init_extra_trackTarget", "_init_progressTarget", "_init_extra_progressTarget", "_init_centerValueTarget", "_init_extra_centerValueTarget", "_init_belowValueTarget", "_init_extra_belowValueTarget", "_init_inputTarget", "_init_extra_inputTarget", "_applyDecs", "e", "t", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "KNOB_DEFAULT_VALUE", "_RuiKnob", "RuiKnob", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "createNumericRange", "value", "ring", "createKnobRing", "valuePosition", "valueText", "control", "circle", "target", "visible", "input", "valuesAlignOnStep", "next", "event2", "rect", "knobValueFromPointer", "valueFromSliderKey", "jsx", "jsxs", "RuiKnob", "value", "KNOB_DEFAULT_VALUE", "min", "max", "step", "disabled", "readOnly", "label", "name", "size", "strokeWidth", "showValue", "valuePosition", "valueTemplate", "valuePrecision", "props", "range", "createNumericRange", "resolvedValue", "ring", "createKnobRing", "jsx", "KnobSurface", "knob", "KnobBody", "valueBelow", "jsxs", "KnobControl"]
7
7
  }
@@ -3,6 +3,7 @@
3
3
  rui-knob {
4
4
  display: inline-block;
5
5
  --rui-knob-size: 3rem;
6
+ --rui-knob-track-color: var(--rui-track-color, var(--rui-track-fill));
6
7
  }
7
8
  @layer components {
8
9
  .rui-knob {
@@ -55,7 +56,7 @@ rui-knob {
55
56
  block-size: var(--rui-knob-size);
56
57
  }
57
58
  .rui-knob__track {
58
- stroke: var(--rui-knob-track-color, var(--surface));
59
+ stroke: var(--rui-knob-track-color, var(--rui-track-fill));
59
60
  }
60
61
  .rui-knob__progress {
61
62
  stroke: var(--rui-knob-value-color, var(--primary));
@@ -1,5 +1,5 @@
1
1
  import type { JsxCustomElementAttributes } from '@ecopages/jsx';
2
- import type { RuiKnob as RuiKnobElement, RuiKnobProps } from './knob.script';
2
+ import { type RuiKnob as RuiKnobElement, type RuiKnobProps } from './knob.script';
3
3
  import './knob.script';
4
4
  /**
5
5
  * Rotary numeric control. Stamps the full `[data-ref]` tree under `[data-ref="root"]`.
@@ -24,6 +24,13 @@ export type RuiKnobProps = {
24
24
  export type RuiKnobChangeDetail = {
25
25
  value: number;
26
26
  };
27
+ /**
28
+ * Default selected value.
29
+ *
30
+ * @remarks Must match the host `@prop` default so the view can seed SSR readout
31
+ * and ring geometry before hydration.
32
+ */
33
+ export declare const KNOB_DEFAULT_VALUE = 50;
27
34
  /**
28
35
  * `<rui-knob>` — select a numeric value with a rotary control.
29
36
  *
@@ -79,7 +86,10 @@ export type RuiKnobChangeDetail = {
79
86
  *
80
87
  * @fires rui-change - Emitted as the pointer or keyboard changes the value; `detail.value` holds the new number.
81
88
  *
82
- * @cssprop --rui-knob-track-color - Ring color behind the selected value. Defaults to `--surface`.
89
+ * @cssprop --rui-track-mix - Unfilled ring mix against `--on-background`. Inherited. Default: `22%`.
90
+ * @cssprop --rui-track-fill - Unfilled ring color from that mix. Inherited.
91
+ * @cssprop --rui-track-color - Unfilled ring color for slider and knob. Inherited; unset uses `--rui-track-fill`.
92
+ * @cssprop --rui-knob-track-color - Ring color behind the selected value. Default: `--rui-track-color` or `--rui-track-fill`.
83
93
  * @cssprop --rui-knob-value-color - Selected ring color. Defaults to `--primary`.
84
94
  * @cssprop --rui-knob-text-color - Value readout color. Defaults to `--on-surface`.
85
95
  * @cssprop --rui-knob-size - Visible SVG diameter. Defaults to `3rem`.
@@ -1,2 +1,2 @@
1
- import{RadiantElement as ne,customElement as Be,event as je,onEvent as x,onUpdated as Ge,prop as k,query as Ke}from"@ecopages/radiant";function st(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label]")??null}function Oe(e,t,i){e.id||(e.id=i.labelId),e.htmlFor||(e.htmlFor=i.controlId),t.setAttribute("aria-labelledby",e.id),t.removeAttribute("aria-label")}function Vt(e,t,i){if(!t||t.hasAttribute("data-rui-field-managed"))return;let r=st(e);if(r){Oe(r,t,i);return}if(i.label){t.setAttribute("aria-label",i.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Ae="data-listbox-option-indicator";function X(e){let t=e.getAttribute("data-label");return t||_t(e).trim()}function P(e){return e.getAttribute("data-value")||X(e)}function _t(e){if(Ce(e))return"";if(e.nodeType===Node.TEXT_NODE)return e.textContent??"";let t="";for(let i of e.childNodes)t+=_t(i);return t}function Ce(e){return e instanceof HTMLElement&&e.hasAttribute(Ae)}function lt(e){return e?ct(e.split(",")):[]}function at(e){return e.join(",")}function N(e){if(e!=null)return typeof e!="string"?at(ct(e)):e}function B(e){return e==null?[]:typeof e!="string"?ct(e):lt(e)}function ct(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var z=class{config;constructor(t){this.config=t}getListboxHost(){return this.config.getRoot()?.querySelector("rui-listbox")??null}getListbox(){let t=this.getListboxHost();return t?t.querySelector('[role="listbox"]')??t:this.config.getPopup?.()??null}getOptions(){let t=this.getListbox();return t?Array.from(t.querySelectorAll('[role="option"]')):[]}getSelectedValues(){return lt(this.config.getValue())}setSelectedValues(t){this.config.setValue(at(t))}toggleValue(t){if(this.config.getSelectionMode()==="multiple"){let i=new Set(this.getSelectedValues());i.has(t)?i.delete(t):i.add(t),this.setSelectedValues([...i]);return}this.setSelectedValues([t])}removeValue(t){let i=new Set(this.getSelectedValues());return i.delete(t)?(this.setSelectedValues([...i]),!0):!1}clearValues(){return this.config.getValue()?(this.setSelectedValues([]),!0):!1}findOption(t){return t instanceof Element?t.closest('[role="option"]')??null:null}isSelectableOption(t){return t!=null&&t.getAttribute("aria-disabled")!=="true"&&!t.hidden}syncListboxHost(){let t=this.getListboxHost();t&&(t.embedded=!0,t.selectionMode=this.config.getSelectionMode(),t.value=this.config.getValue())}syncOptionSelection(){let t=new Set(this.getSelectedValues());for(let i of this.getOptions())i.setAttribute("aria-selected",String(t.has(P(i))))}syncMultiselectable(t){if(t){if(this.config.getSelectionMode()==="multiple"){t.setAttribute("aria-multiselectable","true");return}t.removeAttribute("aria-multiselectable")}}getTagGroup(){let t=this.config.tagGroupSelector;if(!t)return null;let i=this.config.getRoot()?.querySelector(t)??null;return!i||typeof i.setItems!="function"?null:i}syncTagGroup(){let t=this.getTagGroup();if(!t)return;let i=this.getSelectedValues().flatMap(r=>{let o=this.getOptions().find(n=>P(n)===r);return o?[{value:r,label:X(o)}]:[]});t.embedded=!0,t.setItems(i),t.value=this.config.getValue()}labelForValue(t){let i=this.getOptions().find(r=>P(r)===t);return i?X(i):t}};var Te={top:"bottom",bottom:"top",left:"right",right:"left"},Ie=8;function Ve(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let i=e.slice(0,t),r=e.slice(t+1);return{side:i,align:r==="start"||r==="end"?r:"center"}}function Et(e){return e==="top"||e==="bottom"?"y":"x"}function Rt(e,t,i,r,o){let{width:n,height:s}=t,l=0,h=0;switch(i){case"top":h=e.top-s-o;break;case"bottom":h=e.bottom+o;break;case"left":l=e.left-n-o;break;case"right":l=e.right+o;break}return Et(i)==="y"?r==="start"?l=e.left:r==="end"?l=e.right-n:l=e.left+(e.width-n)/2:r==="start"?h=e.top:r==="end"?h=e.bottom-s:h=e.top+(e.height-s)/2,{x:l,y:h}}function _e(e,t,i,r){let{padding:o,width:n,height:s}=r;return i==="top"?Math.max(0,o-e.y):i==="bottom"?Math.max(0,e.y+t.height-(s-o)):i==="left"?Math.max(0,o-e.x):Math.max(0,e.x+t.width-(n-o))}function Lt(e,t,i,r){let{padding:o,width:n,height:s}=r;return i==="top"?e.top-o-t.height:i==="bottom"?s-o-t.height-e.bottom:i==="left"?e.left-o-t.width:n-o-t.width-e.right}function Re(e,t){return t==="center"?e:`${e}-${t}`}function Le(e,t,i,r){let{padding:o,width:n,height:s}=r;if(Et(i)==="y"){let h=Math.max(o,n-o-t.width);return{x:Math.min(Math.max(e.x,o),h),y:e.y}}let l=Math.max(o,s-o-t.height);return{x:e.x,y:Math.min(Math.max(e.y,o),l)}}function Ee(e,t,i,r,o={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Ie}){let{side:n,align:s}=Ve(i),l=Rt(e,t,n,s,r),h=_e(l,t,n,o),b=n,C=l;if(h>0){let T=Te[n],m=Rt(e,t,T,s,r),K=Lt(e,t,n,o);Lt(e,t,T,o)>K&&(b=T,C=m)}return{coords:Le(C,t,b,o),placement:Re(b,s)}}function De(e,t,i,r,o={}){let{coords:n,placement:s}=Ee(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},i,r);return Object.assign(t.style,{position:"fixed",left:`${n.x}px`,top:`${n.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),o.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Dt({anchor:e,floating:t,getPlacement:i,gap:r,matchAnchorWidth:o}){let n=()=>{t.hidden||De(e,t,i(),r,{matchAnchorWidth:o})};n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0);let s=new ResizeObserver(n);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0),s.disconnect()}}function Pt(e,t=document.body){let i=e.parentNode;if(!i)return{unmount:()=>{}};let r=document.createComment("rui-portal");return i.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let o=r.parentNode;o&&(o.insertBefore(e,r),r.remove())}}}function ut(e,t,i){return i?!!(e?.contains(i)||t?.contains(i)):!1}function kt(e,t,i){return i instanceof Node?!ut(e,t,i):!0}function Ft(e,t,i){return!ut(e,t,i)}var Y=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.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Pt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Dt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return ut(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 Mt(e){return e.filter(t=>!t.hidden&&t.getAttribute("aria-disabled")!=="true")}function Bt(e,t,i){return i===0?-1:t===1?e>=i-1?0:e+1:e<=0?i-1:e-1}function ht(e,t){t?.removeAttribute("aria-activedescendant");for(let i of e)i.removeAttribute("data-active")}function jt(e,t,i,r,o){ht(e,r);let n=t[i];return!n||!r?null:(n.id||(n.id=`${o}-${i}`),n.setAttribute("data-active","true"),r.setAttribute("aria-activedescendant",n.id),n.scrollIntoView({block:"nearest"}),n)}var J=class{config;popoverController;activeIndex=-1;visualFocus=!1;constructor(t){this.config=t,this.popoverController=new Y({getAnchor:t.getAnchor,getFloating:t.getFloating,getOpen:t.getOpen,getPlacement:()=>"bottom-start",gap:4,portal:!1,matchAnchorWidth:!0})}get activeOptionIndex(){return this.activeIndex}get hasVisualFocus(){return this.visualFocus}ensureOptionIds(){this.config.getOptions().forEach((t,i)=>{t.id||(t.id=`${this.config.getOptionIdPrefix()}-${i}`)})}getVisibleOptions(){return Mt(this.config.getOptions())}clearActiveOption(){this.activeIndex=-1,this.visualFocus=!1,ht(this.config.getOptions(),this.config.getActiveDescendantHost())}setActiveOption(t){let i=this.getVisibleOptions();if(t<0||t>=i.length){this.clearActiveOption();return}this.activeIndex=t,this.visualFocus=!0,jt(this.config.getOptions(),i,t,this.config.getActiveDescendantHost(),this.config.getOptionIdPrefix())}moveActive(t,i){let r=this.getVisibleOptions();if(r.length){if(!this.config.getOpen()){i(t===1?"first":"last");return}if(this.visualFocus){this.setActiveOption(Bt(this.activeIndex,t,r.length));return}this.setActiveOption(t===1?0:r.length-1)}}handleKeydown(t,i){if(t.ctrlKey||t.shiftKey||t.metaKey)return;this.keydownHandlers[t.key]?.call(this,t,i)}keydownHandlers={ArrowDown:this.handleArrowKey,ArrowUp:this.handleArrowKey,Escape:this.handleEscapeKey,Enter:this.handleActivationKey," ":this.handleActivationKey,Tab:this.handleTabKey};handleArrowKey(t,i){t.preventDefault(),t.stopPropagation();let r=t.key==="ArrowDown"?1:-1;if(t.altKey){this.handleModifiedArrow(r,i);return}this.moveActive(r,o=>i.onOpen(o))}handleModifiedArrow(t,i){t===1&&!i.isOpen&&i.onOpen(),t===-1&&i.isOpen&&i.onClose("arrow")}handleEscapeKey(t,i){t.preventDefault(),i.isOpen?i.onClose("escape"):i.onEscapeWhenClosed?.()}handleActivationKey(t,i){if(!(t.key===" "&&!i.canUseSpace)){if(!i.isOpen&&i.enterWhenClosed==="open"){t.preventDefault(),i.onOpen();return}if(i.isOpen){if(this.hasActiveOption()){t.preventDefault(),i.onSelectActive();return}t.key==="Enter"&&i.enterWithoutActive==="close"&&(t.preventDefault(),i.onClose("enter"))}}}handleTabKey(t,i){i.isOpen&&(this.hasActiveOption()&&i.closesOnTab?i.onSelectActive():i.onClose("tab"))}hasActiveOption(){return this.visualFocus&&!!this.getVisibleOptions()[this.activeIndex]}syncPopoverPosition(){this.popoverController.sync()}shouldDismissFocus(t){return kt(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}shouldDismissPointer(t){return Ft(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}destroy(){this.popoverController.destroy()}};var Gt,Kt,Ht,qt,Wt,$t,Ut,Xt,Nt,zt,Yt,Jt,Qt,Zt,te,ee,ie,re;function Pe(e,t,i,r,o,n){var s,l,h,b,C,T,m,K=Symbol.metadata||Symbol.for("Symbol.metadata"),Z=Object.defineProperty,tt=Object.create,bt=[tt(null),tt(null)],mt=t.length;function H(a,O,y){return function(c,d){O&&(d=c,c=e);for(var A=0;A<a.length;A++)d=a[A].apply(c,y?[d]:[]);return y?d:c}}function _(a,O,y,c){if(typeof a!="function"&&(c||a!==void 0))throw new TypeError(O+" must "+(y||"be")+" a function"+(c?"":" or undefined"));return a}function vt(a,O,y,c,d,A,L,S,I,V,yt){function et(g){if(!yt(g))throw new TypeError("Attempted to access private element on non-instance")}var it=[].concat(O[0]),St=O[3],rt=!L,F=d===1,wt=d===3,Ot=d===4,q=d===2;function W(g,D,Tt){return function(U,It){return D&&(It=U,U=a),Tt&&Tt(U),f[g].call(U,It)}}if(!rt){var f={},ot=[],R=wt?"get":Ot||F?"set":"value";if(I?(V||F?f={get:oe(function(){return St(this)},c,"get"),set:function(g){O[4](this,g)}}:f[R]=St,V||oe(f[R],c,q?"":R)):V||(f=Object.getOwnPropertyDescriptor(a,c)),!V&&!I){if((l=bt[+S][c])&&(l^d)!==7)throw Error("Decorating two elements with the same name ("+f[R].name+") is not supported yet");bt[+S][c]=d<3?1:d}}for(var v=a,$=it.length-1;$>=0;$-=y?2:1){var At=_(it[$],"A decorator","be",!0),Ct=y?it[$-1]:void 0,nt={},M={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(g,D){if(g.v)throw new TypeError("attempted to call addInitializer after decoration was finished");_(D,"An initializer","be",!0),A.push(D)}.bind(null,nt)};if(rt)l=At.call(Ct,v,M),nt.v=1,_(l,"class decorators","return")&&(v=l);else if(M.static=S,M.private=I,l=M.access={has:I?yt.bind():function(g){return c in g}},Ot||(l.get=I?q?function(g){return et(g),f.value}:W("get",0,et):function(g){return g[c]}),q||wt||(l.set=I?W("set",0,et):function(g,D){g[c]=D}),v=At.call(Ct,F?{get:f.get,set:f.set}:f[R],M),nt.v=1,F){if(typeof v=="object"&&v)(l=_(v.get,"accessor.get"))&&(f.get=l),(l=_(v.set,"accessor.set"))&&(f.set=l),(l=_(v.init,"accessor.init"))&&ot.unshift(l);else if(v!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else _(v,(V?"field":"method")+" decorators","return")&&(V?ot.unshift(v):f[R]=v)}return d<2&&L.push(H(ot,S,1),H(A,S,0)),V||rt||(I?F?L.splice(-1,0,W("get",S),W("set",S)):L.push(q?f[R]:_.call.bind(f[R])):Z(a,c,f)),v}function xt(a){return Z(a,K,{configurable:!0,enumerable:!0,value:s})}return n!==void 0&&(s=n[K]),s=tt(s??null),C=[],T=function(a){a&&C.push(H(a))},m=function(a,O){for(var y=0;y<i.length;y++){var c=i[y],d=c[1],A=7&d;if((8&d)==a&&!A==O){var L=c[2],S=!!c[3],I=16&d;vt(a?e:e.prototype,c,I,S?"#"+L:ke(L),A,A<2?[]:a?b=b||[]:h=h||[],C,!!a,S,O,a&&S?function(V){return Me(V)===e}:o)}}},m(8,0),m(0,0),m(8,1),m(0,1),T(h),T(b),l=C,mt||xt(e),{e:l,get c(){var a=[];return mt&&[xt(e=vt(e,[t],r,e.name,5,a)),H(a,1)]}}}function ke(e){var t=Fe(e,"string");return typeof t=="symbol"?t:t+""}function Fe(e,t){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var r=i.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function oe(e,t,i){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch{}return e}function Me(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 le,se=class extends ne{static{({e:[Ht,qt,Wt,$t,Ut,Xt,Nt,zt,Yt,Jt,Qt,Zt,te,ee,ie,re,Gt],c:[le,Kt]}=Pe(this,[Be("rui-select")],[[k({type:String,reflect:!0,defaultValue:""}),0,"value"],[k({type:String,defaultValue:""}),0,"label"],[k({type:String,defaultValue:""}),0,"placeholder"],[k({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[k({type:String,attribute:"selection-mode",defaultValue:"single"}),0,"selectionMode"],[k({type:Boolean,attribute:"should-close-on-select"}),0,"shouldCloseOnSelect"],[je({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[Ke({ref:"root"}),0,"rootTarget"],[Ge(["value","label","placeholder","disabled","selectionMode","shouldCloseOnSelect"]),2,"onPropsUpdated"],[x({selector:"[data-select-trigger], [data-select-toggle]",type:"click"}),2,"onTriggerClick"],[x({selector:"[data-select-trigger]",type:"keydown",options:{capture:!0}}),2,"onTriggerKeydown"],[x({selector:"[data-select-listbox] [data-autocomplete-input]",type:"keydown",options:{capture:!0}}),2,"onSearchKeydown"],[x({selector:"[data-select-listbox] [data-autocomplete-input]",type:"input"}),2,"onSearchInput"],[x({selector:"[data-select-value] rui-tag-group",type:"rui-remove"}),2,"onTagRemove"],[x({selector:"[data-select-clear]",type:"click"}),2,"onClearClick"],[x({selector:"[data-select-value] [data-tag]",type:"click"}),2,"onTagClick"],[x({selector:'[data-select-listbox] [role="option"]',type:"pointerover"}),2,"onOptionPointerOver"],[x({selector:'[data-select-listbox] [role="option"]',type:"mousedown"}),2,"onOptionMouseDown"],[x({selector:'[data-select-listbox] [role="option"]',type:"click"}),2,"onOptionClick"],[x({ref:"root",type:"focusout"}),2,"onFocusOut"],[x({document:!0,type:"pointerdown"}),2,"onDocumentPointerDown"]],0,void 0,ne))}constructor(...t){super(...t),re(this)}value=(Gt(this),Ht(this));label=(qt(this),Wt(this));placeholder=($t(this),Ut(this));disabled=(Xt(this),Nt(this));selectionMode=(zt(this),Yt(this));shouldCloseOnSelect=(Jt(this),Qt(this));changeEvent=(Zt(this),te(this));open=(ee(this),!1);uid=Math.random().toString(36).slice(2,9);collection=new z({getRoot:()=>this,getSelectionMode:()=>this.selectionMode,getValue:()=>this.value,setValue:t=>{this.value=t},getPopup:()=>this.getListboxPopup(),tagGroupSelector:"[data-select-value] rui-tag-group"});listboxBehavior=new J({getAnchor:()=>this.rootTarget,getFloating:()=>this.getListboxPopup(),getOpen:()=>this.open,getOptions:()=>this.collection.getOptions(),getActiveDescendantHost:()=>this.getActiveDescendantHost(),getOptionIdPrefix:()=>`rui-select-option-${this.uid}`});rootTarget=ie(this);get listboxId(){return`rui-select-list-${this.uid}`}get triggerId(){return`rui-select-trigger-${this.uid}`}isMultiple(){return this.selectionMode==="multiple"}closesOnSelect(){return this.shouldCloseOnSelect!=null?this.shouldCloseOnSelect:!this.isMultiple()}getSearchInput(){return this.querySelector("[data-select-listbox] [data-autocomplete-input]")}hasSearchInput(){return this.getSearchInput()!=null}getActiveDescendantHost(){return this.open&&this.hasSearchInput()?this.getSearchInput():this.getTrigger()}resetSearchFilter(){let t=this.getSearchInput();!t||t.value===""||(t.value="",t.dispatchEvent(new Event("input",{bubbles:!0})))}syncSearchInput(){let t=this.getSearchInput(),i=this.getTrigger(),r=this.collection.getListbox();if(!(!t||!r||!i)){if(this.open){t.setAttribute("role","combobox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-expanded","true"),t.setAttribute("aria-controls",this.listboxId),i.removeAttribute("aria-activedescendant");return}t.removeAttribute("role"),t.removeAttribute("aria-autocomplete"),t.removeAttribute("aria-expanded"),t.removeAttribute("aria-controls"),t.removeAttribute("aria-activedescendant")}}focusPopupInput(){queueMicrotask(()=>{this.getSearchInput()?.focus()})}hasTagGroup(){return this.collection.getTagGroup()!=null}syncTagGroup(){let t=this.getValueElement();this.collection.syncTagGroup(),!(!t||!this.hasTagGroup())&&this.syncTagGroupPlaceholder(t,this.collection.getSelectedValues().length)}syncTagGroupPlaceholder(t,i){let r=t.querySelector("[data-select-placeholder]");if(!this.placeholder){r?.remove();return}r||(r=document.createElement("span"),r.setAttribute("data-select-placeholder","true"),t.insertBefore(r,t.firstChild)),r.textContent=this.placeholder,r.hidden=i>0,t.toggleAttribute("data-placeholder",i===0)}removeSelectedValue(t){this.collection.removeValue(t)&&(this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncTagGroup(),this.syncClear(),this.changeEvent.emit({value:this.value}))}clearSelection(){this.collection.clearValues()&&(this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncTagGroup(),this.syncClear(),this.changeEvent.emit({value:""}),this.getTrigger()?.focus())}getTrigger(){return this.querySelector("[data-select-trigger]")}getToggle(){return this.querySelector("[data-select-toggle]")}getClear(){return this.querySelector("[data-select-clear]")}getValueElement(){return this.querySelector("[data-select-value]")}getListboxPopup(){return this.querySelector("[data-select-listbox]")}ensureOptionIds(){this.listboxBehavior.ensureOptionIds()}getAccessibleName(){return st(this)?.textContent?.trim()||this.label||"Options"}syncLabel(){let t=this.getTrigger();Vt(this,t,{controlId:this.triggerId,label:this.label,labelId:`rui-select-label-${this.uid}`})}syncTrigger(){let t=this.getTrigger(),i=this.collection.getListbox(),r=this.getListboxPopup();!t||!i||(t.id||(t.id=this.triggerId),i.id||(i.id=this.listboxId),t.setAttribute("role","combobox"),t.setAttribute("aria-haspopup","listbox"),t.setAttribute("aria-autocomplete","none"),t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",this.listboxId),i.setAttribute("aria-label",this.getAccessibleName()),this.collection.syncMultiselectable(i),r&&(r.removeAttribute("role"),r.removeAttribute("aria-label"),r.removeAttribute("aria-multiselectable")),this.disabled&&(t.disabled=!0),this.syncToggle(),this.syncClear(),this.syncSearchInput())}syncClear(){let t=this.getClear();t&&(t.hidden=this.collection.getSelectedValues().length===0,t.disabled=this.disabled)}syncToggle(){let t=this.getToggle();t&&(t.setAttribute("aria-expanded",String(this.open)),t.disabled=this.disabled)}syncValueDisplay(){if(this.hasTagGroup()){this.syncTagGroup();return}let t=this.getValueElement();if(!t||t.childElementCount>0)return;let i=this.collection.getSelectedValues();if(i.length===0){t.textContent="",t.toggleAttribute("data-placeholder",!0),this.placeholder&&(t.textContent=this.placeholder);return}if(t.toggleAttribute("data-placeholder",!1),this.isMultiple()){t.textContent=i.map(r=>this.collection.labelForValue(r)).join(", ");return}t.textContent=this.collection.labelForValue(i[0])}setOpen(t,i={}){let r=i.activate??"none";this.open=t;let o=this.getTrigger(),n=this.getListboxPopup();if(!(!o||!n)){if(o.setAttribute("aria-expanded",String(t)),n.toggleAttribute("hidden",!t),!t){this.listboxBehavior.clearActiveOption(),this.resetSearchFilter(),this.syncSearchInput(),this.listboxBehavior.syncPopoverPosition();return}if(this.ensureOptionIds(),this.syncSearchInput(),this.listboxBehavior.syncPopoverPosition(),this.hasSearchInput()&&this.focusPopupInput(),r==="first"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?0:-1);return}if(r==="last"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?s.length-1:-1);return}this.listboxBehavior.clearActiveOption()}}selectOption(t){this.collection.isSelectableOption(t)&&(this.collection.toggleValue(P(t)),this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncClear(),this.changeEvent.emit({value:this.value}),this.closesOnSelect()&&(this.resetSearchFilter(),this.setOpen(!1),this.getTrigger()?.focus()))}handleListboxKeydown(t){this.listboxBehavior.handleKeydown(t,{isOpen:this.open,canUseSpace:!this.hasSearchInput(),closesOnTab:this.closesOnSelect(),enterWhenClosed:"open",enterWithoutActive:"ignore",onOpen:(i="none")=>this.setOpen(!0,{activate:i}),onClose:i=>{this.setOpen(!1),(i==="arrow"||i==="escape")&&this.getTrigger()?.focus()},onSelectActive:()=>{let i=this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];i&&this.selectOption(i)}})}handleTriggerKeydown(t){this.handleListboxKeydown(t)}initialize(){this.ensureOptionIds(),this.syncLabel(),this.syncTrigger(),this.collection.syncListboxHost(),this.syncValueDisplay(),this.collection.syncOptionSelection(),this.setOpen(!1)}onConnected(){this.initialize()}disconnectedCallback(){this.listboxBehavior.destroy(),super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncTrigger(),this.collection.syncListboxHost(),this.syncValueDisplay(),this.collection.syncOptionSelection()}onTriggerClick(t){t.preventDefault();let i=this.getTrigger();if(!(!i||i.disabled)){if(this.open?this.setOpen(!1):this.setOpen(!0),this.open&&this.hasSearchInput()){this.focusPopupInput();return}i.focus()}}onTriggerKeydown(t){this.handleTriggerKeydown(t)}onSearchKeydown(t){this.handleListboxKeydown(t)}onSearchInput(){this.open&&this.listboxBehavior.clearActiveOption()}onTagRemove(t){let i=t.detail;i?.value&&this.removeSelectedValue(i.value)}onClearClick(t){t.preventDefault(),t.stopPropagation(),this.clearSelection()}onTagClick(t){t.target.closest("[data-tag-remove]")||t.stopPropagation()}onOptionPointerOver(t){if(!this.open)return;let i=this.collection.findOption(t.target);if(!this.collection.isSelectableOption(i))return;let o=this.listboxBehavior.getVisibleOptions().indexOf(i);o>=0&&this.listboxBehavior.setActiveOption(o)}onOptionMouseDown(t){t.preventDefault()}onOptionClick(t){let i=this.collection.findOption(t.target);i&&this.selectOption(i)}onFocusOut(t){this.listboxBehavior.shouldDismissFocus(t.relatedTarget)&&this.setOpen(!1)}onDocumentPointerDown(t){this.open&&this.listboxBehavior.shouldDismissPointer(t.target)&&this.setOpen(!1)}static{Kt()}};import{Fragment as Xe,jsx as p,jsxs as me}from"@ecopages/jsx/jsx-runtime";function j(e,t){return t===void 0||e?.label!==void 0?e:{...e,label:t}}function u(...e){return e.filter(Boolean).join(" ")}function ae(e,...t){let i={...e};for(let r of t)delete i[r];return i}import{jsx as ce}from"@ecopages/jsx/jsx-runtime";function dt({class:e,size:t="sm",...i}){return ce("svg",{...i,class:u("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:ce("path",{d:"m5 12 4 4L19 6"})})}import{jsx as ue}from"@ecopages/jsx/jsx-runtime";function pt({class:e,size:t="sm",...i}){return ue("svg",{...i,class:u("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:ue("path",{d:"m6 9 6 6 6-6"})})}import{jsx as he,jsxs as He}from"@ecopages/jsx/jsx-runtime";function G({class:e,size:t="sm",...i}){return He("svg",{...i,class:u("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:[he("path",{d:"m18 6-12 12"}),he("path",{d:"m6 6 12 12"})]})}import{jsx as E,jsxs as qe}from"@ecopages/jsx/jsx-runtime";function ft({value:e,label:t,children:i,class:r,disabled:o,...n}){return E("div",{...n,class:u("rui-listbox__option",r),role:"option","data-value":e,"data-label":t,"aria-disabled":o?"true":void 0,tabindex:-1,children:i})}function de({children:e,class:t,...i}){return E("span",{...i,"data-listbox-option-indicator":!0,"aria-hidden":"true",class:u("rui-listbox__option-indicator",t),children:e??E(dt,{})})}function We(e,t){return t??!e}function $e({bordered:e,children:t,disabled:i,embedded:r,label:o,selectionMode:n="single"}){return E("div",{class:u("rui-listbox",e&&"rui-listbox--bordered"),role:"listbox","data-rui-control":r?void 0:!0,"data-rui-control-type":r?void 0:"text","aria-label":o||void 0,"aria-disabled":i?"true":void 0,"aria-multiselectable":n==="multiple"?"true":void 0,children:t})}function Q({options:e,children:t,value:i,embedded:r,bordered:o,label:n,disabled:s,selectionMode:l="single",...h}){let b=We(r,o),C=N(i),T=new Set(B(i));return E("rui-listbox",{...h,value:C,embedded:r,bordered:o,label:n,disabled:s,selectionMode:l,children:E($e,{bordered:b,disabled:s,embedded:r,label:n,selectionMode:l,children:e!=null?e.map(m=>qe(ft,{value:m.value,label:typeof m.label=="string"?m.label:void 0,disabled:m.disabled,"aria-selected":T.has(m.value)?"true":void 0,children:[m.label,l==="multiple"?E(de,{}):null]})):t})})}import{jsx as w,jsxs as Ue}from"@ecopages/jsx/jsx-runtime";function fe({children:e,class:t,...i}){return w("div",{...i,"data-tag-list":!0,class:u("rui-tag-group__list",t),children:e})}function ge({value:e,label:t,children:i,class:r,disabled:o,...n}){return Ue("span",{...n,"data-tag":!0,"data-value":e,"data-label":t,class:u("rui-tag",r),"aria-disabled":o?"true":void 0,children:[i,w(be,{})]})}function be({children:e,class:t,aria:i,...r}){return w("button",{...r,aria:j(i,"Remove"),type:"button","data-tag-remove":!0,class:u("rui-tag__remove",t),children:e??w(G,{})})}function pe({children:e}){return w("div",{class:"rui-tag-group","data-ref":"root",children:e})}function gt({tags:e,children:t,...i}){return e!=null?w("rui-tag-group",{...i,children:w(pe,{children:w(fe,{children:e.map(r=>w(ge,{value:r.value,label:typeof r.label=="string"?r.label:void 0,disabled:r.disabled,children:r.label}))})})}):w("rui-tag-group",{...i,children:w(pe,{children:t})})}function ve({children:e,class:t,...i}){return p("div",{...i,class:u("rui-select__control",t),children:e})}function xe({children:e,class:t,disabled:i,...r}){return p("button",{...ae(r,"attr:type"),type:"button","data-select-trigger":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:u("rui-select__trigger",t),disabled:i,children:e})}function ye({children:e,class:t,aria:i,disabled:r,...o}){return p("button",{...o,aria:j(i,"Show options"),type:"button","data-select-toggle":!0,class:u("rui-control-toggle",t),disabled:r,tabIndex:-1,children:e??p(pt,{})})}function Ne({children:e,class:t,aria:i,disabled:r,...o}){return p("button",{...o,aria:j(i,"Clear selection"),type:"button","data-select-clear":!0,class:u("rui-control-clear",t),disabled:r,children:e??p(G,{})})}function Se({children:e,class:t,...i}){return p("span",{...i,"data-select-value":!0,class:u("rui-select__value",t),children:e})}function we({children:e,class:t,...i}){return p("div",{...i,"data-select-listbox":!0,class:u("rui-select__listbox rui-popover rui-popover--listbox rui-floating",t),children:e})}function ze({placeholder:e,class:t,disabled:i,...r}){return p("input",{...r,type:"search","data-autocomplete-input":!0,class:u("rui-select__search",t),placeholder:e,disabled:i,autocomplete:"off"})}function Ye(e,t,i){let r=B(t)[0]??"",o=typeof i=="string"?i:"";if(!r)return o;let n=e?.find(s=>s.value===r);return n&&typeof n.label=="string"?n.label:r}function Je({children:e}){return p("div",{class:"rui-select","data-ref":"root",children:e})}function Qe({options:e,children:t,value:i,...r}){let o=N(i),n=B(i),s=r.selectionMode==="multiple",l=e!=null?Ye(e,i,r.placeholder):"",h=e?.filter(b=>n.includes(b.value)).map(b=>({value:b.value,label:b.label}));return p("rui-select",{...r,value:o,children:p(Je,{children:e==null?t:me(Xe,{children:[me(ve,{children:[p(xe,{children:p(Se,{children:s?p(gt,{tags:h??[],label:"Selected options"}):l})}),p(ye,{})]}),p(we,{children:p(Q,{embedded:!0,options:e,selectionMode:r.selectionMode,value:o})})]})})})}export{Q as RuiListbox,ft as RuiListboxOption,Qe as RuiSelect,Ne as RuiSelectClear,ve as RuiSelectControl,le as RuiSelectElement,we as RuiSelectListbox,ze as RuiSelectSearch,ye as RuiSelectToggle,xe as RuiSelectTrigger,Se as RuiSelectValue};
1
+ import{RadiantElement as ne,customElement as Me,event as Be,onEvent as x,onUpdated as je,prop as k,query as Ge}from"@ecopages/radiant";function st(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label]")??null}function we(e,t,i){e.id||(e.id=i.labelId),e.htmlFor||(e.htmlFor=i.controlId),t.setAttribute("aria-labelledby",e.id),t.removeAttribute("aria-label")}function Vt(e,t,i){if(!t||t.hasAttribute("data-rui-field-managed"))return;let r=st(e);if(r){we(r,t,i);return}if(i.label){t.setAttribute("aria-label",i.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Oe="data-listbox-option-indicator";function X(e){let t=e.getAttribute("data-label");return t||_t(e).trim()}function P(e){return e.getAttribute("data-value")||X(e)}function _t(e){if(Ae(e))return"";if(e.nodeType===Node.TEXT_NODE)return e.textContent??"";let t="";for(let i of e.childNodes)t+=_t(i);return t}function Ae(e){return e instanceof HTMLElement&&e.hasAttribute(Oe)}function lt(e){return e?ct(e.split(",")):[]}function at(e){return e.join(",")}function N(e){if(e!=null)return typeof e!="string"?at(ct(e)):e}function B(e){return e==null?[]:typeof e!="string"?ct(e):lt(e)}function ct(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var z=class{config;constructor(t){this.config=t}getListboxHost(){return this.config.getRoot()?.querySelector("rui-listbox")??null}getListbox(){let t=this.getListboxHost();return t?t.querySelector('[role="listbox"]')??t:this.config.getPopup?.()??null}getOptions(){let t=this.getListbox();return t?Array.from(t.querySelectorAll('[role="option"]')):[]}getSelectedValues(){return lt(this.config.getValue())}setSelectedValues(t){this.config.setValue(at(t))}toggleValue(t){if(this.config.getSelectionMode()==="multiple"){let i=new Set(this.getSelectedValues());i.has(t)?i.delete(t):i.add(t),this.setSelectedValues([...i]);return}this.setSelectedValues([t])}removeValue(t){let i=new Set(this.getSelectedValues());return i.delete(t)?(this.setSelectedValues([...i]),!0):!1}clearValues(){return this.config.getValue()?(this.setSelectedValues([]),!0):!1}findOption(t){return t instanceof Element?t.closest('[role="option"]')??null:null}isSelectableOption(t){return t!=null&&t.getAttribute("aria-disabled")!=="true"&&!t.hidden}syncListboxHost(){let t=this.getListboxHost();t&&(t.embedded=!0,t.selectionMode=this.config.getSelectionMode(),t.value=this.config.getValue())}syncOptionSelection(){let t=new Set(this.getSelectedValues());for(let i of this.getOptions())i.setAttribute("aria-selected",String(t.has(P(i))))}syncMultiselectable(t){if(t){if(this.config.getSelectionMode()==="multiple"){t.setAttribute("aria-multiselectable","true");return}t.removeAttribute("aria-multiselectable")}}getTagGroup(){let t=this.config.tagGroupSelector;if(!t)return null;let i=this.config.getRoot()?.querySelector(t)??null;return!i||typeof i.setItems!="function"?null:i}syncTagGroup(){let t=this.getTagGroup();if(!t)return;let i=this.getSelectedValues().flatMap(r=>{let o=this.getOptions().find(n=>P(n)===r);return o?[{value:r,label:X(o)}]:[]});t.embedded=!0,t.setItems(i),t.value=this.config.getValue()}labelForValue(t){let i=this.getOptions().find(r=>P(r)===t);return i?X(i):t}};var Ce={top:"bottom",bottom:"top",left:"right",right:"left"},Te=8;function Ie(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let i=e.slice(0,t),r=e.slice(t+1);return{side:i,align:r==="start"||r==="end"?r:"center"}}function Et(e){return e==="top"||e==="bottom"?"y":"x"}function Rt(e,t,i,r,o){let{width:n,height:s}=t,l=0,h=0;switch(i){case"top":h=e.top-s-o;break;case"bottom":h=e.bottom+o;break;case"left":l=e.left-n-o;break;case"right":l=e.right+o;break}return Et(i)==="y"?r==="start"?l=e.left:r==="end"?l=e.right-n:l=e.left+(e.width-n)/2:r==="start"?h=e.top:r==="end"?h=e.bottom-s:h=e.top+(e.height-s)/2,{x:l,y:h}}function Ve(e,t,i,r){let{padding:o,width:n,height:s}=r;return i==="top"?Math.max(0,o-e.y):i==="bottom"?Math.max(0,e.y+t.height-(s-o)):i==="left"?Math.max(0,o-e.x):Math.max(0,e.x+t.width-(n-o))}function Lt(e,t,i,r){let{padding:o,width:n,height:s}=r;return i==="top"?e.top-o-t.height:i==="bottom"?s-o-t.height-e.bottom:i==="left"?e.left-o-t.width:n-o-t.width-e.right}function _e(e,t){return t==="center"?e:`${e}-${t}`}function Re(e,t,i,r){let{padding:o,width:n,height:s}=r;if(Et(i)==="y"){let h=Math.max(o,n-o-t.width);return{x:Math.min(Math.max(e.x,o),h),y:e.y}}let l=Math.max(o,s-o-t.height);return{x:e.x,y:Math.min(Math.max(e.y,o),l)}}function Le(e,t,i,r,o={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Te}){let{side:n,align:s}=Ie(i),l=Rt(e,t,n,s,r),h=Ve(l,t,n,o),b=n,C=l;if(h>0){let T=Ce[n],m=Rt(e,t,T,s,r),K=Lt(e,t,n,o);Lt(e,t,T,o)>K&&(b=T,C=m)}return{coords:Re(C,t,b,o),placement:_e(b,s)}}function Ee(e,t,i,r,o={}){let{coords:n,placement:s}=Le(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},i,r);return Object.assign(t.style,{position:"fixed",left:`${n.x}px`,top:`${n.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),o.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Dt({anchor:e,floating:t,getPlacement:i,gap:r,matchAnchorWidth:o}){let n=()=>{t.hidden||Ee(e,t,i(),r,{matchAnchorWidth:o})};n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0);let s=new ResizeObserver(n);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0),s.disconnect()}}function Pt(e,t=document.body){let i=e.parentNode;if(!i)return{unmount:()=>{}};let r=document.createComment("rui-portal");return i.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let o=r.parentNode;o&&(o.insertBefore(e,r),r.remove())}}}function ut(e,t,i){return i?!!(e?.contains(i)||t?.contains(i)):!1}function kt(e,t,i){return i instanceof Node?!ut(e,t,i):!0}function Ft(e,t,i){return!ut(e,t,i)}var Y=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.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Pt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Dt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return ut(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 Mt(e){return e.filter(t=>!t.hidden&&t.getAttribute("aria-disabled")!=="true")}function Bt(e,t,i){return i===0?-1:t===1?e>=i-1?0:e+1:e<=0?i-1:e-1}function ht(e,t){t?.removeAttribute("aria-activedescendant");for(let i of e)i.removeAttribute("data-active")}function jt(e,t,i,r,o){ht(e,r);let n=t[i];return!n||!r?null:(n.id||(n.id=`${o}-${i}`),n.setAttribute("data-active","true"),r.setAttribute("aria-activedescendant",n.id),n.scrollIntoView({block:"nearest"}),n)}var J=class{config;popoverController;activeIndex=-1;visualFocus=!1;constructor(t){this.config=t,this.popoverController=new Y({getAnchor:t.getAnchor,getFloating:t.getFloating,getOpen:t.getOpen,getPlacement:()=>"bottom-start",gap:4,portal:!1,matchAnchorWidth:!0})}get activeOptionIndex(){return this.activeIndex}get hasVisualFocus(){return this.visualFocus}ensureOptionIds(){this.config.getOptions().forEach((t,i)=>{t.id||(t.id=`${this.config.getOptionIdPrefix()}-${i}`)})}getVisibleOptions(){return Mt(this.config.getOptions())}clearActiveOption(){this.activeIndex=-1,this.visualFocus=!1,ht(this.config.getOptions(),this.config.getActiveDescendantHost())}setActiveOption(t){let i=this.getVisibleOptions();if(t<0||t>=i.length){this.clearActiveOption();return}this.activeIndex=t,this.visualFocus=!0,jt(this.config.getOptions(),i,t,this.config.getActiveDescendantHost(),this.config.getOptionIdPrefix())}moveActive(t,i){let r=this.getVisibleOptions();if(r.length){if(!this.config.getOpen()){i(t===1?"first":"last");return}if(this.visualFocus){this.setActiveOption(Bt(this.activeIndex,t,r.length));return}this.setActiveOption(t===1?0:r.length-1)}}handleKeydown(t,i){if(t.ctrlKey||t.shiftKey||t.metaKey)return;this.keydownHandlers[t.key]?.call(this,t,i)}keydownHandlers={ArrowDown:this.handleArrowKey,ArrowUp:this.handleArrowKey,Escape:this.handleEscapeKey,Enter:this.handleActivationKey," ":this.handleActivationKey,Tab:this.handleTabKey};handleArrowKey(t,i){t.preventDefault(),t.stopPropagation();let r=t.key==="ArrowDown"?1:-1;if(t.altKey){this.handleModifiedArrow(r,i);return}this.moveActive(r,o=>i.onOpen(o))}handleModifiedArrow(t,i){t===1&&!i.isOpen&&i.onOpen(),t===-1&&i.isOpen&&i.onClose("arrow")}handleEscapeKey(t,i){t.preventDefault(),i.isOpen?i.onClose("escape"):i.onEscapeWhenClosed?.()}handleActivationKey(t,i){if(!(t.key===" "&&!i.canUseSpace)){if(!i.isOpen&&i.enterWhenClosed==="open"){t.preventDefault(),i.onOpen();return}if(i.isOpen){if(this.hasActiveOption()){t.preventDefault(),i.onSelectActive();return}t.key==="Enter"&&i.enterWithoutActive==="close"&&(t.preventDefault(),i.onClose("enter"))}}}handleTabKey(t,i){i.isOpen&&(this.hasActiveOption()&&i.closesOnTab?i.onSelectActive():i.onClose("tab"))}hasActiveOption(){return this.visualFocus&&!!this.getVisibleOptions()[this.activeIndex]}syncPopoverPosition(){this.popoverController.sync()}shouldDismissFocus(t){return kt(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}shouldDismissPointer(t){return Ft(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}destroy(){this.popoverController.destroy()}};var Gt,Kt,Ht,qt,Wt,$t,Ut,Xt,Nt,zt,Yt,Jt,Qt,Zt,te,ee,ie,re;function De(e,t,i,r,o,n){var s,l,h,b,C,T,m,K=Symbol.metadata||Symbol.for("Symbol.metadata"),Z=Object.defineProperty,tt=Object.create,bt=[tt(null),tt(null)],mt=t.length;function H(a,O,y){return function(c,d){O&&(d=c,c=e);for(var A=0;A<a.length;A++)d=a[A].apply(c,y?[d]:[]);return y?d:c}}function _(a,O,y,c){if(typeof a!="function"&&(c||a!==void 0))throw new TypeError(O+" must "+(y||"be")+" a function"+(c?"":" or undefined"));return a}function vt(a,O,y,c,d,A,L,S,I,V,yt){function et(g){if(!yt(g))throw new TypeError("Attempted to access private element on non-instance")}var it=[].concat(O[0]),St=O[3],rt=!L,F=d===1,wt=d===3,Ot=d===4,q=d===2;function W(g,D,Tt){return function(U,It){return D&&(It=U,U=a),Tt&&Tt(U),f[g].call(U,It)}}if(!rt){var f={},ot=[],R=wt?"get":Ot||F?"set":"value";if(I?(V||F?f={get:oe(function(){return St(this)},c,"get"),set:function(g){O[4](this,g)}}:f[R]=St,V||oe(f[R],c,q?"":R)):V||(f=Object.getOwnPropertyDescriptor(a,c)),!V&&!I){if((l=bt[+S][c])&&(l^d)!==7)throw Error("Decorating two elements with the same name ("+f[R].name+") is not supported yet");bt[+S][c]=d<3?1:d}}for(var v=a,$=it.length-1;$>=0;$-=y?2:1){var At=_(it[$],"A decorator","be",!0),Ct=y?it[$-1]:void 0,nt={},M={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(g,D){if(g.v)throw new TypeError("attempted to call addInitializer after decoration was finished");_(D,"An initializer","be",!0),A.push(D)}.bind(null,nt)};if(rt)l=At.call(Ct,v,M),nt.v=1,_(l,"class decorators","return")&&(v=l);else if(M.static=S,M.private=I,l=M.access={has:I?yt.bind():function(g){return c in g}},Ot||(l.get=I?q?function(g){return et(g),f.value}:W("get",0,et):function(g){return g[c]}),q||wt||(l.set=I?W("set",0,et):function(g,D){g[c]=D}),v=At.call(Ct,F?{get:f.get,set:f.set}:f[R],M),nt.v=1,F){if(typeof v=="object"&&v)(l=_(v.get,"accessor.get"))&&(f.get=l),(l=_(v.set,"accessor.set"))&&(f.set=l),(l=_(v.init,"accessor.init"))&&ot.unshift(l);else if(v!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else _(v,(V?"field":"method")+" decorators","return")&&(V?ot.unshift(v):f[R]=v)}return d<2&&L.push(H(ot,S,1),H(A,S,0)),V||rt||(I?F?L.splice(-1,0,W("get",S),W("set",S)):L.push(q?f[R]:_.call.bind(f[R])):Z(a,c,f)),v}function xt(a){return Z(a,K,{configurable:!0,enumerable:!0,value:s})}return n!==void 0&&(s=n[K]),s=tt(s??null),C=[],T=function(a){a&&C.push(H(a))},m=function(a,O){for(var y=0;y<i.length;y++){var c=i[y],d=c[1],A=7&d;if((8&d)==a&&!A==O){var L=c[2],S=!!c[3],I=16&d;vt(a?e:e.prototype,c,I,S?"#"+L:Pe(L),A,A<2?[]:a?b=b||[]:h=h||[],C,!!a,S,O,a&&S?function(V){return Fe(V)===e}:o)}}},m(8,0),m(0,0),m(8,1),m(0,1),T(h),T(b),l=C,mt||xt(e),{e:l,get c(){var a=[];return mt&&[xt(e=vt(e,[t],r,e.name,5,a)),H(a,1)]}}}function Pe(e){var t=ke(e,"string");return typeof t=="symbol"?t:t+""}function ke(e,t){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var r=i.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function oe(e,t,i){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch{}return e}function Fe(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 le,se=class extends ne{static{({e:[Ht,qt,Wt,$t,Ut,Xt,Nt,zt,Yt,Jt,Qt,Zt,te,ee,ie,re,Gt],c:[le,Kt]}=De(this,[Me("rui-select")],[[k({type:String,reflect:!0,defaultValue:""}),0,"value"],[k({type:String,defaultValue:""}),0,"label"],[k({type:String,defaultValue:""}),0,"placeholder"],[k({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[k({type:String,attribute:"selection-mode",defaultValue:"single"}),0,"selectionMode"],[k({type:Boolean,attribute:"should-close-on-select"}),0,"shouldCloseOnSelect"],[Be({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[Ge({ref:"root"}),0,"rootTarget"],[je(["value","label","placeholder","disabled","selectionMode","shouldCloseOnSelect"]),2,"onPropsUpdated"],[x({selector:"[data-select-trigger], [data-select-toggle]",type:"click"}),2,"onTriggerClick"],[x({selector:"[data-select-trigger]",type:"keydown",options:{capture:!0}}),2,"onTriggerKeydown"],[x({selector:"[data-select-listbox] [data-autocomplete-input]",type:"keydown",options:{capture:!0}}),2,"onSearchKeydown"],[x({selector:"[data-select-listbox] [data-autocomplete-input]",type:"input"}),2,"onSearchInput"],[x({selector:"[data-select-value] rui-tag-group",type:"rui-remove"}),2,"onTagRemove"],[x({selector:"[data-select-clear]",type:"click"}),2,"onClearClick"],[x({selector:"[data-select-value] [data-tag]",type:"click"}),2,"onTagClick"],[x({selector:'[data-select-listbox] [role="option"]',type:"pointerover"}),2,"onOptionPointerOver"],[x({selector:'[data-select-listbox] [role="option"]',type:"mousedown"}),2,"onOptionMouseDown"],[x({selector:'[data-select-listbox] [role="option"]',type:"click"}),2,"onOptionClick"],[x({ref:"root",type:"focusout"}),2,"onFocusOut"],[x({document:!0,type:"pointerdown"}),2,"onDocumentPointerDown"]],0,void 0,ne))}constructor(...t){super(...t),re(this)}value=(Gt(this),Ht(this));label=(qt(this),Wt(this));placeholder=($t(this),Ut(this));disabled=(Xt(this),Nt(this));selectionMode=(zt(this),Yt(this));shouldCloseOnSelect=(Jt(this),Qt(this));changeEvent=(Zt(this),te(this));open=(ee(this),!1);uid=Math.random().toString(36).slice(2,9);collection=new z({getRoot:()=>this,getSelectionMode:()=>this.selectionMode,getValue:()=>this.value,setValue:t=>{this.value=t},getPopup:()=>this.getListboxPopup(),tagGroupSelector:"[data-select-value] rui-tag-group"});listboxBehavior=new J({getAnchor:()=>this.rootTarget,getFloating:()=>this.getListboxPopup(),getOpen:()=>this.open,getOptions:()=>this.collection.getOptions(),getActiveDescendantHost:()=>this.getActiveDescendantHost(),getOptionIdPrefix:()=>`rui-select-option-${this.uid}`});rootTarget=ie(this);get listboxId(){return`rui-select-list-${this.uid}`}get triggerId(){return`rui-select-trigger-${this.uid}`}isMultiple(){return this.selectionMode==="multiple"}closesOnSelect(){return this.shouldCloseOnSelect!=null?this.shouldCloseOnSelect:!this.isMultiple()}getSearchInput(){return this.querySelector("[data-select-listbox] [data-autocomplete-input]")}hasSearchInput(){return this.getSearchInput()!=null}getActiveDescendantHost(){return this.open&&this.hasSearchInput()?this.getSearchInput():this.getTrigger()}resetSearchFilter(){let t=this.getSearchInput();!t||t.value===""||(t.value="",t.dispatchEvent(new Event("input",{bubbles:!0})))}syncSearchInput(){let t=this.getSearchInput(),i=this.getTrigger(),r=this.collection.getListbox();if(!(!t||!r||!i)){if(this.open){t.setAttribute("role","combobox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-expanded","true"),t.setAttribute("aria-controls",this.listboxId),i.removeAttribute("aria-activedescendant");return}t.removeAttribute("role"),t.removeAttribute("aria-autocomplete"),t.removeAttribute("aria-expanded"),t.removeAttribute("aria-controls"),t.removeAttribute("aria-activedescendant")}}focusPopupInput(){queueMicrotask(()=>{this.getSearchInput()?.focus()})}hasTagGroup(){return this.collection.getTagGroup()!=null}syncTagGroup(){let t=this.getValueElement();this.collection.syncTagGroup(),!(!t||!this.hasTagGroup())&&this.syncTagGroupPlaceholder(t,this.collection.getSelectedValues().length)}syncTagGroupPlaceholder(t,i){let r=t.querySelector("[data-select-placeholder]");if(!this.placeholder){r?.remove();return}r||(r=document.createElement("span"),r.setAttribute("data-select-placeholder","true"),t.insertBefore(r,t.firstChild)),r.textContent=this.placeholder,r.hidden=i>0,t.toggleAttribute("data-placeholder",i===0)}removeSelectedValue(t){this.collection.removeValue(t)&&(this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncTagGroup(),this.syncClear(),this.changeEvent.emit({value:this.value}))}clearSelection(){this.collection.clearValues()&&(this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncTagGroup(),this.syncClear(),this.changeEvent.emit({value:""}),this.getTrigger()?.focus())}getTrigger(){return this.querySelector("[data-select-trigger]")}getToggle(){return this.querySelector("[data-select-toggle]")}getClear(){return this.querySelector("[data-select-clear]")}getValueElement(){return this.querySelector("[data-select-value]")}getListboxPopup(){return this.querySelector("[data-select-listbox]")}ensureOptionIds(){this.listboxBehavior.ensureOptionIds()}getAccessibleName(){return st(this)?.textContent?.trim()||this.label||"Options"}syncLabel(){let t=this.getTrigger();Vt(this,t,{controlId:this.triggerId,label:this.label,labelId:`rui-select-label-${this.uid}`})}syncTrigger(){let t=this.getTrigger(),i=this.collection.getListbox(),r=this.getListboxPopup();!t||!i||(t.id||(t.id=this.triggerId),i.id||(i.id=this.listboxId),t.setAttribute("role","combobox"),t.setAttribute("aria-haspopup","listbox"),t.setAttribute("aria-autocomplete","none"),t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",this.listboxId),i.setAttribute("aria-label",this.getAccessibleName()),this.collection.syncMultiselectable(i),r&&(r.removeAttribute("role"),r.removeAttribute("aria-label"),r.removeAttribute("aria-multiselectable")),t.tabIndex=this.disabled?-1:0,t.toggleAttribute("aria-disabled",this.disabled),this.syncToggle(),this.syncClear(),this.syncSearchInput())}syncClear(){let t=this.getClear();t&&(t.hidden=this.collection.getSelectedValues().length===0,t.disabled=this.disabled)}syncToggle(){let t=this.getToggle();t&&(t.setAttribute("aria-expanded",String(this.open)),t.disabled=this.disabled)}syncValueDisplay(){if(this.hasTagGroup()){this.syncTagGroup();return}let t=this.getValueElement();if(!t||t.childElementCount>0)return;let i=this.collection.getSelectedValues();if(i.length===0){t.textContent="",t.toggleAttribute("data-placeholder",!0),this.placeholder&&(t.textContent=this.placeholder);return}if(t.toggleAttribute("data-placeholder",!1),this.isMultiple()){t.textContent=i.map(r=>this.collection.labelForValue(r)).join(", ");return}t.textContent=this.collection.labelForValue(i[0])}setOpen(t,i={}){let r=i.activate??"none";this.open=t;let o=this.getTrigger(),n=this.getListboxPopup();if(!(!o||!n)){if(o.setAttribute("aria-expanded",String(t)),n.toggleAttribute("hidden",!t),!t){this.listboxBehavior.clearActiveOption(),this.resetSearchFilter(),this.syncSearchInput(),this.listboxBehavior.syncPopoverPosition();return}if(this.ensureOptionIds(),this.syncSearchInput(),this.listboxBehavior.syncPopoverPosition(),this.hasSearchInput()&&this.focusPopupInput(),r==="first"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?0:-1);return}if(r==="last"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?s.length-1:-1);return}this.listboxBehavior.clearActiveOption()}}selectOption(t){this.collection.isSelectableOption(t)&&(this.collection.toggleValue(P(t)),this.syncValueDisplay(),this.collection.syncOptionSelection(),this.syncClear(),this.changeEvent.emit({value:this.value}),this.closesOnSelect()&&(this.resetSearchFilter(),this.setOpen(!1),this.getTrigger()?.focus()))}handleListboxKeydown(t){this.listboxBehavior.handleKeydown(t,{isOpen:this.open,canUseSpace:!this.hasSearchInput(),closesOnTab:this.closesOnSelect(),enterWhenClosed:"open",enterWithoutActive:"ignore",onOpen:(i="none")=>this.setOpen(!0,{activate:i}),onClose:i=>{this.setOpen(!1),(i==="arrow"||i==="escape")&&this.getTrigger()?.focus()},onSelectActive:()=>{let i=this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];i&&this.selectOption(i)}})}handleTriggerKeydown(t){this.handleListboxKeydown(t)}initialize(){this.ensureOptionIds(),this.syncLabel(),this.syncTrigger(),this.collection.syncListboxHost(),this.syncValueDisplay(),this.collection.syncOptionSelection(),this.setOpen(!1)}onConnected(){this.initialize()}disconnectedCallback(){this.listboxBehavior.destroy(),super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncTrigger(),this.collection.syncListboxHost(),this.syncValueDisplay(),this.collection.syncOptionSelection()}onTriggerClick(t){t.preventDefault();let i=this.getTrigger();if(!(!i||this.disabled)){if(this.open?this.setOpen(!1):this.setOpen(!0),this.open&&this.hasSearchInput()){this.focusPopupInput();return}i.focus()}}onTriggerKeydown(t){this.handleTriggerKeydown(t)}onSearchKeydown(t){this.handleListboxKeydown(t)}onSearchInput(){this.open&&this.listboxBehavior.clearActiveOption()}onTagRemove(t){let i=t.detail;i?.value&&this.removeSelectedValue(i.value)}onClearClick(t){t.preventDefault(),t.stopPropagation(),this.clearSelection()}onTagClick(t){t.target.closest("[data-tag-remove]")||t.stopPropagation()}onOptionPointerOver(t){if(!this.open)return;let i=this.collection.findOption(t.target);if(!this.collection.isSelectableOption(i))return;let o=this.listboxBehavior.getVisibleOptions().indexOf(i);o>=0&&this.listboxBehavior.setActiveOption(o)}onOptionMouseDown(t){t.preventDefault()}onOptionClick(t){let i=this.collection.findOption(t.target);i&&this.selectOption(i)}onFocusOut(t){this.listboxBehavior.shouldDismissFocus(t.relatedTarget)&&this.setOpen(!1)}onDocumentPointerDown(t){this.open&&this.listboxBehavior.shouldDismissPointer(t.target)&&this.setOpen(!1)}static{Kt()}};import{Fragment as Ue,jsx as p,jsxs as be}from"@ecopages/jsx/jsx-runtime";function j(e,t){return t===void 0||e?.label!==void 0?e:{...e,label:t}}function u(...e){return e.filter(Boolean).join(" ")}import{jsx as ae}from"@ecopages/jsx/jsx-runtime";function dt({class:e,size:t="sm",...i}){return ae("svg",{...i,class:u("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:ae("path",{d:"m5 12 4 4L19 6"})})}import{jsx as ce}from"@ecopages/jsx/jsx-runtime";function pt({class:e,size:t="sm",...i}){return ce("svg",{...i,class:u("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:ce("path",{d:"m6 9 6 6 6-6"})})}import{jsx as ue,jsxs as Ke}from"@ecopages/jsx/jsx-runtime";function G({class:e,size:t="sm",...i}){return Ke("svg",{...i,class:u("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:[ue("path",{d:"m18 6-12 12"}),ue("path",{d:"m6 6 12 12"})]})}import{jsx as E,jsxs as He}from"@ecopages/jsx/jsx-runtime";function ft({value:e,label:t,children:i,class:r,disabled:o,...n}){return E("div",{...n,class:u("rui-listbox__option",r),role:"option","data-value":e,"data-label":t,"aria-disabled":o?"true":void 0,tabindex:-1,children:i})}function he({children:e,class:t,...i}){return E("span",{...i,"data-listbox-option-indicator":!0,"aria-hidden":"true",class:u("rui-listbox__option-indicator",t),children:e??E(dt,{})})}function qe(e,t){return t??!e}function We({bordered:e,children:t,disabled:i,embedded:r,label:o,selectionMode:n="single"}){return E("div",{class:u("rui-listbox",e&&"rui-listbox--bordered"),role:"listbox","data-rui-control":r?void 0:!0,"data-rui-control-type":r?void 0:"text","aria-label":o||void 0,"aria-disabled":i?"true":void 0,"aria-multiselectable":n==="multiple"?"true":void 0,children:t})}function Q({options:e,children:t,value:i,embedded:r,bordered:o,label:n,disabled:s,selectionMode:l="single",...h}){let b=qe(r,o),C=N(i),T=new Set(B(i));return E("rui-listbox",{...h,value:C,embedded:r,bordered:o,label:n,disabled:s,selectionMode:l,children:E(We,{bordered:b,disabled:s,embedded:r,label:n,selectionMode:l,children:e!=null?e.map(m=>He(ft,{value:m.value,label:typeof m.label=="string"?m.label:void 0,disabled:m.disabled,"aria-selected":T.has(m.value)?"true":void 0,children:[m.label,l==="multiple"?E(he,{}):null]})):t})})}import{jsx as w,jsxs as $e}from"@ecopages/jsx/jsx-runtime";function pe({children:e,class:t,...i}){return w("div",{...i,"data-tag-list":!0,class:u("rui-tag-group__list",t),children:e})}function fe({value:e,label:t,children:i,class:r,disabled:o,...n}){return $e("span",{...n,"data-tag":!0,"data-value":e,"data-label":t,class:u("rui-tag",r),"aria-disabled":o?"true":void 0,children:[i,w(ge,{})]})}function ge({children:e,class:t,aria:i,...r}){return w("button",{...r,aria:j(i,"Remove"),type:"button","data-tag-remove":!0,class:u("rui-tag__remove",t),children:e??w(G,{})})}function de({children:e}){return w("div",{class:"rui-tag-group","data-ref":"root",children:e})}function gt({tags:e,children:t,...i}){return e!=null?w("rui-tag-group",{...i,children:w(de,{children:w(pe,{children:e.map(r=>w(fe,{value:r.value,label:typeof r.label=="string"?r.label:void 0,disabled:r.disabled,children:r.label}))})})}):w("rui-tag-group",{...i,children:w(de,{children:t})})}function me({children:e,class:t,...i}){return p("div",{...i,class:u("rui-select__control",t),children:e})}function ve({children:e,class:t,disabled:i,...r}){return p("div",{...r,"data-select-trigger":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:u("rui-select__trigger",t),tabIndex:i?-1:0,"aria-disabled":i?"true":void 0,children:e})}function xe({children:e,class:t,aria:i,disabled:r,...o}){return p("button",{...o,aria:j(i,"Show options"),type:"button","data-select-toggle":!0,class:u("rui-control-toggle",t),disabled:r,tabIndex:-1,children:e??p(pt,{})})}function Xe({children:e,class:t,aria:i,disabled:r,...o}){return p("button",{...o,aria:j(i,"Clear selection"),type:"button","data-select-clear":!0,class:u("rui-control-clear",t),disabled:r,children:e??p(G,{})})}function ye({children:e,class:t,...i}){return p("span",{...i,"data-select-value":!0,class:u("rui-select__value",t),children:e})}function Se({children:e,class:t,...i}){return p("div",{...i,"data-select-listbox":!0,class:u("rui-select__listbox rui-popover rui-popover--listbox rui-floating",t),children:e})}function Ne({placeholder:e,class:t,disabled:i,...r}){return p("input",{...r,type:"search","data-autocomplete-input":!0,class:u("rui-select__search",t),placeholder:e,disabled:i,autocomplete:"off"})}function ze(e,t,i){let r=B(t)[0]??"",o=typeof i=="string"?i:"";if(!r)return o;let n=e?.find(s=>s.value===r);return n&&typeof n.label=="string"?n.label:r}function Ye({children:e}){return p("div",{class:"rui-select","data-ref":"root",children:e})}function Je({options:e,children:t,value:i,...r}){let o=N(i),n=B(i),s=r.selectionMode==="multiple",l=e!=null?ze(e,i,r.placeholder):"",h=e?.filter(b=>n.includes(b.value)).map(b=>({value:b.value,label:b.label}));return p("rui-select",{...r,value:o,children:p(Ye,{children:e==null?t:be(Ue,{children:[be(me,{children:[p(ve,{disabled:r.disabled,children:p(ye,{children:s?p(gt,{tags:h??[],label:"Selected options"}):l})}),p(xe,{})]}),p(Se,{children:p(Q,{embedded:!0,options:e,selectionMode:r.selectionMode,value:o})})]})})})}export{Q as RuiListbox,ft as RuiListboxOption,Je as RuiSelect,Xe as RuiSelectClear,me as RuiSelectControl,le as RuiSelectElement,Se as RuiSelectListbox,Ne as RuiSelectSearch,xe as RuiSelectToggle,ve as RuiSelectTrigger,ye as RuiSelectValue};
2
2
  //# sourceMappingURL=index.js.map