@ecopages/radiant-ui 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/components/ui/alert/alert.d.ts +1 -3
- package/dist/components/ui/alert/alert.script.d.ts +7 -0
- package/dist/components/ui/alert/index.js +1 -1
- package/dist/components/ui/alert/index.js.map +3 -3
- package/dist/components/ui/autocomplete/autocomplete.d.ts +1 -2
- package/dist/components/ui/autocomplete/autocomplete.script.d.ts +7 -0
- package/dist/components/ui/autocomplete/index.js +1 -1
- package/dist/components/ui/autocomplete/index.js.map +3 -3
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts +1 -2
- package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +7 -0
- package/dist/components/ui/breadcrumb/index.js +1 -1
- package/dist/components/ui/breadcrumb/index.js.map +3 -3
- package/dist/components/ui/calendar/calendar.script.d.ts +8 -0
- package/dist/components/ui/calendar/index.d.ts +1 -2
- package/dist/components/ui/calendar/index.js +1 -1
- package/dist/components/ui/calendar/index.js.map +4 -4
- package/dist/components/ui/carousel/carousel.d.ts +1 -2
- package/dist/components/ui/carousel/carousel.script.d.ts +7 -0
- package/dist/components/ui/carousel/index.js +1 -1
- package/dist/components/ui/carousel/index.js.map +3 -3
- package/dist/components/ui/checkbox/checkbox.d.ts +1 -2
- package/dist/components/ui/checkbox/checkbox.script.d.ts +7 -0
- package/dist/components/ui/checkbox/index.js +1 -1
- package/dist/components/ui/checkbox/index.js.map +3 -3
- package/dist/components/ui/checkbox-group/checkbox-group.d.ts +1 -2
- package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +7 -0
- package/dist/components/ui/checkbox-group/index.js +1 -1
- package/dist/components/ui/checkbox-group/index.js.map +3 -3
- package/dist/components/ui/combobox/combobox.d.ts +1 -2
- package/dist/components/ui/combobox/combobox.script.d.ts +7 -0
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +3 -3
- package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +1 -2
- package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +7 -0
- package/dist/components/ui/cycle-toggle/index.js +1 -1
- package/dist/components/ui/cycle-toggle/index.js.map +3 -3
- package/dist/components/ui/date-field/date-field.d.ts +4 -5
- package/dist/components/ui/date-field/date-field.script.d.ts +7 -0
- package/dist/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +4 -4
- package/dist/components/ui/date-input/date-input.d.ts +4 -4
- package/dist/components/ui/date-input/date-input.script.d.ts +8 -0
- package/dist/components/ui/date-input/index.js +1 -1
- package/dist/components/ui/date-input/index.js.map +3 -3
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +5 -6
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +7 -0
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +4 -4
- package/dist/components/ui/dialog/dialog-registry.d.ts +0 -1
- package/dist/components/ui/dialog/dialog.d.ts +1 -2
- package/dist/components/ui/dialog/dialog.script.d.ts +7 -0
- package/dist/components/ui/dialog/index.js +1 -1
- package/dist/components/ui/dialog/index.js.map +3 -3
- package/dist/components/ui/disclosure/disclosure-group.script.d.ts +7 -0
- package/dist/components/ui/disclosure/disclosure.d.ts +2 -4
- package/dist/components/ui/disclosure/disclosure.script.d.ts +7 -0
- package/dist/components/ui/disclosure/index.js +1 -1
- package/dist/components/ui/disclosure/index.js.map +3 -3
- package/dist/components/ui/field/field.d.ts +1 -2
- package/dist/components/ui/field/field.script.d.ts +7 -0
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +3 -3
- package/dist/components/ui/form/form.d.ts +1 -2
- package/dist/components/ui/form/form.script.d.ts +7 -0
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +3 -3
- package/dist/components/ui/grid/grid.d.ts +1 -2
- package/dist/components/ui/grid/grid.script.d.ts +7 -0
- package/dist/components/ui/grid/index.js +1 -1
- package/dist/components/ui/grid/index.js.map +3 -3
- package/dist/components/ui/hover-card/hover-card.d.ts +1 -2
- package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
- package/dist/components/ui/hover-card/index.js +1 -1
- package/dist/components/ui/hover-card/index.js.map +3 -3
- package/dist/components/ui/knob/index.js +1 -1
- package/dist/components/ui/knob/index.js.map +3 -3
- package/dist/components/ui/knob/knob.d.ts +1 -2
- package/dist/components/ui/knob/knob.script.d.ts +7 -0
- package/dist/components/ui/listbox/index.js +1 -1
- package/dist/components/ui/listbox/index.js.map +3 -3
- package/dist/components/ui/listbox/listbox.d.ts +1 -2
- package/dist/components/ui/listbox/listbox.script.d.ts +7 -0
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +3 -3
- package/dist/components/ui/menu-button/menu-button.d.ts +1 -2
- package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -0
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +3 -3
- package/dist/components/ui/menubar/menubar.d.ts +1 -2
- package/dist/components/ui/menubar/menubar.script.d.ts +7 -0
- package/dist/components/ui/meter/index.d.ts +1 -2
- package/dist/components/ui/meter/index.js +1 -1
- package/dist/components/ui/meter/index.js.map +4 -4
- package/dist/components/ui/meter/meter.script.d.ts +8 -0
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +3 -3
- package/dist/components/ui/navigation-menu/navigation-menu.css +2 -1
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +1 -2
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +7 -0
- package/dist/components/ui/number-field/index.js +1 -1
- package/dist/components/ui/number-field/index.js.map +3 -3
- package/dist/components/ui/number-field/number-field.d.ts +1 -2
- package/dist/components/ui/number-field/number-field.script.d.ts +7 -0
- package/dist/components/ui/pagination/index.js +1 -1
- package/dist/components/ui/pagination/index.js.map +3 -3
- package/dist/components/ui/pagination/pagination.d.ts +1 -2
- package/dist/components/ui/pagination/pagination.script.d.ts +7 -0
- package/dist/components/ui/popover/index.js +1 -1
- package/dist/components/ui/popover/index.js.map +3 -3
- package/dist/components/ui/popover/popover.d.ts +1 -2
- package/dist/components/ui/popover/popover.script.d.ts +9 -0
- package/dist/components/ui/radio-group/index.js +1 -1
- package/dist/components/ui/radio-group/index.js.map +3 -3
- package/dist/components/ui/radio-group/radio-group.d.ts +1 -2
- package/dist/components/ui/radio-group/radio-group.script.d.ts +7 -0
- package/dist/components/ui/select/index.js +1 -1
- package/dist/components/ui/select/index.js.map +3 -3
- package/dist/components/ui/select/select.d.ts +1 -2
- package/dist/components/ui/select/select.script.d.ts +7 -0
- package/dist/components/ui/separator/separator.d.ts +2 -1
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +3 -3
- package/dist/components/ui/sidebar/sidebar-trigger.d.ts +1 -2
- package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +7 -0
- package/dist/components/ui/sidebar/sidebar.d.ts +1 -3
- package/dist/components/ui/sidebar/sidebar.script.d.ts +7 -0
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +3 -3
- package/dist/components/ui/slider/slider.d.ts +1 -2
- package/dist/components/ui/slider/slider.script.d.ts +7 -0
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/switch/index.js.map +3 -3
- package/dist/components/ui/switch/switch.d.ts +1 -2
- package/dist/components/ui/switch/switch.script.d.ts +7 -0
- package/dist/components/ui/table/index.js +1 -1
- package/dist/components/ui/table/index.js.map +3 -3
- package/dist/components/ui/table/table.d.ts +1 -2
- package/dist/components/ui/table/table.script.d.ts +7 -0
- package/dist/components/ui/tabs/index.d.ts +2 -2
- package/dist/components/ui/tabs/index.js +1 -1
- package/dist/components/ui/tabs/index.js.map +3 -3
- package/dist/components/ui/tabs/tabs.d.ts +1 -4
- package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
- package/dist/components/ui/tag-group/index.js +1 -1
- package/dist/components/ui/tag-group/index.js.map +3 -3
- package/dist/components/ui/tag-group/tag-group.d.ts +1 -2
- package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -0
- package/dist/components/ui/toast/index.d.ts +2 -2
- package/dist/components/ui/toast/index.js +1 -1
- package/dist/components/ui/toast/index.js.map +3 -3
- package/dist/components/ui/toast/toast.d.ts +6 -10
- package/dist/components/ui/toast/toast.script.d.ts +8 -0
- package/dist/components/ui/toast/toaster.script.d.ts +8 -1
- package/dist/components/ui/toc/index.d.ts +6 -2
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +4 -4
- package/dist/components/ui/toc/toc.script.d.ts +8 -0
- package/dist/components/ui/toolbar/index.js +1 -1
- package/dist/components/ui/toolbar/index.js.map +3 -3
- package/dist/components/ui/toolbar/toolbar.d.ts +1 -2
- package/dist/components/ui/toolbar/toolbar.script.d.ts +7 -0
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/components/ui/tooltip/index.js.map +3 -3
- package/dist/components/ui/tooltip/tooltip.d.ts +1 -2
- package/dist/components/ui/tooltip/tooltip.script.d.ts +14 -14
- package/dist/components/ui/tree/index.js +1 -1
- package/dist/components/ui/tree/index.js.map +3 -3
- package/dist/components/ui/tree/tree.d.ts +1 -2
- package/dist/components/ui/tree/tree.script.d.ts +7 -0
- package/dist/components/ui/treegrid/index.js +1 -1
- package/dist/components/ui/treegrid/index.js.map +3 -3
- package/dist/components/ui/treegrid/treegrid.d.ts +1 -2
- package/dist/components/ui/treegrid/treegrid.script.d.ts +7 -0
- package/dist/components/ui/window-splitter/index.js +1 -1
- package/dist/components/ui/window-splitter/index.js.map +3 -3
- package/dist/components/ui/window-splitter/window-splitter.d.ts +1 -2
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +7 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/lib/without-children.d.ts +10 -0
- package/dist/styles/radiant-ui-core.css +3 -0
- package/dist/styles/radiant-ui.css +3 -0
- package/dist/styles/styles.css +1 -1
- package/dist/styles/tailwind.css +3 -0
- package/package.json +10 -10
- package/dist/components/ui/calendar/calendar.d.ts +0 -4
- package/dist/components/ui/meter/meter.d.ts +0 -8
- package/dist/components/ui/toc/toc.d.ts +0 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as R}from"@ecopages/jsx/jsx-runtime";function z(...e){return e.filter(Boolean).join(" ")}import{RadiantElement as Nt,bindTo as pe,bound as H,customElement as me,event as ge,onEvent as $,onUpdated as ye,prop as F,query as ve}from"@ecopages/radiant";var Yt="a[href], button, input, select, textarea, [tabindex]";function zt(e){return!e.hasAttribute("disabled")&&e.getAttribute("tabindex")!=="-1"}function Jt(e){return Array.from(e.querySelectorAll(Yt)).filter(zt)}function k(e){return Jt(e)[0]}var Qt=/^[A-Za-z][A-Za-z0-9_-]*$/;function pt(e){return Qt.test(e)}function te(e){let t=e.trim();if(pt(t))return t;let n=`rui-${t}`;return t&&pt(n)?n:"rui"}function mt(e){let t=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),n=>n.toString(16).padStart(2,"0")).join("");return`${te(e)}-${t}`}var S=0,gt=0;function yt(){S+=1}function J(e=Date.now(),t=300){S=Math.max(0,S-1),S===0&&(gt=e+t)}function vt(e,t=Date.now()){return S>0||t<gt?0:e}var ee={top:"bottom",bottom:"top",left:"right",right:"left"},ne=8,Q=new WeakMap;function re(e){Q.has(e)&&(e.style.width="",e.style.minWidth="",e.style.maxWidth="",e.style.boxSizing="",Q.delete(e))}function ie(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function _t(e){return e==="top"||e==="bottom"?"y":"x"}function bt(e,t,n,r,i){let{width:a,height:s}=t,o=0,h=0;switch(n){case"top":h=e.top-s-i;break;case"bottom":h=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return _t(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?h=e.top:r==="end"?h=e.bottom-s:h=e.top+(e.height-s)/2,{x:o,y:h}}function oe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function wt(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function se(e,t){return t==="center"?e:`${e}-${t}`}function ae(e,t,n,r){let{padding:i,width:a,height:s}=r;if(_t(n)==="y"){let h=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),h),y:Math.max(i,e.y)}}let o=Math.max(i,s-i-t.height);return{x:Math.max(i,e.x),y:Math.min(Math.max(e.y,i),o)}}function le(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:ne}){let{side:a,align:s}=ie(n),o=bt(e,t,a,s,r),h=oe(o,t,a,i),y=a,T=o;if(h>0){let P=ee[a],C=bt(e,t,P,s,r),I=wt(e,t,a,i);wt(e,t,P,i)>I&&(y=P,T=C)}return{coords:ae(T,t,y,i),placement:se(y,s)}}function ce(e,t,n,r,i={}){let a=i.matchAnchorWidth===!0,s=e.offsetWidth,o=a?{width:s,height:t.offsetHeight}:{width:t.offsetWidth,height:t.offsetHeight};a?(t.style.width=`${s}px`,t.style.minWidth=`${s}px`,t.style.maxWidth=`${s}px`,t.style.boxSizing="border-box",Q.set(t,!0)):re(t);let{coords:h,placement:y}=le(e.getBoundingClientRect(),o,n,r);return Object.assign(t.style,{position:"fixed",left:`${h.x}px`,top:`${h.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),t.setAttribute("data-placement",y),y}function xt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||ce(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function Et(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function Tt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function tt(e,t,n){return n instanceof Node?!Tt(e,t,n):!0}var V=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Et(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=xt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return Tt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Pt,Ct,At,Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt;function ue(e,t,n,r,i,a){var s,o,h,y,T,P,C,I=Symbol.metadata||Symbol.for("Symbol.metadata"),K=Object.defineProperty,q=Object.create,nt=[q(null),q(null)],rt=t.length;function M(l,v,m){return function(c,u){v&&(u=c,c=e);for(var b=0;b<l.length;b++)u=l[b].apply(c,m?[u]:[]);return m?u:c}}function x(l,v,m,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(v+" must "+(m||"be")+" a function"+(c?"":" or undefined"));return l}function it(l,v,m,c,u,b,A,g,w,_,st){function N(f){if(!st(f))throw new TypeError("Attempted to access private element on non-instance")}var G=[].concat(v[0]),at=v[3],Z=!A,L=u===1,lt=u===3,ct=u===4,U=u===2;function W(f,D,dt){return function(j,ft){return D&&(ft=j,j=l),dt&&dt(j),d[f].call(j,ft)}}if(!Z){var d={},X=[],E=lt?"get":ct||L?"set":"value";if(w?(_||L?d={get:qt(function(){return at(this)},c,"get"),set:function(f){v[4](this,f)}}:d[E]=at,_||qt(d[E],c,U?"":E)):_||(d=Object.getOwnPropertyDescriptor(l,c)),!_&&!w){if((o=nt[+g][c])&&(o^u)!==7)throw Error("Decorating two elements with the same name ("+d[E].name+") is not supported yet");nt[+g][c]=u<3?1:u}}for(var p=l,B=G.length-1;B>=0;B-=m?2:1){var ut=x(G[B],"A decorator","be",!0),ht=m?G[B-1]:void 0,Y={},O={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:s,addInitializer:function(f,D){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(D,"An initializer","be",!0),b.push(D)}.bind(null,Y)};if(Z)o=ut.call(ht,p,O),Y.v=1,x(o,"class decorators","return")&&(p=o);else if(O.static=g,O.private=w,o=O.access={has:w?st.bind():function(f){return c in f}},ct||(o.get=w?U?function(f){return N(f),d.value}:W("get",0,N):function(f){return f[c]}),U||lt||(o.set=w?W("set",0,N):function(f,D){f[c]=D}),p=ut.call(ht,L?{get:d.get,set:d.set}:d[E],O),Y.v=1,L){if(typeof p=="object"&&p)(o=x(p.get,"accessor.get"))&&(d.get=o),(o=x(p.set,"accessor.set"))&&(d.set=o),(o=x(p.init,"accessor.init"))&&X.unshift(o);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(p,(_?"field":"method")+" decorators","return")&&(_?X.unshift(p):d[E]=p)}return u<2&&A.push(M(X,g,1),M(b,g,0)),_||Z||(w?L?A.splice(-1,0,W("get",g),W("set",g)):A.push(U?d[E]:x.call.bind(d[E])):K(l,c,d)),p}function ot(l){return K(l,I,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[I]),s=q(s??null),T=[],P=function(l){l&&T.push(M(l))},C=function(l,v){for(var m=0;m<n.length;m++){var c=n[m],u=c[1],b=7&u;if((8&u)==l&&!b==v){var A=c[2],g=!!c[3],w=16&u;it(l?e:e.prototype,c,w,g?"#"+A:he(A),b,b<2?[]:l?y=y||[]:h=h||[],T,!!l,g,v,l&&g?function(_){return fe(_)===e}:i)}}},C(8,0),C(0,0),C(8,1),C(0,1),P(h),P(y),o=T,rt||ot(e),{e:o,get c(){var l=[];return rt&&[ot(e=it(e,[t],r,e.name,5,l)),M(l,1)]}}}function he(e){var t=de(e,"string");return typeof t=="symbol"?t:t+""}function de(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function qt(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function fe(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var et="Preview",Gt=8,be=500,Xt,Zt=class extends Nt{static{({e:[At,Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt,Pt],c:[Xt,Ct]}=ue(this,[me("rui-hover-card")],[[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"open"],[F({type:String,defaultValue:"bottom-start"}),0,"placement"],[F({type:Number,defaultValue:600}),0,"delay"],[F({type:Number,defaultValue:200}),0,"closeDelay"],[F({type:Boolean,defaultValue:!0}),0,"portal"],[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[[F({type:String,attribute:"content-label",reflect:!0,defaultValue:et}),pe({ref:"content",attr:"aria-label"})],0,"contentLabel"],[ve({ref:"content"}),0,"contentTarget"],[ge({name:"rui-open-change",bubbles:!0,composed:!0}),0,"openChangeEvent"],[[H,ye(["open","placement","portal","disabled"])],2,"syncCard"],[$({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[$({type:"focusin",ref:"trigger"}),2,"onFocusIn"],[$({type:"focusout",ref:"trigger"}),2,"onFocusOut"],[$({type:"keydown",ref:"trigger"}),2,"onHostKeydown"],[H,2,"onPointerEnter"],[H,2,"onPointerLeave"],[H,2,"onPointerDown"],[H,2,"onPointerUp"]],0,void 0,Nt))}open=(Pt(this),At(this));placement=(Ft(this),Dt(this));delay=(Lt(this),Ot(this));closeDelay=(St(this),Ht(this));portal=(Rt(this),It(this));disabled=(Mt(this),Ut(this));contentLabel=(Wt(this),Bt(this));contentTarget=(jt(this),kt(this));openChangeEvent=(Vt(this),$t(this));contentId=(Kt(this),mt("rui-hover-card"));controller=null;showTimer=null;hideTimer=null;longPressTimer=null;openedByKeyboard=!1;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),this.addEventListener("pointerdown",this.onPointerDown),this.addEventListener("pointerup",this.onPointerUp),this.addEventListener("pointercancel",this.onPointerUp)}onConnected(){this.syncCard()}disconnectedCallback(){this.clearTimers(),this.open&&J(),this.controller?.destroy(),this.controller=null,this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.removeEventListener("pointerdown",this.onPointerDown),this.removeEventListener("pointerup",this.onPointerUp),this.removeEventListener("pointercancel",this.onPointerUp),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.longPressTimer&&clearTimeout(this.longPressTimer),this.showTimer=null,this.hideTimer=null,this.longPressTimer=null}getAnchor(){let t=this.querySelector("[data-hover-card-trigger]");return t instanceof HTMLElement?k(t)??t:k(this)??this}getFloatingElement(){return this.controller?.getFloatingElement()??this.contentTarget}ensureController(){return this.controller||(this.controller=new V({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Gt,portal:this.portal})),this.controller}syncCard(){let t=this.getAnchor(),n=this.contentTarget;n&&(n.id=this.contentId),t&&(t.setAttribute("aria-controls",this.contentId),t.setAttribute("aria-expanded",String(this.open)));let r=this.ensureController();r.updateConfig({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Gt,portal:this.portal}),r.sync(),this.syncContentPointerBridge()}syncContentPointerBridge(){let t=this.getFloatingElement();t&&(t.removeEventListener("pointerenter",this.onPointerEnter),t.removeEventListener("pointerleave",this.onPointerLeave),this.open&&(t.addEventListener("pointerenter",this.onPointerEnter),t.addEventListener("pointerleave",this.onPointerLeave)))}setOpen(t,n=!0){if(this.disabled&&t)return;if(this.open===t){this.syncCard();return}let r=this.open;this.open=t,t?yt():r&&J(),n&&this.openChangeEvent.emit({open:t}),this.syncCard()}scheduleShow(t=!1){if(this.disabled||this.open)return;this.clearTimers(),this.openedByKeyboard=t;let n=vt(this.delay);if(n<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),n)}scheduleHide(){this.clearTimers();let t=this.closeDelay>0?this.closeDelay:0;if(t<=0){this.setOpen(!1);return}this.hideTimer=setTimeout(()=>this.setOpen(!1),t)}isTouchPointer(t){return t.pointerType==="touch"}onDocumentKeydown(t){if(!this.open||t.key!=="Escape")return;t.preventDefault();let n=this.getAnchor();this.setOpen(!1),n&&document.activeElement!==n&&n.focus()}onFocusIn(t){tt(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleShow(!0)}onFocusOut(t){tt(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleHide()}onHostKeydown(t){if(!this.open||t.key!=="Tab"||t.shiftKey||!this.openedByKeyboard)return;let n=this.getFloatingElement();if(!n)return;let r=k(n);r&&(t.preventDefault(),r.focus())}onPointerEnter(t){this.isTouchPointer(t)||this.scheduleShow()}onPointerLeave(t){this.isTouchPointer(t)||this.scheduleHide()}onPointerDown(t){this.disabled||!this.isTouchPointer(t)||(this.clearTimers(),this.longPressTimer=setTimeout(()=>{this.openedByKeyboard=!1,this.setOpen(!0)},be))}onPointerUp(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}static{Ct()}};function we({children:e,class:t,...n}){return R("span",{class:"rui-hover-card__trigger","data-ref":"trigger",children:R("span",{...n,"data-hover-card-trigger":!0,class:z(t),children:e})})}function _e({children:e,class:t,...n}){return R("div",{...n,"data-ref":"content",class:z("rui-hover-card__content","rui-floating",t),role:"dialog",hidden:!0,children:e})}function xe({children:e,contentLabel:t=et,...n}){return R("rui-hover-card",{contentLabel:t,...n,children:R("span",{class:"rui-hover-card",children:e})})}export{xe as RuiHoverCard,_e as RuiHoverCardContent,Xt as RuiHoverCardElement,we as RuiHoverCardTrigger};
|
|
1
|
+
import{jsx as R}from"@ecopages/jsx/jsx-runtime";function J(...e){return e.filter(Boolean).join(" ")}import{RadiantElement as Gt,bindTo as pe,bound as H,customElement as me,event as ge,onEvent as $,onUpdated as ye,prop as F,query as ve}from"@ecopages/radiant";var Yt="a[href], button, input, select, textarea, [tabindex]";function zt(e){return!e.hasAttribute("disabled")&&e.getAttribute("tabindex")!=="-1"}function Jt(e){return Array.from(e.querySelectorAll(Yt)).filter(zt)}function k(e){return Jt(e)[0]}var Qt=/^[A-Za-z][A-Za-z0-9_-]*$/;function mt(e){return Qt.test(e)}function te(e){let t=e.trim();if(mt(t))return t;let n=`rui-${t}`;return t&&mt(n)?n:"rui"}function gt(e){let t=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),n=>n.toString(16).padStart(2,"0")).join("");return`${te(e)}-${t}`}var S=0,yt=0;function vt(){S+=1}function Q(e=Date.now(),t=300){S=Math.max(0,S-1),S===0&&(yt=e+t)}function bt(e,t=Date.now()){return S>0||t<yt?0:e}var ee={top:"bottom",bottom:"top",left:"right",right:"left"},ne=8,tt=new WeakMap;function re(e){tt.has(e)&&(e.style.width="",e.style.minWidth="",e.style.maxWidth="",e.style.boxSizing="",tt.delete(e))}function ie(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function xt(e){return e==="top"||e==="bottom"?"y":"x"}function wt(e,t,n,r,i){let{width:a,height:s}=t,o=0,h=0;switch(n){case"top":h=e.top-s-i;break;case"bottom":h=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return xt(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?h=e.top:r==="end"?h=e.bottom-s:h=e.top+(e.height-s)/2,{x:o,y:h}}function oe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function _t(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function se(e,t){return t==="center"?e:`${e}-${t}`}function ae(e,t,n,r){let{padding:i,width:a,height:s}=r;if(xt(n)==="y"){let h=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),h),y:Math.max(i,e.y)}}let o=Math.max(i,s-i-t.height);return{x:Math.max(i,e.x),y:Math.min(Math.max(e.y,i),o)}}function le(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:ne}){let{side:a,align:s}=ie(n),o=wt(e,t,a,s,r),h=oe(o,t,a,i),y=a,T=o;if(h>0){let C=ee[a],P=wt(e,t,C,s,r),I=_t(e,t,a,i);_t(e,t,C,i)>I&&(y=C,T=P)}return{coords:ae(T,t,y,i),placement:se(y,s)}}function ce(e,t,n,r,i={}){let a=i.matchAnchorWidth===!0,s=e.offsetWidth,o=a?{width:s,height:t.offsetHeight}:{width:t.offsetWidth,height:t.offsetHeight};a?(t.style.width=`${s}px`,t.style.minWidth=`${s}px`,t.style.maxWidth=`${s}px`,t.style.boxSizing="border-box",tt.set(t,!0)):re(t);let{coords:h,placement:y}=le(e.getBoundingClientRect(),o,n,r);return Object.assign(t.style,{position:"fixed",left:`${h.x}px`,top:`${h.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),t.setAttribute("data-placement",y),y}function Et({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||ce(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function Tt(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function Ct(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function et(e,t,n){return n instanceof Node?!Ct(e,t,n):!0}var V=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Tt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Et({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return Ct(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Pt,At,Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt,qt;function ue(e,t,n,r,i,a){var s,o,h,y,T,C,P,I=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,N=Object.create,rt=[N(null),N(null)],it=t.length;function M(l,v,m){return function(c,u){v&&(u=c,c=e);for(var b=0;b<l.length;b++)u=l[b].apply(c,m?[u]:[]);return m?u:c}}function x(l,v,m,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(v+" must "+(m||"be")+" a function"+(c?"":" or undefined"));return l}function ot(l,v,m,c,u,b,A,g,w,_,at){function G(f){if(!at(f))throw new TypeError("Attempted to access private element on non-instance")}var Z=[].concat(v[0]),lt=v[3],X=!A,L=u===1,ct=u===3,ut=u===4,U=u===2;function W(f,D,ft){return function(j,pt){return D&&(pt=j,j=l),ft&&ft(j),d[f].call(j,pt)}}if(!X){var d={},Y=[],E=ct?"get":ut||L?"set":"value";if(w?(_||L?d={get:Nt(function(){return lt(this)},c,"get"),set:function(f){v[4](this,f)}}:d[E]=lt,_||Nt(d[E],c,U?"":E)):_||(d=Object.getOwnPropertyDescriptor(l,c)),!_&&!w){if((o=rt[+g][c])&&(o^u)!==7)throw Error("Decorating two elements with the same name ("+d[E].name+") is not supported yet");rt[+g][c]=u<3?1:u}}for(var p=l,B=Z.length-1;B>=0;B-=m?2:1){var ht=x(Z[B],"A decorator","be",!0),dt=m?Z[B-1]:void 0,z={},O={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:s,addInitializer:function(f,D){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(D,"An initializer","be",!0),b.push(D)}.bind(null,z)};if(X)o=ht.call(dt,p,O),z.v=1,x(o,"class decorators","return")&&(p=o);else if(O.static=g,O.private=w,o=O.access={has:w?at.bind():function(f){return c in f}},ut||(o.get=w?U?function(f){return G(f),d.value}:W("get",0,G):function(f){return f[c]}),U||ct||(o.set=w?W("set",0,G):function(f,D){f[c]=D}),p=ht.call(dt,L?{get:d.get,set:d.set}:d[E],O),z.v=1,L){if(typeof p=="object"&&p)(o=x(p.get,"accessor.get"))&&(d.get=o),(o=x(p.set,"accessor.set"))&&(d.set=o),(o=x(p.init,"accessor.init"))&&Y.unshift(o);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(p,(_?"field":"method")+" decorators","return")&&(_?Y.unshift(p):d[E]=p)}return u<2&&A.push(M(Y,g,1),M(b,g,0)),_||X||(w?L?A.splice(-1,0,W("get",g),W("set",g)):A.push(U?d[E]:x.call.bind(d[E])):q(l,c,d)),p}function st(l){return q(l,I,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[I]),s=N(s??null),T=[],C=function(l){l&&T.push(M(l))},P=function(l,v){for(var m=0;m<n.length;m++){var c=n[m],u=c[1],b=7&u;if((8&u)==l&&!b==v){var A=c[2],g=!!c[3],w=16&u;ot(l?e:e.prototype,c,w,g?"#"+A:he(A),b,b<2?[]:l?y=y||[]:h=h||[],T,!!l,g,v,l&&g?function(_){return fe(_)===e}:i)}}},P(8,0),P(0,0),P(8,1),P(0,1),C(h),C(y),o=T,it||st(e),{e:o,get c(){var l=[];return it&&[st(e=ot(e,[t],r,e.name,5,l)),M(l,1)]}}}function he(e){var t=de(e,"string");return typeof t=="symbol"?t:t+""}function de(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nt(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function fe(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var nt="Preview",Zt=8,be=500,K,Xt=class extends Gt{static{({e:[Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt,qt,Pt],c:[K,At]}=ue(this,[me("rui-hover-card")],[[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"open"],[F({type:String,defaultValue:"bottom-start"}),0,"placement"],[F({type:Number,defaultValue:600}),0,"delay"],[F({type:Number,defaultValue:200}),0,"closeDelay"],[F({type:Boolean,defaultValue:!0}),0,"portal"],[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[[F({type:String,attribute:"content-label",reflect:!0,defaultValue:nt}),pe({ref:"content",attr:"aria-label"})],0,"contentLabel"],[ve({ref:"content"}),0,"contentTarget"],[ge({name:"rui-open-change",bubbles:!0,composed:!0}),0,"openChangeEvent"],[[H,ye(["open","placement","portal","disabled"])],2,"syncCard"],[$({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[$({type:"focusin",ref:"trigger"}),2,"onFocusIn"],[$({type:"focusout",ref:"trigger"}),2,"onFocusOut"],[$({type:"keydown",ref:"trigger"}),2,"onHostKeydown"],[H,2,"onPointerEnter"],[H,2,"onPointerLeave"],[H,2,"onPointerDown"],[H,2,"onPointerUp"]],0,void 0,Gt))}open=(Pt(this),Ft(this));placement=(Dt(this),Lt(this));delay=(Ot(this),St(this));closeDelay=(Ht(this),Rt(this));portal=(It(this),Mt(this));disabled=(Ut(this),Wt(this));contentLabel=(Bt(this),jt(this));contentTarget=(kt(this),Vt(this));openChangeEvent=($t(this),Kt(this));contentId=(qt(this),gt("rui-hover-card"));controller=null;showTimer=null;hideTimer=null;longPressTimer=null;openedByKeyboard=!1;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),this.addEventListener("pointerdown",this.onPointerDown),this.addEventListener("pointerup",this.onPointerUp),this.addEventListener("pointercancel",this.onPointerUp)}onConnected(){this.syncCard()}disconnectedCallback(){this.clearTimers(),this.open&&Q(),this.controller?.destroy(),this.controller=null,this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.removeEventListener("pointerdown",this.onPointerDown),this.removeEventListener("pointerup",this.onPointerUp),this.removeEventListener("pointercancel",this.onPointerUp),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.longPressTimer&&clearTimeout(this.longPressTimer),this.showTimer=null,this.hideTimer=null,this.longPressTimer=null}getAnchor(){let t=this.querySelector("[data-hover-card-trigger]");return t instanceof HTMLElement?k(t)??t:k(this)??this}getFloatingElement(){return this.controller?.getFloatingElement()??this.contentTarget}ensureController(){return this.controller||(this.controller=new V({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Zt,portal:this.portal})),this.controller}syncCard(){let t=this.getAnchor(),n=this.contentTarget;n&&(n.id=this.contentId),t&&(t.setAttribute("aria-controls",this.contentId),t.setAttribute("aria-expanded",String(this.open)));let r=this.ensureController();r.updateConfig({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Zt,portal:this.portal}),r.sync(),this.syncContentPointerBridge()}syncContentPointerBridge(){let t=this.getFloatingElement();t&&(t.removeEventListener("pointerenter",this.onPointerEnter),t.removeEventListener("pointerleave",this.onPointerLeave),this.open&&(t.addEventListener("pointerenter",this.onPointerEnter),t.addEventListener("pointerleave",this.onPointerLeave)))}setOpen(t,n=!0){if(this.disabled&&t)return;if(this.open===t){this.syncCard();return}let r=this.open;this.open=t,t?vt():r&&Q(),n&&this.openChangeEvent.emit({open:t}),this.syncCard()}scheduleShow(t=!1){if(this.disabled||this.open)return;this.clearTimers(),this.openedByKeyboard=t;let n=bt(this.delay);if(n<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),n)}scheduleHide(){this.clearTimers();let t=this.closeDelay>0?this.closeDelay:0;if(t<=0){this.setOpen(!1);return}this.hideTimer=setTimeout(()=>this.setOpen(!1),t)}isTouchPointer(t){return t.pointerType==="touch"}onDocumentKeydown(t){if(!this.open||t.key!=="Escape")return;t.preventDefault();let n=this.getAnchor();this.setOpen(!1),n&&document.activeElement!==n&&n.focus()}onFocusIn(t){et(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleShow(!0)}onFocusOut(t){et(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleHide()}onHostKeydown(t){if(!this.open||t.key!=="Tab"||t.shiftKey||!this.openedByKeyboard)return;let n=this.getFloatingElement();if(!n)return;let r=k(n);r&&(t.preventDefault(),r.focus())}onPointerEnter(t){this.isTouchPointer(t)||this.scheduleShow()}onPointerLeave(t){this.isTouchPointer(t)||this.scheduleHide()}onPointerDown(t){this.disabled||!this.isTouchPointer(t)||(this.clearTimers(),this.longPressTimer=setTimeout(()=>{this.openedByKeyboard=!1,this.setOpen(!0)},be))}onPointerUp(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}static{At()}};function we({children:e,class:t,...n}){return R("span",{class:"rui-hover-card__trigger","data-ref":"trigger",children:R("span",{...n,"data-hover-card-trigger":!0,class:J(t),children:e})})}function _e({children:e,class:t,...n}){return R("div",{...n,"data-ref":"content",class:J("rui-hover-card__content","rui-floating",t),role:"dialog",hidden:!0,children:e})}function xe({children:e,contentLabel:t=nt,...n}){return R(K,{contentLabel:t,...n,children:R("span",{class:"rui-hover-card",children:e})})}export{xe as RuiHoverCard,_e as RuiHoverCardContent,K as RuiHoverCardElement,we as RuiHoverCardTrigger};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/hover-card/hover-card.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/hover-card/hover-card.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/shared/preview-timing.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { HOVER_CARD_DEFAULT_CONTENT_LABEL } from \"./hover-card.script\";\nimport \"./hover-card.script\";\nexport function RuiHoverCardTrigger({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n class: \"rui-hover-card__trigger\",\n \"data-ref\": \"trigger\",\n children: /* @__PURE__ */jsx(\"span\", {\n ...props,\n \"data-hover-card-trigger\": true,\n class: cx(className),\n children\n })\n });\n}\nexport function RuiHoverCardContent({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"content\",\n class: cx(\"rui-hover-card__content\", \"rui-floating\", className),\n role: \"dialog\",\n hidden: true,\n children\n });\n}\nexport function RuiHoverCard({\n children,\n contentLabel = HOVER_CARD_DEFAULT_CONTENT_LABEL,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-hover-card\", {\n contentLabel,\n ...props,\n children: /* @__PURE__ */jsx(\"span\", {\n class: \"rui-hover-card\",\n children\n })\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "let _initProto, _initClass, _init_open, _init_extra_open, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_closeDelay, _init_extra_closeDelay, _init_portal, _init_extra_portal, _init_disabled, _init_extra_disabled, _init_contentLabel, _init_extra_contentLabel, _init_contentTarget, _init_extra_contentTarget, _init_openChangeEvent, _init_extra_openChangeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, bindTo, bound, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findFirstFocusableCandidate } from \"@/lib/focusable-elements\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { notePreviewClosed, notePreviewOpened, resolvePreviewOpenDelay } from \"../shared/preview-timing\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nexport const HOVER_CARD_DEFAULT_CONTENT_LABEL = \"Preview\";\nconst HOVER_CARD_GAP = 8;\nconst LONG_PRESS_MS = 500;\nlet _RuiHoverCard;\nclass RuiHoverCard extends RadiantElement {\n static {\n ({\n e: [_init_open, _init_extra_open, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_closeDelay, _init_extra_closeDelay, _init_portal, _init_extra_portal, _init_disabled, _init_extra_disabled, _init_contentLabel, _init_extra_contentLabel, _init_contentTarget, _init_extra_contentTarget, _init_openChangeEvent, _init_extra_openChangeEvent, _initProto],\n c: [_RuiHoverCard, _initClass]\n } = _applyDecs(this, [customElement(\"rui-hover-card\")], [[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"open\"], [prop({\n type: String,\n defaultValue: \"bottom-start\"\n }), 0, \"placement\"], [prop({\n type: Number,\n defaultValue: 600\n }), 0, \"delay\"], [prop({\n type: Number,\n defaultValue: 200\n }), 0, \"closeDelay\"], [prop({\n type: Boolean,\n defaultValue: true\n }), 0, \"portal\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [[prop({\n type: String,\n attribute: \"content-label\",\n reflect: true,\n defaultValue: HOVER_CARD_DEFAULT_CONTENT_LABEL\n }), bindTo({\n ref: \"content\",\n attr: \"aria-label\"\n })], 0, \"contentLabel\"], [query({\n ref: \"content\"\n }), 0, \"contentTarget\"], [event({\n name: \"rui-open-change\",\n bubbles: true,\n composed: true\n }), 0, \"openChangeEvent\"], [[bound, onUpdated([\"open\", \"placement\", \"portal\", \"disabled\"])], 2, \"syncCard\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n type: \"focusin\",\n ref: \"trigger\"\n }), 2, \"onFocusIn\"], [onEvent({\n type: \"focusout\",\n ref: \"trigger\"\n }), 2, \"onFocusOut\"], [onEvent({\n type: \"keydown\",\n ref: \"trigger\"\n }), 2, \"onHostKeydown\"], [bound, 2, \"onPointerEnter\"], [bound, 2, \"onPointerLeave\"], [bound, 2, \"onPointerDown\"], [bound, 2, \"onPointerUp\"]], 0, void 0, RadiantElement));\n }\n open = (_initProto(this), _init_open(this));\n placement = (_init_extra_open(this), _init_placement(this));\n delay = (_init_extra_placement(this), _init_delay(this));\n closeDelay = (_init_extra_delay(this), _init_closeDelay(this));\n portal = (_init_extra_closeDelay(this), _init_portal(this));\n disabled = (_init_extra_portal(this), _init_disabled(this));\n contentLabel = (_init_extra_disabled(this), _init_contentLabel(this));\n contentTarget = (_init_extra_contentLabel(this), _init_contentTarget(this));\n openChangeEvent = (_init_extra_contentTarget(this), _init_openChangeEvent(this));\n contentId = (_init_extra_openChangeEvent(this), uniqueId(\"rui-hover-card\"));\n controller = null;\n showTimer = null;\n hideTimer = null;\n longPressTimer = null;\n openedByKeyboard = false;\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"pointerenter\", this.onPointerEnter);\n this.addEventListener(\"pointerleave\", this.onPointerLeave);\n this.addEventListener(\"pointerdown\", this.onPointerDown);\n this.addEventListener(\"pointerup\", this.onPointerUp);\n this.addEventListener(\"pointercancel\", this.onPointerUp);\n }\n onConnected() {\n this.syncCard();\n }\n disconnectedCallback() {\n this.clearTimers();\n if (this.open) {\n notePreviewClosed();\n }\n this.controller?.destroy();\n this.controller = null;\n this.removeEventListener(\"pointerenter\", this.onPointerEnter);\n this.removeEventListener(\"pointerleave\", this.onPointerLeave);\n this.removeEventListener(\"pointerdown\", this.onPointerDown);\n this.removeEventListener(\"pointerup\", this.onPointerUp);\n this.removeEventListener(\"pointercancel\", this.onPointerUp);\n super.disconnectedCallback();\n }\n clearTimers() {\n if (this.showTimer) clearTimeout(this.showTimer);\n if (this.hideTimer) clearTimeout(this.hideTimer);\n if (this.longPressTimer) clearTimeout(this.longPressTimer);\n this.showTimer = null;\n this.hideTimer = null;\n this.longPressTimer = null;\n }\n getAnchor() {\n const trigger = this.querySelector(\"[data-hover-card-trigger]\");\n if (trigger instanceof HTMLElement) {\n return findFirstFocusableCandidate(trigger) ?? trigger;\n }\n return findFirstFocusableCandidate(this) ?? this;\n }\n getFloatingElement() {\n return this.controller?.getFloatingElement() ?? this.contentTarget;\n }\n ensureController() {\n if (!this.controller) {\n this.controller = new PopoverController({\n getAnchor: () => this.getAnchor(),\n getFloating: () => this.contentTarget,\n getOpen: () => this.open,\n getPlacement: () => this.placement,\n gap: HOVER_CARD_GAP,\n portal: this.portal\n });\n }\n return this.controller;\n }\n syncCard() {\n const anchor = this.getAnchor();\n const surface = this.contentTarget;\n if (surface) {\n surface.id = this.contentId;\n }\n if (anchor) {\n anchor.setAttribute(\"aria-controls\", this.contentId);\n anchor.setAttribute(\"aria-expanded\", String(this.open));\n }\n const controller = this.ensureController();\n controller.updateConfig({\n getAnchor: () => this.getAnchor(),\n getFloating: () => this.contentTarget,\n getOpen: () => this.open,\n getPlacement: () => this.placement,\n gap: HOVER_CARD_GAP,\n portal: this.portal\n });\n controller.sync();\n this.syncContentPointerBridge();\n }\n syncContentPointerBridge() {\n const surface = this.getFloatingElement();\n if (!surface) {\n return;\n }\n surface.removeEventListener(\"pointerenter\", this.onPointerEnter);\n surface.removeEventListener(\"pointerleave\", this.onPointerLeave);\n if (this.open) {\n surface.addEventListener(\"pointerenter\", this.onPointerEnter);\n surface.addEventListener(\"pointerleave\", this.onPointerLeave);\n }\n }\n setOpen(next, emit = true) {\n if (this.disabled && next) {\n return;\n }\n if (this.open === next) {\n this.syncCard();\n return;\n }\n const wasOpen = this.open;\n this.open = next;\n if (next) {\n notePreviewOpened();\n } else if (wasOpen) {\n notePreviewClosed();\n }\n if (emit) {\n this.openChangeEvent.emit({\n open: next\n });\n }\n this.syncCard();\n }\n scheduleShow(fromKeyboard = false) {\n if (this.disabled || this.open) {\n return;\n }\n this.clearTimers();\n this.openedByKeyboard = fromKeyboard;\n const effectiveDelay = resolvePreviewOpenDelay(this.delay);\n if (effectiveDelay <= 0) {\n this.setOpen(true);\n return;\n }\n this.showTimer = setTimeout(() => this.setOpen(true), effectiveDelay);\n }\n scheduleHide() {\n this.clearTimers();\n const delay = this.closeDelay > 0 ? this.closeDelay : 0;\n if (delay <= 0) {\n this.setOpen(false);\n return;\n }\n this.hideTimer = setTimeout(() => this.setOpen(false), delay);\n }\n isTouchPointer(event2) {\n return event2.pointerType === \"touch\";\n }\n onDocumentKeydown(event2) {\n if (!this.open || event2.key !== \"Escape\") {\n return;\n }\n event2.preventDefault();\n const anchor = this.getAnchor();\n this.setOpen(false);\n if (anchor && document.activeElement !== anchor) {\n anchor.focus();\n }\n }\n onFocusIn(event2) {\n if (!shouldDismissPopoverFocus(this.getAnchor(), this.getFloatingElement(), event2.relatedTarget)) {\n return;\n }\n this.scheduleShow(true);\n }\n onFocusOut(event2) {\n if (!shouldDismissPopoverFocus(this.getAnchor(), this.getFloatingElement(), event2.relatedTarget)) {\n return;\n }\n this.scheduleHide();\n }\n onHostKeydown(event2) {\n if (!this.open || event2.key !== \"Tab\" || event2.shiftKey || !this.openedByKeyboard) {\n return;\n }\n const floating = this.getFloatingElement();\n if (!floating) {\n return;\n }\n const first = findFirstFocusableCandidate(floating);\n if (!first) {\n return;\n }\n event2.preventDefault();\n first.focus();\n }\n onPointerEnter(event2) {\n if (this.isTouchPointer(event2)) {\n return;\n }\n this.scheduleShow();\n }\n onPointerLeave(event2) {\n if (this.isTouchPointer(event2)) {\n return;\n }\n this.scheduleHide();\n }\n onPointerDown(event2) {\n if (this.disabled || !this.isTouchPointer(event2)) {\n return;\n }\n this.clearTimers();\n this.longPressTimer = setTimeout(() => {\n this.openedByKeyboard = false;\n this.setOpen(true);\n }, LONG_PRESS_MS);\n }\n onPointerUp() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n }\n static {\n _initClass();\n }\n}\nexport { _RuiHoverCard as RuiHoverCard };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "const DEFAULT_COOLDOWN_MS = 300;\nlet openCount = 0;\nlet fastPathUntil = 0;\nexport function resetPreviewTimingForTests() {\n openCount = 0;\n fastPathUntil = 0;\n}\nexport function notePreviewOpened() {\n openCount += 1;\n}\nexport function notePreviewClosed(now = Date.now(), cooldownMs = DEFAULT_COOLDOWN_MS) {\n openCount = Math.max(0, openCount - 1);\n if (openCount === 0) {\n fastPathUntil = now + cooldownMs;\n }\n}\nexport function resolvePreviewOpenDelay(requestedDelay, now = Date.now()) {\n if (openCount > 0) {\n return 0;\n }\n if (now < fastPathUntil) {\n return 0;\n }\n return requestedDelay;\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nconst matchAnchorWidthStylesApplied = /* @__PURE__ */new WeakMap();\nfunction clearMatchAnchorWidthStyles(floating) {\n if (!matchAnchorWidthStylesApplied.has(floating)) {\n return;\n }\n floating.style.width = \"\";\n floating.style.minWidth = \"\";\n floating.style.maxWidth = \"\";\n floating.style.boxSizing = \"\";\n matchAnchorWidthStylesApplied.delete(floating);\n}\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: Math.max(padding, coords.y)\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: Math.max(padding, coords.x),\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const matchAnchorWidth = options.matchAnchorWidth === true;\n const anchorWidth = anchor.offsetWidth;\n const size = matchAnchorWidth ? {\n width: anchorWidth,\n height: floating.offsetHeight\n } : {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n };\n if (matchAnchorWidth) {\n floating.style.width = `${anchorWidth}px`;\n floating.style.minWidth = `${anchorWidth}px`;\n floating.style.maxWidth = `${anchorWidth}px`;\n floating.style.boxSizing = \"border-box\";\n matchAnchorWidthStylesApplied.set(floating, true);\n } else {\n clearMatchAnchorWidthStyles(floating);\n }\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), size, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["jsx", "cx", "parts", "RadiantElement", "bindTo", "bound", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FOCUSABLE_CANDIDATE_SELECTOR", "isFocusableCandidate", "element", "queryFocusableCandidates", "root", "findFirstFocusableCandidate", "root", "queryFocusableCandidates", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "openCount", "fastPathUntil", "notePreviewOpened", "openCount", "notePreviewClosed", "now", "cooldownMs", "fastPathUntil", "resolvePreviewOpenDelay", "requestedDelay", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "floating", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "matchAnchorWidth", "anchorWidth", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "resolved", "attachFloating", "getPlacement", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "_initProto", "_initClass", "_init_open", "_init_extra_open", "_init_placement", "_init_extra_placement", "_init_delay", "_init_extra_delay", "_init_closeDelay", "_init_extra_closeDelay", "_init_portal", "_init_extra_portal", "_init_disabled", "_init_extra_disabled", "_init_contentLabel", "_init_extra_contentLabel", "_init_contentTarget", "_init_extra_contentTarget", "_init_openChangeEvent", "_init_extra_openChangeEvent", "_applyDecs", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "r", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "HOVER_CARD_DEFAULT_CONTENT_LABEL", "HOVER_CARD_GAP", "LONG_PRESS_MS", "_RuiHoverCard", "RuiHoverCard", "RadiantElement", "customElement", "prop", "bindTo", "query", "event", "bound", "onUpdated", "onEvent", "uniqueId", "notePreviewClosed", "trigger", "findFirstFocusableCandidate", "PopoverController", "anchor", "surface", "controller", "next", "emit", "wasOpen", "notePreviewOpened", "fromKeyboard", "effectiveDelay", "resolvePreviewOpenDelay", "delay", "event2", "shouldDismissPopoverFocus", "floating", "first", "RuiHoverCardTrigger", "children", "className", "props", "jsx", "cx", "RuiHoverCardContent", "RuiHoverCard", "contentLabel", "HOVER_CARD_DEFAULT_CONTENT_LABEL"]
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { HOVER_CARD_DEFAULT_CONTENT_LABEL, RuiHoverCard as RuiHoverCardElement } from \"./hover-card.script\";\nexport function RuiHoverCardTrigger({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n class: \"rui-hover-card__trigger\",\n \"data-ref\": \"trigger\",\n children: /* @__PURE__ */jsx(\"span\", {\n ...props,\n \"data-hover-card-trigger\": true,\n class: cx(className),\n children\n })\n });\n}\nexport function RuiHoverCardContent({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"content\",\n class: cx(\"rui-hover-card__content\", \"rui-floating\", className),\n role: \"dialog\",\n hidden: true,\n children\n });\n}\nexport function RuiHoverCard({\n children,\n contentLabel = HOVER_CARD_DEFAULT_CONTENT_LABEL,\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiHoverCardElement, {\n contentLabel,\n ...props,\n children: /* @__PURE__ */jsx(\"span\", {\n class: \"rui-hover-card\",\n children\n })\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "let _initProto, _initClass, _init_open, _init_extra_open, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_closeDelay, _init_extra_closeDelay, _init_portal, _init_extra_portal, _init_disabled, _init_extra_disabled, _init_contentLabel, _init_extra_contentLabel, _init_contentTarget, _init_extra_contentTarget, _init_openChangeEvent, _init_extra_openChangeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, bindTo, bound, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findFirstFocusableCandidate } from \"@/lib/focusable-elements\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { notePreviewClosed, notePreviewOpened, resolvePreviewOpenDelay } from \"../shared/preview-timing\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nexport const HOVER_CARD_DEFAULT_CONTENT_LABEL = \"Preview\";\nconst HOVER_CARD_GAP = 8;\nconst LONG_PRESS_MS = 500;\nlet _RuiHoverCard;\nclass RuiHoverCard extends RadiantElement {\n static {\n ({\n e: [_init_open, _init_extra_open, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_closeDelay, _init_extra_closeDelay, _init_portal, _init_extra_portal, _init_disabled, _init_extra_disabled, _init_contentLabel, _init_extra_contentLabel, _init_contentTarget, _init_extra_contentTarget, _init_openChangeEvent, _init_extra_openChangeEvent, _initProto],\n c: [_RuiHoverCard, _initClass]\n } = _applyDecs(this, [customElement(\"rui-hover-card\")], [[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"open\"], [prop({\n type: String,\n defaultValue: \"bottom-start\"\n }), 0, \"placement\"], [prop({\n type: Number,\n defaultValue: 600\n }), 0, \"delay\"], [prop({\n type: Number,\n defaultValue: 200\n }), 0, \"closeDelay\"], [prop({\n type: Boolean,\n defaultValue: true\n }), 0, \"portal\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [[prop({\n type: String,\n attribute: \"content-label\",\n reflect: true,\n defaultValue: HOVER_CARD_DEFAULT_CONTENT_LABEL\n }), bindTo({\n ref: \"content\",\n attr: \"aria-label\"\n })], 0, \"contentLabel\"], [query({\n ref: \"content\"\n }), 0, \"contentTarget\"], [event({\n name: \"rui-open-change\",\n bubbles: true,\n composed: true\n }), 0, \"openChangeEvent\"], [[bound, onUpdated([\"open\", \"placement\", \"portal\", \"disabled\"])], 2, \"syncCard\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n type: \"focusin\",\n ref: \"trigger\"\n }), 2, \"onFocusIn\"], [onEvent({\n type: \"focusout\",\n ref: \"trigger\"\n }), 2, \"onFocusOut\"], [onEvent({\n type: \"keydown\",\n ref: \"trigger\"\n }), 2, \"onHostKeydown\"], [bound, 2, \"onPointerEnter\"], [bound, 2, \"onPointerLeave\"], [bound, 2, \"onPointerDown\"], [bound, 2, \"onPointerUp\"]], 0, void 0, RadiantElement));\n }\n open = (_initProto(this), _init_open(this));\n placement = (_init_extra_open(this), _init_placement(this));\n delay = (_init_extra_placement(this), _init_delay(this));\n closeDelay = (_init_extra_delay(this), _init_closeDelay(this));\n portal = (_init_extra_closeDelay(this), _init_portal(this));\n disabled = (_init_extra_portal(this), _init_disabled(this));\n contentLabel = (_init_extra_disabled(this), _init_contentLabel(this));\n contentTarget = (_init_extra_contentLabel(this), _init_contentTarget(this));\n openChangeEvent = (_init_extra_contentTarget(this), _init_openChangeEvent(this));\n contentId = (_init_extra_openChangeEvent(this), uniqueId(\"rui-hover-card\"));\n controller = null;\n showTimer = null;\n hideTimer = null;\n longPressTimer = null;\n openedByKeyboard = false;\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"pointerenter\", this.onPointerEnter);\n this.addEventListener(\"pointerleave\", this.onPointerLeave);\n this.addEventListener(\"pointerdown\", this.onPointerDown);\n this.addEventListener(\"pointerup\", this.onPointerUp);\n this.addEventListener(\"pointercancel\", this.onPointerUp);\n }\n onConnected() {\n this.syncCard();\n }\n disconnectedCallback() {\n this.clearTimers();\n if (this.open) {\n notePreviewClosed();\n }\n this.controller?.destroy();\n this.controller = null;\n this.removeEventListener(\"pointerenter\", this.onPointerEnter);\n this.removeEventListener(\"pointerleave\", this.onPointerLeave);\n this.removeEventListener(\"pointerdown\", this.onPointerDown);\n this.removeEventListener(\"pointerup\", this.onPointerUp);\n this.removeEventListener(\"pointercancel\", this.onPointerUp);\n super.disconnectedCallback();\n }\n clearTimers() {\n if (this.showTimer) clearTimeout(this.showTimer);\n if (this.hideTimer) clearTimeout(this.hideTimer);\n if (this.longPressTimer) clearTimeout(this.longPressTimer);\n this.showTimer = null;\n this.hideTimer = null;\n this.longPressTimer = null;\n }\n getAnchor() {\n const trigger = this.querySelector(\"[data-hover-card-trigger]\");\n if (trigger instanceof HTMLElement) {\n return findFirstFocusableCandidate(trigger) ?? trigger;\n }\n return findFirstFocusableCandidate(this) ?? this;\n }\n getFloatingElement() {\n return this.controller?.getFloatingElement() ?? this.contentTarget;\n }\n ensureController() {\n if (!this.controller) {\n this.controller = new PopoverController({\n getAnchor: () => this.getAnchor(),\n getFloating: () => this.contentTarget,\n getOpen: () => this.open,\n getPlacement: () => this.placement,\n gap: HOVER_CARD_GAP,\n portal: this.portal\n });\n }\n return this.controller;\n }\n syncCard() {\n const anchor = this.getAnchor();\n const surface = this.contentTarget;\n if (surface) {\n surface.id = this.contentId;\n }\n if (anchor) {\n anchor.setAttribute(\"aria-controls\", this.contentId);\n anchor.setAttribute(\"aria-expanded\", String(this.open));\n }\n const controller = this.ensureController();\n controller.updateConfig({\n getAnchor: () => this.getAnchor(),\n getFloating: () => this.contentTarget,\n getOpen: () => this.open,\n getPlacement: () => this.placement,\n gap: HOVER_CARD_GAP,\n portal: this.portal\n });\n controller.sync();\n this.syncContentPointerBridge();\n }\n syncContentPointerBridge() {\n const surface = this.getFloatingElement();\n if (!surface) {\n return;\n }\n surface.removeEventListener(\"pointerenter\", this.onPointerEnter);\n surface.removeEventListener(\"pointerleave\", this.onPointerLeave);\n if (this.open) {\n surface.addEventListener(\"pointerenter\", this.onPointerEnter);\n surface.addEventListener(\"pointerleave\", this.onPointerLeave);\n }\n }\n setOpen(next, emit = true) {\n if (this.disabled && next) {\n return;\n }\n if (this.open === next) {\n this.syncCard();\n return;\n }\n const wasOpen = this.open;\n this.open = next;\n if (next) {\n notePreviewOpened();\n } else if (wasOpen) {\n notePreviewClosed();\n }\n if (emit) {\n this.openChangeEvent.emit({\n open: next\n });\n }\n this.syncCard();\n }\n scheduleShow(fromKeyboard = false) {\n if (this.disabled || this.open) {\n return;\n }\n this.clearTimers();\n this.openedByKeyboard = fromKeyboard;\n const effectiveDelay = resolvePreviewOpenDelay(this.delay);\n if (effectiveDelay <= 0) {\n this.setOpen(true);\n return;\n }\n this.showTimer = setTimeout(() => this.setOpen(true), effectiveDelay);\n }\n scheduleHide() {\n this.clearTimers();\n const delay = this.closeDelay > 0 ? this.closeDelay : 0;\n if (delay <= 0) {\n this.setOpen(false);\n return;\n }\n this.hideTimer = setTimeout(() => this.setOpen(false), delay);\n }\n isTouchPointer(event2) {\n return event2.pointerType === \"touch\";\n }\n onDocumentKeydown(event2) {\n if (!this.open || event2.key !== \"Escape\") {\n return;\n }\n event2.preventDefault();\n const anchor = this.getAnchor();\n this.setOpen(false);\n if (anchor && document.activeElement !== anchor) {\n anchor.focus();\n }\n }\n onFocusIn(event2) {\n if (!shouldDismissPopoverFocus(this.getAnchor(), this.getFloatingElement(), event2.relatedTarget)) {\n return;\n }\n this.scheduleShow(true);\n }\n onFocusOut(event2) {\n if (!shouldDismissPopoverFocus(this.getAnchor(), this.getFloatingElement(), event2.relatedTarget)) {\n return;\n }\n this.scheduleHide();\n }\n onHostKeydown(event2) {\n if (!this.open || event2.key !== \"Tab\" || event2.shiftKey || !this.openedByKeyboard) {\n return;\n }\n const floating = this.getFloatingElement();\n if (!floating) {\n return;\n }\n const first = findFirstFocusableCandidate(floating);\n if (!first) {\n return;\n }\n event2.preventDefault();\n first.focus();\n }\n onPointerEnter(event2) {\n if (this.isTouchPointer(event2)) {\n return;\n }\n this.scheduleShow();\n }\n onPointerLeave(event2) {\n if (this.isTouchPointer(event2)) {\n return;\n }\n this.scheduleHide();\n }\n onPointerDown(event2) {\n if (this.disabled || !this.isTouchPointer(event2)) {\n return;\n }\n this.clearTimers();\n this.longPressTimer = setTimeout(() => {\n this.openedByKeyboard = false;\n this.setOpen(true);\n }, LONG_PRESS_MS);\n }\n onPointerUp() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n }\n static {\n _initClass();\n }\n}\nexport { _RuiHoverCard as RuiHoverCard };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "const DEFAULT_COOLDOWN_MS = 300;\nlet openCount = 0;\nlet fastPathUntil = 0;\nexport function resetPreviewTimingForTests() {\n openCount = 0;\n fastPathUntil = 0;\n}\nexport function notePreviewOpened() {\n openCount += 1;\n}\nexport function notePreviewClosed(now = Date.now(), cooldownMs = DEFAULT_COOLDOWN_MS) {\n openCount = Math.max(0, openCount - 1);\n if (openCount === 0) {\n fastPathUntil = now + cooldownMs;\n }\n}\nexport function resolvePreviewOpenDelay(requestedDelay, now = Date.now()) {\n if (openCount > 0) {\n return 0;\n }\n if (now < fastPathUntil) {\n return 0;\n }\n return requestedDelay;\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nconst matchAnchorWidthStylesApplied = /* @__PURE__ */new WeakMap();\nfunction clearMatchAnchorWidthStyles(floating) {\n if (!matchAnchorWidthStylesApplied.has(floating)) {\n return;\n }\n floating.style.width = \"\";\n floating.style.minWidth = \"\";\n floating.style.maxWidth = \"\";\n floating.style.boxSizing = \"\";\n matchAnchorWidthStylesApplied.delete(floating);\n}\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: Math.max(padding, coords.y)\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: Math.max(padding, coords.x),\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const matchAnchorWidth = options.matchAnchorWidth === true;\n const anchorWidth = anchor.offsetWidth;\n const size = matchAnchorWidth ? {\n width: anchorWidth,\n height: floating.offsetHeight\n } : {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n };\n if (matchAnchorWidth) {\n floating.style.width = `${anchorWidth}px`;\n floating.style.minWidth = `${anchorWidth}px`;\n floating.style.maxWidth = `${anchorWidth}px`;\n floating.style.boxSizing = \"border-box\";\n matchAnchorWidthStylesApplied.set(floating, true);\n } else {\n clearMatchAnchorWidthStyles(floating);\n }\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), size, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "cx", "parts", "RadiantElement", "bindTo", "bound", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FOCUSABLE_CANDIDATE_SELECTOR", "isFocusableCandidate", "element", "queryFocusableCandidates", "root", "findFirstFocusableCandidate", "root", "queryFocusableCandidates", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "openCount", "fastPathUntil", "notePreviewOpened", "openCount", "notePreviewClosed", "now", "cooldownMs", "fastPathUntil", "resolvePreviewOpenDelay", "requestedDelay", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "floating", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "matchAnchorWidth", "anchorWidth", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "resolved", "attachFloating", "getPlacement", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "_initProto", "_initClass", "_init_open", "_init_extra_open", "_init_placement", "_init_extra_placement", "_init_delay", "_init_extra_delay", "_init_closeDelay", "_init_extra_closeDelay", "_init_portal", "_init_extra_portal", "_init_disabled", "_init_extra_disabled", "_init_contentLabel", "_init_extra_contentLabel", "_init_contentTarget", "_init_extra_contentTarget", "_init_openChangeEvent", "_init_extra_openChangeEvent", "_applyDecs", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "r", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "HOVER_CARD_DEFAULT_CONTENT_LABEL", "HOVER_CARD_GAP", "LONG_PRESS_MS", "_RuiHoverCard", "RuiHoverCard", "RadiantElement", "customElement", "prop", "bindTo", "query", "event", "bound", "onUpdated", "onEvent", "uniqueId", "notePreviewClosed", "trigger", "findFirstFocusableCandidate", "PopoverController", "anchor", "surface", "controller", "next", "emit", "wasOpen", "notePreviewOpened", "fromKeyboard", "effectiveDelay", "resolvePreviewOpenDelay", "delay", "event2", "shouldDismissPopoverFocus", "floating", "first", "RuiHoverCardTrigger", "children", "className", "props", "jsx", "cx", "RuiHoverCardContent", "RuiHoverCard", "contentLabel", "HOVER_CARD_DEFAULT_CONTENT_LABEL", "_RuiHoverCard"]
|
|
7
7
|
}
|
|
@@ -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,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};
|
|
1
|
+
import{bindTo as st,customElement as gt,event as yt,onEvent as C,onUpdated as Tt,prop as g,query as N}from"@ecopages/radiant";import{FormAssociatedElement as lt}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 i=e[1]?.length??0,r=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,i-r))}function pe(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):ct(t)}function fe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function ee(t,e,i){if(Object.is(t,e))return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;let r=Number.isFinite(i)&&i>0?i:1,s=Number.EPSILON*Math.max(Math.abs(t),Math.abs(e),r)*4;return Math.abs(t-e)<=Math.min(s,r*1e-6)}function K(t,e,i){let r=Number.isFinite(t)?t:0,s=Number.isFinite(e)?e:100,l=Math.min(r,s),h=Math.max(r,s),n=Number.isFinite(i)&&i>0?i: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 _e(t,e,i){switch(i){case"ArrowRight":case"ArrowUp":return t.clamp(e+t.step);case"ArrowLeft":case"ArrowDown":return t.clamp(e-t.step);case"Home":return t.lowerBound;case"End":return t.upperBound;case"PageUp":return t.clamp(e+t.step*10);case"PageDown":return t.clamp(e-t.step*10);default:return}}var ve=120,O=300,ht=14,dt=O+(360-O)/2;function mt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):ht))}function pt(t,e,i){return i.replace("{value}",fe(t,e))}function X(t,e,i,r,s,l,h){let n=K(e,i,r),v=mt(s),p=50-v/2,c=2*Math.PI*p,b=O/360*c,f=n.clamp(t),S=pe(r,h);return{startAngle:ve,strokeWidth:v,radius:p,circumference:c,arcLength:b,progressLength:n.ratioFor(f)*b,valueText:pt(f,S,l)}}function te(t,e,i,r){if(i.width===0||i.height===0)return null;let l=(Math.atan2(e-(i.top+i.height/2),t-(i.left+i.width/2))*180/Math.PI-ve+360)%360,h=l<=O?l:l<=dt?O:0;return r.valueFromRatio(h/O)}var be,ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Re,Se,Ie,Ne,Me,Le,Ke,Oe,De,ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,it,rt,nt,at;function ft(t,e,i,r,s,l){var h,n,v,p,c,b,f,S=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 ne(a,x,y,o,u,w,I,T,V,P,oe){function Q(m){if(!oe(m))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(x[0]),se=x[3],J=!I,k=u===1,le=u===3,ue=u===4,j=u===2;function W(m,L,de){return function(G,me){return L&&(me=G,G=a),de&&de(G),d[m].call(G,me)}}if(!J){var d={},Z=[],R=le?"get":ue||k?"set":"value";if(V?(P||k?d={get:ot(function(){return se(this)},o,"get"),set:function(m){x[4](this,m)}}:d[R]=se,P||ot(d[R],o,j?"":R)):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[R].name+") is not supported yet");D[+T][o]=u<3?1:u}}for(var _=a,$=Y.length-1;$>=0;$-=y?2:1){var ce=A(Y[$],"A decorator","be",!0),he=y?Y[$-1]:void 0,H={},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,H)};if(J)n=ce.call(he,_,F),H.v=1,A(n,"class decorators","return")&&(_=n);else if(F.static=T,F.private=V,n=F.access={has:V?oe.bind():function(m){return o in m}},ue||(n.get=V?j?function(m){return Q(m),d.value}:W("get",0,Q):function(m){return m[o]}),j||le||(n.set=V?W("set",0,Q):function(m,L){m[o]=L}),_=ce.call(he,k?{get:d.get,set:d.set}:d[R],F),H.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"))&&Z.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?Z.unshift(_):d[R]=_)}return u<2&&I.push(U(Z,T,1),U(w,T,0)),P||J||(V?k?I.splice(-1,0,W("get",T),W("set",T)):I.push(j?d[R]:A.call.bind(d[R])):z(a,o,d)),_}function ae(a){return z(a,S,{configurable:!0,enumerable:!0,value:h})}return l!==void 0&&(h=l[S]),h=M(h??null),c=[],b=function(a){a&&c.push(U(a))},f=function(a,x){for(var y=0;y<i.length;y++){var o=i[y],u=o[1],w=7&u;if((8&u)==a&&!w==x){var I=o[2],T=!!o[3],V=16&u;ne(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||ae(t),{e:n,get c(){var a=[];return B&&[ae(t=ne(t,[e],r,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 i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ot(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function 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 ie=50,q,ut=class extends lt{static{({e:[ye,Te,xe,we,Ve,Pe,Ee,Ae,Re,Se,Ie,Ne,Me,Le,Ke,Oe,De,ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,it,rt,nt,at,be],c:[q,ge]}=ft(this,[gt("rui-knob")],[[g({type:Number,reflect:!0,defaultValue:ie}),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}),st({ref:"control",attr:"aria-readonly",map:e=>String(e)})],0,"readOnly"],[[g({type:String,defaultValue:""}),st([{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,lt))}value=(be(this),ye(this));min=(Te(this),xe(this));max=(we(this),Ve(this));step=(Pe(this),Ee(this));valuePrecision=(Ae(this),Re(this));readOnly=(Se(this),Ie(this));label=(Ne(this),Me(this));size=(Le(this),Ke(this));strokeWidth=(Oe(this),De(this));showValue=(ke(this),Fe(this));valuePosition=(Ce(this),ze(this));valueTemplate=(Be(this),Ue(this));changeEvent=(je(this),We(this));rootTarget=($e(this),Ge(this));labelTarget=(Xe(this),qe(this));controlTarget=(Qe(this),Ye(this));trackTarget=(Je(this),Ze(this));progressTarget=(He(this),et(this));centerValueTarget=(tt(this),it(this));belowValueTarget=(rt(this),nt(this));activePointerId=(at(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 K(this.min,this.max,this.step)}get resolvedSize(){return typeof this.size=="number"&&Number.isFinite(this.size)&&this.size>0?this.size:void 0}get resolvedValuePosition(){return this.valuePosition==="below"?"below":"center"}paint(e){let i=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),r=this.resolvedValuePosition;this.syncKnobLayout(r),this.syncControlValues(e,i.valueText),this.syncRing(i),this.syncReadout(i.valueText,r)}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,i){let r=this.controlTarget;r&&(r.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),r.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),r.setAttribute("aria-valuenow",String(e)),r.setAttribute("aria-valuetext",i))}syncRing(e){for(let i of[this.trackTarget,this.progressTarget])i?.setAttribute("r",String(e.radius)),i?.setAttribute("stroke-width",String(e.strokeWidth));this.trackTarget?.setAttribute("stroke-dasharray",`${e.arcLength} ${e.circumference}`),this.progressTarget?.setAttribute("stroke-dasharray",`${e.progressLength} ${e.circumference}`)}syncReadout(e,i){for(let[r,s]of[[this.centerValueTarget,this.showValue&&i==="center"],[this.belowValueTarget,this.showValue&&i==="below"]])r&&(r.textContent=e,r.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),ee(this.value,e,this.step)||(this.value=e)}))}commitValue(e){if(this.effectiveDisabled||this.readOnly)return;let i=this.numericRange.clamp(e);this.paint(i),!ee(i,this.value,this.step)&&(this.value=i,this.lastEmitted!==i&&(this.lastEmitted=i,this.changeEvent.emit({value:i})))}onPointerDown(e){let i=this.controlTarget;if(e.button!==0||this.effectiveDisabled||this.readOnly||!i)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,i.setPointerCapture(e.pointerId);let r=i.getBoundingClientRect(),s=te(e.clientX,e.clientY,r,this.numericRange);s!=null&&this.commitValue(s),e.preventDefault()}onPointerMove(e){let i=this.controlTarget;if(e.pointerId!==this.activePointerId||!i)return;let r=i.getBoundingClientRect(),s=te(e.clientX,e.clientY,r,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 i=this.controlTarget;i?.hasPointerCapture(e.pointerId)&&i.releasePointerCapture(e.pointerId),this.activePointerId=null}onKeydown(e){if(this.effectiveDisabled||this.readOnly)return;let i=_e(this.numericRange,this.value,e.key);i!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(i))}static{ge()}};import{jsx as E,jsxs as re}from"@ecopages/jsx/jsx-runtime";function xt({value:t=ie,min:e=0,max:i=100,step:r=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:S,...z}){let M=K(e,i,r),D=M.clamp(t),B=X(D,e,i,r,p,f,S);return E(wt,{props:z,value:D,min:e,max:i,step:r,disabled:s,readOnly:l,label:h,name:n,size:v,strokeWidth:p,showValue:c,valuePosition:b,valueTemplate:f,valuePrecision:S,ring:B,range:M})}function wt({props:t,ring:e,range:i,...r}){return E(q,{...t,value:r.value,min:r.min,max:r.max,step:r.step,disabled:r.disabled,"prop:readOnly":r.readOnly,label:r.label,name:r.name,size:r.size,strokeWidth:r.strokeWidth,showValue:r.showValue,valuePosition:r.valuePosition,valueTemplate:r.valueTemplate,valuePrecision:r.valuePrecision,style:r.size?{"--rui-knob-size":`${r.size}px`}:void 0,children:E(Vt,{knob:r,ring:e,range:i})})}function Vt({knob:t,ring:e,range:i}){let r=t.valuePosition==="below";return re("div",{class:r?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[E("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),E(Pt,{knob:t,ring:e,range:i,valueBelow:r}),E("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!r,children:e.valueText})]})}function Pt({knob:t,ring:e,range:i,valueBelow:r}){return re("button",{type:"button",class:"rui-knob__control","data-ref":"control","data-knob-control":!0,role:"slider","aria-label":t.label||void 0,"aria-valuemin":i.lowerBound,"aria-valuemax":i.upperBound,"aria-valuenow":t.value,"aria-valuetext":e.valueText,"aria-readonly":t.readOnly,disabled:t.disabled,children:[re("svg",{class:"rui-knob__svg",viewBox:"0 0 100 100","aria-hidden":"true",children:[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||r,children:e.valueText})]})}export{xt as RuiKnob,q as RuiKnobElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|