@ecopages/radiant-ui 0.2.1 → 0.2.2

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.
Files changed (28) hide show
  1. package/dist/components/ui/carousel/carousel.script.d.ts +4 -4
  2. package/dist/components/ui/combobox/combobox.script.d.ts +1 -1
  3. package/dist/components/ui/date-field/date-field.script.d.ts +1 -1
  4. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +1 -1
  5. package/dist/components/ui/dialog/dialog.script.d.ts +3 -3
  6. package/dist/components/ui/dialog/index.js +1 -1
  7. package/dist/components/ui/dialog/index.js.map +2 -2
  8. package/dist/components/ui/hover-card/hover-card.script.d.ts +1 -1
  9. package/dist/components/ui/knob/index.js +1 -1
  10. package/dist/components/ui/knob/index.js.map +2 -2
  11. package/dist/components/ui/knob/knob.script.d.ts +7 -7
  12. package/dist/components/ui/menu-button/menu-button.script.d.ts +2 -2
  13. package/dist/components/ui/popover/popover.script.d.ts +3 -3
  14. package/dist/components/ui/select/select.script.d.ts +1 -1
  15. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +1 -1
  16. package/dist/components/ui/sidebar/sidebar.css +656 -654
  17. package/dist/components/ui/sidebar/sidebar.script.d.ts +4 -4
  18. package/dist/components/ui/slider/slider.script.d.ts +8 -8
  19. package/dist/components/ui/toast/toast.script.d.ts +1 -1
  20. package/dist/components/ui/toast/toaster.script.d.ts +1 -1
  21. package/dist/components/ui/tooltip/tooltip.script.d.ts +1 -1
  22. package/dist/components/ui/window-splitter/index.js +1 -1
  23. package/dist/components/ui/window-splitter/index.js.map +2 -2
  24. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +2 -2
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +2 -2
  27. package/dist/styles/styles.css +582 -582
  28. package/package.json +8 -8
@@ -124,10 +124,10 @@ export declare class RuiCarousel extends RadiantElement {
124
124
  slidesPerView: number;
125
125
  slidesPerGroup: number;
126
126
  slideCount: number;
127
- rootTarget: HTMLElement;
128
- trackTarget: HTMLElement;
129
- indicatorsTarget: HTMLElement;
130
- viewportTarget: HTMLElement;
127
+ rootTarget: HTMLElement | null;
128
+ trackTarget: HTMLElement | null;
129
+ indicatorsTarget: HTMLElement | null;
130
+ viewportTarget: HTMLElement | null;
131
131
  private paused;
132
132
  private readonly uid;
133
133
  /** User explicitly resumed rotation (e.g. via rotation control) despite reduced motion. */
@@ -95,7 +95,7 @@ export declare class RuiCombobox extends RadiantElement {
95
95
  private readonly uid;
96
96
  private readonly collection;
97
97
  private readonly listboxBehavior;
98
- rootTarget: HTMLElement;
98
+ rootTarget: HTMLElement | null;
99
99
  private get listboxId();
100
100
  private get inputId();
101
101
  private isMultiple;
@@ -75,7 +75,7 @@ export declare class RuiDateField extends RadiantElement {
75
75
  private readonly uid;
76
76
  private readonly calendarPopover;
77
77
  private disposeMobileLayoutListener;
78
- popoverTarget: HTMLElement;
78
+ popoverTarget: HTMLElement | null;
79
79
  private readonly onMediaChange;
80
80
  private get isoValue();
81
81
  private get inputId();
@@ -77,7 +77,7 @@ export declare class RuiDateRangePicker extends RadiantElement {
77
77
  open: boolean;
78
78
  private readonly calendarPopover;
79
79
  private disposeMobileLayoutListener;
80
- popoverTarget: HTMLElement;
80
+ popoverTarget: HTMLElement | null;
81
81
  private readonly onMediaChange;
82
82
  private get isoValue();
83
83
  private getStartInput;
@@ -67,9 +67,9 @@ export declare class RuiDialog extends RadiantElement {
67
67
  open: boolean;
68
68
  alert: boolean;
69
69
  label: string;
70
- dialogTarget: HTMLElement;
71
- titleTarget: HTMLElement;
72
- descriptionTarget: HTMLElement;
70
+ dialogTarget: HTMLElement | null;
71
+ titleTarget: HTMLElement | null;
72
+ descriptionTarget: HTMLElement | null;
73
73
  closeEvent: EventEmitter<RuiDialogCloseDetail>;
74
74
  private previouslyFocused;
75
75
  private readonly uid;
@@ -1,2 +1,2 @@
1
- import{RadiantElement as Kt,bindTo as ye,bound as Ee,customElement as De,event as Ie,onEvent as ot,onUpdated as Ae,prop as rt,query as nt}from"@ecopages/radiant";var fe="a[href], button, input, select, textarea, [tabindex]";function ge(t){return!t.hasAttribute("disabled")&&t.getAttribute("tabindex")!=="-1"}function xt(t){return Array.from(t.querySelectorAll(fe)).filter(ge)}var pe=/^[A-Za-z][A-Za-z0-9_-]*$/;function Tt(t){return pe.test(t)}function me(t){let e=t.trim();if(Tt(e))return e;let i=`rui-${e}`;return e&&Tt(i)?i:"rui"}function Ct(t){let e=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),i=>i.toString(16).padStart(2,"0")).join("");return`${me(t)}-${e}`}var Rt,wt,Lt,St,kt,Ot,Nt,Gt,Ut,jt,Vt,Bt,qt,Ft,$t,zt;function be(t,e,i,o,u,g){var D,l,Z,J,j,Q,S,dt=Symbol.metadata||Symbol.for("Symbol.metadata"),ft=Object.defineProperty,W=Object.create,gt=[W(null),W(null)],pt=e.length;function V(r,h,m){return function(n,a){h&&(a=n,n=t);for(var _=0;_<r.length;_++)a=r[_].apply(n,m?[a]:[]);return m?a:n}}function I(r,h,m,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(m||"be")+" a function"+(n?"":" or undefined"));return r}function mt(r,h,m,n,a,_,T,b,v,y,ht){function Y(c){if(!ht(c))throw new TypeError("Attempted to access private element on non-instance")}var P=[].concat(h[0]),_t=h[3],tt=!T,k=a===1,vt=a===3,yt=a===4,B=a===2;function q(c,R,It){return function($,At){return R&&(At=$,$=r),It&&It($),s[c].call($,At)}}if(!tt){var s={},et=[],A=vt?"get":yt||k?"set":"value";if(v?(y||k?s={get:Ht(function(){return _t(this)},n,"get"),set:function(c){h[4](this,c)}}:s[A]=_t,y||Ht(s[A],n,B?"":A)):y||(s=Object.getOwnPropertyDescriptor(r,n)),!y&&!v){if((l=gt[+b][n])&&(l^a)!==7)throw Error("Decorating two elements with the same name ("+s[A].name+") is not supported yet");gt[+b][n]=a<3?1:a}}for(var p=r,F=P.length-1;F>=0;F-=m?2:1){var Et=I(P[F],"A decorator","be",!0),Dt=m?P[F-1]:void 0,it={},O={kind:["field","accessor","method","getter","setter","class"][a],name:n,metadata:D,addInitializer:function(c,R){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");I(R,"An initializer","be",!0),_.push(R)}.bind(null,it)};if(tt)l=Et.call(Dt,p,O),it.v=1,I(l,"class decorators","return")&&(p=l);else if(O.static=b,O.private=v,l=O.access={has:v?ht.bind():function(c){return n in c}},yt||(l.get=v?B?function(c){return Y(c),s.value}:q("get",0,Y):function(c){return c[n]}),B||vt||(l.set=v?q("set",0,Y):function(c,R){c[n]=R}),p=Et.call(Dt,k?{get:s.get,set:s.set}:s[A],O),it.v=1,k){if(typeof p=="object"&&p)(l=I(p.get,"accessor.get"))&&(s.get=l),(l=I(p.set,"accessor.set"))&&(s.set=l),(l=I(p.init,"accessor.init"))&&et.unshift(l);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else I(p,(y?"field":"method")+" decorators","return")&&(y?et.unshift(p):s[A]=p)}return a<2&&T.push(V(et,b,1),V(_,b,0)),y||tt||(v?k?T.splice(-1,0,q("get",b),q("set",b)):T.push(B?s[A]:I.call.bind(s[A])):ft(r,n,s)),p}function bt(r){return ft(r,dt,{configurable:!0,enumerable:!0,value:D})}return g!==void 0&&(D=g[dt]),D=W(D??null),j=[],Q=function(r){r&&j.push(V(r))},S=function(r,h){for(var m=0;m<i.length;m++){var n=i[m],a=n[1],_=7&a;if((8&a)==r&&!_==h){var T=n[2],b=!!n[3],v=16&a;mt(r?t:t.prototype,n,v,b?"#"+T:he(T),_,_<2?[]:r?J=J||[]:Z=Z||[],j,!!r,b,h,r&&b?function(y){return ve(y)===t}:u)}}},S(8,0),S(0,0),S(8,1),S(0,1),Q(Z),Q(J),l=j,pt||bt(t),{e:l,get c(){var r=[];return pt&&[bt(t=mt(t,[e],o,t.name,5,r)),V(r,1)]}}}function he(t){var e=_e(t,"string");return typeof e=="symbol"?e:e+""}function _e(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ht(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 ve(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 Mt,Xt=class extends Kt{static{({e:[Lt,St,kt,Ot,Nt,Gt,Ut,jt,Vt,Bt,qt,Ft,$t,zt,Rt],c:[Mt,wt]}=be(this,[De("rui-dialog")],[[[rt({type:Boolean,reflect:!0,defaultValue:!1}),ye({ref:"root",bool:"hidden",invert:!0})],0,"open"],[rt({type:Boolean,reflect:!0,defaultValue:!1}),0,"alert"],[rt({type:String,defaultValue:""}),0,"label"],[nt({ref:"dialog"}),0,"dialogTarget"],[nt({selector:"[data-dialog-title]"}),0,"titleTarget"],[nt({selector:"[data-dialog-body]"}),0,"descriptionTarget"],[Ie({name:"rui-close",bubbles:!0,composed:!0}),0,"closeEvent"],[[Ee,Ae(["open","label"])],2,"syncOpenState"],[ot({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[ot({ref:"backdrop",type:"click"}),2,"onBackdropClick"],[ot({selector:"[data-dialog-close]",type:"click"}),2,"onCloseClick"]],0,void 0,Kt))}open=(Rt(this),Lt(this));alert=(St(this),kt(this));label=(Ot(this),Nt(this));dialogTarget=(Gt(this),Ut(this));titleTarget=(jt(this),Vt(this));descriptionTarget=(Bt(this),qt(this));closeEvent=(Ft(this),$t(this));previouslyFocused=(zt(this),null);uid=Ct("rui-dialog");get titleId(){return`${this.uid}-title`}get descriptionId(){return`${this.uid}-desc`}onConnected(){this.syncOpenState()}syncOpenState(){this.dialogTarget&&(this.titleTarget?.textContent?.trim()?(this.titleTarget.id=this.titleId,this.dialogTarget.setAttribute("aria-labelledby",this.titleId),this.dialogTarget.removeAttribute("aria-label")):this.label&&(this.dialogTarget.setAttribute("aria-label",this.label),this.dialogTarget.removeAttribute("aria-labelledby")),this.descriptionTarget?(this.descriptionTarget.id=this.descriptionId,this.dialogTarget.setAttribute("aria-describedby",this.descriptionId)):this.dialogTarget.removeAttribute("aria-describedby"),this.open?(this.previouslyFocused=document.activeElement,queueMicrotask(()=>this.focusInitial())):(this.previouslyFocused?.focus?.(),this.previouslyFocused=null))}focusInitial(){(this.getFocusable()[0]??this.dialogTarget)?.focus()}getFocusable(){return this.dialogTarget?xt(this.dialogTarget):[]}dismiss(e){this.open&&(this.open=!1,this.closeEvent.emit({reason:e}))}onDocumentKeydown(e){if(!this.open)return;if(e.key==="Escape"){e.preventDefault(),this.dismiss("escape");return}if(e.key!=="Tab")return;let i=this.getFocusable();if(!i.length){e.preventDefault(),this.dialogTarget.focus();return}let o=i[0],u=i[i.length-1],g=document.activeElement;e.shiftKey&&g===o?(e.preventDefault(),u.focus()):!e.shiftKey&&g===u&&(e.preventDefault(),o.focus())}onBackdropClick(){this.dismiss("backdrop")}onCloseClick(){this.dismiss("dismiss")}static{wt()}};import{jsx as f,jsxs as Pt}from"@ecopages/jsx/jsx-runtime";function Zt(t,e){return e===void 0||t?.label!==void 0?t:{...t,label:e}}function C(...t){return t.filter(Boolean).join(" ")}import{jsx as Jt,jsxs as xe}from"@ecopages/jsx/jsx-runtime";var Qt="http://www.w3.org/2000/svg";function at({class:t,size:e="sm",...i}){return xe("svg",{...i,class:C("rui-icon",e==="md"&&"rui-icon--md",t),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[Jt("path",{d:"m18 6-12 12"}),Jt("path",{d:"m6 6 12 12"})]})}function Wt(){let t=document.createElementNS(Qt,"svg");t.setAttribute("class","rui-icon"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),t.setAttribute("aria-hidden","true");for(let e of["m18 6-12 12","m6 6 12 12"]){let i=document.createElementNS(Qt,"path");i.setAttribute("d",e),t.append(i)}return t}function te({children:t,class:e,...i}){return f("div",{...i,"data-dialog-title":!0,"data-ref":"title",class:C("rui-dialog__title",e),children:t})}function ee({children:t,class:e,...i}){return f("div",{...i,"data-dialog-body":!0,"data-ref":"description",class:C("rui-dialog__body",e),children:t})}function ie({children:t,class:e,...i}){return f("div",{...i,class:C("rui-dialog__actions",e),children:t})}function oe({children:t,class:e,aria:i,...o}){return f("button",{...o,aria:Zt(i,"Close"),type:"button","data-dialog-close":!0,"data-ref":"close",class:C("rui-dialog__close",e),children:t??f(at,{})})}function Yt({alert:t,children:e,open:i}){return Pt("div",{"data-ref":"root",class:"rui-dialog",hidden:i?void 0:!0,children:[f("div",{"data-ref":"backdrop",class:"rui-dialog__backdrop"}),f("div",{"data-ref":"dialog",class:"rui-dialog__surface",tabindex:-1,role:t?"alertdialog":"dialog","aria-modal":"true",children:e})]})}function Te({title:t,actions:e,children:i,open:o,alert:u,...g}){return t!=null||e!=null?f("rui-dialog",{...g,open:o,alert:u,children:Pt(Yt,{open:o,alert:u,children:[f(oe,{}),t!=null?f(te,{children:t}):null,i!=null?f(ee,{children:i}):null,e!=null?f(ie,{children:e}):null]})}):f("rui-dialog",{...g,open:o,alert:u,children:f(Yt,{open:o,alert:u,children:i})})}var E="__rui-dialog-host",z="rui-dialog-open",H="rui-dialog-close",K="rui-dialog-toggle",lt="rui-dialog-action";function re(t){return"id"in t&&t.id!=null&&t.id!==""}var N=!1,X=null,G=null,d=null;function ut(t){let e=t.trim();if(!e)return null;let i=document.getElementById(e);return i?.localName==="rui-dialog"?i:null}function Ce(){let t=document.createElement("button");return t.type="button",t.setAttribute("data-dialog-close",""),t.setAttribute("data-ref","close"),t.className="rui-dialog__close",t.setAttribute("aria-label","Close"),t.append(Wt()),t}function Re(t){let e=document.createElement("div");return e.setAttribute("data-dialog-title",""),e.setAttribute("data-ref","title"),e.className="rui-dialog__title",e.textContent=t,e}function we(t){let e=document.createElement("div");e.setAttribute("data-dialog-body",""),e.setAttribute("data-ref","description"),e.className="rui-dialog__body";let i=document.createElement("p");return i.textContent=t,e.append(i),e}function Le(t){let e=document.createElement("div");e.className="rui-dialog__actions";for(let i of t){let o=document.createElement("button");o.type="button",o.className=`rui-button rui-button--${i.variant??"filled"} rui-button--${i.size??"md"}`,o.setAttribute("data-dialog-action",i.value??""),i.closeOnClick===!1&&o.setAttribute("data-dialog-action-close","false"),o.textContent=i.label,e.append(o)}return e}function Se(t){let e=document.createElement("div");e.dataset.ref="root",e.className="rui-dialog";let i=document.createElement("div");i.setAttribute("data-ref","backdrop"),i.className="rui-dialog__backdrop";let o=document.createElement("div");return o.setAttribute("data-ref","dialog"),o.className="rui-dialog__surface",o.tabIndex=-1,o.setAttribute("role",t?"alertdialog":"dialog"),o.setAttribute("aria-modal","true"),e.append(i,o),e}function U(){G?.remove(),G=null}function ke(t){U();let e=document.createElement("rui-dialog");e.id=E,e.alert=!!t.alert,e.label=t.label??"",e.open=!0;let i=Se(e.alert),o=i.querySelector('[data-ref="dialog"]');if(!o)throw new Error("Failed to create the dialog surface.");return o.append(Ce()),t.title&&o.append(Re(t.title)),t.body&&o.append(we(t.body)),t.actions?.length&&o.append(Le(t.actions)),e.append(i),(X??document.body).appendChild(e),G=e,e}function ne(t){if(!(!d||d===t))if(d===E)U();else{let e=ut(d);e&&(e.open=!1)}}function w(t){x();let e=ut(t);e&&(ne(t),e.open=!0,d=t)}function Oe(t){x(),ne(E),ke(t),d=E}function M(t){if(typeof t=="string"){w(t);return}if(re(t)){w(t.id);return}Oe(t)}function L(t){x();let e=t??d;if(e){if(e===E)U();else{let i=ut(e);i&&(i.open=!1)}d===e&&(d=null)}}function ct(t){if(x(),d===t){L(t);return}w(t)}function ae(t){let e=t.detail;if(typeof e=="string"){M(e);return}e&&typeof e=="object"&&M(e)}function le(t){let e=t.detail;L(e?.id)}function se(t){let e=t.detail;e?.id&&ct(e.id)}function ue(t){let e=t.target;if(!e?.closest)return;let i=e.closest("[data-dialog-action]");if(i&&G?.contains(i)){t.preventDefault();let D={value:i.getAttribute("data-dialog-action")||void 0||void 0};G.dispatchEvent(new CustomEvent(lt,{detail:D,bubbles:!0,composed:!0})),i.getAttribute("data-dialog-action-close")!=="false"&&L(E);return}let o=e.closest("[data-dialog-open]");if(o){let g=o.getAttribute("data-dialog-open")?.trim();g&&(t.preventDefault(),w(g));return}let u=e.closest("[data-dialog-close]");if(u){if(u.closest("rui-dialog")?.hasAttribute("open"))return;t.preventDefault(),L()}}function ce(t){let e=t.target?.closest?.("rui-dialog");if(!e)return;let i=e.id||null;i&&d===i&&(i===E&&U(),d=null)}function de(t={}){return N?(t.mount&&(X=t.mount),st):(N=!0,X=t.mount??document.body,document.addEventListener(z,ae),document.addEventListener(H,le),document.addEventListener(K,se),document.addEventListener("click",ue),document.addEventListener("rui-close",ce),st)}function x(){N||de()}function st(){N&&(document.removeEventListener(z,ae),document.removeEventListener(H,le),document.removeEventListener(K,se),document.removeEventListener("click",ue),document.removeEventListener("rui-close",ce),U(),X=null,d=null,N=!1)}function Ne(){return d}function Ge(t){x(),M(t)}function Ue(t){x(),L(t)}function je(t){x(),ct(t)}function Ve(t){x();let e=t?.trim()||void 0;return{open:o=>{if(e){w(e);return}if(o!=null){if(typeof o=="string"){w(o);return}M(o)}},close:o=>{L(o??e)},toggle:o=>{let u=o??e;u&&ct(u)},get openId(){return d}}}export{lt as RUI_DIALOG_ACTION_EVENT,H as RUI_DIALOG_CLOSE_EVENT,E as RUI_DIALOG_HOST_ID,z as RUI_DIALOG_OPEN_EVENT,K as RUI_DIALOG_TOGGLE_EVENT,Te as RuiDialog,ie as RuiDialogActions,ee as RuiDialogBody,oe as RuiDialogClose,Mt as RuiDialogElement,te as RuiDialogTitle,Ue as closeDialog,Ve as createDialogHandle,Ne as getOpenDialogId,de as installDialogs,Ge as openDialog,je as toggleDialog,st as uninstallDialogs};
1
+ import{RadiantElement as Kt,bindTo as ye,bound as Ee,customElement as De,event as Ie,onEvent as ot,onUpdated as Ae,prop as rt,query as nt}from"@ecopages/radiant";var fe="a[href], button, input, select, textarea, [tabindex]";function ge(t){return!t.hasAttribute("disabled")&&t.getAttribute("tabindex")!=="-1"}function xt(t){return Array.from(t.querySelectorAll(fe)).filter(ge)}var pe=/^[A-Za-z][A-Za-z0-9_-]*$/;function Tt(t){return pe.test(t)}function me(t){let e=t.trim();if(Tt(e))return e;let i=`rui-${e}`;return e&&Tt(i)?i:"rui"}function Ct(t){let e=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),i=>i.toString(16).padStart(2,"0")).join("");return`${me(t)}-${e}`}var Rt,wt,Lt,St,kt,Ot,Nt,Gt,Ut,jt,Vt,Bt,qt,Ft,$t,zt;function be(t,e,i,o,u,g){var D,l,Z,J,j,Q,S,dt=Symbol.metadata||Symbol.for("Symbol.metadata"),ft=Object.defineProperty,W=Object.create,gt=[W(null),W(null)],pt=e.length;function V(r,h,m){return function(n,a){h&&(a=n,n=t);for(var _=0;_<r.length;_++)a=r[_].apply(n,m?[a]:[]);return m?a:n}}function I(r,h,m,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(m||"be")+" a function"+(n?"":" or undefined"));return r}function mt(r,h,m,n,a,_,T,b,v,y,ht){function Y(c){if(!ht(c))throw new TypeError("Attempted to access private element on non-instance")}var P=[].concat(h[0]),_t=h[3],tt=!T,k=a===1,vt=a===3,yt=a===4,B=a===2;function q(c,R,It){return function($,At){return R&&(At=$,$=r),It&&It($),s[c].call($,At)}}if(!tt){var s={},et=[],A=vt?"get":yt||k?"set":"value";if(v?(y||k?s={get:Ht(function(){return _t(this)},n,"get"),set:function(c){h[4](this,c)}}:s[A]=_t,y||Ht(s[A],n,B?"":A)):y||(s=Object.getOwnPropertyDescriptor(r,n)),!y&&!v){if((l=gt[+b][n])&&(l^a)!==7)throw Error("Decorating two elements with the same name ("+s[A].name+") is not supported yet");gt[+b][n]=a<3?1:a}}for(var p=r,F=P.length-1;F>=0;F-=m?2:1){var Et=I(P[F],"A decorator","be",!0),Dt=m?P[F-1]:void 0,it={},O={kind:["field","accessor","method","getter","setter","class"][a],name:n,metadata:D,addInitializer:function(c,R){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");I(R,"An initializer","be",!0),_.push(R)}.bind(null,it)};if(tt)l=Et.call(Dt,p,O),it.v=1,I(l,"class decorators","return")&&(p=l);else if(O.static=b,O.private=v,l=O.access={has:v?ht.bind():function(c){return n in c}},yt||(l.get=v?B?function(c){return Y(c),s.value}:q("get",0,Y):function(c){return c[n]}),B||vt||(l.set=v?q("set",0,Y):function(c,R){c[n]=R}),p=Et.call(Dt,k?{get:s.get,set:s.set}:s[A],O),it.v=1,k){if(typeof p=="object"&&p)(l=I(p.get,"accessor.get"))&&(s.get=l),(l=I(p.set,"accessor.set"))&&(s.set=l),(l=I(p.init,"accessor.init"))&&et.unshift(l);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else I(p,(y?"field":"method")+" decorators","return")&&(y?et.unshift(p):s[A]=p)}return a<2&&T.push(V(et,b,1),V(_,b,0)),y||tt||(v?k?T.splice(-1,0,q("get",b),q("set",b)):T.push(B?s[A]:I.call.bind(s[A])):ft(r,n,s)),p}function bt(r){return ft(r,dt,{configurable:!0,enumerable:!0,value:D})}return g!==void 0&&(D=g[dt]),D=W(D??null),j=[],Q=function(r){r&&j.push(V(r))},S=function(r,h){for(var m=0;m<i.length;m++){var n=i[m],a=n[1],_=7&a;if((8&a)==r&&!_==h){var T=n[2],b=!!n[3],v=16&a;mt(r?t:t.prototype,n,v,b?"#"+T:he(T),_,_<2?[]:r?J=J||[]:Z=Z||[],j,!!r,b,h,r&&b?function(y){return ve(y)===t}:u)}}},S(8,0),S(0,0),S(8,1),S(0,1),Q(Z),Q(J),l=j,pt||bt(t),{e:l,get c(){var r=[];return pt&&[bt(t=mt(t,[e],o,t.name,5,r)),V(r,1)]}}}function he(t){var e=_e(t,"string");return typeof e=="symbol"?e:e+""}function _e(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ht(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 ve(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 Mt,Xt=class extends Kt{static{({e:[Lt,St,kt,Ot,Nt,Gt,Ut,jt,Vt,Bt,qt,Ft,$t,zt,Rt],c:[Mt,wt]}=be(this,[De("rui-dialog")],[[[rt({type:Boolean,reflect:!0,defaultValue:!1}),ye({ref:"root",bool:"hidden",invert:!0})],0,"open"],[rt({type:Boolean,reflect:!0,defaultValue:!1}),0,"alert"],[rt({type:String,defaultValue:""}),0,"label"],[nt({ref:"dialog"}),0,"dialogTarget"],[nt({selector:"[data-dialog-title]"}),0,"titleTarget"],[nt({selector:"[data-dialog-body]"}),0,"descriptionTarget"],[Ie({name:"rui-close",bubbles:!0,composed:!0}),0,"closeEvent"],[[Ee,Ae(["open","label"])],2,"syncOpenState"],[ot({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[ot({ref:"backdrop",type:"click"}),2,"onBackdropClick"],[ot({selector:"[data-dialog-close]",type:"click"}),2,"onCloseClick"]],0,void 0,Kt))}open=(Rt(this),Lt(this));alert=(St(this),kt(this));label=(Ot(this),Nt(this));dialogTarget=(Gt(this),Ut(this));titleTarget=(jt(this),Vt(this));descriptionTarget=(Bt(this),qt(this));closeEvent=(Ft(this),$t(this));previouslyFocused=(zt(this),null);uid=Ct("rui-dialog");get titleId(){return`${this.uid}-title`}get descriptionId(){return`${this.uid}-desc`}onConnected(){this.syncOpenState()}syncOpenState(){this.dialogTarget&&(this.titleTarget?.textContent?.trim()?(this.titleTarget.id=this.titleId,this.dialogTarget.setAttribute("aria-labelledby",this.titleId),this.dialogTarget.removeAttribute("aria-label")):this.label&&(this.dialogTarget.setAttribute("aria-label",this.label),this.dialogTarget.removeAttribute("aria-labelledby")),this.descriptionTarget?(this.descriptionTarget.id=this.descriptionId,this.dialogTarget.setAttribute("aria-describedby",this.descriptionId)):this.dialogTarget.removeAttribute("aria-describedby"),this.open?(this.previouslyFocused=document.activeElement,queueMicrotask(()=>this.focusInitial())):(this.previouslyFocused?.focus?.(),this.previouslyFocused=null))}focusInitial(){(this.getFocusable()[0]??this.dialogTarget)?.focus()}getFocusable(){return this.dialogTarget?xt(this.dialogTarget):[]}dismiss(e){this.open&&(this.open=!1,this.closeEvent.emit({reason:e}))}onDocumentKeydown(e){if(!this.open)return;if(e.key==="Escape"){e.preventDefault(),this.dismiss("escape");return}if(e.key!=="Tab")return;let i=this.getFocusable();if(!i.length){e.preventDefault(),this.dialogTarget?.focus();return}let o=i[0],u=i[i.length-1],g=document.activeElement;e.shiftKey&&g===o?(e.preventDefault(),u.focus()):!e.shiftKey&&g===u&&(e.preventDefault(),o.focus())}onBackdropClick(){this.dismiss("backdrop")}onCloseClick(){this.dismiss("dismiss")}static{wt()}};import{jsx as f,jsxs as Pt}from"@ecopages/jsx/jsx-runtime";function Zt(t,e){return e===void 0||t?.label!==void 0?t:{...t,label:e}}function C(...t){return t.filter(Boolean).join(" ")}import{jsx as Jt,jsxs as xe}from"@ecopages/jsx/jsx-runtime";var Qt="http://www.w3.org/2000/svg";function at({class:t,size:e="sm",...i}){return xe("svg",{...i,class:C("rui-icon",e==="md"&&"rui-icon--md",t),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[Jt("path",{d:"m18 6-12 12"}),Jt("path",{d:"m6 6 12 12"})]})}function Wt(){let t=document.createElementNS(Qt,"svg");t.setAttribute("class","rui-icon"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),t.setAttribute("aria-hidden","true");for(let e of["m18 6-12 12","m6 6 12 12"]){let i=document.createElementNS(Qt,"path");i.setAttribute("d",e),t.append(i)}return t}function te({children:t,class:e,...i}){return f("div",{...i,"data-dialog-title":!0,"data-ref":"title",class:C("rui-dialog__title",e),children:t})}function ee({children:t,class:e,...i}){return f("div",{...i,"data-dialog-body":!0,"data-ref":"description",class:C("rui-dialog__body",e),children:t})}function ie({children:t,class:e,...i}){return f("div",{...i,class:C("rui-dialog__actions",e),children:t})}function oe({children:t,class:e,aria:i,...o}){return f("button",{...o,aria:Zt(i,"Close"),type:"button","data-dialog-close":!0,"data-ref":"close",class:C("rui-dialog__close",e),children:t??f(at,{})})}function Yt({alert:t,children:e,open:i}){return Pt("div",{"data-ref":"root",class:"rui-dialog",hidden:i?void 0:!0,children:[f("div",{"data-ref":"backdrop",class:"rui-dialog__backdrop"}),f("div",{"data-ref":"dialog",class:"rui-dialog__surface",tabindex:-1,role:t?"alertdialog":"dialog","aria-modal":"true",children:e})]})}function Te({title:t,actions:e,children:i,open:o,alert:u,...g}){return t!=null||e!=null?f("rui-dialog",{...g,open:o,alert:u,children:Pt(Yt,{open:o,alert:u,children:[f(oe,{}),t!=null?f(te,{children:t}):null,i!=null?f(ee,{children:i}):null,e!=null?f(ie,{children:e}):null]})}):f("rui-dialog",{...g,open:o,alert:u,children:f(Yt,{open:o,alert:u,children:i})})}var E="__rui-dialog-host",z="rui-dialog-open",H="rui-dialog-close",K="rui-dialog-toggle",lt="rui-dialog-action";function re(t){return"id"in t&&t.id!=null&&t.id!==""}var N=!1,X=null,G=null,d=null;function ut(t){let e=t.trim();if(!e)return null;let i=document.getElementById(e);return i?.localName==="rui-dialog"?i:null}function Ce(){let t=document.createElement("button");return t.type="button",t.setAttribute("data-dialog-close",""),t.setAttribute("data-ref","close"),t.className="rui-dialog__close",t.setAttribute("aria-label","Close"),t.append(Wt()),t}function Re(t){let e=document.createElement("div");return e.setAttribute("data-dialog-title",""),e.setAttribute("data-ref","title"),e.className="rui-dialog__title",e.textContent=t,e}function we(t){let e=document.createElement("div");e.setAttribute("data-dialog-body",""),e.setAttribute("data-ref","description"),e.className="rui-dialog__body";let i=document.createElement("p");return i.textContent=t,e.append(i),e}function Le(t){let e=document.createElement("div");e.className="rui-dialog__actions";for(let i of t){let o=document.createElement("button");o.type="button",o.className=`rui-button rui-button--${i.variant??"filled"} rui-button--${i.size??"md"}`,o.setAttribute("data-dialog-action",i.value??""),i.closeOnClick===!1&&o.setAttribute("data-dialog-action-close","false"),o.textContent=i.label,e.append(o)}return e}function Se(t){let e=document.createElement("div");e.dataset.ref="root",e.className="rui-dialog";let i=document.createElement("div");i.setAttribute("data-ref","backdrop"),i.className="rui-dialog__backdrop";let o=document.createElement("div");return o.setAttribute("data-ref","dialog"),o.className="rui-dialog__surface",o.tabIndex=-1,o.setAttribute("role",t?"alertdialog":"dialog"),o.setAttribute("aria-modal","true"),e.append(i,o),e}function U(){G?.remove(),G=null}function ke(t){U();let e=document.createElement("rui-dialog");e.id=E,e.alert=!!t.alert,e.label=t.label??"",e.open=!0;let i=Se(e.alert),o=i.querySelector('[data-ref="dialog"]');if(!o)throw new Error("Failed to create the dialog surface.");return o.append(Ce()),t.title&&o.append(Re(t.title)),t.body&&o.append(we(t.body)),t.actions?.length&&o.append(Le(t.actions)),e.append(i),(X??document.body).appendChild(e),G=e,e}function ne(t){if(!(!d||d===t))if(d===E)U();else{let e=ut(d);e&&(e.open=!1)}}function w(t){x();let e=ut(t);e&&(ne(t),e.open=!0,d=t)}function Oe(t){x(),ne(E),ke(t),d=E}function M(t){if(typeof t=="string"){w(t);return}if(re(t)){w(t.id);return}Oe(t)}function L(t){x();let e=t??d;if(e){if(e===E)U();else{let i=ut(e);i&&(i.open=!1)}d===e&&(d=null)}}function ct(t){if(x(),d===t){L(t);return}w(t)}function ae(t){let e=t.detail;if(typeof e=="string"){M(e);return}e&&typeof e=="object"&&M(e)}function le(t){let e=t.detail;L(e?.id)}function se(t){let e=t.detail;e?.id&&ct(e.id)}function ue(t){let e=t.target;if(!e?.closest)return;let i=e.closest("[data-dialog-action]");if(i&&G?.contains(i)){t.preventDefault();let D={value:i.getAttribute("data-dialog-action")||void 0||void 0};G.dispatchEvent(new CustomEvent(lt,{detail:D,bubbles:!0,composed:!0})),i.getAttribute("data-dialog-action-close")!=="false"&&L(E);return}let o=e.closest("[data-dialog-open]");if(o){let g=o.getAttribute("data-dialog-open")?.trim();g&&(t.preventDefault(),w(g));return}let u=e.closest("[data-dialog-close]");if(u){if(u.closest("rui-dialog")?.hasAttribute("open"))return;t.preventDefault(),L()}}function ce(t){let e=t.target?.closest?.("rui-dialog");if(!e)return;let i=e.id||null;i&&d===i&&(i===E&&U(),d=null)}function de(t={}){return N?(t.mount&&(X=t.mount),st):(N=!0,X=t.mount??document.body,document.addEventListener(z,ae),document.addEventListener(H,le),document.addEventListener(K,se),document.addEventListener("click",ue),document.addEventListener("rui-close",ce),st)}function x(){N||de()}function st(){N&&(document.removeEventListener(z,ae),document.removeEventListener(H,le),document.removeEventListener(K,se),document.removeEventListener("click",ue),document.removeEventListener("rui-close",ce),U(),X=null,d=null,N=!1)}function Ne(){return d}function Ge(t){x(),M(t)}function Ue(t){x(),L(t)}function je(t){x(),ct(t)}function Ve(t){x();let e=t?.trim()||void 0;return{open:o=>{if(e){w(e);return}if(o!=null){if(typeof o=="string"){w(o);return}M(o)}},close:o=>{L(o??e)},toggle:o=>{let u=o??e;u&&ct(u)},get openId(){return d}}}export{lt as RUI_DIALOG_ACTION_EVENT,H as RUI_DIALOG_CLOSE_EVENT,E as RUI_DIALOG_HOST_ID,z as RUI_DIALOG_OPEN_EVENT,K as RUI_DIALOG_TOGGLE_EVENT,Te as RuiDialog,ie as RuiDialogActions,ee as RuiDialogBody,oe as RuiDialogClose,Mt as RuiDialogElement,te as RuiDialogTitle,Ue as closeDialog,Ve as createDialogHandle,Ne as getOpenDialogId,de as installDialogs,Ge as openDialog,je as toggleDialog,st as uninstallDialogs};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/dialog/dialog.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/dialog/dialog.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/x.tsx", "../../../../src/components/ui/dialog/dialog-types.ts", "../../../../src/components/ui/dialog/dialog-registry.ts"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_open, _init_extra_open, _init_alert, _init_extra_alert, _init_label, _init_extra_label, _init_dialogTarget, _init_extra_dialogTarget, _init_titleTarget, _init_extra_titleTarget, _init_descriptionTarget, _init_extra_descriptionTarget, _init_closeEvent, _init_extra_closeEvent;\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 { queryFocusableCandidates } from \"@/lib/focusable-elements\";\nimport { uniqueId } from \"@/lib/unique-id\";\nlet _RuiDialog;\nclass RuiDialog extends RadiantElement {\n static {\n ({\n e: [_init_open, _init_extra_open, _init_alert, _init_extra_alert, _init_label, _init_extra_label, _init_dialogTarget, _init_extra_dialogTarget, _init_titleTarget, _init_extra_titleTarget, _init_descriptionTarget, _init_extra_descriptionTarget, _init_closeEvent, _init_extra_closeEvent, _initProto],\n c: [_RuiDialog, _initClass]\n } = _applyDecs(this, [customElement(\"rui-dialog\")], [[[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"root\",\n bool: \"hidden\",\n invert: true\n })], 0, \"open\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"alert\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [query({\n ref: \"dialog\"\n }), 0, \"dialogTarget\"], [query({\n selector: \"[data-dialog-title]\"\n }), 0, \"titleTarget\"], [query({\n selector: \"[data-dialog-body]\"\n }), 0, \"descriptionTarget\"], [event({\n name: \"rui-close\",\n bubbles: true,\n composed: true\n }), 0, \"closeEvent\"], [[bound, onUpdated([\"open\", \"label\"])], 2, \"syncOpenState\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"backdrop\",\n type: \"click\"\n }), 2, \"onBackdropClick\"], [onEvent({\n selector: \"[data-dialog-close]\",\n type: \"click\"\n }), 2, \"onCloseClick\"]], 0, void 0, RadiantElement));\n }\n open = (_initProto(this), _init_open(this));\n alert = (_init_extra_open(this), _init_alert(this));\n label = (_init_extra_alert(this), _init_label(this));\n dialogTarget = (_init_extra_label(this), _init_dialogTarget(this));\n titleTarget = (_init_extra_dialogTarget(this), _init_titleTarget(this));\n descriptionTarget = (_init_extra_titleTarget(this), _init_descriptionTarget(this));\n closeEvent = (_init_extra_descriptionTarget(this), _init_closeEvent(this));\n previouslyFocused = (_init_extra_closeEvent(this), null);\n uid = uniqueId(\"rui-dialog\");\n get titleId() {\n return `${this.uid}-title`;\n }\n get descriptionId() {\n return `${this.uid}-desc`;\n }\n onConnected() {\n this.syncOpenState();\n }\n syncOpenState() {\n if (!this.dialogTarget) {\n return;\n }\n if (this.titleTarget?.textContent?.trim()) {\n this.titleTarget.id = this.titleId;\n this.dialogTarget.setAttribute(\"aria-labelledby\", this.titleId);\n this.dialogTarget.removeAttribute(\"aria-label\");\n } else if (this.label) {\n this.dialogTarget.setAttribute(\"aria-label\", this.label);\n this.dialogTarget.removeAttribute(\"aria-labelledby\");\n }\n if (this.descriptionTarget) {\n this.descriptionTarget.id = this.descriptionId;\n this.dialogTarget.setAttribute(\"aria-describedby\", this.descriptionId);\n } else {\n this.dialogTarget.removeAttribute(\"aria-describedby\");\n }\n if (this.open) {\n this.previouslyFocused = document.activeElement;\n queueMicrotask(() => this.focusInitial());\n } else {\n this.previouslyFocused?.focus?.();\n this.previouslyFocused = null;\n }\n }\n focusInitial() {\n const focusable = this.getFocusable();\n (focusable[0] ?? this.dialogTarget)?.focus();\n }\n getFocusable() {\n return this.dialogTarget ? queryFocusableCandidates(this.dialogTarget) : [];\n }\n dismiss(reason) {\n if (!this.open) {\n return;\n }\n this.open = false;\n this.closeEvent.emit({\n reason\n });\n }\n onDocumentKeydown(event2) {\n if (!this.open) {\n return;\n }\n if (event2.key === \"Escape\") {\n event2.preventDefault();\n this.dismiss(\"escape\");\n return;\n }\n if (event2.key !== \"Tab\") {\n return;\n }\n const focusable = this.getFocusable();\n if (!focusable.length) {\n event2.preventDefault();\n this.dialogTarget.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const active = document.activeElement;\n if (event2.shiftKey && active === first) {\n event2.preventDefault();\n last.focus();\n } else if (!event2.shiftKey && active === last) {\n event2.preventDefault();\n first.focus();\n }\n }\n onBackdropClick() {\n this.dismiss(\"backdrop\");\n }\n onCloseClick() {\n this.dismiss(\"dismiss\");\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDialog as RuiDialog };", "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}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconX } from \"@/lib/icons\";\nimport \"./dialog.script\";\nexport function RuiDialogTitle({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-dialog-title\": true,\n \"data-ref\": \"title\",\n class: cx(\"rui-dialog__title\", className),\n children\n });\n}\nexport function RuiDialogBody({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-dialog-body\": true,\n \"data-ref\": \"description\",\n class: cx(\"rui-dialog__body\", className),\n children\n });\n}\nexport function RuiDialogActions({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-dialog__actions\", className),\n children\n });\n}\nexport function RuiDialogClose({\n children,\n class: className,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Close\"),\n type: \"button\",\n \"data-dialog-close\": true,\n \"data-ref\": \"close\",\n class: cx(\"rui-dialog__close\", className),\n children: children ?? /* @__PURE__ */jsx(RuiIconX, {})\n });\n}\nfunction DialogShell({\n alert,\n children,\n open\n}) {\n return /* @__PURE__ */jsxs(\"div\", {\n \"data-ref\": \"root\",\n class: \"rui-dialog\",\n hidden: open ? void 0 : true,\n children: [/* @__PURE__ */jsx(\"div\", {\n \"data-ref\": \"backdrop\",\n class: \"rui-dialog__backdrop\"\n }), /* @__PURE__ */jsx(\"div\", {\n \"data-ref\": \"dialog\",\n class: \"rui-dialog__surface\",\n tabindex: -1,\n role: alert ? \"alertdialog\" : \"dialog\",\n \"aria-modal\": \"true\",\n children\n })]\n });\n}\nexport function RuiDialog({\n title,\n actions,\n children,\n open,\n alert,\n ...props\n}) {\n if (title != null || actions != null) {\n return /* @__PURE__ */jsx(\"rui-dialog\", {\n ...props,\n open,\n alert,\n children: /* @__PURE__ */jsxs(DialogShell, {\n open,\n alert,\n children: [/* @__PURE__ */jsx(RuiDialogClose, {}), title != null ? /* @__PURE__ */jsx(RuiDialogTitle, {\n children: title\n }) : null, children != null ? /* @__PURE__ */jsx(RuiDialogBody, {\n children\n }) : null, actions != null ? /* @__PURE__ */jsx(RuiDialogActions, {\n children: actions\n }) : null]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-dialog\", {\n ...props,\n open,\n alert,\n children: /* @__PURE__ */jsx(DialogShell, {\n open,\n alert,\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nexport function RuiIconX({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"m18 6-12 12\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m6 6 12 12\"\n })]\n });\n}\nexport function createRuiIconX() {\n const icon = document.createElementNS(SVG_NAMESPACE, \"svg\");\n icon.setAttribute(\"class\", \"rui-icon\");\n icon.setAttribute(\"viewBox\", \"0 0 24 24\");\n icon.setAttribute(\"fill\", \"none\");\n icon.setAttribute(\"stroke\", \"currentColor\");\n icon.setAttribute(\"stroke-width\", \"2\");\n icon.setAttribute(\"stroke-linecap\", \"round\");\n icon.setAttribute(\"stroke-linejoin\", \"round\");\n icon.setAttribute(\"aria-hidden\", \"true\");\n for (const d of [\"m18 6-12 12\", \"m6 6 12 12\"]) {\n const path = document.createElementNS(SVG_NAMESPACE, \"path\");\n path.setAttribute(\"d\", d);\n icon.append(path);\n }\n return icon;\n}", "export const RUI_DIALOG_HOST_ID = \"__rui-dialog-host\";\nexport const RUI_DIALOG_OPEN_EVENT = \"rui-dialog-open\";\nexport const RUI_DIALOG_CLOSE_EVENT = \"rui-dialog-close\";\nexport const RUI_DIALOG_TOGGLE_EVENT = \"rui-dialog-toggle\";\nexport const RUI_DIALOG_ACTION_EVENT = \"rui-dialog-action\";\nexport function isNamedDialogOpen(detail) {\n return \"id\" in detail && detail.id != null && detail.id !== \"\";\n}", "import \"./dialog.script\";\nimport { createRuiIconX } from \"@/lib/icons/x\";\nimport { RUI_DIALOG_ACTION_EVENT, RUI_DIALOG_CLOSE_EVENT, RUI_DIALOG_HOST_ID, RUI_DIALOG_OPEN_EVENT, RUI_DIALOG_TOGGLE_EVENT, isNamedDialogOpen } from \"./dialog-types\";\nlet installed = false;\nlet mountParent = null;\nlet hostDialog = null;\nlet openId = null;\nfunction resolveDialog(id) {\n const trimmed = id.trim();\n if (!trimmed) {\n return null;\n }\n const byId = document.getElementById(trimmed);\n if (byId?.localName === \"rui-dialog\") {\n return byId;\n }\n return null;\n}\nfunction createCloseButton() {\n const close2 = document.createElement(\"button\");\n close2.type = \"button\";\n close2.setAttribute(\"data-dialog-close\", \"\");\n close2.setAttribute(\"data-ref\", \"close\");\n close2.className = \"rui-dialog__close\";\n close2.setAttribute(\"aria-label\", \"Close\");\n close2.append(createRuiIconX());\n return close2;\n}\nfunction createTitle(title) {\n const el = document.createElement(\"div\");\n el.setAttribute(\"data-dialog-title\", \"\");\n el.setAttribute(\"data-ref\", \"title\");\n el.className = \"rui-dialog__title\";\n el.textContent = title;\n return el;\n}\nfunction createBody(body) {\n const el = document.createElement(\"div\");\n el.setAttribute(\"data-dialog-body\", \"\");\n el.setAttribute(\"data-ref\", \"description\");\n el.className = \"rui-dialog__body\";\n const paragraph = document.createElement(\"p\");\n paragraph.textContent = body;\n el.append(paragraph);\n return el;\n}\nfunction createActions(actions) {\n const row = document.createElement(\"div\");\n row.className = \"rui-dialog__actions\";\n for (const action of actions) {\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.className = `rui-button rui-button--${action.variant ?? \"filled\"} rui-button--${action.size ?? \"md\"}`;\n button.setAttribute(\"data-dialog-action\", action.value ?? \"\");\n if (action.closeOnClick === false) {\n button.setAttribute(\"data-dialog-action-close\", \"false\");\n }\n button.textContent = action.label;\n row.append(button);\n }\n return row;\n}\nfunction createDialogSurface(alert) {\n const root = document.createElement(\"div\");\n root.dataset.ref = \"root\";\n root.className = \"rui-dialog\";\n const backdrop = document.createElement(\"div\");\n backdrop.setAttribute(\"data-ref\", \"backdrop\");\n backdrop.className = \"rui-dialog__backdrop\";\n const surface = document.createElement(\"div\");\n surface.setAttribute(\"data-ref\", \"dialog\");\n surface.className = \"rui-dialog__surface\";\n surface.tabIndex = -1;\n surface.setAttribute(\"role\", alert ? \"alertdialog\" : \"dialog\");\n surface.setAttribute(\"aria-modal\", \"true\");\n root.append(backdrop, surface);\n return root;\n}\nfunction destroyHostDialog() {\n hostDialog?.remove();\n hostDialog = null;\n}\nfunction mountHostDialog(options) {\n destroyHostDialog();\n const dialog = document.createElement(\"rui-dialog\");\n dialog.id = RUI_DIALOG_HOST_ID;\n dialog.alert = Boolean(options.alert);\n dialog.label = options.label ?? \"\";\n dialog.open = true;\n const shell = createDialogSurface(dialog.alert);\n const surface = shell.querySelector('[data-ref=\"dialog\"]');\n if (!surface) {\n throw new Error(\"Failed to create the dialog surface.\");\n }\n surface.append(createCloseButton());\n if (options.title) {\n surface.append(createTitle(options.title));\n }\n if (options.body) {\n surface.append(createBody(options.body));\n }\n if (options.actions?.length) {\n surface.append(createActions(options.actions));\n }\n dialog.append(shell);\n (mountParent ?? document.body).appendChild(dialog);\n hostDialog = dialog;\n return dialog;\n}\nfunction closeCurrentExcept(nextId) {\n if (!openId || openId === nextId) {\n return;\n }\n if (openId === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n } else {\n const dialog = resolveDialog(openId);\n if (dialog) {\n dialog.open = false;\n }\n }\n}\nfunction openNamed(id) {\n ensureInstalled();\n const dialog = resolveDialog(id);\n if (!dialog) {\n return;\n }\n closeCurrentExcept(id);\n dialog.open = true;\n openId = id;\n}\nfunction openHost(options) {\n ensureInstalled();\n closeCurrentExcept(RUI_DIALOG_HOST_ID);\n mountHostDialog(options);\n openId = RUI_DIALOG_HOST_ID;\n}\nfunction open(idOrOptions) {\n if (typeof idOrOptions === \"string\") {\n openNamed(idOrOptions);\n return;\n }\n if (isNamedDialogOpen(idOrOptions)) {\n openNamed(idOrOptions.id);\n return;\n }\n openHost(idOrOptions);\n}\nfunction close(id) {\n ensureInstalled();\n const targetId = id ?? openId;\n if (!targetId) {\n return;\n }\n if (targetId === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n } else {\n const dialog = resolveDialog(targetId);\n if (dialog) {\n dialog.open = false;\n }\n }\n if (openId === targetId) {\n openId = null;\n }\n}\nfunction toggle(id) {\n ensureInstalled();\n if (openId === id) {\n close(id);\n return;\n }\n openNamed(id);\n}\nfunction onOpenEvent(event) {\n const detail = event.detail;\n if (typeof detail === \"string\") {\n open(detail);\n return;\n }\n if (detail && typeof detail === \"object\") {\n open(detail);\n }\n}\nfunction onCloseEvent(event) {\n const detail = event.detail;\n close(detail?.id);\n}\nfunction onToggleEvent(event) {\n const detail = event.detail;\n if (detail?.id) {\n toggle(detail.id);\n }\n}\nfunction onDocumentClick(event) {\n const target = event.target;\n if (!target?.closest) {\n return;\n }\n const action = target.closest(\"[data-dialog-action]\");\n if (action && hostDialog?.contains(action)) {\n event.preventDefault();\n const value = action.getAttribute(\"data-dialog-action\") || void 0;\n const detail = {\n value: value || void 0\n };\n hostDialog.dispatchEvent(new CustomEvent(RUI_DIALOG_ACTION_EVENT, {\n detail,\n bubbles: true,\n composed: true\n }));\n if (action.getAttribute(\"data-dialog-action-close\") !== \"false\") {\n close(RUI_DIALOG_HOST_ID);\n }\n return;\n }\n const openTrigger = target.closest(\"[data-dialog-open]\");\n if (openTrigger) {\n const id = openTrigger.getAttribute(\"data-dialog-open\")?.trim();\n if (id) {\n event.preventDefault();\n openNamed(id);\n }\n return;\n }\n const closeTrigger = target.closest(\"[data-dialog-close]\");\n if (closeTrigger) {\n const insideDialog = closeTrigger.closest(\"rui-dialog\");\n if (insideDialog?.hasAttribute(\"open\")) {\n return;\n }\n event.preventDefault();\n close();\n }\n}\nfunction onRuiClose(event) {\n const dialog = event.target?.closest?.(\"rui-dialog\");\n if (!dialog) {\n return;\n }\n const id = dialog.id || null;\n if (id && openId === id) {\n if (id === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n }\n openId = null;\n }\n}\nexport function installDialogs(options = {}) {\n if (installed) {\n if (options.mount) {\n mountParent = options.mount;\n }\n return uninstallDialogs;\n }\n installed = true;\n mountParent = options.mount ?? document.body;\n document.addEventListener(RUI_DIALOG_OPEN_EVENT, onOpenEvent);\n document.addEventListener(RUI_DIALOG_CLOSE_EVENT, onCloseEvent);\n document.addEventListener(RUI_DIALOG_TOGGLE_EVENT, onToggleEvent);\n document.addEventListener(\"click\", onDocumentClick);\n document.addEventListener(\"rui-close\", onRuiClose);\n return uninstallDialogs;\n}\nfunction ensureInstalled() {\n if (!installed) {\n installDialogs();\n }\n}\nexport function uninstallDialogs() {\n if (!installed) {\n return;\n }\n document.removeEventListener(RUI_DIALOG_OPEN_EVENT, onOpenEvent);\n document.removeEventListener(RUI_DIALOG_CLOSE_EVENT, onCloseEvent);\n document.removeEventListener(RUI_DIALOG_TOGGLE_EVENT, onToggleEvent);\n document.removeEventListener(\"click\", onDocumentClick);\n document.removeEventListener(\"rui-close\", onRuiClose);\n destroyHostDialog();\n mountParent = null;\n openId = null;\n installed = false;\n}\nexport function getOpenDialogId() {\n return openId;\n}\nexport function openDialog(idOrOptions) {\n ensureInstalled();\n open(idOrOptions);\n}\nexport function closeDialog(id) {\n ensureInstalled();\n close(id);\n}\nexport function toggleDialog(id) {\n ensureInstalled();\n toggle(id);\n}\nexport function createDialogHandle(id) {\n ensureInstalled();\n const boundId = id?.trim() || void 0;\n const handleOpen = idOrOptions => {\n if (boundId) {\n openNamed(boundId);\n return;\n }\n if (idOrOptions == null) {\n return;\n }\n if (typeof idOrOptions === \"string\") {\n openNamed(idOrOptions);\n return;\n }\n open(idOrOptions);\n };\n return {\n open: handleOpen,\n close: closeId => {\n close(closeId ?? boundId);\n },\n toggle: toggleId => {\n const target = toggleId ?? boundId;\n if (target) {\n toggle(target);\n }\n },\n get openId() {\n return openId;\n }\n };\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["let _initProto, _initClass, _init_open, _init_extra_open, _init_alert, _init_extra_alert, _init_label, _init_extra_label, _init_dialogTarget, _init_extra_dialogTarget, _init_titleTarget, _init_extra_titleTarget, _init_descriptionTarget, _init_extra_descriptionTarget, _init_closeEvent, _init_extra_closeEvent;\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 { queryFocusableCandidates } from \"@/lib/focusable-elements\";\nimport { uniqueId } from \"@/lib/unique-id\";\nlet _RuiDialog;\nclass RuiDialog extends RadiantElement {\n static {\n ({\n e: [_init_open, _init_extra_open, _init_alert, _init_extra_alert, _init_label, _init_extra_label, _init_dialogTarget, _init_extra_dialogTarget, _init_titleTarget, _init_extra_titleTarget, _init_descriptionTarget, _init_extra_descriptionTarget, _init_closeEvent, _init_extra_closeEvent, _initProto],\n c: [_RuiDialog, _initClass]\n } = _applyDecs(this, [customElement(\"rui-dialog\")], [[[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"root\",\n bool: \"hidden\",\n invert: true\n })], 0, \"open\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"alert\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [query({\n ref: \"dialog\"\n }), 0, \"dialogTarget\"], [query({\n selector: \"[data-dialog-title]\"\n }), 0, \"titleTarget\"], [query({\n selector: \"[data-dialog-body]\"\n }), 0, \"descriptionTarget\"], [event({\n name: \"rui-close\",\n bubbles: true,\n composed: true\n }), 0, \"closeEvent\"], [[bound, onUpdated([\"open\", \"label\"])], 2, \"syncOpenState\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"backdrop\",\n type: \"click\"\n }), 2, \"onBackdropClick\"], [onEvent({\n selector: \"[data-dialog-close]\",\n type: \"click\"\n }), 2, \"onCloseClick\"]], 0, void 0, RadiantElement));\n }\n open = (_initProto(this), _init_open(this));\n alert = (_init_extra_open(this), _init_alert(this));\n label = (_init_extra_alert(this), _init_label(this));\n dialogTarget = (_init_extra_label(this), _init_dialogTarget(this));\n titleTarget = (_init_extra_dialogTarget(this), _init_titleTarget(this));\n descriptionTarget = (_init_extra_titleTarget(this), _init_descriptionTarget(this));\n closeEvent = (_init_extra_descriptionTarget(this), _init_closeEvent(this));\n previouslyFocused = (_init_extra_closeEvent(this), null);\n uid = uniqueId(\"rui-dialog\");\n get titleId() {\n return `${this.uid}-title`;\n }\n get descriptionId() {\n return `${this.uid}-desc`;\n }\n onConnected() {\n this.syncOpenState();\n }\n syncOpenState() {\n if (!this.dialogTarget) {\n return;\n }\n if (this.titleTarget?.textContent?.trim()) {\n this.titleTarget.id = this.titleId;\n this.dialogTarget.setAttribute(\"aria-labelledby\", this.titleId);\n this.dialogTarget.removeAttribute(\"aria-label\");\n } else if (this.label) {\n this.dialogTarget.setAttribute(\"aria-label\", this.label);\n this.dialogTarget.removeAttribute(\"aria-labelledby\");\n }\n if (this.descriptionTarget) {\n this.descriptionTarget.id = this.descriptionId;\n this.dialogTarget.setAttribute(\"aria-describedby\", this.descriptionId);\n } else {\n this.dialogTarget.removeAttribute(\"aria-describedby\");\n }\n if (this.open) {\n this.previouslyFocused = document.activeElement;\n queueMicrotask(() => this.focusInitial());\n } else {\n this.previouslyFocused?.focus?.();\n this.previouslyFocused = null;\n }\n }\n focusInitial() {\n const focusable = this.getFocusable();\n (focusable[0] ?? this.dialogTarget)?.focus();\n }\n getFocusable() {\n return this.dialogTarget ? queryFocusableCandidates(this.dialogTarget) : [];\n }\n dismiss(reason) {\n if (!this.open) {\n return;\n }\n this.open = false;\n this.closeEvent.emit({\n reason\n });\n }\n onDocumentKeydown(event2) {\n if (!this.open) {\n return;\n }\n if (event2.key === \"Escape\") {\n event2.preventDefault();\n this.dismiss(\"escape\");\n return;\n }\n if (event2.key !== \"Tab\") {\n return;\n }\n const focusable = this.getFocusable();\n if (!focusable.length) {\n event2.preventDefault();\n this.dialogTarget?.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const active = document.activeElement;\n if (event2.shiftKey && active === first) {\n event2.preventDefault();\n last.focus();\n } else if (!event2.shiftKey && active === last) {\n event2.preventDefault();\n first.focus();\n }\n }\n onBackdropClick() {\n this.dismiss(\"backdrop\");\n }\n onCloseClick() {\n this.dismiss(\"dismiss\");\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDialog as RuiDialog };", "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}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconX } from \"@/lib/icons\";\nimport \"./dialog.script\";\nexport function RuiDialogTitle({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-dialog-title\": true,\n \"data-ref\": \"title\",\n class: cx(\"rui-dialog__title\", className),\n children\n });\n}\nexport function RuiDialogBody({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-dialog-body\": true,\n \"data-ref\": \"description\",\n class: cx(\"rui-dialog__body\", className),\n children\n });\n}\nexport function RuiDialogActions({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-dialog__actions\", className),\n children\n });\n}\nexport function RuiDialogClose({\n children,\n class: className,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Close\"),\n type: \"button\",\n \"data-dialog-close\": true,\n \"data-ref\": \"close\",\n class: cx(\"rui-dialog__close\", className),\n children: children ?? /* @__PURE__ */jsx(RuiIconX, {})\n });\n}\nfunction DialogShell({\n alert,\n children,\n open\n}) {\n return /* @__PURE__ */jsxs(\"div\", {\n \"data-ref\": \"root\",\n class: \"rui-dialog\",\n hidden: open ? void 0 : true,\n children: [/* @__PURE__ */jsx(\"div\", {\n \"data-ref\": \"backdrop\",\n class: \"rui-dialog__backdrop\"\n }), /* @__PURE__ */jsx(\"div\", {\n \"data-ref\": \"dialog\",\n class: \"rui-dialog__surface\",\n tabindex: -1,\n role: alert ? \"alertdialog\" : \"dialog\",\n \"aria-modal\": \"true\",\n children\n })]\n });\n}\nexport function RuiDialog({\n title,\n actions,\n children,\n open,\n alert,\n ...props\n}) {\n if (title != null || actions != null) {\n return /* @__PURE__ */jsx(\"rui-dialog\", {\n ...props,\n open,\n alert,\n children: /* @__PURE__ */jsxs(DialogShell, {\n open,\n alert,\n children: [/* @__PURE__ */jsx(RuiDialogClose, {}), title != null ? /* @__PURE__ */jsx(RuiDialogTitle, {\n children: title\n }) : null, children != null ? /* @__PURE__ */jsx(RuiDialogBody, {\n children\n }) : null, actions != null ? /* @__PURE__ */jsx(RuiDialogActions, {\n children: actions\n }) : null]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-dialog\", {\n ...props,\n open,\n alert,\n children: /* @__PURE__ */jsx(DialogShell, {\n open,\n alert,\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nexport function RuiIconX({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"m18 6-12 12\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m6 6 12 12\"\n })]\n });\n}\nexport function createRuiIconX() {\n const icon = document.createElementNS(SVG_NAMESPACE, \"svg\");\n icon.setAttribute(\"class\", \"rui-icon\");\n icon.setAttribute(\"viewBox\", \"0 0 24 24\");\n icon.setAttribute(\"fill\", \"none\");\n icon.setAttribute(\"stroke\", \"currentColor\");\n icon.setAttribute(\"stroke-width\", \"2\");\n icon.setAttribute(\"stroke-linecap\", \"round\");\n icon.setAttribute(\"stroke-linejoin\", \"round\");\n icon.setAttribute(\"aria-hidden\", \"true\");\n for (const d of [\"m18 6-12 12\", \"m6 6 12 12\"]) {\n const path = document.createElementNS(SVG_NAMESPACE, \"path\");\n path.setAttribute(\"d\", d);\n icon.append(path);\n }\n return icon;\n}", "export const RUI_DIALOG_HOST_ID = \"__rui-dialog-host\";\nexport const RUI_DIALOG_OPEN_EVENT = \"rui-dialog-open\";\nexport const RUI_DIALOG_CLOSE_EVENT = \"rui-dialog-close\";\nexport const RUI_DIALOG_TOGGLE_EVENT = \"rui-dialog-toggle\";\nexport const RUI_DIALOG_ACTION_EVENT = \"rui-dialog-action\";\nexport function isNamedDialogOpen(detail) {\n return \"id\" in detail && detail.id != null && detail.id !== \"\";\n}", "import \"./dialog.script\";\nimport { createRuiIconX } from \"@/lib/icons/x\";\nimport { RUI_DIALOG_ACTION_EVENT, RUI_DIALOG_CLOSE_EVENT, RUI_DIALOG_HOST_ID, RUI_DIALOG_OPEN_EVENT, RUI_DIALOG_TOGGLE_EVENT, isNamedDialogOpen } from \"./dialog-types\";\nlet installed = false;\nlet mountParent = null;\nlet hostDialog = null;\nlet openId = null;\nfunction resolveDialog(id) {\n const trimmed = id.trim();\n if (!trimmed) {\n return null;\n }\n const byId = document.getElementById(trimmed);\n if (byId?.localName === \"rui-dialog\") {\n return byId;\n }\n return null;\n}\nfunction createCloseButton() {\n const close2 = document.createElement(\"button\");\n close2.type = \"button\";\n close2.setAttribute(\"data-dialog-close\", \"\");\n close2.setAttribute(\"data-ref\", \"close\");\n close2.className = \"rui-dialog__close\";\n close2.setAttribute(\"aria-label\", \"Close\");\n close2.append(createRuiIconX());\n return close2;\n}\nfunction createTitle(title) {\n const el = document.createElement(\"div\");\n el.setAttribute(\"data-dialog-title\", \"\");\n el.setAttribute(\"data-ref\", \"title\");\n el.className = \"rui-dialog__title\";\n el.textContent = title;\n return el;\n}\nfunction createBody(body) {\n const el = document.createElement(\"div\");\n el.setAttribute(\"data-dialog-body\", \"\");\n el.setAttribute(\"data-ref\", \"description\");\n el.className = \"rui-dialog__body\";\n const paragraph = document.createElement(\"p\");\n paragraph.textContent = body;\n el.append(paragraph);\n return el;\n}\nfunction createActions(actions) {\n const row = document.createElement(\"div\");\n row.className = \"rui-dialog__actions\";\n for (const action of actions) {\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.className = `rui-button rui-button--${action.variant ?? \"filled\"} rui-button--${action.size ?? \"md\"}`;\n button.setAttribute(\"data-dialog-action\", action.value ?? \"\");\n if (action.closeOnClick === false) {\n button.setAttribute(\"data-dialog-action-close\", \"false\");\n }\n button.textContent = action.label;\n row.append(button);\n }\n return row;\n}\nfunction createDialogSurface(alert) {\n const root = document.createElement(\"div\");\n root.dataset.ref = \"root\";\n root.className = \"rui-dialog\";\n const backdrop = document.createElement(\"div\");\n backdrop.setAttribute(\"data-ref\", \"backdrop\");\n backdrop.className = \"rui-dialog__backdrop\";\n const surface = document.createElement(\"div\");\n surface.setAttribute(\"data-ref\", \"dialog\");\n surface.className = \"rui-dialog__surface\";\n surface.tabIndex = -1;\n surface.setAttribute(\"role\", alert ? \"alertdialog\" : \"dialog\");\n surface.setAttribute(\"aria-modal\", \"true\");\n root.append(backdrop, surface);\n return root;\n}\nfunction destroyHostDialog() {\n hostDialog?.remove();\n hostDialog = null;\n}\nfunction mountHostDialog(options) {\n destroyHostDialog();\n const dialog = document.createElement(\"rui-dialog\");\n dialog.id = RUI_DIALOG_HOST_ID;\n dialog.alert = Boolean(options.alert);\n dialog.label = options.label ?? \"\";\n dialog.open = true;\n const shell = createDialogSurface(dialog.alert);\n const surface = shell.querySelector('[data-ref=\"dialog\"]');\n if (!surface) {\n throw new Error(\"Failed to create the dialog surface.\");\n }\n surface.append(createCloseButton());\n if (options.title) {\n surface.append(createTitle(options.title));\n }\n if (options.body) {\n surface.append(createBody(options.body));\n }\n if (options.actions?.length) {\n surface.append(createActions(options.actions));\n }\n dialog.append(shell);\n (mountParent ?? document.body).appendChild(dialog);\n hostDialog = dialog;\n return dialog;\n}\nfunction closeCurrentExcept(nextId) {\n if (!openId || openId === nextId) {\n return;\n }\n if (openId === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n } else {\n const dialog = resolveDialog(openId);\n if (dialog) {\n dialog.open = false;\n }\n }\n}\nfunction openNamed(id) {\n ensureInstalled();\n const dialog = resolveDialog(id);\n if (!dialog) {\n return;\n }\n closeCurrentExcept(id);\n dialog.open = true;\n openId = id;\n}\nfunction openHost(options) {\n ensureInstalled();\n closeCurrentExcept(RUI_DIALOG_HOST_ID);\n mountHostDialog(options);\n openId = RUI_DIALOG_HOST_ID;\n}\nfunction open(idOrOptions) {\n if (typeof idOrOptions === \"string\") {\n openNamed(idOrOptions);\n return;\n }\n if (isNamedDialogOpen(idOrOptions)) {\n openNamed(idOrOptions.id);\n return;\n }\n openHost(idOrOptions);\n}\nfunction close(id) {\n ensureInstalled();\n const targetId = id ?? openId;\n if (!targetId) {\n return;\n }\n if (targetId === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n } else {\n const dialog = resolveDialog(targetId);\n if (dialog) {\n dialog.open = false;\n }\n }\n if (openId === targetId) {\n openId = null;\n }\n}\nfunction toggle(id) {\n ensureInstalled();\n if (openId === id) {\n close(id);\n return;\n }\n openNamed(id);\n}\nfunction onOpenEvent(event) {\n const detail = event.detail;\n if (typeof detail === \"string\") {\n open(detail);\n return;\n }\n if (detail && typeof detail === \"object\") {\n open(detail);\n }\n}\nfunction onCloseEvent(event) {\n const detail = event.detail;\n close(detail?.id);\n}\nfunction onToggleEvent(event) {\n const detail = event.detail;\n if (detail?.id) {\n toggle(detail.id);\n }\n}\nfunction onDocumentClick(event) {\n const target = event.target;\n if (!target?.closest) {\n return;\n }\n const action = target.closest(\"[data-dialog-action]\");\n if (action && hostDialog?.contains(action)) {\n event.preventDefault();\n const value = action.getAttribute(\"data-dialog-action\") || void 0;\n const detail = {\n value: value || void 0\n };\n hostDialog.dispatchEvent(new CustomEvent(RUI_DIALOG_ACTION_EVENT, {\n detail,\n bubbles: true,\n composed: true\n }));\n if (action.getAttribute(\"data-dialog-action-close\") !== \"false\") {\n close(RUI_DIALOG_HOST_ID);\n }\n return;\n }\n const openTrigger = target.closest(\"[data-dialog-open]\");\n if (openTrigger) {\n const id = openTrigger.getAttribute(\"data-dialog-open\")?.trim();\n if (id) {\n event.preventDefault();\n openNamed(id);\n }\n return;\n }\n const closeTrigger = target.closest(\"[data-dialog-close]\");\n if (closeTrigger) {\n const insideDialog = closeTrigger.closest(\"rui-dialog\");\n if (insideDialog?.hasAttribute(\"open\")) {\n return;\n }\n event.preventDefault();\n close();\n }\n}\nfunction onRuiClose(event) {\n const dialog = event.target?.closest?.(\"rui-dialog\");\n if (!dialog) {\n return;\n }\n const id = dialog.id || null;\n if (id && openId === id) {\n if (id === RUI_DIALOG_HOST_ID) {\n destroyHostDialog();\n }\n openId = null;\n }\n}\nexport function installDialogs(options = {}) {\n if (installed) {\n if (options.mount) {\n mountParent = options.mount;\n }\n return uninstallDialogs;\n }\n installed = true;\n mountParent = options.mount ?? document.body;\n document.addEventListener(RUI_DIALOG_OPEN_EVENT, onOpenEvent);\n document.addEventListener(RUI_DIALOG_CLOSE_EVENT, onCloseEvent);\n document.addEventListener(RUI_DIALOG_TOGGLE_EVENT, onToggleEvent);\n document.addEventListener(\"click\", onDocumentClick);\n document.addEventListener(\"rui-close\", onRuiClose);\n return uninstallDialogs;\n}\nfunction ensureInstalled() {\n if (!installed) {\n installDialogs();\n }\n}\nexport function uninstallDialogs() {\n if (!installed) {\n return;\n }\n document.removeEventListener(RUI_DIALOG_OPEN_EVENT, onOpenEvent);\n document.removeEventListener(RUI_DIALOG_CLOSE_EVENT, onCloseEvent);\n document.removeEventListener(RUI_DIALOG_TOGGLE_EVENT, onToggleEvent);\n document.removeEventListener(\"click\", onDocumentClick);\n document.removeEventListener(\"rui-close\", onRuiClose);\n destroyHostDialog();\n mountParent = null;\n openId = null;\n installed = false;\n}\nexport function getOpenDialogId() {\n return openId;\n}\nexport function openDialog(idOrOptions) {\n ensureInstalled();\n open(idOrOptions);\n}\nexport function closeDialog(id) {\n ensureInstalled();\n close(id);\n}\nexport function toggleDialog(id) {\n ensureInstalled();\n toggle(id);\n}\nexport function createDialogHandle(id) {\n ensureInstalled();\n const boundId = id?.trim() || void 0;\n const handleOpen = idOrOptions => {\n if (boundId) {\n openNamed(boundId);\n return;\n }\n if (idOrOptions == null) {\n return;\n }\n if (typeof idOrOptions === \"string\") {\n openNamed(idOrOptions);\n return;\n }\n open(idOrOptions);\n };\n return {\n open: handleOpen,\n close: closeId => {\n close(closeId ?? boundId);\n },\n toggle: toggleId => {\n const target = toggleId ?? boundId;\n if (target) {\n toggle(target);\n }\n },\n get openId() {\n return openId;\n }\n };\n}"],
5
+ "mappings": "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",
6
6
  "names": ["RadiantElement", "bindTo", "bound", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FOCUSABLE_CANDIDATE_SELECTOR", "isFocusableCandidate", "element", "queryFocusableCandidates", "root", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "_initProto", "_initClass", "_init_open", "_init_extra_open", "_init_alert", "_init_extra_alert", "_init_label", "_init_extra_label", "_init_dialogTarget", "_init_extra_dialogTarget", "_init_titleTarget", "_init_extra_titleTarget", "_init_descriptionTarget", "_init_extra_descriptionTarget", "_init_closeEvent", "_init_extra_closeEvent", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiDialog", "RuiDialog", "RadiantElement", "customElement", "prop", "bindTo", "query", "event", "bound", "onUpdated", "onEvent", "uniqueId", "queryFocusableCandidates", "reason", "event2", "focusable", "first", "last", "active", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "jsxs", "SVG_NAMESPACE", "RuiIconX", "className", "size", "props", "jsxs", "cx", "jsx", "createRuiIconX", "icon", "d", "path", "RuiDialogTitle", "children", "className", "props", "jsx", "cx", "RuiDialogBody", "RuiDialogActions", "RuiDialogClose", "aria", "withDefaultAriaLabel", "RuiIconX", "DialogShell", "alert", "open", "jsxs", "RuiDialog", "title", "actions", "RUI_DIALOG_HOST_ID", "RUI_DIALOG_OPEN_EVENT", "RUI_DIALOG_CLOSE_EVENT", "RUI_DIALOG_TOGGLE_EVENT", "RUI_DIALOG_ACTION_EVENT", "isNamedDialogOpen", "detail", "installed", "mountParent", "hostDialog", "openId", "resolveDialog", "id", "trimmed", "byId", "createCloseButton", "close2", "createRuiIconX", "createTitle", "title", "el", "createBody", "body", "paragraph", "createActions", "actions", "row", "action", "button", "createDialogSurface", "alert", "root", "backdrop", "surface", "destroyHostDialog", "mountHostDialog", "options", "dialog", "RUI_DIALOG_HOST_ID", "shell", "closeCurrentExcept", "nextId", "openNamed", "ensureInstalled", "openHost", "open", "idOrOptions", "isNamedDialogOpen", "close", "targetId", "toggle", "onOpenEvent", "event", "detail", "onCloseEvent", "onToggleEvent", "onDocumentClick", "target", "RUI_DIALOG_ACTION_EVENT", "openTrigger", "closeTrigger", "onRuiClose", "installDialogs", "uninstallDialogs", "RUI_DIALOG_OPEN_EVENT", "RUI_DIALOG_CLOSE_EVENT", "RUI_DIALOG_TOGGLE_EVENT", "getOpenDialogId", "openDialog", "closeDialog", "toggleDialog", "createDialogHandle", "boundId", "closeId", "toggleId"]
7
7
  }
@@ -85,7 +85,7 @@ export declare class RuiHoverCard extends RadiantElement {
85
85
  portal: boolean;
86
86
  disabled: boolean;
87
87
  contentLabel: string;
88
- contentTarget: HTMLElement;
88
+ contentTarget: HTMLElement | null;
89
89
  openChangeEvent: EventEmitter<RuiHoverCardOpenChangeDetail>;
90
90
  private readonly contentId;
91
91
  private controller;
@@ -1,2 +1,2 @@
1
- import{bindTo as ot,customElement as gt,event as yt,onEvent as C,onUpdated as Tt,prop as g,query as N}from"@ecopages/radiant";import{FormAssociatedElement as st}from"@ecopages/radiant/form-associated-element";function ct(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let r=e[1]?.length??0,i=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,r-i))}function me(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):ct(t)}function pe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function H(t,e,r){if(Object.is(t,e))return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;let i=Number.isFinite(r)&&r>0?r:1,m=Number.EPSILON*Math.max(Math.abs(t),Math.abs(e),i)*4;return Math.abs(t-e)<=Math.min(m,i*1e-6)}function O(t,e,r){let i=Number.isFinite(t)?t:0,m=Number.isFinite(e)?e:100,s=Math.min(i,m),c=Math.max(i,m),n=Number.isFinite(r)&&r>0?r:1,v=c-s,p=u=>{let b=Number.isFinite(u)?u:s,f=s+Math.round((b-s)/n)*n;return Math.min(c,Math.max(s,f))};return{lowerBound:s,upperBound:c,step:n,clamp:p,ratioFor:u=>v===0?0:(p(u)-s)/v,valueFromRatio:u=>{let b=Math.min(1,Math.max(0,Number.isFinite(u)?u:0));return p(s+b*v)}}}function fe(t,e,r){switch(r){case"ArrowRight":case"ArrowUp":return t.clamp(e+t.step);case"ArrowLeft":case"ArrowDown":return t.clamp(e-t.step);case"Home":return t.lowerBound;case"End":return t.upperBound;case"PageUp":return t.clamp(e+t.step*10);case"PageDown":return t.clamp(e-t.step*10);default:return}}var _e=120,k=300,ht=14,dt=k+(360-k)/2;function mt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):ht))}function pt(t,e,r){return r.replace("{value}",pe(t,e))}function X(t,e,r,i,m,s,c){let n=O(e,r,i),v=mt(m),p=50-v/2,u=2*Math.PI*p,b=k/360*u,f=n.clamp(t),R=me(i,c);return{startAngle:_e,strokeWidth:v,radius:p,circumference:u,arcLength:b,progressLength:n.ratioFor(f)*b,valueText:pt(f,R,s)}}function ee(t,e,r,i){if(r.width===0||r.height===0)return null;let s=(Math.atan2(e-(r.top+r.height/2),t-(r.left+r.width/2))*180/Math.PI-_e+360)%360,c=s<=k?s:s<=dt?k:0;return i.valueFromRatio(c/k)}var ve,be,ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt;function ft(t,e,r,i,m,s){var c,n,v,p,u,b,f,R=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,M=Object.create,D=[M(null),M(null)],B=e.length;function U(a,x,y){return function(o,l){x&&(l=o,o=t);for(var w=0;w<a.length;w++)l=a[w].apply(o,y?[l]:[]);return y?l:o}}function A(a,x,y,o){if(typeof a!="function"&&(o||a!==void 0))throw new TypeError(x+" must "+(y||"be")+" a function"+(o?"":" or undefined"));return a}function ie(a,x,y,o,l,w,I,T,V,P,ae){function q(d){if(!ae(d))throw new TypeError("Attempted to access private element on non-instance")}var Q=[].concat(x[0]),oe=x[3],Y=!I,K=l===1,se=l===3,le=l===4,j=l===2;function W(d,L,he){return function(G,de){return L&&(de=G,G=a),he&&he(G),h[d].call(G,de)}}if(!Y){var h={},J=[],S=se?"get":le||K?"set":"value";if(V?(P||K?h={get:at(function(){return oe(this)},o,"get"),set:function(d){x[4](this,d)}}:h[S]=oe,P||at(h[S],o,j?"":S)):P||(h=Object.getOwnPropertyDescriptor(a,o)),!P&&!V){if((n=D[+T][o])&&(n^l)!==7)throw Error("Decorating two elements with the same name ("+h[S].name+") is not supported yet");D[+T][o]=l<3?1:l}}for(var _=a,$=Q.length-1;$>=0;$-=y?2:1){var ue=A(Q[$],"A decorator","be",!0),ce=y?Q[$-1]:void 0,Z={},F={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:c,addInitializer:function(d,L){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(L,"An initializer","be",!0),w.push(L)}.bind(null,Z)};if(Y)n=ue.call(ce,_,F),Z.v=1,A(n,"class decorators","return")&&(_=n);else if(F.static=T,F.private=V,n=F.access={has:V?ae.bind():function(d){return o in d}},le||(n.get=V?j?function(d){return q(d),h.value}:W("get",0,q):function(d){return d[o]}),j||se||(n.set=V?W("set",0,q):function(d,L){d[o]=L}),_=ue.call(ce,K?{get:h.get,set:h.set}:h[S],F),Z.v=1,K){if(typeof _=="object"&&_)(n=A(_.get,"accessor.get"))&&(h.get=n),(n=A(_.set,"accessor.set"))&&(h.set=n),(n=A(_.init,"accessor.init"))&&J.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(_,(P?"field":"method")+" decorators","return")&&(P?J.unshift(_):h[S]=_)}return l<2&&I.push(U(J,T,1),U(w,T,0)),P||Y||(V?K?I.splice(-1,0,W("get",T),W("set",T)):I.push(j?h[S]:A.call.bind(h[S])):z(a,o,h)),_}function ne(a){return z(a,R,{configurable:!0,enumerable:!0,value:c})}return s!==void 0&&(c=s[R]),c=M(c??null),u=[],b=function(a){a&&u.push(U(a))},f=function(a,x){for(var y=0;y<r.length;y++){var o=r[y],l=o[1],w=7&l;if((8&l)==a&&!w==x){var I=o[2],T=!!o[3],V=16&l;ie(a?t:t.prototype,o,V,T?"#"+I:_t(I),w,w<2?[]:a?p=p||[]:v=v||[],u,!!a,T,x,a&&T?function(P){return bt(P)===t}:m)}}},f(8,0),f(0,0),f(8,1),f(0,1),b(v),b(p),n=u,B||ne(t),{e:n,get c(){var a=[];return B&&[ne(t=ie(t,[e],i,t.name,5,a)),U(a,1)]}}}function _t(t){var e=vt(t,"string");return typeof e=="symbol"?e:e+""}function vt(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function at(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function bt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var te=50,ut,lt=class extends st{static{({e:[ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt,ve],c:[ut,be]}=ft(this,[gt("rui-knob")],[[g({type:Number,reflect:!0,defaultValue:te}),0,"value"],[g({type:Number,defaultValue:0}),0,"min"],[g({type:Number,defaultValue:100}),0,"max"],[g({type:Number,defaultValue:1}),0,"step"],[g({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[[g({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),ot({ref:"control",attr:"aria-readonly",map:e=>String(e)})],0,"readOnly"],[[g({type:String,defaultValue:""}),ot([{ref:"label",bool:"hidden",invert:!0},{ref:"label",text:!0},{ref:"control",attr:"aria-label",map:e=>e||void 0}])],0,"label"],[g({type:Number,defaultValue:void 0}),0,"size"],[g({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[g({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[g({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[g({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[yt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[N({ref:"root"}),0,"rootTarget"],[N({ref:"label"}),0,"labelTarget"],[N({ref:"control"}),0,"controlTarget"],[N({ref:"track"}),0,"trackTarget"],[N({ref:"progress"}),0,"progressTarget"],[N({ref:"centerValue"}),0,"centerValueTarget"],[N({ref:"belowValue"}),0,"belowValueTarget"],[Tt(["value","min","max","step","valuePrecision","disabled","readOnly","effectiveDisabled","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[C({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[C({ref:"control",type:"pointermove"}),2,"onPointerMove"],[C({ref:"control",type:"pointerup"}),2,"onPointerUp"],[C({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[C({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,st))}value=(ve(this),ge(this));min=(ye(this),Te(this));max=(xe(this),we(this));step=(Ve(this),Pe(this));valuePrecision=(Ee(this),Ae(this));readOnly=(Se(this),Re(this));label=(Ie(this),Ne(this));size=(Me(this),Le(this));strokeWidth=(Oe(this),ke(this));showValue=(De(this),Ke(this));valuePosition=(Fe(this),Ce(this));valueTemplate=(ze(this),Be(this));changeEvent=(Ue(this),je(this));rootTarget=(We(this),$e(this));labelTarget=(Ge(this),Xe(this));controlTarget=(qe(this),Qe(this));trackTarget=(Ye(this),Je(this));progressTarget=(Ze(this),He(this));centerValueTarget=(et(this),tt(this));belowValueTarget=(rt(this),it(this));activePointerId=(nt(this),null);lastEmitted=null;rangeCommitQueued=!1;onConnected(){this.syncPresentation()}formValue(){return this.name?String(this.numericRange.clamp(this.value)):null}formState(){return String(this.value)}restoreFormState(e){this.value=Number(e),this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return O(this.min,this.max,this.step)}get resolvedSize(){return typeof this.size=="number"&&Number.isFinite(this.size)&&this.size>0?this.size:void 0}get resolvedValuePosition(){return this.valuePosition==="below"?"below":"center"}paint(e){let r=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),i=this.resolvedValuePosition;this.syncKnobLayout(i),this.syncControlValues(e,r.valueText),this.syncRing(r),this.syncReadout(r.valueText,i)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControlValues(e,r){let i=this.controlTarget;i&&(i.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),i.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),i.setAttribute("aria-valuenow",String(e)),i.setAttribute("aria-valuetext",r))}syncRing(e){for(let r of[this.trackTarget,this.progressTarget])r?.setAttribute("r",String(e.radius)),r?.setAttribute("stroke-width",String(e.strokeWidth));this.trackTarget?.setAttribute("stroke-dasharray",`${e.arcLength} ${e.circumference}`),this.progressTarget?.setAttribute("stroke-dasharray",`${e.progressLength} ${e.circumference}`)}syncReadout(e,r){for(let[i,m]of[[this.centerValueTarget,this.showValue&&r==="center"],[this.belowValueTarget,this.showValue&&r==="below"]])i&&(i.textContent=e,i.toggleAttribute("hidden",!m))}syncPresentation(){this.controlTarget&&(this.controlTarget.disabled=this.effectiveDisabled),this.paint(this.numericRange.clamp(this.value)),this.queueNormalizedValueCommit()}queueNormalizedValueCommit(){this.rangeCommitQueued||(this.rangeCommitQueued=!0,queueMicrotask(()=>{this.rangeCommitQueued=!1;let e=this.numericRange.clamp(this.value);this.paint(e),H(this.value,e,this.step)||(this.value=e)}))}commitValue(e){if(this.effectiveDisabled||this.readOnly)return;let r=this.numericRange.clamp(e);this.paint(r),!H(r,this.value,this.step)&&(this.value=r,this.lastEmitted!==r&&(this.lastEmitted=r,this.changeEvent.emit({value:r})))}onPointerDown(e){if(e.button!==0||this.effectiveDisabled||this.readOnly)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,this.controlTarget.setPointerCapture(e.pointerId);let r=this.controlTarget.getBoundingClientRect(),i=ee(e.clientX,e.clientY,r,this.numericRange);i!=null&&this.commitValue(i),e.preventDefault()}onPointerMove(e){if(e.pointerId!==this.activePointerId)return;let r=this.controlTarget.getBoundingClientRect(),i=ee(e.clientX,e.clientY,r,this.numericRange);i!=null&&this.commitValue(i)}onPointerUp(e){e.pointerId===this.activePointerId&&(this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onPointerCancel(e){e.pointerId===this.activePointerId&&(this.controlTarget.hasPointerCapture(e.pointerId)&&this.controlTarget.releasePointerCapture(e.pointerId),this.activePointerId=null)}onKeydown(e){if(this.effectiveDisabled||this.readOnly)return;let r=fe(this.numericRange,this.value,e.key);r!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(r))}static{be()}};import{jsx as E,jsxs as re}from"@ecopages/jsx/jsx-runtime";function xt({value:t=te,min:e=0,max:r=100,step:i=1,disabled:m=!1,readOnly:s=!1,label:c,name:n,size:v,strokeWidth:p=14,showValue:u=!0,valuePosition:b="center",valueTemplate:f="{value}",valuePrecision:R,...z}){let M=O(e,r,i),D=M.clamp(t),B=X(D,e,r,i,p,f,R);return E(wt,{props:z,value:D,min:e,max:r,step:i,disabled:m,readOnly:s,label:c,name:n,size:v,strokeWidth:p,showValue:u,valuePosition:b,valueTemplate:f,valuePrecision:R,ring:B,range:M})}function wt({props:t,ring:e,range:r,...i}){return E("rui-knob",{...t,value:i.value,min:i.min,max:i.max,step:i.step,disabled:i.disabled,"prop:readOnly":i.readOnly,label:i.label,name:i.name,size:i.size,strokeWidth:i.strokeWidth,showValue:i.showValue,valuePosition:i.valuePosition,valueTemplate:i.valueTemplate,valuePrecision:i.valuePrecision,style:i.size?{"--rui-knob-size":`${i.size}px`}:void 0,children:E(Vt,{knob:i,ring:e,range:r})})}function Vt({knob:t,ring:e,range:r}){let i=t.valuePosition==="below";return re("div",{class:i?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[E("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),E(Pt,{knob:t,ring:e,range:r,valueBelow:i}),E("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!i,children:e.valueText})]})}function Pt({knob:t,ring:e,range:r,valueBelow:i}){return re("button",{type:"button",class:"rui-knob__control","data-ref":"control","data-knob-control":!0,role:"slider","aria-label":t.label||void 0,"aria-valuemin":r.lowerBound,"aria-valuemax":r.upperBound,"aria-valuenow":t.value,"aria-valuetext":e.valueText,"aria-readonly":t.readOnly,disabled:t.disabled,children:[re("svg",{class:"rui-knob__svg",viewBox:"0 0 100 100","aria-hidden":"true",children:[E("circle",{class:"rui-knob__track","data-ref":"track",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.arcLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`}),E("circle",{class:"rui-knob__progress","data-ref":"progress",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.progressLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`})]}),E("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||i,children:e.valueText})]})}export{xt as RuiKnob,ut as RuiKnobElement};
1
+ import{bindTo as ot,customElement as gt,event as yt,onEvent as C,onUpdated as Tt,prop as g,query as N}from"@ecopages/radiant";import{FormAssociatedElement as st}from"@ecopages/radiant/form-associated-element";function ct(t){if(!Number.isFinite(t)||t<=0)return 0;let e=t.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!e)return 0;let r=e[1]?.length??0,i=e[2]?Number(e[2]):0;return Math.min(15,Math.max(0,r-i))}function me(t,e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.min(15,Math.round(e)):ct(t)}function pe(t,e){return Number.isFinite(t)?t.toFixed(e):""}function H(t,e,r){if(Object.is(t,e))return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;let i=Number.isFinite(r)&&r>0?r:1,s=Number.EPSILON*Math.max(Math.abs(t),Math.abs(e),i)*4;return Math.abs(t-e)<=Math.min(s,i*1e-6)}function O(t,e,r){let i=Number.isFinite(t)?t:0,s=Number.isFinite(e)?e:100,l=Math.min(i,s),h=Math.max(i,s),n=Number.isFinite(r)&&r>0?r:1,v=h-l,p=c=>{let b=Number.isFinite(c)?c:l,f=l+Math.round((b-l)/n)*n;return Math.min(h,Math.max(l,f))};return{lowerBound:l,upperBound:h,step:n,clamp:p,ratioFor:c=>v===0?0:(p(c)-l)/v,valueFromRatio:c=>{let b=Math.min(1,Math.max(0,Number.isFinite(c)?c:0));return p(l+b*v)}}}function fe(t,e,r){switch(r){case"ArrowRight":case"ArrowUp":return t.clamp(e+t.step);case"ArrowLeft":case"ArrowDown":return t.clamp(e-t.step);case"Home":return t.lowerBound;case"End":return t.upperBound;case"PageUp":return t.clamp(e+t.step*10);case"PageDown":return t.clamp(e-t.step*10);default:return}}var _e=120,k=300,ht=14,dt=k+(360-k)/2;function mt(t){return Math.min(100,Math.max(0,Number.isFinite(t)?Number(t):ht))}function pt(t,e,r){return r.replace("{value}",pe(t,e))}function X(t,e,r,i,s,l,h){let n=O(e,r,i),v=mt(s),p=50-v/2,c=2*Math.PI*p,b=k/360*c,f=n.clamp(t),R=me(i,h);return{startAngle:_e,strokeWidth:v,radius:p,circumference:c,arcLength:b,progressLength:n.ratioFor(f)*b,valueText:pt(f,R,l)}}function ee(t,e,r,i){if(r.width===0||r.height===0)return null;let l=(Math.atan2(e-(r.top+r.height/2),t-(r.left+r.width/2))*180/Math.PI-_e+360)%360,h=l<=k?l:l<=dt?k:0;return i.valueFromRatio(h/k)}var ve,be,ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt;function ft(t,e,r,i,s,l){var h,n,v,p,c,b,f,R=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,M=Object.create,D=[M(null),M(null)],B=e.length;function U(a,x,y){return function(o,u){x&&(u=o,o=t);for(var w=0;w<a.length;w++)u=a[w].apply(o,y?[u]:[]);return y?u:o}}function A(a,x,y,o){if(typeof a!="function"&&(o||a!==void 0))throw new TypeError(x+" must "+(y||"be")+" a function"+(o?"":" or undefined"));return a}function ie(a,x,y,o,u,w,I,T,V,P,ae){function q(m){if(!ae(m))throw new TypeError("Attempted to access private element on non-instance")}var Q=[].concat(x[0]),oe=x[3],Y=!I,K=u===1,se=u===3,le=u===4,j=u===2;function W(m,L,he){return function(G,de){return L&&(de=G,G=a),he&&he(G),d[m].call(G,de)}}if(!Y){var d={},J=[],S=se?"get":le||K?"set":"value";if(V?(P||K?d={get:at(function(){return oe(this)},o,"get"),set:function(m){x[4](this,m)}}:d[S]=oe,P||at(d[S],o,j?"":S)):P||(d=Object.getOwnPropertyDescriptor(a,o)),!P&&!V){if((n=D[+T][o])&&(n^u)!==7)throw Error("Decorating two elements with the same name ("+d[S].name+") is not supported yet");D[+T][o]=u<3?1:u}}for(var _=a,$=Q.length-1;$>=0;$-=y?2:1){var ue=A(Q[$],"A decorator","be",!0),ce=y?Q[$-1]:void 0,Z={},F={kind:["field","accessor","method","getter","setter","class"][u],name:o,metadata:h,addInitializer:function(m,L){if(m.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(L,"An initializer","be",!0),w.push(L)}.bind(null,Z)};if(Y)n=ue.call(ce,_,F),Z.v=1,A(n,"class decorators","return")&&(_=n);else if(F.static=T,F.private=V,n=F.access={has:V?ae.bind():function(m){return o in m}},le||(n.get=V?j?function(m){return q(m),d.value}:W("get",0,q):function(m){return m[o]}),j||se||(n.set=V?W("set",0,q):function(m,L){m[o]=L}),_=ue.call(ce,K?{get:d.get,set:d.set}:d[S],F),Z.v=1,K){if(typeof _=="object"&&_)(n=A(_.get,"accessor.get"))&&(d.get=n),(n=A(_.set,"accessor.set"))&&(d.set=n),(n=A(_.init,"accessor.init"))&&J.unshift(n);else if(_!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(_,(P?"field":"method")+" decorators","return")&&(P?J.unshift(_):d[S]=_)}return u<2&&I.push(U(J,T,1),U(w,T,0)),P||Y||(V?K?I.splice(-1,0,W("get",T),W("set",T)):I.push(j?d[S]:A.call.bind(d[S])):z(a,o,d)),_}function ne(a){return z(a,R,{configurable:!0,enumerable:!0,value:h})}return l!==void 0&&(h=l[R]),h=M(h??null),c=[],b=function(a){a&&c.push(U(a))},f=function(a,x){for(var y=0;y<r.length;y++){var o=r[y],u=o[1],w=7&u;if((8&u)==a&&!w==x){var I=o[2],T=!!o[3],V=16&u;ie(a?t:t.prototype,o,V,T?"#"+I:_t(I),w,w<2?[]:a?p=p||[]:v=v||[],c,!!a,T,x,a&&T?function(P){return bt(P)===t}:s)}}},f(8,0),f(0,0),f(8,1),f(0,1),b(v),b(p),n=c,B||ne(t),{e:n,get c(){var a=[];return B&&[ne(t=ie(t,[e],i,t.name,5,a)),U(a,1)]}}}function _t(t){var e=vt(t,"string");return typeof e=="symbol"?e:e+""}function vt(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function at(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function bt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var te=50,ut,lt=class extends st{static{({e:[ge,ye,Te,xe,we,Ve,Pe,Ee,Ae,Se,Re,Ie,Ne,Me,Le,Oe,ke,De,Ke,Fe,Ce,ze,Be,Ue,je,We,$e,Ge,Xe,qe,Qe,Ye,Je,Ze,He,et,tt,rt,it,nt,ve],c:[ut,be]}=ft(this,[gt("rui-knob")],[[g({type:Number,reflect:!0,defaultValue:te}),0,"value"],[g({type:Number,defaultValue:0}),0,"min"],[g({type:Number,defaultValue:100}),0,"max"],[g({type:Number,defaultValue:1}),0,"step"],[g({type:Number,attribute:"value-precision",defaultValue:Number.NaN}),0,"valuePrecision"],[[g({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),ot({ref:"control",attr:"aria-readonly",map:e=>String(e)})],0,"readOnly"],[[g({type:String,defaultValue:""}),ot([{ref:"label",bool:"hidden",invert:!0},{ref:"label",text:!0},{ref:"control",attr:"aria-label",map:e=>e||void 0}])],0,"label"],[g({type:Number,defaultValue:void 0}),0,"size"],[g({type:Number,attribute:"stroke-width",defaultValue:14}),0,"strokeWidth"],[g({type:Boolean,attribute:"show-value",defaultValue:!0}),0,"showValue"],[g({type:String,attribute:"value-position",defaultValue:"center"}),0,"valuePosition"],[g({type:String,attribute:"value-template",defaultValue:"{value}"}),0,"valueTemplate"],[yt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[N({ref:"root"}),0,"rootTarget"],[N({ref:"label"}),0,"labelTarget"],[N({ref:"control"}),0,"controlTarget"],[N({ref:"track"}),0,"trackTarget"],[N({ref:"progress"}),0,"progressTarget"],[N({ref:"centerValue"}),0,"centerValueTarget"],[N({ref:"belowValue"}),0,"belowValueTarget"],[Tt(["value","min","max","step","valuePrecision","disabled","readOnly","effectiveDisabled","name","label","size","strokeWidth","showValue","valuePosition","valueTemplate"]),2,"onPropsUpdated"],[C({ref:"control",type:"pointerdown"}),2,"onPointerDown"],[C({ref:"control",type:"pointermove"}),2,"onPointerMove"],[C({ref:"control",type:"pointerup"}),2,"onPointerUp"],[C({ref:"control",type:"pointercancel"}),2,"onPointerCancel"],[C({ref:"control",type:"keydown"}),2,"onKeydown"]],0,void 0,st))}value=(ve(this),ge(this));min=(ye(this),Te(this));max=(xe(this),we(this));step=(Ve(this),Pe(this));valuePrecision=(Ee(this),Ae(this));readOnly=(Se(this),Re(this));label=(Ie(this),Ne(this));size=(Me(this),Le(this));strokeWidth=(Oe(this),ke(this));showValue=(De(this),Ke(this));valuePosition=(Fe(this),Ce(this));valueTemplate=(ze(this),Be(this));changeEvent=(Ue(this),je(this));rootTarget=(We(this),$e(this));labelTarget=(Ge(this),Xe(this));controlTarget=(qe(this),Qe(this));trackTarget=(Ye(this),Je(this));progressTarget=(Ze(this),He(this));centerValueTarget=(et(this),tt(this));belowValueTarget=(rt(this),it(this));activePointerId=(nt(this),null);lastEmitted=null;rangeCommitQueued=!1;onConnected(){this.syncPresentation()}formValue(){return this.name?String(this.numericRange.clamp(this.value)):null}formState(){return String(this.value)}restoreFormState(e){this.value=Number(e),this.syncPresentation()}onPropsUpdated(){this.syncPresentation()}get numericRange(){return O(this.min,this.max,this.step)}get resolvedSize(){return typeof this.size=="number"&&Number.isFinite(this.size)&&this.size>0?this.size:void 0}get resolvedValuePosition(){return this.valuePosition==="below"?"below":"center"}paint(e){let r=X(e,this.min,this.max,this.step,this.strokeWidth,this.valueTemplate,this.valuePrecision),i=this.resolvedValuePosition;this.syncKnobLayout(i),this.syncControlValues(e,r.valueText),this.syncRing(r),this.syncReadout(r.valueText,i)}syncKnobLayout(e){this.rootTarget?.classList.toggle("rui-knob--value-below",e==="below"),this.resolvedSize?this.style.setProperty("--rui-knob-size",`${this.resolvedSize}px`):this.style.removeProperty("--rui-knob-size")}syncControlValues(e,r){let i=this.controlTarget;i&&(i.setAttribute("aria-valuemin",String(this.numericRange.lowerBound)),i.setAttribute("aria-valuemax",String(this.numericRange.upperBound)),i.setAttribute("aria-valuenow",String(e)),i.setAttribute("aria-valuetext",r))}syncRing(e){for(let r of[this.trackTarget,this.progressTarget])r?.setAttribute("r",String(e.radius)),r?.setAttribute("stroke-width",String(e.strokeWidth));this.trackTarget?.setAttribute("stroke-dasharray",`${e.arcLength} ${e.circumference}`),this.progressTarget?.setAttribute("stroke-dasharray",`${e.progressLength} ${e.circumference}`)}syncReadout(e,r){for(let[i,s]of[[this.centerValueTarget,this.showValue&&r==="center"],[this.belowValueTarget,this.showValue&&r==="below"]])i&&(i.textContent=e,i.toggleAttribute("hidden",!s))}syncPresentation(){this.controlTarget&&(this.controlTarget.disabled=this.effectiveDisabled),this.paint(this.numericRange.clamp(this.value)),this.queueNormalizedValueCommit()}queueNormalizedValueCommit(){this.rangeCommitQueued||(this.rangeCommitQueued=!0,queueMicrotask(()=>{this.rangeCommitQueued=!1;let e=this.numericRange.clamp(this.value);this.paint(e),H(this.value,e,this.step)||(this.value=e)}))}commitValue(e){if(this.effectiveDisabled||this.readOnly)return;let r=this.numericRange.clamp(e);this.paint(r),!H(r,this.value,this.step)&&(this.value=r,this.lastEmitted!==r&&(this.lastEmitted=r,this.changeEvent.emit({value:r})))}onPointerDown(e){let r=this.controlTarget;if(e.button!==0||this.effectiveDisabled||this.readOnly||!r)return;this.activePointerId=e.pointerId,this.lastEmitted=this.value,r.setPointerCapture(e.pointerId);let i=r.getBoundingClientRect(),s=ee(e.clientX,e.clientY,i,this.numericRange);s!=null&&this.commitValue(s),e.preventDefault()}onPointerMove(e){let r=this.controlTarget;if(e.pointerId!==this.activePointerId||!r)return;let i=r.getBoundingClientRect(),s=ee(e.clientX,e.clientY,i,this.numericRange);s!=null&&this.commitValue(s)}onPointerUp(e){e.pointerId===this.activePointerId&&(this.controlTarget?.releasePointerCapture(e.pointerId),this.activePointerId=null)}onPointerCancel(e){if(e.pointerId!==this.activePointerId)return;let r=this.controlTarget;r?.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),this.activePointerId=null}onKeydown(e){if(this.effectiveDisabled||this.readOnly)return;let r=fe(this.numericRange,this.value,e.key);r!=null&&(e.preventDefault(),this.lastEmitted=this.value,this.commitValue(r))}static{be()}};import{jsx as E,jsxs as re}from"@ecopages/jsx/jsx-runtime";function xt({value:t=te,min:e=0,max:r=100,step:i=1,disabled:s=!1,readOnly:l=!1,label:h,name:n,size:v,strokeWidth:p=14,showValue:c=!0,valuePosition:b="center",valueTemplate:f="{value}",valuePrecision:R,...z}){let M=O(e,r,i),D=M.clamp(t),B=X(D,e,r,i,p,f,R);return E(wt,{props:z,value:D,min:e,max:r,step:i,disabled:s,readOnly:l,label:h,name:n,size:v,strokeWidth:p,showValue:c,valuePosition:b,valueTemplate:f,valuePrecision:R,ring:B,range:M})}function wt({props:t,ring:e,range:r,...i}){return E("rui-knob",{...t,value:i.value,min:i.min,max:i.max,step:i.step,disabled:i.disabled,"prop:readOnly":i.readOnly,label:i.label,name:i.name,size:i.size,strokeWidth:i.strokeWidth,showValue:i.showValue,valuePosition:i.valuePosition,valueTemplate:i.valueTemplate,valuePrecision:i.valuePrecision,style:i.size?{"--rui-knob-size":`${i.size}px`}:void 0,children:E(Vt,{knob:i,ring:e,range:r})})}function Vt({knob:t,ring:e,range:r}){let i=t.valuePosition==="below";return re("div",{class:i?"rui-knob rui-knob--value-below":"rui-knob","data-ref":"root",children:[E("span",{class:"rui-knob__label","data-ref":"label",hidden:!t.label,children:t.label}),E(Pt,{knob:t,ring:e,range:r,valueBelow:i}),E("span",{class:"rui-knob__value rui-knob__value--below","data-ref":"belowValue","aria-hidden":"true",hidden:!t.showValue||!i,children:e.valueText})]})}function Pt({knob:t,ring:e,range:r,valueBelow:i}){return re("button",{type:"button",class:"rui-knob__control","data-ref":"control","data-knob-control":!0,role:"slider","aria-label":t.label||void 0,"aria-valuemin":r.lowerBound,"aria-valuemax":r.upperBound,"aria-valuenow":t.value,"aria-valuetext":e.valueText,"aria-readonly":t.readOnly,disabled:t.disabled,children:[re("svg",{class:"rui-knob__svg",viewBox:"0 0 100 100","aria-hidden":"true",children:[E("circle",{class:"rui-knob__track","data-ref":"track",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.arcLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`}),E("circle",{class:"rui-knob__progress","data-ref":"progress",cx:"50",cy:"50",r:e.radius,fill:"none","stroke-width":e.strokeWidth,"stroke-dasharray":`${e.progressLength} ${e.circumference}`,transform:`rotate(${e.startAngle} 50 50)`})]}),E("span",{class:"rui-knob__value","data-ref":"centerValue","aria-hidden":"true",hidden:!t.showValue||i,children:e.valueText})]})}export{xt as RuiKnob,ut as RuiKnobElement};
2
2
  //# sourceMappingURL=index.js.map