@ecopages/radiant-ui 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/autocomplete/autocomplete.d.ts +2 -1
- package/dist/components/ui/button/button.d.ts +4 -2
- package/dist/components/ui/carousel/carousel.d.ts +3 -2
- package/dist/components/ui/carousel/carousel.script.d.ts +4 -4
- package/dist/components/ui/combobox/combobox.d.ts +4 -3
- package/dist/components/ui/combobox/combobox.script.d.ts +1 -1
- package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +2 -1
- package/dist/components/ui/date-field/date-field.d.ts +2 -1
- package/dist/components/ui/date-field/date-field.script.d.ts +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +2 -1
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +1 -1
- package/dist/components/ui/dialog/dialog.d.ts +2 -1
- package/dist/components/ui/dialog/dialog.script.d.ts +3 -3
- package/dist/components/ui/dialog/index.js +1 -1
- package/dist/components/ui/dialog/index.js.map +2 -2
- package/dist/components/ui/disclosure/disclosure.d.ts +2 -1
- package/dist/components/ui/hover-card/hover-card.script.d.ts +1 -1
- package/dist/components/ui/input/input.d.ts +3 -2
- package/dist/components/ui/knob/index.js +1 -1
- package/dist/components/ui/knob/index.js.map +2 -2
- package/dist/components/ui/knob/knob.script.d.ts +7 -7
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +2 -2
- package/dist/components/ui/label/label.d.ts +4 -0
- package/dist/components/ui/menu-button/menu-button.d.ts +2 -1
- package/dist/components/ui/menu-button/menu-button.script.d.ts +2 -2
- package/dist/components/ui/menubar/menubar.d.ts +2 -1
- package/dist/components/ui/number-field/number-field.d.ts +3 -2
- package/dist/components/ui/popover/popover.script.d.ts +3 -3
- package/dist/components/ui/select/select.d.ts +4 -3
- package/dist/components/ui/select/select.script.d.ts +1 -1
- package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +1 -1
- package/dist/components/ui/sidebar/sidebar.css +656 -654
- package/dist/components/ui/sidebar/sidebar.d.ts +3 -2
- package/dist/components/ui/sidebar/sidebar.script.d.ts +4 -4
- package/dist/components/ui/slider/slider.script.d.ts +8 -8
- package/dist/components/ui/tabs/tabs.d.ts +2 -1
- package/dist/components/ui/tag-group/tag-group.d.ts +2 -1
- package/dist/components/ui/textarea/textarea.d.ts +3 -2
- package/dist/components/ui/toast/toast.script.d.ts +1 -1
- package/dist/components/ui/toast/toaster.script.d.ts +1 -1
- package/dist/components/ui/tooltip/tooltip.script.d.ts +1 -1
- package/dist/components/ui/window-splitter/index.js +1 -1
- package/dist/components/ui/window-splitter/index.js.map +2 -2
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/lib/native-element-props.d.ts +7 -0
- package/dist/styles/styles.css +582 -582
- package/package.json +10 -10
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{bindTo as ot,customElement as gt,event as yt,onEvent as C,onUpdated as Tt,prop as g,query as N}from"@ecopages/radiant";import{FormAssociatedElement as st}from"@ecopages/radiant/form-associated-element";function ct(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let r=e[1]?.length??0,i=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,r-i))}function me(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):ct(t)}function pe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function H(t,e,r){if(Object.is(t,e))return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;let i=Number.isFinite(r)&&r>0?r:1,m=Number.EPSILON*Math.max(Math.abs(t),Math.abs(e),i)*4;return Math.abs(t-e)<=Math.min(m,i*1e-6)}function O(t,e,r){let i=Number.isFinite(t)?t:0,m=Number.isFinite(e)?e:100,s=Math.min(i,m),c=Math.max(i,m),n=Number.isFinite(r)&&r>0?r:1,v=c-s,p=u=>{let b=Number.isFinite(u)?u:s,f=s+Math.round((b-s)/n)*n;return Math.min(c,Math.max(s,f))};return{lowerBound:s,upperBound:c,step:n,clamp:p,ratioFor:u=>v===0?0:(p(u)-s)/v,valueFromRatio:u=>{let b=Math.min(1,Math.max(0,Number.isFinite(u)?u:0));return p(s+b*v)}}}function fe(t,e,r){switch(r){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 _e=120,k=300,ht=14,dt=k+(360-k)/2;function mt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):ht))}function pt(t,e,r){return r.replace("{value}",pe(t,e))}function X(t,e,r,i,m,s,c){let n=O(e,r,i),v=mt(m),p=50-v/2,u=2*Math.PI*p,b=k/360*u,f=n.clamp(t),R=me(i,c);return{startAngle:_e,strokeWidth:v,radius:p,circumference:u,arcLength:b,progressLength:n.ratioFor(f)*b,valueText:pt(f,R,s)}}function ee(t,e,r,i){if(r.width===0||r.height===0)return null;let s=(Math.atan2(e-(r.top+r.height/2),t-(r.left+r.width/2))*180/Math.PI-_e+360)%360,c=s<=k?s:s<=dt?k:0;return i.valueFromRatio(c/k)}var ve,be,ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt;function ft(t,e,r,i,m,s){var c,n,v,p,u,b,f,R=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,M=Object.create,D=[M(null),M(null)],B=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 A(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 ie(a,x,y,o,l,w,I,T,V,P,ae){function q(d){if(!ae(d))throw new TypeError("Attempted to access private element on non-instance")}var Q=[].concat(x[0]),oe=x[3],Y=!I,K=l===1,se=l===3,le=l===4,j=l===2;function W(d,L,he){return function(G,de){return L&&(de=G,G=a),he&&he(G),h[d].call(G,de)}}if(!Y){var h={},J=[],S=se?"get":le||K?"set":"value";if(V?(P||K?h={get:at(function(){return oe(this)},o,"get"),set:function(d){x[4](this,d)}}:h[S]=oe,P||at(h[S],o,j?"":S)):P||(h=Object.getOwnPropertyDescriptor(a,o)),!P&&!V){if((n=D[+T][o])&&(n^l)!==7)throw Error("Decorating two elements with the same name ("+h[S].name+") is not supported yet");D[+T][o]=l<3?1:l}}for(var _=a,$=Q.length-1;$>=0;$-=y?2:1){var ue=A(Q[$],"A decorator","be",!0),ce=y?Q[$-1]:void 0,Z={},F={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:c,addInitializer:function(d,L){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(L,"An initializer","be",!0),w.push(L)}.bind(null,Z)};if(Y)n=ue.call(ce,_,F),Z.v=1,A(n,"class decorators","return")&&(_=n);else if(F.static=T,F.private=V,n=F.access={has:V?ae.bind():function(d){return o in d}},le||(n.get=V?j?function(d){return q(d),h.value}:W("get",0,q):function(d){return d[o]}),j||se||(n.set=V?W("set",0,q):function(d,L){d[o]=L}),_=ue.call(ce,K?{get:h.get,set:h.set}:h[S],F),Z.v=1,K){if(typeof _=="object"&&_)(n=A(_.get,"accessor.get"))&&(h.get=n),(n=A(_.set,"accessor.set"))&&(h.set=n),(n=A(_.init,"accessor.init"))&&J.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(_,(P?"field":"method")+" decorators","return")&&(P?J.unshift(_):h[S]=_)}return l<2&&I.push(U(J,T,1),U(w,T,0)),P||Y||(V?K?I.splice(-1,0,W("get",T),W("set",T)):I.push(j?h[S]:A.call.bind(h[S])):z(a,o,h)),_}function ne(a){return z(a,R,{configurable:!0,enumerable:!0,value:c})}return s!==void 0&&(c=s[R]),c=M(c??null),u=[],b=function(a){a&&u.push(U(a))},f=function(a,x){for(var y=0;y<r.length;y++){var o=r[y],l=o[1],w=7&l;if((8&l)==a&&!w==x){var I=o[2],T=!!o[3],V=16&l;ie(a?t:t.prototype,o,V,T?"#"+I:_t(I),w,w<2?[]:a?p=p||[]:v=v||[],u,!!a,T,x,a&&T?function(P){return bt(P)===t}:m)}}},f(8,0),f(0,0),f(8,1),f(0,1),b(v),b(p),n=u,B||ne(t),{e:n,get c(){var a=[];return B&&[ne(t=ie(t,[e],i,t.name,5,a)),U(a,1)]}}}function _t(t){var e=vt(t,"string");return typeof e=="symbol"?e:e+""}function vt(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function at(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function bt(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 te=50,ut,lt=class extends st{static{({e:[ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt,ve],c:[ut,be]}=ft(this,[gt("rui-knob")],[[g({type:Number,reflect:!0,defaultValue:te}),0,"value"],[g({type:Number,defaultValue:0}),0,"min"],[g({type:Number,defaultValue:100}),0,"max"],[g({type:Number,defaultValue:1}),0,"step"],[g({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[[g({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),ot({ref:"control",attr:"aria-readonly",map:e=>String(e)})],0,"readOnly"],[[g({type:String,defaultValue:""}),ot([{ref:"label",bool:"hidden",invert:!0},{ref:"label",text:!0},{ref:"control",attr:"aria-label",map:e=>e||void 0}])],0,"label"],[g({type:Number,defaultValue:void 0}),0,"size"],[g({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[g({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[g({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[g({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[yt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[N({ref:"root"}),0,"rootTarget"],[N({ref:"label"}),0,"labelTarget"],[N({ref:"control"}),0,"controlTarget"],[N({ref:"track"}),0,"trackTarget"],[N({ref:"progress"}),0,"progressTarget"],[N({ref:"centerValue"}),0,"centerValueTarget"],[N({ref:"belowValue"}),0,"belowValueTarget"],[Tt(["value","min","max","step","valuePrecision","disabled","readOnly","effectiveDisabled","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[C({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[C({ref:"control",type:"pointermove"}),2,"onPointerMove"],[C({ref:"control",type:"pointerup"}),2,"onPointerUp"],[C({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[C({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,st))}value=(ve(this),ge(this));min=(ye(this),Te(this));max=(xe(this),we(this));step=(Ve(this),Pe(this));valuePrecision=(Ee(this),Ae(this));readOnly=(Se(this),Re(this));label=(Ie(this),Ne(this));size=(Me(this),Le(this));strokeWidth=(Oe(this),ke(this));showValue=(De(this),Ke(this));valuePosition=(Fe(this),Ce(this));valueTemplate=(ze(this),Be(this));changeEvent=(Ue(this),je(this));rootTarget=(We(this),$e(this));labelTarget=(Ge(this),Xe(this));controlTarget=(qe(this),Qe(this));trackTarget=(Ye(this),Je(this));progressTarget=(Ze(this),He(this));centerValueTarget=(et(this),tt(this));belowValueTarget=(rt(this),it(this));activePointerId=(nt(this),null);lastEmitted=null;rangeCommitQueued=!1;onConnected(){this.syncPresentation()}formValue(){return this.name?String(this.numericRange.clamp(this.value)):null}formState(){return String(this.value)}restoreFormState(e){this.value=Number(e),this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return O(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 r=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),i=this.resolvedValuePosition;this.syncKnobLayout(i),this.syncControlValues(e,r.valueText),this.syncRing(r),this.syncReadout(r.valueText,i)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControlValues(e,r){let i=this.controlTarget;i&&(i.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),i.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),i.setAttribute("aria-valuenow",String(e)),i.setAttribute("aria-valuetext",r))}syncRing(e){for(let r of[this.trackTarget,this.progressTarget])r?.setAttribute("r",String(e.radius)),r?.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,r){for(let[i,m]of[[this.centerValueTarget,this.showValue&&r==="center"],[this.belowValueTarget,this.showValue&&r==="below"]])i&&(i.textContent=e,i.toggleAttribute("hidden",!m))}syncPresentation(){this.controlTarget&&(this.controlTarget.disabled=this.effectiveDisabled),this.paint(this.numericRange.clamp(this.value)),this.queueNormalizedValueCommit()}queueNormalizedValueCommit(){this.rangeCommitQueued||(this.rangeCommitQueued=!0,queueMicrotask(()=>{this.rangeCommitQueued=!1;let e=this.numericRange.clamp(this.value);this.paint(e),H(this.value,e,this.step)||(this.value=e)}))}commitValue(e){if(this.effectiveDisabled||this.readOnly)return;let r=this.numericRange.clamp(e);this.paint(r),!H(r,this.value,this.step)&&(this.value=r,this.lastEmitted!==r&&(this.lastEmitted=r,this.changeEvent.emit({value:r})))}onPointerDown(e){if(e.button!==0||this.effectiveDisabled||this.readOnly)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,this.controlTarget.setPointerCapture(e.pointerId);let r=this.controlTarget.getBoundingClientRect(),i=ee(e.clientX,e.clientY,r,this.numericRange);i!=null&&this.commitValue(i),e.preventDefault()}onPointerMove(e){if(e.pointerId!==this.activePointerId)return;let r=this.controlTarget.getBoundingClientRect(),i=ee(e.clientX,e.clientY,r,this.numericRange);i!=null&&this.commitValue(i)}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.effectiveDisabled||this.readOnly)return;let r=fe(this.numericRange,this.value,e.key);r!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(r))}static{be()}};import{jsx as E,jsxs as re}from"@ecopages/jsx/jsx-runtime";function xt({value:t=te,min:e=0,max:r=100,step:i=1,disabled:m=!1,readOnly:s=!1,label:c,name:n,size:v,strokeWidth:p=14,showValue:u=!0,valuePosition:b="center",valueTemplate:f="{value}",valuePrecision:R,...z}){let M=O(e,r,i),D=M.clamp(t),B=X(D,e,r,i,p,f,R);return E(wt,{props:z,value:D,min:e,max:r,step:i,disabled:m,readOnly:s,label:c,name:n,size:v,strokeWidth:p,showValue:u,valuePosition:b,valueTemplate:f,valuePrecision:R,ring:B,range:M})}function wt({props:t,ring:e,range:r,...i}){return E("rui-knob",{...t,value:i.value,min:i.min,max:i.max,step:i.step,disabled:i.disabled,"prop:readOnly":i.readOnly,label:i.label,name:i.name,size:i.size,strokeWidth:i.strokeWidth,showValue:i.showValue,valuePosition:i.valuePosition,valueTemplate:i.valueTemplate,valuePrecision:i.valuePrecision,style:i.size?{"--rui-knob-size":`${i.size}px`}:void 0,children:E(Vt,{knob:i,ring:e,range:r})})}function Vt({knob:t,ring:e,range:r}){let i=t.valuePosition==="below";return re("div",{class:i?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[E("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),E(Pt,{knob:t,ring:e,range:r,valueBelow:i}),E("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!i,children:e.valueText})]})}function Pt({knob:t,ring:e,range:r,valueBelow:i}){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":r.lowerBound,"aria-valuemax":r.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:[E("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)`}),E("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)`})]}),E("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||i,children:e.valueText})]})}export{xt as RuiKnob,ut as RuiKnobElement};
|
|
1
|
+
import{bindTo as ot,customElement as gt,event as yt,onEvent as C,onUpdated as Tt,prop as g,query as N}from"@ecopages/radiant";import{FormAssociatedElement as st}from"@ecopages/radiant/form-associated-element";function ct(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let r=e[1]?.length??0,i=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,r-i))}function me(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):ct(t)}function pe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function H(t,e,r){if(Object.is(t,e))return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;let i=Number.isFinite(r)&&r>0?r:1,s=Number.EPSILON*Math.max(Math.abs(t),Math.abs(e),i)*4;return Math.abs(t-e)<=Math.min(s,i*1e-6)}function O(t,e,r){let i=Number.isFinite(t)?t:0,s=Number.isFinite(e)?e:100,l=Math.min(i,s),h=Math.max(i,s),n=Number.isFinite(r)&&r>0?r:1,v=h-l,p=c=>{let b=Number.isFinite(c)?c:l,f=l+Math.round((b-l)/n)*n;return Math.min(h,Math.max(l,f))};return{lowerBound:l,upperBound:h,step:n,clamp:p,ratioFor:c=>v===0?0:(p(c)-l)/v,valueFromRatio:c=>{let b=Math.min(1,Math.max(0,Number.isFinite(c)?c:0));return p(l+b*v)}}}function fe(t,e,r){switch(r){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 _e=120,k=300,ht=14,dt=k+(360-k)/2;function mt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):ht))}function pt(t,e,r){return r.replace("{value}",pe(t,e))}function X(t,e,r,i,s,l,h){let n=O(e,r,i),v=mt(s),p=50-v/2,c=2*Math.PI*p,b=k/360*c,f=n.clamp(t),R=me(i,h);return{startAngle:_e,strokeWidth:v,radius:p,circumference:c,arcLength:b,progressLength:n.ratioFor(f)*b,valueText:pt(f,R,l)}}function ee(t,e,r,i){if(r.width===0||r.height===0)return null;let l=(Math.atan2(e-(r.top+r.height/2),t-(r.left+r.width/2))*180/Math.PI-_e+360)%360,h=l<=k?l:l<=dt?k:0;return i.valueFromRatio(h/k)}var ve,be,ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt;function ft(t,e,r,i,s,l){var h,n,v,p,c,b,f,R=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,M=Object.create,D=[M(null),M(null)],B=e.length;function U(a,x,y){return function(o,u){x&&(u=o,o=t);for(var w=0;w<a.length;w++)u=a[w].apply(o,y?[u]:[]);return y?u:o}}function A(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 ie(a,x,y,o,u,w,I,T,V,P,ae){function q(m){if(!ae(m))throw new TypeError("Attempted to access private element on non-instance")}var Q=[].concat(x[0]),oe=x[3],Y=!I,K=u===1,se=u===3,le=u===4,j=u===2;function W(m,L,he){return function(G,de){return L&&(de=G,G=a),he&&he(G),d[m].call(G,de)}}if(!Y){var d={},J=[],S=se?"get":le||K?"set":"value";if(V?(P||K?d={get:at(function(){return oe(this)},o,"get"),set:function(m){x[4](this,m)}}:d[S]=oe,P||at(d[S],o,j?"":S)):P||(d=Object.getOwnPropertyDescriptor(a,o)),!P&&!V){if((n=D[+T][o])&&(n^u)!==7)throw Error("Decorating two elements with the same name ("+d[S].name+") is not supported yet");D[+T][o]=u<3?1:u}}for(var _=a,$=Q.length-1;$>=0;$-=y?2:1){var ue=A(Q[$],"A decorator","be",!0),ce=y?Q[$-1]:void 0,Z={},F={kind:["field","accessor","method","getter","setter","class"][u],name:o,metadata:h,addInitializer:function(m,L){if(m.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(L,"An initializer","be",!0),w.push(L)}.bind(null,Z)};if(Y)n=ue.call(ce,_,F),Z.v=1,A(n,"class decorators","return")&&(_=n);else if(F.static=T,F.private=V,n=F.access={has:V?ae.bind():function(m){return o in m}},le||(n.get=V?j?function(m){return q(m),d.value}:W("get",0,q):function(m){return m[o]}),j||se||(n.set=V?W("set",0,q):function(m,L){m[o]=L}),_=ue.call(ce,K?{get:d.get,set:d.set}:d[S],F),Z.v=1,K){if(typeof _=="object"&&_)(n=A(_.get,"accessor.get"))&&(d.get=n),(n=A(_.set,"accessor.set"))&&(d.set=n),(n=A(_.init,"accessor.init"))&&J.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(_,(P?"field":"method")+" decorators","return")&&(P?J.unshift(_):d[S]=_)}return u<2&&I.push(U(J,T,1),U(w,T,0)),P||Y||(V?K?I.splice(-1,0,W("get",T),W("set",T)):I.push(j?d[S]:A.call.bind(d[S])):z(a,o,d)),_}function ne(a){return z(a,R,{configurable:!0,enumerable:!0,value:h})}return l!==void 0&&(h=l[R]),h=M(h??null),c=[],b=function(a){a&&c.push(U(a))},f=function(a,x){for(var y=0;y<r.length;y++){var o=r[y],u=o[1],w=7&u;if((8&u)==a&&!w==x){var I=o[2],T=!!o[3],V=16&u;ie(a?t:t.prototype,o,V,T?"#"+I:_t(I),w,w<2?[]:a?p=p||[]:v=v||[],c,!!a,T,x,a&&T?function(P){return bt(P)===t}:s)}}},f(8,0),f(0,0),f(8,1),f(0,1),b(v),b(p),n=c,B||ne(t),{e:n,get c(){var a=[];return B&&[ne(t=ie(t,[e],i,t.name,5,a)),U(a,1)]}}}function _t(t){var e=vt(t,"string");return typeof e=="symbol"?e:e+""}function vt(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function at(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function bt(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 te=50,ut,lt=class extends st{static{({e:[ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt,ve],c:[ut,be]}=ft(this,[gt("rui-knob")],[[g({type:Number,reflect:!0,defaultValue:te}),0,"value"],[g({type:Number,defaultValue:0}),0,"min"],[g({type:Number,defaultValue:100}),0,"max"],[g({type:Number,defaultValue:1}),0,"step"],[g({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[[g({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),ot({ref:"control",attr:"aria-readonly",map:e=>String(e)})],0,"readOnly"],[[g({type:String,defaultValue:""}),ot([{ref:"label",bool:"hidden",invert:!0},{ref:"label",text:!0},{ref:"control",attr:"aria-label",map:e=>e||void 0}])],0,"label"],[g({type:Number,defaultValue:void 0}),0,"size"],[g({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[g({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[g({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[g({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[yt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[N({ref:"root"}),0,"rootTarget"],[N({ref:"label"}),0,"labelTarget"],[N({ref:"control"}),0,"controlTarget"],[N({ref:"track"}),0,"trackTarget"],[N({ref:"progress"}),0,"progressTarget"],[N({ref:"centerValue"}),0,"centerValueTarget"],[N({ref:"belowValue"}),0,"belowValueTarget"],[Tt(["value","min","max","step","valuePrecision","disabled","readOnly","effectiveDisabled","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[C({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[C({ref:"control",type:"pointermove"}),2,"onPointerMove"],[C({ref:"control",type:"pointerup"}),2,"onPointerUp"],[C({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[C({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,st))}value=(ve(this),ge(this));min=(ye(this),Te(this));max=(xe(this),we(this));step=(Ve(this),Pe(this));valuePrecision=(Ee(this),Ae(this));readOnly=(Se(this),Re(this));label=(Ie(this),Ne(this));size=(Me(this),Le(this));strokeWidth=(Oe(this),ke(this));showValue=(De(this),Ke(this));valuePosition=(Fe(this),Ce(this));valueTemplate=(ze(this),Be(this));changeEvent=(Ue(this),je(this));rootTarget=(We(this),$e(this));labelTarget=(Ge(this),Xe(this));controlTarget=(qe(this),Qe(this));trackTarget=(Ye(this),Je(this));progressTarget=(Ze(this),He(this));centerValueTarget=(et(this),tt(this));belowValueTarget=(rt(this),it(this));activePointerId=(nt(this),null);lastEmitted=null;rangeCommitQueued=!1;onConnected(){this.syncPresentation()}formValue(){return this.name?String(this.numericRange.clamp(this.value)):null}formState(){return String(this.value)}restoreFormState(e){this.value=Number(e),this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return O(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 r=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),i=this.resolvedValuePosition;this.syncKnobLayout(i),this.syncControlValues(e,r.valueText),this.syncRing(r),this.syncReadout(r.valueText,i)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControlValues(e,r){let i=this.controlTarget;i&&(i.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),i.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),i.setAttribute("aria-valuenow",String(e)),i.setAttribute("aria-valuetext",r))}syncRing(e){for(let r of[this.trackTarget,this.progressTarget])r?.setAttribute("r",String(e.radius)),r?.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,r){for(let[i,s]of[[this.centerValueTarget,this.showValue&&r==="center"],[this.belowValueTarget,this.showValue&&r==="below"]])i&&(i.textContent=e,i.toggleAttribute("hidden",!s))}syncPresentation(){this.controlTarget&&(this.controlTarget.disabled=this.effectiveDisabled),this.paint(this.numericRange.clamp(this.value)),this.queueNormalizedValueCommit()}queueNormalizedValueCommit(){this.rangeCommitQueued||(this.rangeCommitQueued=!0,queueMicrotask(()=>{this.rangeCommitQueued=!1;let e=this.numericRange.clamp(this.value);this.paint(e),H(this.value,e,this.step)||(this.value=e)}))}commitValue(e){if(this.effectiveDisabled||this.readOnly)return;let r=this.numericRange.clamp(e);this.paint(r),!H(r,this.value,this.step)&&(this.value=r,this.lastEmitted!==r&&(this.lastEmitted=r,this.changeEvent.emit({value:r})))}onPointerDown(e){let r=this.controlTarget;if(e.button!==0||this.effectiveDisabled||this.readOnly||!r)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,r.setPointerCapture(e.pointerId);let i=r.getBoundingClientRect(),s=ee(e.clientX,e.clientY,i,this.numericRange);s!=null&&this.commitValue(s),e.preventDefault()}onPointerMove(e){let r=this.controlTarget;if(e.pointerId!==this.activePointerId||!r)return;let i=r.getBoundingClientRect(),s=ee(e.clientX,e.clientY,i,this.numericRange);s!=null&&this.commitValue(s)}onPointerUp(e){e.pointerId===this.activePointerId&&(this.controlTarget?.releasePointerCapture(e.pointerId),this.activePointerId=null)}onPointerCancel(e){if(e.pointerId!==this.activePointerId)return;let r=this.controlTarget;r?.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),this.activePointerId=null}onKeydown(e){if(this.effectiveDisabled||this.readOnly)return;let r=fe(this.numericRange,this.value,e.key);r!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(r))}static{be()}};import{jsx as E,jsxs as re}from"@ecopages/jsx/jsx-runtime";function xt({value:t=te,min:e=0,max:r=100,step:i=1,disabled:s=!1,readOnly:l=!1,label:h,name:n,size:v,strokeWidth:p=14,showValue:c=!0,valuePosition:b="center",valueTemplate:f="{value}",valuePrecision:R,...z}){let M=O(e,r,i),D=M.clamp(t),B=X(D,e,r,i,p,f,R);return E(wt,{props:z,value:D,min:e,max:r,step:i,disabled:s,readOnly:l,label:h,name:n,size:v,strokeWidth:p,showValue:c,valuePosition:b,valueTemplate:f,valuePrecision:R,ring:B,range:M})}function wt({props:t,ring:e,range:r,...i}){return E("rui-knob",{...t,value:i.value,min:i.min,max:i.max,step:i.step,disabled:i.disabled,"prop:readOnly":i.readOnly,label:i.label,name:i.name,size:i.size,strokeWidth:i.strokeWidth,showValue:i.showValue,valuePosition:i.valuePosition,valueTemplate:i.valueTemplate,valuePrecision:i.valuePrecision,style:i.size?{"--rui-knob-size":`${i.size}px`}:void 0,children:E(Vt,{knob:i,ring:e,range:r})})}function Vt({knob:t,ring:e,range:r}){let i=t.valuePosition==="below";return re("div",{class:i?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[E("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),E(Pt,{knob:t,ring:e,range:r,valueBelow:i}),E("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!i,children:e.valueText})]})}function Pt({knob:t,ring:e,range:r,valueBelow:i}){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":r.lowerBound,"aria-valuemax":r.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:[E("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)`}),E("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)`})]}),E("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||i,children:e.valueText})]})}export{xt as RuiKnob,ut 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_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _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;\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 { bindTo, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { FormAssociatedElement } from \"@ecopages/radiant/form-associated-element\";\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 FormAssociatedElement {\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_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _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, _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 attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"control\",\n attr: \"aria-readonly\",\n map: readOnly => String(readOnly)\n })], 0, \"readOnly\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n ref: \"label\",\n bool: \"hidden\",\n invert: true\n }, {\n ref: \"label\",\n text: true\n }, {\n ref: \"control\",\n attr: \"aria-label\",\n map: label => label || void 0\n }])], 0, \"label\"], [prop({\n type: Number,\n defaultValue: void 0\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\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"effectiveDisabled\", \"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, FormAssociatedElement));\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 readOnly = (_init_extra_valuePrecision(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n size = (_init_extra_label(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 activePointerId = (_init_extra_belowValueTarget(this), null);\n lastEmitted = null;\n rangeCommitQueued = false;\n onConnected() {\n this.syncPresentation();\n }\n formValue() {\n return this.name ? String(this.numericRange.clamp(this.value)) : null;\n }\n /** @remarks The reset value must survive a name assigned after first connect. */\n formState() {\n return String(this.value);\n }\n restoreFormState(state) {\n this.value = Number(state);\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.syncControlValues(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\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 syncControlValues(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 }\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 syncPresentation() {\n if (this.controlTarget) this.controlTarget.disabled = this.effectiveDisabled;\n this.paint(this.numericRange.clamp(this.value));\n this.queueNormalizedValueCommit();\n }\n /**\n * @remarks JSX and Storybook can set `value` before `step` / `max`. Snapping in\n * that same turn would round `0.2` onto the default step of `1`.\n */\n queueNormalizedValueCommit() {\n if (this.rangeCommitQueued) return;\n this.rangeCommitQueued = true;\n queueMicrotask(() => {\n this.rangeCommitQueued = false;\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 }\n commitValue(next) {\n if (this.effectiveDisabled || 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.effectiveDisabled || 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.effectiveDisabled || 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 const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const roundingNoise = Number.EPSILON * Math.max(Math.abs(left), Math.abs(right), resolvedStep) * 4;\n return Math.abs(left - right) <= Math.min(roundingNoise, resolvedStep * 1e-6);\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 })]\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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",
|
|
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_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _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;\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 { bindTo, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { FormAssociatedElement } from \"@ecopages/radiant/form-associated-element\";\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 FormAssociatedElement {\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_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _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, _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 attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"control\",\n attr: \"aria-readonly\",\n map: readOnly => String(readOnly)\n })], 0, \"readOnly\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n ref: \"label\",\n bool: \"hidden\",\n invert: true\n }, {\n ref: \"label\",\n text: true\n }, {\n ref: \"control\",\n attr: \"aria-label\",\n map: label => label || void 0\n }])], 0, \"label\"], [prop({\n type: Number,\n defaultValue: void 0\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\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"effectiveDisabled\", \"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, FormAssociatedElement));\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 readOnly = (_init_extra_valuePrecision(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n size = (_init_extra_label(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 activePointerId = (_init_extra_belowValueTarget(this), null);\n lastEmitted = null;\n rangeCommitQueued = false;\n onConnected() {\n this.syncPresentation();\n }\n formValue() {\n return this.name ? String(this.numericRange.clamp(this.value)) : null;\n }\n /** @remarks The reset value must survive a name assigned after first connect. */\n formState() {\n return String(this.value);\n }\n restoreFormState(state) {\n this.value = Number(state);\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.syncControlValues(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\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 syncControlValues(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 }\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 syncPresentation() {\n if (this.controlTarget) this.controlTarget.disabled = this.effectiveDisabled;\n this.paint(this.numericRange.clamp(this.value));\n this.queueNormalizedValueCommit();\n }\n /**\n * @remarks JSX and Storybook can set `value` before `step` / `max`. Snapping in\n * that same turn would round `0.2` onto the default step of `1`.\n */\n queueNormalizedValueCommit() {\n if (this.rangeCommitQueued) return;\n this.rangeCommitQueued = true;\n queueMicrotask(() => {\n this.rangeCommitQueued = false;\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 }\n commitValue(next) {\n if (this.effectiveDisabled || 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 const control = this.controlTarget;\n if (event2.button !== 0 || this.effectiveDisabled || this.readOnly || !control) {\n return;\n }\n this.activePointerId = event2.pointerId;\n this.lastEmitted = this.value;\n control.setPointerCapture(event2.pointerId);\n const rect = control.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 const control = this.controlTarget;\n if (event2.pointerId !== this.activePointerId || !control) {\n return;\n }\n const rect = control.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 const control = this.controlTarget;\n if (control?.hasPointerCapture(event2.pointerId)) {\n control.releasePointerCapture(event2.pointerId);\n }\n this.activePointerId = null;\n }\n onKeydown(event2) {\n if (this.effectiveDisabled || 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 const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const roundingNoise = Number.EPSILON * Math.max(Math.abs(left), Math.abs(right), resolvedStep) * 4;\n return Math.abs(left - right) <= Math.min(roundingNoise, resolvedStep * 1e-6);\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 })]\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": "AAMA,OAAS,UAAAA,GAAQ,iBAAAC,GAAe,SAAAC,GAAO,WAAAC,EAAS,aAAAC,GAAW,QAAAC,EAAM,SAAAC,MAAa,oBAC9E,OAAS,yBAAAC,OAA6B,4CCL/B,SAASC,GAAuBC,EAAM,CAC3C,GAAI,CAAC,OAAO,SAASA,CAAI,GAAKA,GAAQ,EACpC,MAAO,GAET,IAAMC,EAAQD,EAAK,SAAS,EAAE,MAAM,kCAAkC,EACtE,GAAI,CAACC,EACH,MAAO,GAET,IAAMC,EAAWD,EAAM,CAAC,GAAG,QAAU,EAC/BE,EAAWF,EAAM,CAAC,EAAI,OAAOA,EAAM,CAAC,CAAC,EAAI,EAC/C,OAAO,KAAK,IAAI,GAA2B,KAAK,IAAI,EAAGC,EAAWC,CAAQ,CAAC,CAC7E,CACO,SAASC,GAAsBJ,EAAMK,EAAgB,CAC1D,OAAI,OAAOA,GAAmB,UAAY,OAAO,SAASA,CAAc,GAAKA,GAAkB,EACtF,KAAK,IAAI,GAA2B,KAAK,MAAMA,CAAc,CAAC,EAEhEN,GAAuBC,CAAI,CACpC,CACO,SAASM,GAAmBC,EAAOF,EAAgB,CACxD,OAAO,OAAO,SAASE,CAAK,EAAIA,EAAM,QAAQF,CAAc,EAAI,EAClE,CACO,SAASG,EAAkBC,EAAMC,EAAOV,EAAM,CACnD,GAAI,OAAO,GAAGS,EAAMC,CAAK,EACvB,MAAO,GAET,GAAI,CAAC,OAAO,SAASD,CAAI,GAAK,CAAC,OAAO,SAASC,CAAK,EAClD,MAAO,GAET,IAAMC,EAAe,OAAO,SAASX,CAAI,GAAKA,EAAO,EAAIA,EAAO,EAC1DY,EAAgB,OAAO,QAAU,KAAK,IAAI,KAAK,IAAIH,CAAI,EAAG,KAAK,IAAIC,CAAK,EAAGC,CAAY,EAAI,EACjG,OAAO,KAAK,IAAIF,EAAOC,CAAK,GAAK,KAAK,IAAIE,EAAeD,EAAe,IAAI,CAC9E,CACO,SAASE,EAAmBC,EAAKC,EAAKf,EAAM,CACjD,IAAMgB,EAAc,OAAO,SAASF,CAAG,EAAIA,EAAM,EAC3CG,EAAc,OAAO,SAASF,CAAG,EAAIA,EAAM,IAC3CG,EAAa,KAAK,IAAIF,EAAaC,CAAW,EAC9CE,EAAa,KAAK,IAAIH,EAAaC,CAAW,EAC9CN,EAAe,OAAO,SAASX,CAAI,GAAKA,EAAO,EAAIA,EAAO,EAC1DoB,EAAOD,EAAaD,EACpBG,EAAQd,GAAS,CACrB,IAAMe,EAAY,OAAO,SAASf,CAAK,EAAIA,EAAQW,EAC7CK,EAAUL,EAAa,KAAK,OAAOI,EAAYJ,GAAcP,CAAY,EAAIA,EACnF,OAAO,KAAK,IAAIQ,EAAY,KAAK,IAAID,EAAYK,CAAO,CAAC,CAC3D,EACA,MAAO,CACL,WAAAL,EACA,WAAAC,EACA,KAAMR,EACN,MAAAU,EACA,SAAUd,GAASa,IAAS,EAAI,GAAKC,EAAMd,CAAK,EAAIW,GAAcE,EAClE,eAAgBI,GAAS,CACvB,IAAMC,EAAO,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,OAAO,SAASD,CAAK,EAAIA,EAAQ,CAAC,CAAC,EACxE,OAAOH,EAAMH,EAAaO,EAAOL,CAAI,CACvC,CACF,CACF,CACO,SAASM,GAAmBC,EAAOC,EAASC,EAAK,CACtD,OAAQA,EAAK,CACX,IAAK,aACL,IAAK,UACH,OAAOF,EAAM,MAAMC,EAAUD,EAAM,IAAI,EACzC,IAAK,YACL,IAAK,YACH,OAAOA,EAAM,MAAMC,EAAUD,EAAM,IAAI,EACzC,IAAK,OACH,OAAOA,EAAM,WACf,IAAK,MACH,OAAOA,EAAM,WACf,IAAK,SACH,OAAOA,EAAM,MAAMC,EAAUD,EAAM,KAAO,EAA2B,EACvE,IAAK,WACH,OAAOA,EAAM,MAAMC,EAAUD,EAAM,KAAO,EAA2B,EACvE,QACE,MACJ,CACF,CC5EO,IAAMG,GAAmB,IACnBC,EAAiB,IACjBC,GAA4B,GACnCC,GAAoBF,GAAkB,IAAMA,GAAkB,EAC7D,SAASG,GAAuBC,EAAa,CAClD,OAAO,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,OAAO,SAASA,CAAW,EAAI,OAAOA,CAAW,EAAIH,EAAyB,CAAC,CAClH,CACO,SAASI,GAAgBC,EAAOC,EAAgBC,EAAU,CAC/D,OAAOA,EAAS,QAAQ,UAAWC,GAAmBH,EAAOC,CAAc,CAAC,CAC9E,CACO,SAASG,EAAeJ,EAAOK,EAAKC,EAAKC,EAAMT,EAAaU,EAAeP,EAAgB,CAChG,IAAMQ,EAAQC,EAAmBL,EAAKC,EAAKC,CAAI,EACzCI,EAAsBd,GAAuBC,CAAW,EACxDc,EAAS,GAAKD,EAAsB,EACpCE,EAAgB,EAAI,KAAK,GAAKD,EAC9BE,EAAYpB,EAAiB,IAAMmB,EACnCE,EAAUN,EAAM,MAAMT,CAAK,EAC3BgB,EAAYC,GAAsBV,EAAMN,CAAc,EAC5D,MAAO,CACL,WAAYR,GACZ,YAAakB,EACb,OAAAC,EACA,cAAAC,EACA,UAAAC,EACA,eAAgBL,EAAM,SAASM,CAAO,EAAID,EAC1C,UAAWf,GAAgBgB,EAASC,EAAWR,CAAa,CAC9D,CACF,CACO,SAASU,GAAqBC,EAASC,EAASC,EAAMZ,EAAO,CAClE,GAAIY,EAAK,QAAU,GAAKA,EAAK,SAAW,EACtC,OAAO,KAGT,IAAMC,GADe,KAAK,MAAMF,GAAWC,EAAK,IAAMA,EAAK,OAAS,GAAIF,GAAWE,EAAK,KAAOA,EAAK,MAAQ,EAAE,EAAI,IAAM,KAAK,GAC5F5B,GAAmB,KAAO,IACrD8B,EAAeD,GAAY5B,EAAiB4B,EAAWA,GAAY1B,GAAoBF,EAAiB,EAC9G,OAAOe,EAAM,eAAec,EAAe7B,CAAc,CAC3D,CFrCA,IAAI8B,GAAYC,GAAYC,GAAaC,GAAmBC,GAAWC,GAAiBC,GAAWC,GAAiBC,GAAYC,GAAkBC,GAAsBC,GAA4BC,GAAgBC,GAAsBC,GAAaC,GAAmBC,GAAYC,GAAkBC,GAAmBC,GAAyBC,GAAiBC,GAAuBC,GAAqBC,GAA2BC,GAAqBC,GAA2BC,GAAmBC,GAAyBC,GAAkBC,GAAwBC,GAAmBC,GAAyBC,GAAqBC,GAA2BC,GAAmBC,GAAyBC,GAAsBC,GAA4BC,GAAyBC,GAA+BC,GAAwBC,GAC5zB,SAASC,GAAWC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAG,CAAE,IAAIC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAI,OAAO,UAAY,OAAO,IAAI,iBAAiB,EAAGC,EAAI,OAAO,eAAgBC,EAAI,OAAO,OAAQC,EAAI,CAACD,EAAE,IAAI,EAAGA,EAAE,IAAI,CAAC,EAAGE,EAAIhB,EAAE,OAAQ,SAASiB,EAAEjB,EAAGC,EAAGC,EAAG,CAAE,OAAO,SAAU,EAAGE,EAAG,CAAEH,IAAMG,EAAI,EAAG,EAAIL,GAAI,QAASM,EAAI,EAAGA,EAAIL,EAAE,OAAQK,IAAKD,EAAIJ,EAAEK,CAAC,EAAE,MAAM,EAAGH,EAAI,CAACE,CAAC,EAAI,CAAC,CAAC,EAAG,OAAOF,EAAIE,EAAI,CAAG,CAAG,CAAE,SAASc,EAAEnB,EAAGC,EAAGC,EAAGC,EAAG,CAAE,GAAkB,OAAOH,GAArB,aAA2BG,GAAgBH,IAAX,QAAe,MAAM,IAAI,UAAUC,EAAI,UAAYC,GAAK,MAAQ,eAAiBC,EAAI,GAAK,gBAAgB,EAAG,OAAOH,CAAG,CAAE,SAASoB,GAASpB,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGG,EAAGC,EAAGC,EAAGC,EAAGC,GAAG,CAAE,SAASC,EAAEb,EAAG,CAAE,GAAI,CAACY,GAAEZ,CAAC,EAAG,MAAM,IAAI,UAAU,qDAAqD,CAAG,CAAE,IAAIe,EAAI,CAAC,EAAE,OAAOd,EAAE,CAAC,CAAC,EAAGgB,GAAIhB,EAAE,CAAC,EAAGoB,EAAI,CAACb,EAAGc,EAAUlB,IAAN,EAASmB,GAAUnB,IAAN,EAASoB,GAAUpB,IAAN,EAASqB,EAAUrB,IAAN,EAAS,SAASsB,EAAEzB,EAAGC,EAAGC,GAAG,CAAE,OAAO,SAAUC,EAAGC,GAAG,CAAE,OAAOH,IAAMG,GAAID,EAAGA,EAAIJ,GAAIG,IAAKA,GAAEC,CAAC,EAAGuB,EAAE1B,CAAC,EAAE,KAAKG,EAAGC,EAAC,CAAG,CAAG,CAAE,GAAI,CAACgB,EAAG,CAAE,IAAIM,EAAI,CAAC,EAAGC,EAAI,CAAC,EAAGC,EAAIN,GAAI,MAAQC,IAAKF,EAAI,MAAQ,QAAS,GAAIZ,GAAKC,GAAKW,EAAIK,EAAI,CAAE,IAAKG,GAAiB,UAAY,CAAE,OAAOb,GAAE,IAAI,CAAG,EAAGd,EAAG,KAAK,EAAG,IAAK,SAAUH,EAAG,CAAEC,EAAE,CAAC,EAAE,KAAMD,CAAC,CAAG,CAAE,EAAI2B,EAAEE,CAAC,EAAIZ,GAAGN,GAAKmB,GAAiBH,EAAEE,CAAC,EAAG1B,EAAGsB,EAAI,GAAKI,CAAC,GAAKlB,IAAMgB,EAAI,OAAO,yBAAyB3B,EAAGG,CAAC,GAAI,CAACQ,GAAK,CAACD,EAAG,CAAE,IAAKH,EAAIS,EAAE,CAACP,CAAC,EAAEN,CAAC,KAAaI,EAAIH,KAAX,EAAe,MAAM,MAAM,+CAAiDuB,EAAEE,CAAC,EAAE,KAAO,wBAAwB,EAAGb,EAAE,CAACP,CAAC,EAAEN,CAAC,EAAIC,EAAI,EAAI,EAAIA,CAAG,CAAE,CAAE,QAAS2B,EAAI/B,EAAGgC,EAAIjB,EAAE,OAAS,EAAGiB,GAAK,EAAGA,GAAK9B,EAAI,EAAI,EAAG,CAAE,IAAI+B,GAAId,EAAEJ,EAAEiB,CAAC,EAAG,cAAe,KAAM,EAAE,EAAGE,GAAIhC,EAAIa,EAAEiB,EAAI,CAAC,EAAI,OAAQG,EAAI,CAAC,EAAGC,EAAI,CAAE,KAAM,CAAC,QAAS,WAAY,SAAU,SAAU,SAAU,OAAO,EAAEhC,CAAC,EAAG,KAAMD,EAAG,SAAUG,EAAG,eAAgB,SAAUN,EAAGC,EAAG,CAAE,GAAID,EAAE,EAAG,MAAM,IAAI,UAAU,gEAAgE,EAAGmB,EAAElB,EAAG,iBAAkB,KAAM,EAAE,EAAGI,EAAE,KAAKJ,CAAC,CAAG,EAAE,KAAK,KAAMkC,CAAC,CAAE,EAAG,GAAId,EAAGd,EAAI0B,GAAE,KAAKC,GAAGH,EAAGK,CAAC,EAAGD,EAAE,EAAI,EAAGhB,EAAEZ,EAAG,mBAAoB,QAAQ,IAAMwB,EAAIxB,WAAY6B,EAAE,OAAS3B,EAAG2B,EAAE,QAAU1B,EAAGH,EAAI6B,EAAE,OAAS,CAAE,IAAK1B,EAAIE,GAAE,KAAK,EAAI,SAAUZ,EAAG,CAAE,OAAOG,KAAKH,CAAG,CAAE,EAAGwB,KAAMjB,EAAE,IAAMG,EAAIe,EAAI,SAAUzB,EAAG,CAAE,OAAOa,EAAEb,CAAC,EAAG2B,EAAE,KAAO,EAAID,EAAE,MAAO,EAAGb,CAAC,EAAI,SAAUb,EAAG,CAAE,OAAOA,EAAEG,CAAC,CAAG,GAAIsB,GAAKF,KAAMhB,EAAE,IAAMG,EAAIgB,EAAE,MAAO,EAAGb,CAAC,EAAI,SAAUb,EAAGC,EAAG,CAAED,EAAEG,CAAC,EAAIF,CAAG,GAAI8B,EAAIE,GAAE,KAAKC,GAAGZ,EAAI,CAAE,IAAKK,EAAE,IAAK,IAAKA,EAAE,GAAI,EAAIA,EAAEE,CAAC,EAAGO,CAAC,EAAGD,EAAE,EAAI,EAAGb,GAAK,GAAgB,OAAOS,GAAnB,UAAwBA,GAAIxB,EAAIY,EAAEY,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMpB,IAAKA,EAAIY,EAAEY,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMpB,IAAKA,EAAIY,EAAEY,EAAE,KAAM,eAAe,IAAMH,EAAE,QAAQrB,CAAC,UAAsBwB,IAAX,OAAc,MAAM,IAAI,UAAU,0FAA0F,OAAUZ,EAAEY,GAAIpB,EAAI,QAAU,UAAY,cAAe,QAAQ,IAAMA,EAAIiB,EAAE,QAAQG,CAAC,EAAIJ,EAAEE,CAAC,EAAIE,EAAI,CAAE,OAAO3B,EAAI,GAAKI,EAAE,KAAKU,EAAEU,EAAGnB,EAAG,CAAC,EAAGS,EAAEb,EAAGI,EAAG,CAAC,CAAC,EAAGE,GAAKU,IAAMX,EAAIY,EAAId,EAAE,OAAO,GAAI,EAAGkB,EAAE,MAAOjB,CAAC,EAAGiB,EAAE,MAAOjB,CAAC,CAAC,EAAID,EAAE,KAAKiB,EAAIE,EAAEE,CAAC,EAAIV,EAAE,KAAK,KAAKQ,EAAEE,CAAC,CAAC,CAAC,EAAIf,EAAEd,EAAGG,EAAGwB,CAAC,GAAII,CAAG,CAAE,SAASV,GAAErB,EAAG,CAAE,OAAOc,EAAEd,EAAGa,EAAG,CAAE,aAAc,GAAI,WAAY,GAAI,MAAOP,CAAE,CAAC,CAAG,CAAE,OAAkBD,IAAX,SAAiBC,EAAID,EAAEQ,CAAC,GAAIP,EAAIS,EAAUT,GAAI,IAAQ,EAAGI,EAAI,CAAC,EAAGC,EAAI,SAAUX,EAAG,CAAEA,GAAKU,EAAE,KAAKQ,EAAElB,CAAC,CAAC,CAAG,EAAGY,EAAI,SAAUX,EAAGE,EAAG,CAAE,QAASE,EAAI,EAAGA,EAAIH,EAAE,OAAQG,IAAK,CAAE,IAAIC,EAAIJ,EAAEG,CAAC,EAAGE,EAAID,EAAE,CAAC,EAAGK,EAAI,EAAIJ,EAAG,IAAK,EAAIA,IAAMN,GAAK,CAACU,GAAKR,EAAG,CAAE,IAAIS,EAAIN,EAAE,CAAC,EAAGO,EAAI,CAAC,CAACP,EAAE,CAAC,EAAGQ,EAAI,GAAKP,EAAGa,GAASnB,EAAID,EAAIA,EAAE,UAAWM,EAAGQ,EAAGD,EAAI,IAAMD,EAAIyB,GAAezB,CAAC,EAAGD,EAAGA,EAAI,EAAI,CAAC,EAAIV,EAAIQ,EAAIA,GAAK,CAAC,EAAID,EAAIA,GAAK,CAAC,EAAGE,EAAG,CAAC,CAACT,EAAGY,EAAGV,EAAGF,GAAKY,EAAI,SAAUZ,EAAG,CAAE,OAAOqC,GAAYrC,CAAC,IAAMD,CAAG,EAAII,CAAC,CAAG,CAAE,CAAE,EAAGQ,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGD,EAAEH,CAAC,EAAGG,EAAEF,CAAC,EAAGF,EAAIG,EAAGO,GAAKI,GAAErB,CAAC,EAAG,CAAE,EAAGO,EAAG,IAAI,GAAI,CAAE,IAAIL,EAAI,CAAC,EAAG,OAAOe,GAAK,CAACI,GAAErB,EAAIoB,GAASpB,EAAG,CAACC,CAAC,EAAGE,EAAGH,EAAE,KAAM,EAAGE,CAAC,CAAC,EAAGgB,EAAEhB,EAAG,CAAC,CAAC,CAAG,CAAE,CAAG,CACn/G,SAASmC,GAAe,EAAG,CAAE,IAAIhC,EAAIkC,GAAa,EAAG,QAAQ,EAAG,OAAmB,OAAOlC,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASkC,GAAa,EAAGpC,EAAG,CAAE,GAAgB,OAAO,GAAnB,UAAwB,CAAC,EAAG,OAAO,EAAG,IAAIH,EAAI,EAAE,OAAO,WAAW,EAAG,GAAeA,IAAX,OAAc,CAAE,IAAI,EAAIA,EAAE,KAAK,EAAGG,GAAK,SAAS,EAAG,GAAgB,OAAO,GAAnB,SAAsB,OAAO,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBA,IAAb,SAAiB,OAAS,QAAQ,CAAC,CAAG,CACvT,SAAS2B,GAAiB9B,EAAGC,EAAGC,EAAG,CAAc,OAAOD,GAAnB,WAAyBA,GAAKA,EAAIA,EAAE,aAAe,IAAMA,EAAI,IAAM,IAAK,GAAI,CAAE,OAAO,eAAeD,EAAG,OAAQ,CAAE,aAAc,GAAI,MAAOE,EAAIA,EAAI,IAAMD,EAAIA,CAAE,CAAC,CAAG,MAAY,CAAC,CAAE,OAAOD,CAAG,CAChO,SAASsC,GAAYtC,EAAG,CAAE,GAAI,OAAOA,CAAC,IAAMA,EAAG,MAAM,UAAU,qDAAgEA,IAAT,KAAa,OAAOA,EAAI,OAAO,EAAG,OAAOA,CAAG,CAK3J,IAAMwC,GAAqB,GAC9BC,GACEC,GAAN,cAAsBC,EAAsB,CAC1C,MAAO,EACJ,CACC,EAAG,CAACpF,GAAaC,GAAmBC,GAAWC,GAAiBC,GAAWC,GAAiBC,GAAYC,GAAkBC,GAAsBC,GAA4BC,GAAgBC,GAAsBC,GAAaC,GAAmBC,GAAYC,GAAkBC,GAAmBC,GAAyBC,GAAiBC,GAAuBC,GAAqBC,GAA2BC,GAAqBC,GAA2BC,GAAmBC,GAAyBC,GAAkBC,GAAwBC,GAAmBC,GAAyBC,GAAqBC,GAA2BC,GAAmBC,GAAyBC,GAAsBC,GAA4BC,GAAyBC,GAA+BC,GAAwBC,GAA8BzC,EAAU,EAC50B,EAAG,CAACoF,GAAUnF,EAAU,CAC1B,EAAIyC,GAAW,KAAM,CAAC6C,GAAc,UAAU,CAAC,EAAG,CAAC,CAACC,EAAK,CACvD,KAAM,OACN,QAAS,GACT,aAAcL,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACK,EAAK,CACrB,KAAM,OACN,aAAc,CAChB,CAAC,EAAG,EAAG,KAAK,EAAG,CAACA,EAAK,CACnB,KAAM,OACN,aAAc,GAChB,CAAC,EAAG,EAAG,KAAK,EAAG,CAACA,EAAK,CACnB,KAAM,OACN,aAAc,CAChB,CAAC,EAAG,EAAG,MAAM,EAAG,CAACA,EAAK,CACpB,KAAM,OACN,UAAW,kBACX,aAAc,OAAO,GACvB,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAAC,CAACA,EAAK,CAC/B,KAAM,QACN,UAAW,YACX,QAAS,GACT,aAAc,EAChB,CAAC,EAAGC,GAAO,CACT,IAAK,UACL,KAAM,gBACN,IAAKC,GAAY,OAAOA,CAAQ,CAClC,CAAC,CAAC,EAAG,EAAG,UAAU,EAAG,CAAC,CAACF,EAAK,CAC1B,KAAM,OACN,aAAc,EAChB,CAAC,EAAGC,GAAO,CAAC,CACV,IAAK,QACL,KAAM,SACN,OAAQ,EACV,EAAG,CACD,IAAK,QACL,KAAM,EACR,EAAG,CACD,IAAK,UACL,KAAM,aACN,IAAKE,GAASA,GAAS,MACzB,CAAC,CAAC,CAAC,EAAG,EAAG,OAAO,EAAG,CAACH,EAAK,CACvB,KAAM,OACN,aAAc,MAChB,CAAC,EAAG,EAAG,MAAM,EAAG,CAACA,EAAK,CACpB,KAAM,OACN,UAAW,eACX,aAAc,EAChB,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAK,CAC3B,KAAM,QACN,UAAW,aACX,aAAc,EAChB,CAAC,EAAG,EAAG,WAAW,EAAG,CAACA,EAAK,CACzB,KAAM,OACN,UAAW,iBACX,aAAc,QAChB,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAK,CAC7B,KAAM,OACN,UAAW,iBACX,aAAc,SAChB,CAAC,EAAG,EAAG,eAAe,EAAG,CAACI,GAAM,CAC9B,KAAM,aACN,QAAS,GACT,SAAU,EACZ,CAAC,EAAG,EAAG,aAAa,EAAG,CAACC,EAAM,CAC5B,IAAK,MACP,CAAC,EAAG,EAAG,YAAY,EAAG,CAACA,EAAM,CAC3B,IAAK,OACP,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAM,CAC5B,IAAK,SACP,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAM,CAC9B,IAAK,OACP,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAM,CAC5B,IAAK,UACP,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACA,EAAM,CAC/B,IAAK,aACP,CAAC,EAAG,EAAG,mBAAmB,EAAG,CAACA,EAAM,CAClC,IAAK,YACP,CAAC,EAAG,EAAG,kBAAkB,EAAG,CAACC,GAAU,CAAC,QAAS,MAAO,MAAO,OAAQ,iBAAkB,WAAY,WAAY,oBAAqB,OAAQ,QAAS,OAAQ,cAAe,YAAa,gBAAiB,eAAe,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACC,EAAQ,CAC5P,IAAK,UACL,KAAM,aACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,IAAK,UACL,KAAM,aACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,IAAK,UACL,KAAM,WACR,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAQ,CAC9B,IAAK,UACL,KAAM,eACR,CAAC,EAAG,EAAG,iBAAiB,EAAG,CAACA,EAAQ,CAClC,IAAK,UACL,KAAM,SACR,CAAC,EAAG,EAAG,WAAW,CAAC,EAAG,EAAG,OAAQT,EAAqB,EACxD,CACA,OAAStF,GAAW,IAAI,EAAGE,GAAY,IAAI,GAC3C,KAAOC,GAAkB,IAAI,EAAGC,GAAU,IAAI,GAC9C,KAAOC,GAAgB,IAAI,EAAGC,GAAU,IAAI,GAC5C,MAAQC,GAAgB,IAAI,EAAGC,GAAW,IAAI,GAC9C,gBAAkBC,GAAiB,IAAI,EAAGC,GAAqB,IAAI,GACnE,UAAYC,GAA2B,IAAI,EAAGC,GAAe,IAAI,GACjE,OAASC,GAAqB,IAAI,EAAGC,GAAY,IAAI,GACrD,MAAQC,GAAkB,IAAI,EAAGC,GAAW,IAAI,GAChD,aAAeC,GAAiB,IAAI,EAAGC,GAAkB,IAAI,GAC7D,WAAaC,GAAwB,IAAI,EAAGC,GAAgB,IAAI,GAChE,eAAiBC,GAAsB,IAAI,EAAGC,GAAoB,IAAI,GACtE,eAAiBC,GAA0B,IAAI,EAAGC,GAAoB,IAAI,GAC1E,aAAeC,GAA0B,IAAI,EAAGC,GAAkB,IAAI,GACtE,YAAcC,GAAwB,IAAI,EAAGC,GAAiB,IAAI,GAClE,aAAeC,GAAuB,IAAI,EAAGC,GAAkB,IAAI,GACnE,eAAiBC,GAAwB,IAAI,EAAGC,GAAoB,IAAI,GACxE,aAAeC,GAA0B,IAAI,EAAGC,GAAkB,IAAI,GACtE,gBAAkBC,GAAwB,IAAI,EAAGC,GAAqB,IAAI,GAC1E,mBAAqBC,GAA2B,IAAI,EAAGC,GAAwB,IAAI,GACnF,kBAAoBC,GAA8B,IAAI,EAAGC,GAAuB,IAAI,GACpF,iBAAmBC,GAA6B,IAAI,EAAG,MACvD,YAAc,KACd,kBAAoB,GACpB,aAAc,CACZ,KAAK,iBAAiB,CACxB,CACA,WAAY,CACV,OAAO,KAAK,KAAO,OAAO,KAAK,aAAa,MAAM,KAAK,KAAK,CAAC,EAAI,IACnE,CAEA,WAAY,CACV,OAAO,OAAO,KAAK,KAAK,CAC1B,CACA,iBAAiBuD,EAAO,CACtB,KAAK,MAAQ,OAAOA,CAAK,EACzB,KAAK,iBAAiB,CACxB,CACA,gBAAiB,CACf,KAAK,iBAAiB,CACxB,CACA,IAAI,cAAe,CACjB,OAAOC,EAAmB,KAAK,IAAK,KAAK,IAAK,KAAK,IAAI,CACzD,CACA,IAAI,cAAe,CACjB,OAAO,OAAO,KAAK,MAAS,UAAY,OAAO,SAAS,KAAK,IAAI,GAAK,KAAK,KAAO,EAAI,KAAK,KAAO,MACpG,CACA,IAAI,uBAAwB,CAC1B,OAAO,KAAK,gBAAkB,QAAU,QAAU,QACpD,CACA,MAAMC,EAAO,CACX,IAAMC,EAAOC,EAAeF,EAAO,KAAK,IAAK,KAAK,IAAK,KAAK,KAAM,KAAK,YAAa,KAAK,cAAe,KAAK,cAAc,EACrHG,EAAgB,KAAK,sBAC3B,KAAK,eAAeA,CAAa,EACjC,KAAK,kBAAkBH,EAAOC,EAAK,SAAS,EAC5C,KAAK,SAASA,CAAI,EAClB,KAAK,YAAYA,EAAK,UAAWE,CAAa,CAChD,CACA,eAAeA,EAAe,CAC5B,KAAK,YAAY,UAAU,OAAO,wBAAyBA,IAAkB,OAAO,EAChF,KAAK,aACP,KAAK,MAAM,YAAY,kBAAmB,GAAG,KAAK,YAAY,IAAI,EAElE,KAAK,MAAM,eAAe,iBAAiB,CAE/C,CACA,kBAAkBH,EAAOI,EAAW,CAClC,IAAMC,EAAU,KAAK,cAChBA,IACLA,EAAQ,aAAa,gBAAiB,OAAO,KAAK,aAAa,UAAU,CAAC,EAC1EA,EAAQ,aAAa,gBAAiB,OAAO,KAAK,aAAa,UAAU,CAAC,EAC1EA,EAAQ,aAAa,gBAAiB,OAAOL,CAAK,CAAC,EACnDK,EAAQ,aAAa,iBAAkBD,CAAS,EAClD,CACA,SAASH,EAAM,CACb,QAAWK,IAAU,CAAC,KAAK,YAAa,KAAK,cAAc,EACzDA,GAAQ,aAAa,IAAK,OAAOL,EAAK,MAAM,CAAC,EAC7CK,GAAQ,aAAa,eAAgB,OAAOL,EAAK,WAAW,CAAC,EAE/D,KAAK,aAAa,aAAa,mBAAoB,GAAGA,EAAK,SAAS,IAAIA,EAAK,aAAa,EAAE,EAC5F,KAAK,gBAAgB,aAAa,mBAAoB,GAAGA,EAAK,cAAc,IAAIA,EAAK,aAAa,EAAE,CACtG,CACA,YAAYG,EAAWD,EAAe,CACpC,OAAW,CAACI,EAAQC,CAAO,GAAK,CAAC,CAAC,KAAK,kBAAmB,KAAK,WAAaL,IAAkB,QAAQ,EAAG,CAAC,KAAK,iBAAkB,KAAK,WAAaA,IAAkB,OAAO,CAAC,EACtKI,IAGLA,EAAO,YAAcH,EACrBG,EAAO,gBAAgB,SAAU,CAACC,CAAO,EAE7C,CACA,kBAAmB,CACb,KAAK,gBAAe,KAAK,cAAc,SAAW,KAAK,mBAC3D,KAAK,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK,CAAC,EAC9C,KAAK,2BAA2B,CAClC,CAKA,4BAA6B,CACvB,KAAK,oBACT,KAAK,kBAAoB,GACzB,eAAe,IAAM,CACnB,KAAK,kBAAoB,GACzB,IAAMR,EAAQ,KAAK,aAAa,MAAM,KAAK,KAAK,EAChD,KAAK,MAAMA,CAAK,EACXS,EAAkB,KAAK,MAAOT,EAAO,KAAK,IAAI,IACjD,KAAK,MAAQA,EAEjB,CAAC,EACH,CACA,YAAYU,EAAM,CAChB,GAAI,KAAK,mBAAqB,KAAK,SACjC,OAEF,IAAMV,EAAQ,KAAK,aAAa,MAAMU,CAAI,EAC1C,KAAK,MAAMV,CAAK,EACZ,CAAAS,EAAkBT,EAAO,KAAK,MAAO,KAAK,IAAI,IAGlD,KAAK,MAAQA,EACT,KAAK,cAAgBA,IACvB,KAAK,YAAcA,EACnB,KAAK,YAAY,KAAK,CACpB,MAAAA,CACF,CAAC,GAEL,CACA,cAAcW,EAAQ,CACpB,IAAMN,EAAU,KAAK,cACrB,GAAIM,EAAO,SAAW,GAAK,KAAK,mBAAqB,KAAK,UAAY,CAACN,EACrE,OAEF,KAAK,gBAAkBM,EAAO,UAC9B,KAAK,YAAc,KAAK,MACxBN,EAAQ,kBAAkBM,EAAO,SAAS,EAC1C,IAAMC,EAAOP,EAAQ,sBAAsB,EACrCL,EAAQa,GAAqBF,EAAO,QAASA,EAAO,QAASC,EAAM,KAAK,YAAY,EACtFZ,GAAS,MACX,KAAK,YAAYA,CAAK,EAExBW,EAAO,eAAe,CACxB,CACA,cAAcA,EAAQ,CACpB,IAAMN,EAAU,KAAK,cACrB,GAAIM,EAAO,YAAc,KAAK,iBAAmB,CAACN,EAChD,OAEF,IAAMO,EAAOP,EAAQ,sBAAsB,EACrCL,EAAQa,GAAqBF,EAAO,QAASA,EAAO,QAASC,EAAM,KAAK,YAAY,EACtFZ,GAAS,MACX,KAAK,YAAYA,CAAK,CAE1B,CACA,YAAYW,EAAQ,CACdA,EAAO,YAAc,KAAK,kBAG9B,KAAK,eAAe,sBAAsBA,EAAO,SAAS,EAC1D,KAAK,gBAAkB,KACzB,CACA,gBAAgBA,EAAQ,CACtB,GAAIA,EAAO,YAAc,KAAK,gBAC5B,OAEF,IAAMN,EAAU,KAAK,cACjBA,GAAS,kBAAkBM,EAAO,SAAS,GAC7CN,EAAQ,sBAAsBM,EAAO,SAAS,EAEhD,KAAK,gBAAkB,IACzB,CACA,UAAUA,EAAQ,CAChB,GAAI,KAAK,mBAAqB,KAAK,SACjC,OAEF,IAAMD,EAAOI,GAAmB,KAAK,aAAc,KAAK,MAAOH,EAAO,GAAG,EACrED,GAAQ,OAGZC,EAAO,eAAe,EACtB,KAAK,YAAc,KAAK,MACxB,KAAK,YAAYD,CAAI,EACvB,CACA,MAAO,CACL3G,GAAW,CACb,CACF,EGzSA,OAAS,OAAAgH,EAAK,QAAAC,OAAY,4BAKnB,SAASC,GAAQ,CACtB,MAAAC,EAAQC,GACR,IAAAC,EAAM,EACN,IAAAC,EAAM,IACN,KAAAC,EAAO,EACP,SAAAC,EAAW,GACX,SAAAC,EAAW,GACX,MAAAC,EACA,KAAAC,EACA,KAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EAAY,GACZ,cAAAC,EAAgB,SAChB,cAAAC,EAAgB,UAChB,eAAAC,EACA,GAAGC,CACL,EAAG,CACD,IAAMC,EAAQC,EAAmBf,EAAKC,EAAKC,CAAI,EACzCc,EAAgBF,EAAM,MAAMhB,CAAK,EACjCmB,EAAOC,EAAeF,EAAehB,EAAKC,EAAKC,EAAMM,EAAaG,EAAeC,CAAc,EACrG,OAAsBO,EAAIC,GAAa,CACrC,MAAAP,EACA,MAAOG,EACP,IAAAhB,EACA,IAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,KAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,EACA,cAAAC,EACA,eAAAC,EACA,KAAAK,EACA,MAAAH,CACF,CAAC,CACH,CACA,SAASM,GAAY,CACnB,MAAAP,EACA,KAAAI,EACA,MAAAH,EACA,GAAGO,CACL,EAAG,CACD,OAAsBF,EAAI,WAAY,CACpC,GAAGN,EACH,MAAOQ,EAAK,MACZ,IAAKA,EAAK,IACV,IAAKA,EAAK,IACV,KAAMA,EAAK,KACX,SAAUA,EAAK,SACf,gBAAiBA,EAAK,SACtB,MAAOA,EAAK,MACZ,KAAMA,EAAK,KACX,KAAMA,EAAK,KACX,YAAaA,EAAK,YAClB,UAAWA,EAAK,UAChB,cAAeA,EAAK,cACpB,cAAeA,EAAK,cACpB,eAAgBA,EAAK,eACrB,MAAOA,EAAK,KAAO,CACjB,kBAAmB,GAAGA,EAAK,IAAI,IACjC,EAAI,OACJ,SAAyBF,EAAIG,GAAU,CACrC,KAAAD,EACA,KAAAJ,EACA,MAAAH,CACF,CAAC,CACH,CAAC,CACH,CACA,SAASQ,GAAS,CAChB,KAAAD,EACA,KAAAJ,EACA,MAAAH,CACF,EAAG,CACD,IAAMS,EAAaF,EAAK,gBAAkB,QAC1C,OAAsBG,GAAK,MAAO,CAChC,MAAOD,EAAa,iCAAmC,WACvD,WAAY,OACZ,SAAU,CAAgBJ,EAAI,OAAQ,CACpC,MAAO,kBACP,WAAY,QACZ,OAAQ,CAACE,EAAK,MACd,SAAUA,EAAK,KACjB,CAAC,EAAkBF,EAAIM,GAAa,CAClC,KAAAJ,EACA,KAAAJ,EACA,MAAAH,EACA,WAAAS,CACF,CAAC,EAAkBJ,EAAI,OAAQ,CAC7B,MAAO,yCACP,WAAY,aACZ,cAAe,OACf,OAAQ,CAACE,EAAK,WAAa,CAACE,EAC5B,SAAUN,EAAK,SACjB,CAAC,CAAC,CACJ,CAAC,CACH,CACA,SAASQ,GAAY,CACnB,KAAAJ,EACA,KAAAJ,EACA,MAAAH,EACA,WAAAS,CACF,EAAG,CACD,OAAsBC,GAAK,SAAU,CACnC,KAAM,SACN,MAAO,oBACP,WAAY,UACZ,oBAAqB,GACrB,KAAM,SACN,aAAcH,EAAK,OAAS,OAC5B,gBAAiBP,EAAM,WACvB,gBAAiBA,EAAM,WACvB,gBAAiBO,EAAK,MACtB,iBAAkBJ,EAAK,UACvB,gBAAiBI,EAAK,SACtB,SAAUA,EAAK,SACf,SAAU,CAAgBG,GAAK,MAAO,CACpC,MAAO,gBACP,QAAS,cACT,cAAe,OACf,SAAU,CAAgBL,EAAI,SAAU,CACtC,MAAO,kBACP,WAAY,QACZ,GAAI,KACJ,GAAI,KACJ,EAAGF,EAAK,OACR,KAAM,OACN,eAAgBA,EAAK,YACrB,mBAAoB,GAAGA,EAAK,SAAS,IAAIA,EAAK,aAAa,GAC3D,UAAW,UAAUA,EAAK,UAAU,SACtC,CAAC,EAAkBE,EAAI,SAAU,CAC/B,MAAO,qBACP,WAAY,WACZ,GAAI,KACJ,GAAI,KACJ,EAAGF,EAAK,OACR,KAAM,OACN,eAAgBA,EAAK,YACrB,mBAAoB,GAAGA,EAAK,cAAc,IAAIA,EAAK,aAAa,GAChE,UAAW,UAAUA,EAAK,UAAU,SACtC,CAAC,CAAC,CACJ,CAAC,EAAkBE,EAAI,OAAQ,CAC7B,MAAO,kBACP,WAAY,cACZ,cAAe,OACf,OAAQ,CAACE,EAAK,WAAaE,EAC3B,SAAUN,EAAK,SACjB,CAAC,CAAC,CACJ,CAAC,CACH",
|
|
6
6
|
"names": ["bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FormAssociatedElement", "fractionDigitsFromStep", "step", "match", "decimals", "exponent", "resolveValuePrecision", "valuePrecision", "formatNumericValue", "value", "valuesAlignOnStep", "left", "right", "resolvedStep", "roundingNoise", "createNumericRange", "min", "max", "resolvedMin", "resolvedMax", "lowerBound", "upperBound", "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_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_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", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "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", "FormAssociatedElement", "customElement", "prop", "bindTo", "readOnly", "label", "event", "query", "onUpdated", "onEvent", "state", "createNumericRange", "value", "ring", "createKnobRing", "valuePosition", "valueText", "control", "circle", "target", "visible", "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
|
}
|
|
@@ -114,13 +114,13 @@ export declare class RuiKnob extends FormAssociatedElement {
|
|
|
114
114
|
valuePosition: RuiKnobValuePosition;
|
|
115
115
|
valueTemplate: string;
|
|
116
116
|
changeEvent: EventEmitter<RuiKnobChangeDetail>;
|
|
117
|
-
rootTarget: HTMLElement;
|
|
118
|
-
labelTarget: HTMLElement;
|
|
119
|
-
controlTarget: HTMLButtonElement;
|
|
120
|
-
trackTarget: SVGCircleElement;
|
|
121
|
-
progressTarget: SVGCircleElement;
|
|
122
|
-
centerValueTarget: HTMLElement;
|
|
123
|
-
belowValueTarget: HTMLElement;
|
|
117
|
+
rootTarget: HTMLElement | null;
|
|
118
|
+
labelTarget: HTMLElement | null;
|
|
119
|
+
controlTarget: HTMLButtonElement | null;
|
|
120
|
+
trackTarget: SVGCircleElement | null;
|
|
121
|
+
progressTarget: SVGCircleElement | null;
|
|
122
|
+
centerValueTarget: HTMLElement | null;
|
|
123
|
+
belowValueTarget: HTMLElement | null;
|
|
124
124
|
private activePointerId;
|
|
125
125
|
private lastEmitted;
|
|
126
126
|
private rangeCommitQueued;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as x}from"@ecopages/jsx/jsx-runtime";function u(...e){return e.filter(Boolean).join(" ")}function o(e){return e?
|
|
1
|
+
import{jsx as x}from"@ecopages/jsx/jsx-runtime";function u(...e){return e.filter(Boolean).join(" ")}function o(e){return e?f(e.split(",")):[]}function g(e){return e.join(",")}var s={fromAttribute:e=>o(e),toAttribute:e=>e.length>0?g(e):null,fromProperty:e=>Array.isArray(e)?f(e.map(String)):typeof e=="string"?o(e):[]};function a(e){return e?e.split(",").map(t=>Number(t.trim())).filter(t=>Number.isFinite(t)):[]}function h(e){return e.join(",")}var l={fromAttribute:e=>a(e),toAttribute:e=>e.length>0?h(e):null,fromProperty:e=>Array.isArray(e)?e.map(Number).filter(t=>Number.isFinite(t)):typeof e=="number"&&Number.isFinite(e)?[e]:typeof e=="string"?a(e):[]};function f(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var m="data-rui-field-label";var n={read:e=>{let t=Reflect.get(e,"value");return typeof t=="string"?t:e.getAttribute("value")??""},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",r)}},c={read:e=>{let t=Reflect.get(e,"value");if(typeof t=="number")return t;let r=e.getAttribute("value");return r==null||r===""?"":Number(r)},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",t)}},d={read:e=>e.querySelector('input[type="checkbox"]')?.checked??e.hasAttribute("checked"),write:(e,t)=>{t?e.setAttribute("checked",""):e.removeAttribute("checked")}};function p(e,t){let r=Reflect.get(e,"value");return r!==void 0&&t.fromProperty?t.fromProperty(r):t.fromAttribute?t.fromAttribute(e.getAttribute("value")):r}function A(e,t){Reflect.set(e,"value",t)}var i={read:e=>p(e,s),write:A},y={read:e=>p(e,l),write:A},_=new Map([["rui-checkbox",d],["rui-switch",d],["rui-combobox",{...i,submission:"none"}],["rui-date-field",n],["rui-date-input",{...n,submission:"host"}],["rui-date-range-picker",n],["rui-select",{...i,submission:"none"}],["rui-radio-group",n],["rui-checkbox-group",i],["rui-listbox",i],["rui-tag-group",i],["rui-slider",{...y,submission:"host"}],["rui-knob",{...c,submission:"host"}],["rui-number-field",{...c,submission:"host"}]]);function R({children:e,htmlFor:t,class:r,...b}){return x("label",{...b,[m]:"",class:u("rui-label",r),for:t,children:e})}export{R as RuiLabel};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/label/label.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/form/control-protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RUI_FIELD_LABEL_ATTR } from \"../form/control-protocol\";\nexport function RuiLabel({\n children,\n htmlFor,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"label\", {\n ...props,\n ...{\n [RUI_FIELD_LABEL_ATTR]: \"\"\n },\n class: cx(\"rui-label\", className),\n htmlFor,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function parseMultiValue(value) {\n if (!value) {\n return [];\n }\n return uniqueTrimmed(value.split(\",\"));\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}\nexport const multiValueTransform = {\n fromAttribute: value => parseMultiValue(value),\n toAttribute: values => values.length > 0 ? serializeMultiValue(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return uniqueTrimmed(value.map(String));\n }\n if (typeof value === \"string\") {\n return parseMultiValue(value);\n }\n return [];\n }\n};\nexport const multiValuePropOptions = {\n type: Array,\n reflect: true,\n transform: multiValueTransform\n};\nexport function parseViewValue(value) {\n return multiValueTransform.fromProperty?.(value) ?? [];\n}\nfunction parseNumberArray(value) {\n if (!value) {\n return [];\n }\n return value.split(\",\").map(item => Number(item.trim())).filter(item => Number.isFinite(item));\n}\nfunction serializeNumberArray(values) {\n return values.join(\",\");\n}\nexport const numberArrayTransform = {\n fromAttribute: value => parseNumberArray(value),\n toAttribute: values => values.length > 0 ? serializeNumberArray(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return value.map(Number).filter(item => Number.isFinite(item));\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return [value];\n }\n if (typeof value === \"string\") {\n return parseNumberArray(value);\n }\n return [];\n }\n};\nfunction uniqueTrimmed(values) {\n return [...new Set(values.map(item => item.trim()).filter(Boolean))];\n}", "import { multiValueTransform, numberArrayTransform } from \"../shared/multi-value\";\nexport const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nexport const RUI_ARIA_TARGET_ATTR = \"data-rui-aria-target\";\nexport const RUI_ARIA_TARGETS_ATTR = \"data-rui-aria-targets\";\nconst FIELD_COLUMN_SELECTOR = '[data-ref=\"field\"]';\nfunction fieldControlSelector() {\n return `[${RUI_CONTROL_ATTR}], ${hostControlSelector()}`;\n}\nfunction hostControlSelector() {\n return Array.from(CONTROL_VALUE_ADAPTERS.keys()).join(\", \");\n}\nfunction isEmbeddedListbox(node) {\n return node.localName === \"rui-listbox\" && (node.hasAttribute(\"embedded\") || Reflect.get(node, \"embedded\") === true);\n}\nconst ARIA_TARGET_SELECTORS = {\n \"rui-combobox\": \"[data-combobox-input]\",\n \"rui-select\": \"[data-select-trigger]\",\n \"rui-tag-group\": \"[data-tag-list]\",\n \"rui-number-field\": \"[data-number-field-input], input\",\n \"rui-knob\": \"[data-knob-control]\",\n \"rui-checkbox\": \"input\",\n \"rui-checkbox-group\": \"[data-checkbox-group-root]\",\n \"rui-switch\": \"input\"\n};\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nexport function isFormAssociatedHost(host) {\n return Reflect.get(host.constructor, \"formAssociated\") === true;\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nfunction readHostValue(host, transform) {\n const value = Reflect.get(host, \"value\");\n if (value !== void 0 && transform.fromProperty) {\n return transform.fromProperty(value);\n }\n if (transform.fromAttribute) {\n return transform.fromAttribute(host.getAttribute(\"value\"));\n }\n return value;\n}\nfunction writeHostValue(host, value) {\n Reflect.set(host, \"value\", value);\n}\nconst stringArrayValueAdapter = {\n read: host => readHostValue(host, multiValueTransform),\n write: writeHostValue\n};\nconst sliderValueAdapter = {\n read: host => readHostValue(host, numberArrayTransform),\n write: writeHostValue\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-date-field\", stringValueAdapter], [\"rui-date-input\", {\n ...stringValueAdapter,\n submission: \"host\"\n}], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-radio-group\", stringValueAdapter], [\"rui-checkbox-group\", stringArrayValueAdapter], [\"rui-listbox\", stringArrayValueAdapter], [\"rui-tag-group\", stringArrayValueAdapter], [\"rui-slider\", {\n ...sliderValueAdapter,\n submission: \"host\"\n}], [\"rui-knob\", {\n ...numberValueAdapter,\n submission: \"host\"\n}], [\"rui-number-field\", {\n ...numberValueAdapter,\n submission: \"host\"\n}]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR) ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n const eligibleCandidates = candidates.filter(candidate => !isEmbeddedListbox(candidate));\n if (eligibleCandidates.length === 0) {\n return null;\n }\n return eligibleCandidates.find(candidate => !eligibleCandidates.some(ancestor => ancestor !== candidate && ancestor.contains(candidate))) ?? null;\n}\nfunction collectFieldControls(root) {\n const candidates = [];\n forEachFieldContentNode(root, node => {\n if (node instanceof HTMLElement && node.matches(fieldControlSelector())) {\n candidates.push(node);\n }\n });\n return candidates;\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(fieldControlSelector())).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n return pickPrimaryFieldControl(collectFieldControls(root));\n}\nexport function registerFieldControl(tagName, adapter) {\n const tag = tagName.toLowerCase();\n CONTROL_VALUE_ADAPTERS.set(tag, adapter);\n}\nexport function isPrimaryFieldControlEvent(root, event) {\n const control = findFieldControl(root);\n if (!control || !(event.target instanceof Element)) {\n return false;\n }\n if (event.target !== control && !control.contains(event.target)) {\n return false;\n }\n const nestedHost = event.target.closest(hostControlSelector());\n return nestedHost === control || nestedHost == null;\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(hostControlSelector());\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}]`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n const submission = controlHost && CONTROL_VALUE_ADAPTERS.get(controlHost.localName)?.submission;\n const namesInner = controlHost == null || controlHost === ariaTarget || !isFormAssociatedHost(controlHost) && submission !== \"host\" && submission !== \"none\";\n if (namesInner && name) {\n ariaTarget.name = name;\n } else {\n ariaTarget.removeAttribute(\"name\");\n }\n }\n if (controlHost && CONTROL_VALUE_ADAPTERS.has(controlHost.localName)) {\n Reflect.set(controlHost, \"name\", name);\n if (name) controlHost.setAttribute(\"name\", name);else controlHost.removeAttribute(\"name\");\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nfunction resolveDeclaredAriaTarget(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n const firstSelector = multi.split(\",\")[0]?.trim();\n if (firstSelector) {\n return control.querySelector(firstSelector);\n }\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n return control.querySelector(single);\n }\n return null;\n}\nfunction resolveDeclaredAriaTargets(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n return multi.split(\",\").map(selector => selector.trim()).filter(selector => selector !== \"\").map(selector => control.querySelector(selector)).filter(node => node != null);\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n const target = control.querySelector(single);\n return target ? [target] : [];\n }\n return [];\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n const declared = resolveDeclaredAriaTarget(control);\n if (declared) {\n return declared;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n if (control.localName === \"rui-slider\") {\n const thumb = Array.from(control.querySelectorAll(\"[data-thumb]\")).find(node => !node.hasAttribute(\"hidden\"));\n return thumb ?? control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-radio-group\") {\n return getSelectedRadio(control) ?? control;\n }\n const selector = ARIA_TARGET_SELECTORS[control.localName];\n return selector ? control.querySelector(selector) ?? control : control;\n}\nfunction getSelectedRadio(control) {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n return Array.from(radios).find(isChecked) ?? radios[0];\n}\nexport function getAriaControlTargets(control) {\n const declared = resolveDeclaredAriaTargets(control);\n if (declared.length > 0) {\n return declared;\n }\n if (control.localName === \"rui-slider\") {\n const thumbs = Array.from(control.querySelectorAll(\"[data-thumb]\")).filter(node => !node.hasAttribute(\"hidden\"));\n return thumbs.length > 0 ? thumbs : [control];\n }\n return [getAriaControlTarget(control)];\n}"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RUI_FIELD_LABEL_ATTR } from \"../form/control-protocol\";\nexport function RuiLabel({\n children,\n htmlFor,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"label\", {\n ...props,\n ...{\n [RUI_FIELD_LABEL_ATTR]: \"\"\n },\n class: cx(\"rui-label\", className),\n for: htmlFor,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function parseMultiValue(value) {\n if (!value) {\n return [];\n }\n return uniqueTrimmed(value.split(\",\"));\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}\nexport const multiValueTransform = {\n fromAttribute: value => parseMultiValue(value),\n toAttribute: values => values.length > 0 ? serializeMultiValue(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return uniqueTrimmed(value.map(String));\n }\n if (typeof value === \"string\") {\n return parseMultiValue(value);\n }\n return [];\n }\n};\nexport const multiValuePropOptions = {\n type: Array,\n reflect: true,\n transform: multiValueTransform\n};\nexport function parseViewValue(value) {\n return multiValueTransform.fromProperty?.(value) ?? [];\n}\nfunction parseNumberArray(value) {\n if (!value) {\n return [];\n }\n return value.split(\",\").map(item => Number(item.trim())).filter(item => Number.isFinite(item));\n}\nfunction serializeNumberArray(values) {\n return values.join(\",\");\n}\nexport const numberArrayTransform = {\n fromAttribute: value => parseNumberArray(value),\n toAttribute: values => values.length > 0 ? serializeNumberArray(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return value.map(Number).filter(item => Number.isFinite(item));\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return [value];\n }\n if (typeof value === \"string\") {\n return parseNumberArray(value);\n }\n return [];\n }\n};\nfunction uniqueTrimmed(values) {\n return [...new Set(values.map(item => item.trim()).filter(Boolean))];\n}", "import { multiValueTransform, numberArrayTransform } from \"../shared/multi-value\";\nexport const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nexport const RUI_ARIA_TARGET_ATTR = \"data-rui-aria-target\";\nexport const RUI_ARIA_TARGETS_ATTR = \"data-rui-aria-targets\";\nconst FIELD_COLUMN_SELECTOR = '[data-ref=\"field\"]';\nfunction fieldControlSelector() {\n return `[${RUI_CONTROL_ATTR}], ${hostControlSelector()}`;\n}\nfunction hostControlSelector() {\n return Array.from(CONTROL_VALUE_ADAPTERS.keys()).join(\", \");\n}\nfunction isEmbeddedListbox(node) {\n return node.localName === \"rui-listbox\" && (node.hasAttribute(\"embedded\") || Reflect.get(node, \"embedded\") === true);\n}\nconst ARIA_TARGET_SELECTORS = {\n \"rui-combobox\": \"[data-combobox-input]\",\n \"rui-select\": \"[data-select-trigger]\",\n \"rui-tag-group\": \"[data-tag-list]\",\n \"rui-number-field\": \"[data-number-field-input], input\",\n \"rui-knob\": \"[data-knob-control]\",\n \"rui-checkbox\": \"input\",\n \"rui-checkbox-group\": \"[data-checkbox-group-root]\",\n \"rui-switch\": \"input\"\n};\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nexport function isFormAssociatedHost(host) {\n return Reflect.get(host.constructor, \"formAssociated\") === true;\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nfunction readHostValue(host, transform) {\n const value = Reflect.get(host, \"value\");\n if (value !== void 0 && transform.fromProperty) {\n return transform.fromProperty(value);\n }\n if (transform.fromAttribute) {\n return transform.fromAttribute(host.getAttribute(\"value\"));\n }\n return value;\n}\nfunction writeHostValue(host, value) {\n Reflect.set(host, \"value\", value);\n}\nconst stringArrayValueAdapter = {\n read: host => readHostValue(host, multiValueTransform),\n write: writeHostValue\n};\nconst sliderValueAdapter = {\n read: host => readHostValue(host, numberArrayTransform),\n write: writeHostValue\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-date-field\", stringValueAdapter], [\"rui-date-input\", {\n ...stringValueAdapter,\n submission: \"host\"\n}], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-radio-group\", stringValueAdapter], [\"rui-checkbox-group\", stringArrayValueAdapter], [\"rui-listbox\", stringArrayValueAdapter], [\"rui-tag-group\", stringArrayValueAdapter], [\"rui-slider\", {\n ...sliderValueAdapter,\n submission: \"host\"\n}], [\"rui-knob\", {\n ...numberValueAdapter,\n submission: \"host\"\n}], [\"rui-number-field\", {\n ...numberValueAdapter,\n submission: \"host\"\n}]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR) ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n const eligibleCandidates = candidates.filter(candidate => !isEmbeddedListbox(candidate));\n if (eligibleCandidates.length === 0) {\n return null;\n }\n return eligibleCandidates.find(candidate => !eligibleCandidates.some(ancestor => ancestor !== candidate && ancestor.contains(candidate))) ?? null;\n}\nfunction collectFieldControls(root) {\n const candidates = [];\n forEachFieldContentNode(root, node => {\n if (node instanceof HTMLElement && node.matches(fieldControlSelector())) {\n candidates.push(node);\n }\n });\n return candidates;\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(fieldControlSelector())).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n return pickPrimaryFieldControl(collectFieldControls(root));\n}\nexport function registerFieldControl(tagName, adapter) {\n const tag = tagName.toLowerCase();\n CONTROL_VALUE_ADAPTERS.set(tag, adapter);\n}\nexport function isPrimaryFieldControlEvent(root, event) {\n const control = findFieldControl(root);\n if (!control || !(event.target instanceof Element)) {\n return false;\n }\n if (event.target !== control && !control.contains(event.target)) {\n return false;\n }\n const nestedHost = event.target.closest(hostControlSelector());\n return nestedHost === control || nestedHost == null;\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(hostControlSelector());\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}]`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n const submission = controlHost && CONTROL_VALUE_ADAPTERS.get(controlHost.localName)?.submission;\n const namesInner = controlHost == null || controlHost === ariaTarget || !isFormAssociatedHost(controlHost) && submission !== \"host\" && submission !== \"none\";\n if (namesInner && name) {\n ariaTarget.name = name;\n } else {\n ariaTarget.removeAttribute(\"name\");\n }\n }\n if (controlHost && CONTROL_VALUE_ADAPTERS.has(controlHost.localName)) {\n Reflect.set(controlHost, \"name\", name);\n if (name) controlHost.setAttribute(\"name\", name);else controlHost.removeAttribute(\"name\");\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nfunction resolveDeclaredAriaTarget(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n const firstSelector = multi.split(\",\")[0]?.trim();\n if (firstSelector) {\n return control.querySelector(firstSelector);\n }\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n return control.querySelector(single);\n }\n return null;\n}\nfunction resolveDeclaredAriaTargets(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n return multi.split(\",\").map(selector => selector.trim()).filter(selector => selector !== \"\").map(selector => control.querySelector(selector)).filter(node => node != null);\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n const target = control.querySelector(single);\n return target ? [target] : [];\n }\n return [];\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n const declared = resolveDeclaredAriaTarget(control);\n if (declared) {\n return declared;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n if (control.localName === \"rui-slider\") {\n const thumb = Array.from(control.querySelectorAll(\"[data-thumb]\")).find(node => !node.hasAttribute(\"hidden\"));\n return thumb ?? control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-radio-group\") {\n return getSelectedRadio(control) ?? control;\n }\n const selector = ARIA_TARGET_SELECTORS[control.localName];\n return selector ? control.querySelector(selector) ?? control : control;\n}\nfunction getSelectedRadio(control) {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n return Array.from(radios).find(isChecked) ?? radios[0];\n}\nexport function getAriaControlTargets(control) {\n const declared = resolveDeclaredAriaTargets(control);\n if (declared.length > 0) {\n return declared;\n }\n if (control.localName === \"rui-slider\") {\n const thumbs = Array.from(control.querySelectorAll(\"[data-thumb]\")).filter(node => !node.hasAttribute(\"hidden\"));\n return thumbs.length > 0 ? thumbs : [control];\n }\n return [getAriaControlTarget(control)];\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["jsx", "cx", "parts", "parseMultiValue", "value", "uniqueTrimmed", "serializeMultiValue", "values", "multiValueTransform", "parseNumberArray", "value", "item", "serializeNumberArray", "values", "numberArrayTransform", "uniqueTrimmed", "RUI_FIELD_LABEL_ATTR", "stringValueAdapter", "host", "value", "next", "numberValueAdapter", "raw", "booleanValueAdapter", "readHostValue", "transform", "writeHostValue", "stringArrayValueAdapter", "multiValueTransform", "sliderValueAdapter", "numberArrayTransform", "CONTROL_VALUE_ADAPTERS", "RuiLabel", "children", "htmlFor", "className", "props", "jsx", "RUI_FIELD_LABEL_ATTR", "cx"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { JsxElementProps } from '@ecopages/jsx';
|
|
2
2
|
export type RuiLabelProps = JsxElementProps<HTMLLabelElement> & {
|
|
3
|
+
/**
|
|
4
|
+
* Control id. Rendered as the HTML `for` attribute; this JSX runtime does not
|
|
5
|
+
* alias `htmlFor`.
|
|
6
|
+
*/
|
|
3
7
|
htmlFor?: string;
|
|
4
8
|
};
|
|
5
9
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JsxCustomElementAttributes, JsxElementProps, JsxRenderable } from '@ecopages/jsx';
|
|
2
|
+
import type { NativeButtonProps } from '@/lib/native-element-props';
|
|
2
3
|
import { type RuiButtonControlProps } from '../button';
|
|
3
4
|
import { type RuiMenuEntry } from '../shared/menu-entry';
|
|
4
5
|
import type { RuiMenuButton as RuiMenuButtonElement, RuiMenuButtonProps } from './menu-button.script';
|
|
@@ -18,7 +19,7 @@ export type RuiMenuButtonSubmenuContentProps = JsxElementProps<HTMLDivElement>;
|
|
|
18
19
|
* @cssclass rui-menu-button__submenu - Nested popup menu surface.
|
|
19
20
|
*/
|
|
20
21
|
export declare function RuiMenuButtonSubmenuContent({ children, class: className, ...props }: RuiMenuButtonSubmenuContentProps): JsxRenderable;
|
|
21
|
-
export type RuiMenuButtonItemProps =
|
|
22
|
+
export type RuiMenuButtonItemProps = NativeButtonProps & {
|
|
22
23
|
value: string;
|
|
23
24
|
disabled?: boolean;
|
|
24
25
|
hasSubmenu?: boolean;
|
|
@@ -59,8 +59,8 @@ export type RuiMenuButtonSelectDetail = {
|
|
|
59
59
|
export declare class RuiMenuButton extends RadiantElement {
|
|
60
60
|
open: boolean;
|
|
61
61
|
placement: RuiPlacement;
|
|
62
|
-
triggerTarget: HTMLButtonElement;
|
|
63
|
-
menuTarget: HTMLElement;
|
|
62
|
+
triggerTarget: HTMLButtonElement | null;
|
|
63
|
+
menuTarget: HTMLElement | null;
|
|
64
64
|
changeEvent: EventEmitter<RuiMenuButtonSelectDetail>;
|
|
65
65
|
closeEvent: EventEmitter<void>;
|
|
66
66
|
private readonly menuId;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JsxCustomElementAttributes, JsxElementProps, JsxRenderable } from '@ecopages/jsx';
|
|
2
|
+
import type { NativeButtonProps } from '@/lib/native-element-props';
|
|
2
3
|
import { type RuiMenuEntry } from '../shared/menu-entry';
|
|
3
4
|
import type { RuiMenubar as RuiMenubarElement, RuiMenubarProps } from './menubar.script';
|
|
4
5
|
import './menubar.script';
|
|
@@ -17,7 +18,7 @@ export type RuiMenubarMenuProps = {
|
|
|
17
18
|
};
|
|
18
19
|
/** Top-level menubar menu containing a trigger and its popup content. */
|
|
19
20
|
export declare function RuiMenubarMenu({ label, children, disabled }: RuiMenubarMenuProps): JsxRenderable;
|
|
20
|
-
export type RuiMenubarMenuItemProps =
|
|
21
|
+
export type RuiMenubarMenuItemProps = NativeButtonProps & {
|
|
21
22
|
value: string;
|
|
22
23
|
disabled?: boolean;
|
|
23
24
|
hasSubmenu?: boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JsxCustomElementAttributes, JsxElementProps } from '@ecopages/jsx';
|
|
2
|
+
import type { NativeButtonProps, NativeInputProps } from '@/lib/native-element-props';
|
|
2
3
|
import type { RuiNumberField as RuiNumberFieldElement, RuiNumberFieldProps } from './number-field.script';
|
|
3
4
|
import './number-field.script';
|
|
4
5
|
export type RuiNumberFieldGroupProps = JsxElementProps<HTMLDivElement>;
|
|
@@ -8,7 +9,7 @@ export type RuiNumberFieldGroupProps = JsxElementProps<HTMLDivElement>;
|
|
|
8
9
|
* @cssclass rui-number-field__group - Control-height bordered row wrapping input and steppers.
|
|
9
10
|
*/
|
|
10
11
|
export declare function RuiNumberFieldGroup({ children, class: className, ...props }: RuiNumberFieldGroupProps): import("@ecopages/jsx").JsxRenderable;
|
|
11
|
-
export type RuiNumberFieldInputProps =
|
|
12
|
+
export type RuiNumberFieldInputProps = NativeInputProps & {
|
|
12
13
|
placeholder?: string;
|
|
13
14
|
disabled?: boolean;
|
|
14
15
|
readOnly?: boolean;
|
|
@@ -27,7 +28,7 @@ export type RuiNumberFieldSteppersProps = JsxElementProps<HTMLDivElement>;
|
|
|
27
28
|
* @cssclass rui-number-field__steppers - Trailing stepper column with a border divider.
|
|
28
29
|
*/
|
|
29
30
|
export declare function RuiNumberFieldSteppers({ children, class: className, ...props }: RuiNumberFieldSteppersProps): import("@ecopages/jsx").JsxRenderable;
|
|
30
|
-
export type RuiNumberFieldStepperButtonProps =
|
|
31
|
+
export type RuiNumberFieldStepperButtonProps = NativeButtonProps & {
|
|
31
32
|
disabled?: boolean;
|
|
32
33
|
};
|
|
33
34
|
/**
|
|
@@ -75,8 +75,8 @@ export declare class RuiPopover extends RadiantElement {
|
|
|
75
75
|
offset: number;
|
|
76
76
|
anchor: string;
|
|
77
77
|
variant: 'default' | 'listbox';
|
|
78
|
-
surfaceTarget: HTMLElement;
|
|
79
|
-
hostTarget: HTMLElement;
|
|
78
|
+
surfaceTarget: HTMLElement | null;
|
|
79
|
+
hostTarget: HTMLElement | null;
|
|
80
80
|
openChangeEvent: EventEmitter<RuiPopoverOpenChangeDetail>;
|
|
81
81
|
private readonly surfaceId;
|
|
82
82
|
private controller;
|
|
@@ -123,7 +123,7 @@ export type RuiPopoverTriggerProps = {
|
|
|
123
123
|
*/
|
|
124
124
|
export declare class RuiPopoverTrigger extends RadiantElement {
|
|
125
125
|
open: boolean;
|
|
126
|
-
rootTarget: HTMLElement;
|
|
126
|
+
rootTarget: HTMLElement | null;
|
|
127
127
|
private getPopover;
|
|
128
128
|
protected onConnected(): void;
|
|
129
129
|
syncToPopover(): void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JsxCustomElementAttributes, JsxElementProps, JsxRenderable } from '@ecopages/jsx';
|
|
2
|
+
import type { NativeButtonProps, NativeInputProps } from '@/lib/native-element-props';
|
|
2
3
|
import { type RuiListboxOptionData } from '../listbox';
|
|
3
4
|
import type { RuiSelect as RuiSelectElement, RuiSelectProps } from './select.script';
|
|
4
5
|
import './select.script';
|
|
@@ -21,12 +22,12 @@ export type RuiSelectTriggerProps = JsxElementProps<HTMLDivElement> & {
|
|
|
21
22
|
* @cssclass rui-select__trigger - Combobox surface; `role="combobox"` set by the controller.
|
|
22
23
|
*/
|
|
23
24
|
export declare function RuiSelectTrigger({ children, class: className, disabled, ...props }: RuiSelectTriggerProps): JsxRenderable;
|
|
24
|
-
export type RuiSelectToggleProps =
|
|
25
|
+
export type RuiSelectToggleProps = NativeButtonProps & {
|
|
25
26
|
disabled?: boolean;
|
|
26
27
|
};
|
|
27
28
|
/** Toggle button for opening the listbox popup. Stamps `[data-select-toggle]`. Children replace the default chevron icon. */
|
|
28
29
|
export declare function RuiSelectToggle({ children, class: className, aria, disabled, ...props }: RuiSelectToggleProps): JsxRenderable;
|
|
29
|
-
export type RuiSelectClearProps =
|
|
30
|
+
export type RuiSelectClearProps = NativeButtonProps & {
|
|
30
31
|
disabled?: boolean;
|
|
31
32
|
};
|
|
32
33
|
/** Clears the current selection. Stamps `[data-select-clear]`. Place next to `RuiSelectToggle`. Children replace the default close icon. */
|
|
@@ -50,7 +51,7 @@ export type RuiSelectListboxProps = JsxElementProps<HTMLDivElement>;
|
|
|
50
51
|
* @cssclass rui-select__listbox - Popup shell; composes `rui-popover` surface roles.
|
|
51
52
|
*/
|
|
52
53
|
export declare function RuiSelectListbox({ children, class: className, ...props }: RuiSelectListboxProps): JsxRenderable;
|
|
53
|
-
export type RuiSelectSearchProps =
|
|
54
|
+
export type RuiSelectSearchProps = NativeInputProps & {
|
|
54
55
|
placeholder?: string;
|
|
55
56
|
disabled?: boolean;
|
|
56
57
|
};
|
|
@@ -100,7 +100,7 @@ export declare class RuiSelect extends RadiantElement {
|
|
|
100
100
|
private readonly uid;
|
|
101
101
|
private readonly collection;
|
|
102
102
|
private readonly listboxBehavior;
|
|
103
|
-
rootTarget: HTMLElement;
|
|
103
|
+
rootTarget: HTMLElement | null;
|
|
104
104
|
private get listboxId();
|
|
105
105
|
private get triggerId();
|
|
106
106
|
private isMultiple;
|