@rogieking/figui3 9.4.1 → 9.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fig.js CHANGED
@@ -171,7 +171,7 @@ fig-icon[size="small"] {
171
171
  }
172
172
  `;let q=document.createElement("slot");q.name="prepend";let J=document.createElement("slot"),Q=document.createElement("slot");Q.name="append";let j=Y(Z,{className:"fig-button-control",type:_?null:"button"},[q,J,Q]);this.shadowRoot.replaceChildren($,j),this.button=j,this.button.addEventListener("click",this.#J),this.button.addEventListener("focus",this.#K),this.button.addEventListener("blur",this.#Q)}this.shadowRoot.querySelectorAll("slot").forEach((_)=>{_.removeEventListener("slotchange",this.#j),_.addEventListener("slotchange",this.#j)}),this.removeEventListener("keydown",this.#$),this.addEventListener("keydown",this.#$),this.#Z=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false",this.#M(),this.#R()}get type(){return this.getAttribute("type")||"button"}set type(_){this.setAttribute("type",_)}get selected(){return this.#Z}set selected(_){this.setAttribute("selected",_)}#W(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#N(){if(this.#W())return;if(this.type==="toggle")if(this.selected)this.removeAttribute("selected");else this.setAttribute("selected","");if(this.type==="submit"){let _=this.closest("form");if(_)if(typeof _.requestSubmit==="function")_.requestSubmit();else _.submit()}if(this.type==="link"){let _=this.getAttribute("href"),Z=this.getAttribute("target");if(_)if(Z)window.open(_,Z);else window.location.href=_}}#X(){if(this.type==="select")return this.querySelector("select, fig-dropdown");if(this.type==="upload")return this.querySelector('input[type="file"], input');return null}#G(){let _=this.#X();if(_ instanceof HTMLSelectElement)return _;if(_?.tagName==="FIG-DROPDOWN")return _.select||_.querySelector?.("select")||null;return null}#L(_){if(this.type!=="select")return;if(_.key!=="Enter")return;if(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)return;let Z=this.#G();if(!Z||Z.disabled||Z.multiple)return;if(typeof Z.showPicker!=="function")return;_.preventDefault();try{Z.showPicker()}catch{}}#U(){if(!this.button)return;if(this.type!=="toggle"){this.removeAttribute("aria-pressed"),this.button.removeAttribute("aria-pressed");return}let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";this.setAttribute("aria-pressed",_?"true":"false"),this.button.setAttribute("aria-pressed",_?"true":"false")}#R(){let Z=Array.from(this.querySelectorAll(':scope > fig-icon[slot="append"][data-generated="select-chevron"]')),$=Z[0];if(Z.slice(1).forEach((Q)=>Q.remove()),this.type!=="select"){$?.remove();return}if(this.querySelector(':scope > [slot="append"]:not([data-generated])')){$?.remove();return}if($)return;let J=h("chevron",{size:"small"});J.setAttribute("slot","append"),J.setAttribute("data-generated","select-chevron"),this.append(J)}#B(){if(!this.button)return;if(!(this.button instanceof HTMLButtonElement))return;this.#q.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.button.removeAttribute(_);else this.button.setAttribute(_,Z)})}#M(){if(!this.button)return;let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.disabled=_,this.button instanceof HTMLButtonElement)this.button.disabled=_,this.button.type="button",this.button.setAttribute("type","button");this.#O(),this.#B(),this.#U()}#O(){let _=this.#X();if(!_)return;if(this.#W()){if(!this.#_.has(_))this.#_.set(_,_.hasAttribute("disabled")&&_.getAttribute("disabled")!=="false");_.setAttribute("disabled","")}else if(this.#_.has(_)){let $=this.#_.get(_);if(this.#_.delete(_),$)_.setAttribute("disabled","");else _.removeAttribute("disabled")}}static get observedAttributes(){return["disabled","selected","type","aria-label","aria-labelledby","aria-describedby","aria-haspopup","aria-expanded","aria-controls","title"]}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"type":{let q=(J)=>J==="select"||J==="upload";if(q(Z||"button")!==q($||"button")){this.button=null,this.connectedCallback();break}this.#M(),this.#R();break}case"disabled":this.#M();break;case"selected":this.#Z=$!==null&&$!=="false",this.#U();break;default:this.#B();break}}disconnectedCallback(){this.removeEventListener("keydown",this.#$),this.shadowRoot?.querySelectorAll("slot").forEach((_)=>{_.removeEventListener("slotchange",this.#j)})}}A("fig-button",z0);class l0 extends z0{#Z=!1;static get observedAttributes(){return[...super.observedAttributes,"icon","variant","full","align"]}connectedCallback(){this.#_(),super.connectedCallback(),this.#q()}get icon(){return this.getAttribute("icon")||""}set icon(_){if(_===null||_===void 0||_==="")this.removeAttribute("icon");else this.setAttribute("icon",String(_))}#_(){if(this.#Z)return;if(this.#Z=!0,this.getAttribute("variant")!=="secondary")this.setAttribute("variant","secondary");if(!this.hasAttribute("full")||this.getAttribute("full")==="false")this.setAttribute("full","");if(this.getAttribute("align")!=="start")this.setAttribute("align","start");this.#Z=!1}#q(){let _=Array.from(this.querySelectorAll(':scope > fig-icon[slot="prepend"][data-generated="property-button-icon"]'));if(this.querySelector(':scope > [slot="prepend"]:not([data-generated="property-button-icon"])')){_.forEach((J)=>J.remove());return}let $=this.icon.trim();if(!$){_.forEach((J)=>J.remove());return}let q=_.shift();if(_.forEach((J)=>J.remove()),!q)q=h($),q.setAttribute("slot","prepend"),q.setAttribute("data-generated","property-button-icon"),this.prepend(q);else if(q.getAttribute("name")!==$)q.setAttribute("name",$)}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="icon"){this.#q();return}if(_==="variant"||_==="full"||_==="align"){this.#_();return}super.attributeChangedCallback(_,Z,$)}}A("fig-property-button",l0);class r0 extends HTMLElement{#Z="Menu";#_=null;#q;#$;#J;get label(){return this.#Z}set label(_){this.#Z=_}#j;constructor(){super();this.select=document.createElement("select"),this.optionsSlot=document.createElement("slot"),this.attachShadow({mode:"open"}),this.#q=this.#N.bind(this),this.#$=this.#X.bind(this),this.#J=this.#G.bind(this),this.#j=this.slotChange.bind(this)}#K(){this.select.addEventListener("input",this.#q),this.select.addEventListener("change",this.#$),this.select.addEventListener("keydown",this.#J)}#Q(_){if(!_||!(_ instanceof Element))return!1;return!!_.querySelector('fig-checkbox, fig-switch, input[type="checkbox"]')}#W(){if(typeof this.select.showPicker==="function")requestAnimationFrame(()=>{try{this.select.showPicker()}catch{}})}connectedCallback(){if(this.type=this.getAttribute("type")||"select",this.#Z=this.getAttribute("label")||this.#Z,this.select.setAttribute("aria-label",this.#Z),this.#L(),!this.select.isConnected)this.appendChild(this.select);if(!this.optionsSlot.isConnected)this.shadowRoot.appendChild(this.optionsSlot);this.optionsSlot.removeEventListener("slotchange",this.#j),this.optionsSlot.addEventListener("slotchange",this.#j),this.select.removeEventListener("input",this.#q),this.select.removeEventListener("change",this.#$),this.select.removeEventListener("keydown",this.#J),this.#K()}slotChange(){let _=this.hasAttribute("value"),Z=this.select.options.length>0&&this.select.selectedIndex>=0,$=_?this.getAttribute("value"):this.type==="dropdown"?this.#_:Z?this.select.value:null;while(this.select.firstChild)this.select.firstChild.remove();if(this.type==="dropdown"){let q=document.createElement("option");q.setAttribute("hidden","true"),q.setAttribute("selected","true"),q.selected=!0,this.select.appendChild(q)}if(this.optionsSlot.assignedNodes().forEach((q)=>{if(q.nodeName==="OPTION"||q.nodeName==="OPTGROUP")this.select.appendChild(q.cloneNode(!0))}),$!==null)this.#U($);if(this.type==="dropdown")this.select.selectedIndex=-1}#N(_){_.stopPropagation();let Z=_.target.selectedOptions?.[0];if(this.#Q(Z)){if(this.type==="dropdown")this.select.selectedIndex=-1;this.#W();return}let $=_.target.value;if(this.type==="dropdown")this.#_=$;this.setAttribute("value",$),this.dispatchEvent(new CustomEvent("input",{detail:$,bubbles:!0,composed:!0}))}#X(_){_.stopPropagation();let Z=_.target.selectedOptions?.[0];if(this.#Q(Z)){if(this.type==="dropdown")this.select.selectedIndex=-1;this.#W();return}let $=this.type==="dropdown"?this.#_:this.select.value;if(this.type==="dropdown")this.select.selectedIndex=-1;this.dispatchEvent(new CustomEvent("change",{detail:$,bubbles:!0,composed:!0}))}#G(_){if(this.closest('fig-button[type="select"]'))return;if(_.key!=="Enter"||_.defaultPrevented)return;if(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)return;if(this.select.disabled||this.select.multiple)return;if(typeof this.select.showPicker!=="function")return;_.preventDefault();try{this.select.showPicker()}catch{}}focus(){this.select.focus()}blur(){this.select.blur()}get value(){if(this.type==="dropdown")return this.#_;return this.select?.value}set value(_){if(this.type==="dropdown")this.#_=_;this.setAttribute("value",_)}static get observedAttributes(){return["value","type","label","disabled","variant","size"]}#L(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.select.disabled=_}#U(_){if(this.type==="dropdown")return;if(this.select)this.select.value=_??""}attributeChangedCallback(_,Z,$){if(_==="value")this.#U($);if(_==="type"){if(this.type=$||"select",this.isConnected)this.slotChange()}if(_==="label")this.#Z=$||"Menu",this.select.setAttribute("aria-label",this.#Z);if(_==="disabled")this.#L()}disconnectedCallback(){this.optionsSlot.removeEventListener("slotchange",this.#j),this.select.removeEventListener("input",this.#q),this.select.removeEventListener("change",this.#$),this.select.removeEventListener("keydown",this.#J)}}A("fig-dropdown",r0);class H extends HTMLElement{static#Z=0;static#_=0;static#q=1000;static#$=null;static#J=!1;static#j=new Set;#K;#Q;#W;#N;#X;#G;#L;#U;#R;#B;#M;#O;#Y=null;#F=null;#V=null;#I=!1;#A;#H=!1;constructor(){super();this.action=this.getAttribute("action")||"hover";let _=parseInt(this.getAttribute("delay"));this.delay=!isNaN(_)?_:500,this.#K=this.#S.bind(this),this.#Q=this.hidePopupOutsideClick.bind(this),this.#W=this.showDelayedPopup.bind(this),this.#N=this.#b.bind(this),this.#X=()=>{if(!this.#I)this.showDelayedPopup()},this.#G=()=>{this.#I=!1,this.hidePopup()},this.#L=this.#D.bind(this),this.#U=this.#h.bind(this),this.#R=this.#y.bind(this),this.#B=this.#g.bind(this),this.#O=this.#w.bind(this),this.#M=()=>{clearTimeout(this.timeout),this.destroy(),this.isOpen=!1}}connectedCallback(){if(H.#m(),this.setup(),this.#C(),this.setupEventListeners(),this.#Y=this.closest("dialog"),this.#Y)this.#Y.addEventListener("close",this.#M)}disconnectedCallback(){if(clearTimeout(this.timeout),this.destroy(),this.#k(),this.#z(),document.removeEventListener("mousedown",this.#K,!0),document.removeEventListener("keydown",this.#O,!0),this.#Y)this.#Y.removeEventListener("close",this.#M),this.#Y=null;if(this.action==="click")document.body.removeEventListener("click",this.#Q);if(clearTimeout(this.#A),H.#$===this)H.#$=null}#T(){return this.firstElementChild}#z(){this.#V?.disconnect(),this.#V=null}#C(){if(this.#k(),this.action==="manual")return;let _=this.#T();if(!_){if(!this.#V&&typeof MutationObserver<"u")this.#V=new MutationObserver(()=>{if(this.#T())this.#z(),this.#C()}),this.#V.observe(this,{childList:!0});return}if(this.#F=_,this.action==="hover"){if(!this.isTouchDevice())_.addEventListener("pointerenter",this.#W),_.addEventListener("pointerleave",this.#N);_.addEventListener("touchstart",this.#L,{passive:!0}),_.addEventListener("touchmove",this.#U,{passive:!0}),_.addEventListener("touchend",this.#R,{passive:!0}),_.addEventListener("touchcancel",this.#B,{passive:!0}),_.addEventListener("focus",this.#X),_.addEventListener("blur",this.#G)}else if(this.action==="click")_.addEventListener("click",this.#W),_.addEventListener("touchstart",this.#W,{passive:!0})}#k(){let _=this.#F;if(!_)return;if(this.action==="hover")_.removeEventListener("pointerenter",this.#W),_.removeEventListener("pointerleave",this.#N),_.removeEventListener("touchstart",this.#L),_.removeEventListener("touchmove",this.#U),_.removeEventListener("touchend",this.#R),_.removeEventListener("touchcancel",this.#B),_.removeEventListener("focus",this.#X),_.removeEventListener("blur",this.#G);else if(this.action==="click")_.removeEventListener("click",this.#W),_.removeEventListener("touchstart",this.#W);this.#F=null}setup(){this.style.display="contents"}render(){this.destroy();let _=typeof HTMLElement<"u"&&"popover"in HTMLElement.prototype,Z=document.createElement("span");if(this.popup=document.createElement("dialog",{is:"fig-popup"}),this.popup.setAttribute("is","fig-popup"),this.popup.setAttribute("variant","tooltip"),this.popup.setAttribute("data-tooltip-managed",""),this.popup.setAttribute("role","tooltip"),this.popup.setAttribute("closedby","closerequest"),_)this.popup.setAttribute("popover","manual");let $=p();this.popup.setAttribute("id",$);let q=this.getAttribute("theme");if(q)this.popup.setAttribute("theme",q);let J=this.getAttribute("pointer");if(J!==null)this.popup.setAttribute("pointer",J);if(this.popup.append(Z),Z.innerText=this.getAttribute("text")??"",this.firstElementChild){let Q=new Set((this.firstElementChild.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean));Q.add($),this.firstElementChild.setAttribute("aria-describedby",[...Q].join(" "))}if(_)(W0()??document.body).append(this.popup);else{let Q=this.closest("dialog");if(Q&&Q.open)Q.append(this.popup);else(W0()??document.body).append(this.popup)}this.popup.anchor=this.firstElementChild}destroy(){if(this.popup)this.#P(this.popup.id),this.popup.hidePopup?.(),this.popup.remove(),this.popup=null}#P(_){let Z=this.firstElementChild;if(!Z||!_)return;let $=Z.getAttribute("aria-describedby");if(!$)return;let q=$.split(/\s+/).filter((J)=>J&&J!==_).join(" ");if(q)Z.setAttribute("aria-describedby",q);else Z.removeAttribute("aria-describedby")}isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}setupEventListeners(){if(this.action==="click")document.body.addEventListener("click",this.#Q);document.addEventListener("mousedown",this.#K,!0),document.addEventListener("keydown",this.#O,!0)}get#E(){return this.hasAttribute("show")&&this.getAttribute("show")!=="false"}#f(){let _=Date.now(),Z=H.#q;if(this.action==="hover"&&H.#$)return!0;if(H.#Z&&_-H.#Z<Z)return!0;if(H.#_&&_-H.#_<Z)return!0;return!1}showDelayedPopup(_){if(this.#E)return;if(clearTimeout(this.timeout),_?.type==="pointerenter"){let Z=this.#F;if(Z?.matches?.("fig-select[open]")||Z?.querySelector?.("fig-select[open]"))return}if(this.#f()){this.render(),this.showPopup();return}this.timeout=setTimeout(()=>{this.render(),this.showPopup()},this.delay)}showPopup(){if(this.#Y&&!this.#Y.open)return;if(!this.firstElementChild)return;if(this.action==="hover"&&H.#$&&H.#$!==this)H.#$.hidePopup();if(!this.popup)this.render();if(this.popup.anchor=this.firstElementChild,this.popup.open=!0,this.isOpen=!0,this.action==="hover")H.#$=this;H.#Z=Date.now()}hidePopup(){if(this.#E)return;clearTimeout(this.timeout),clearTimeout(this.#A);let _=this.isOpen;if(this.popup)this.destroy();if(this.isOpen=!1,H.#$===this)H.#$=null;if(_)H.#_=Date.now()}hidePopupOutsideClick(_){if(this.isOpen&&!this.popup.contains(_.target))this.hidePopup()}#b(_){if(!this.#H)this.hidePopup()}#D(_){if(this.action==="hover")this.#H=!0,clearTimeout(this.#A),this.showDelayedPopup()}#h(_){if(this.action==="hover"&&this.#H)clearTimeout(this.#A),this.#A=setTimeout(()=>{this.#H=!1,this.hidePopup()},150)}#y(_){if(this.action==="hover"&&this.#H)clearTimeout(this.#A),this.#A=setTimeout(()=>{this.#H=!1,this.hidePopup()},300)}#g(_){if(this.action==="hover"&&this.#H)this.#H=!1,clearTimeout(this.#A),this.hidePopup()}#w(_){if(!this.isOpen&&!this.popup||_.key!=="Escape")return;_.preventDefault(),this.hidePopup(),this.firstElementChild?.focus?.()}static get observedAttributes(){return["action","delay","open","pointer","show","text","theme"]}get text(){return this.getAttribute("text")??""}set text(_){this.setAttribute("text",_)}#x(_){if(!this.popup)return;let Z=this.popup.firstElementChild??this.popup.firstChild;if(!Z)return;Z.innerText=_}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){if(_===!1||_==="false"||_===null)this.removeAttribute("open");else this.setAttribute("open","true")}attributeChangedCallback(_,Z,$){if(_==="action"){if(this.#k(),Z==="click")document.body?.removeEventListener("click",this.#Q);if(this.action=$||"hover",this.isConnected){if(this.#C(),this.action==="click")document.body?.addEventListener("click",this.#Q)}}if(_==="delay"){let q=parseInt($);this.delay=!isNaN(q)?q:500}if(_==="open")if($!==null&&$!=="false")requestAnimationFrame(()=>{this.showDelayedPopup()});else requestAnimationFrame(()=>{this.hidePopup()});if(_==="show")if($!==null&&$!=="false")this.showPopup();else this.hidePopup();if(_==="text")this.#x($??"");if(_==="pointer"){if(this.popup)if($!==null)this.popup.setAttribute("pointer",$);else this.popup.removeAttribute("pointer")}if(_==="theme"){if(this.popup)if($)this.popup.setAttribute("theme",$);else this.popup.removeAttribute("theme")}}#S(_){if(!this.isOpen)return;let Z=_.target;if(this.popup&&this.popup.contains(Z))return;if(Z.tagName==="SELECT"||Z.hasAttribute("popover")||Z.closest("dialog"))this.hidePopup()}static#m(){if(H.#J)return;H.#J=!0;let _=()=>{H.dismissHoverTooltips()},Z=()=>{H.#p()};document.documentElement.addEventListener("mouseleave",_),document.addEventListener("mouseout",($)=>{if($.relatedTarget)return;_()}),document.addEventListener("scroll",Z,{capture:!0,passive:!0}),window.addEventListener("scroll",Z,{passive:!0}),window.visualViewport?.addEventListener("scroll",Z,{passive:!0}),window.visualViewport?.addEventListener("resize",Z,{passive:!0});try{let $=window.frameElement;if($)$.addEventListener("mouseleave",_)}catch{}window.addEventListener("message",($)=>{if($?.data?.type!=="figui:dismiss-tooltips")return;if(window.parent!==window&&$.source!==window.parent)return;_()})}static dismissHoverTooltips(){for(let _ of document.querySelectorAll("fig-tooltip")){if(!(_ instanceof H))continue;if(_.action!=="hover")continue;if(_.#E)continue;if(_.#I=!0,setTimeout(()=>{let Z=_.#F;if(Z!==document.activeElement&&!Z?.matches?.(":focus, :focus-within"))_.#I=!1},0),_.isOpen||_.timeout)_.hidePopup()}for(let _ of Array.from(H.#j))H.hide(_)}static#v=new WeakMap;static#p(){for(let _ of document.querySelectorAll("fig-tooltip")){if(!(_ instanceof H))continue;if(_.#E)continue;if(_.isOpen||_.timeout)_.hidePopup()}for(let _ of Array.from(H.#j))H.hide(_)}static show(_,Z,$={}){H.#m(),H.hide(_);let q=$.delay??500,Q=Date.now()-H.#Z<H.#q?0:q,j={timeout:null,popup:null};H.#v.set(_,j),H.#j.add(_),j.timeout=setTimeout(()=>{let W=typeof HTMLElement<"u"&&"popover"in HTMLElement.prototype,K=document.createElement("dialog",{is:"fig-popup"});if(K.setAttribute("is","fig-popup"),K.setAttribute("variant","tooltip"),K.setAttribute("data-tooltip-managed",""),K.setAttribute("role","tooltip"),K.setAttribute("closedby","closerequest"),W)K.setAttribute("popover","manual");let N=document.createElement("span");if(N.innerText=Z,K.append(N),W)(W0()??document.body).append(K);else{let L=_.closest?.("dialog");if(L&&L.open)L.append(K);else(W0()??document.body).append(K)}K.anchor=_,K.open=!0,j.popup=K,H.#Z=Date.now()},Q)}static hide(_){let Z=H.#v.get(_);if(!Z)return;if(clearTimeout(Z.timeout),Z.popup)Z.popup.remove(),H.#_=Date.now();H.#v.delete(_),H.#j.delete(_)}}A("fig-tooltip",H);class a0 extends HTMLElement{static observedAttributes=["position","tail","tooltip"];#Z=null;#_=null;#q=null;#$=null;connectedCallback(){this.#Z=this.textContent,this.#$??=new MutationObserver(()=>{this.#Z=this.textContent,this.#j()}),this.#J(),u(this,()=>{this.#j(),this.#N(),this.#Q()})}disconnectedCallback(){this.#$?.disconnect(),this.#N()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(this.#Z===null)return;if(_==="tooltip"){if(this.#N(),this.isConnected)this.#Q();return}this.#j()}#J(){this.#$?.observe(this,{childList:!0,characterData:!0,subtree:!0})}#j(){if(this.#$?.disconnect(),this.#K(),this.isConnected)this.#J()}#K(){let _=this.getAttribute("position")||"right",Z=this.#Z||"";if(_==="middle"){let $=this.getAttribute("tail"),q;if($){let j=Z.lastIndexOf($);q=j>0?j:Math.ceil(Z.length/2)}else q=Math.ceil(Z.length/2);this.replaceChildren();let J=document.createElement("span");J.className="start",J.textContent=Z.slice(0,q);let Q=document.createElement("span");Q.className="end",Q.textContent=Z.slice(q),this.appendChild(J),this.appendChild(Q)}else this.textContent=Z}#Q(){if(!this.hasAttribute("tooltip")||this.getAttribute("tooltip")==="false")return;this.#_=()=>{if(!this.#W())return;H.show(this,this.#Z)},this.#q=()=>{H.hide(this)},this.addEventListener("pointerenter",this.#_),this.addEventListener("pointerleave",this.#q)}#W(){let _=(Z)=>Z.scrollWidth>Z.clientWidth;if(_(this))return!0;return[...this.querySelectorAll(":scope > .start, :scope > .end")].some(_)}#N(){if(this.#_)this.removeEventListener("pointerenter",this.#_);if(this.#q)this.removeEventListener("pointerleave",this.#q);this.#_=null,this.#q=null,H.hide(this)}}A("fig-truncate",a0);function t0(_){if(_.querySelector("fig-header[dialog-header]"))return;let Z=document.createElement("fig-header");Z.setAttribute("dialog-header",""),Z.setAttribute("data-auto","");let $=document.createElement("h3");$.textContent=_.getAttribute("title")||"Dialog";let q=document.createElement("fig-tooltip");q.setAttribute("text","Close");let J=document.createElement("fig-button");J.setAttribute("variant","ghost"),J.setAttribute("icon",""),J.setAttribute("aria-label","Close dialog"),J.setAttribute("close-dialog",""),J.appendChild(h("close")),q.appendChild(J),Z.appendChild($),Z.appendChild(q),_.prepend(Z)}class n0 extends HTMLDialogElement{constructor(){super();this._figInit()}_figInit(){if(this._figInitialized)return;this._figInitialized=!0,this._isDragging=!1,this._dragPending=!1,this._dragStartPos={x:0,y:0},this._dragOffset={x:0,y:0},this._resizeObserver=null,this._mutationObserver=null,this._autoResizeRafId=0,this._offset=16,this._positionInitialized=!1,this._dragThreshold=3,this._boundPointerDown=this._handlePointerDown.bind(this),this._boundPointerMove=this._handlePointerMove.bind(this),this._boundPointerUp=this._handlePointerUp.bind(this),this._boundClose=this.close.bind(this),this._boundIframeMessage=this._handleIframeMessage.bind(this),this._boundContentMutation=this._scheduleAutoResize.bind(this),this._boundContentResize=this._scheduleAutoResize.bind(this),this._boundRestoreFocus=this._restoreFocus.bind(this),this._boundIframeMouseLeave=this._handleIframeMouseLeave.bind(this),this._iframeDismissMutationObserver=null,this._previousFocus=null}get autoresize(){return this.hasAttribute("autoresize")&&this.getAttribute("autoresize")!=="false"}connectedCallback(){if(this._figInit(),this.modal=this.hasAttribute("modal")&&this.getAttribute("modal")!=="false",this.drag=this.hasAttribute("drag")&&this.getAttribute("drag")!=="false",this._ensureHeader(),this.open&&!this.matches?.(":modal"))this._assignStackingOrder();u(this,()=>{this._addCloseListeners(),this._setupDragListeners(),this._applyPosition(),this._syncAutoResize(),this._setupIframeDismissListeners(),this._syncA11y()}),window.addEventListener("message",this._boundIframeMessage)}disconnectedCallback(){this._figInit(),this._removeDragListeners(),this.querySelectorAll("fig-button[close-dialog]").forEach((_)=>{_.removeEventListener("click",this._boundClose)}),window.removeEventListener("message",this._boundIframeMessage),this._teardownAutoResize(),this._teardownIframeDismissListeners(),this.removeEventListener("close",this._boundRestoreFocus)}_captureFocusBeforeOpen(){let _=document.activeElement;this._previousFocus=_ instanceof HTMLElement&&_!==document.body&&!this.contains(_)?_:null}_restoreFocus(){let _=this._previousFocus;if(this._previousFocus=null,!_?.isConnected)return;let Z=document.activeElement;if(Z&&Z!==document.body&&!this.contains(Z))return;requestAnimationFrame(()=>_.focus?.())}_assignStackingOrder(){this.style.zIndex=String(i0()+1)}_clearStackingOrder(){this.style.zIndex=""}show(){return this._captureFocusBeforeOpen(),this._assignStackingOrder(),this.addEventListener("close",this._boundRestoreFocus,{once:!0}),H.dismissHoverTooltips(),super.show()}showModal(){return this._captureFocusBeforeOpen(),this._clearStackingOrder(),this.addEventListener("close",this._boundRestoreFocus,{once:!0}),H.dismissHoverTooltips(),super.showModal()}close(..._){let Z=super.close(..._);return this._clearStackingOrder(),Z}_handleIframeMouseLeave(_){let Z=_?.currentTarget;if(!(Z instanceof HTMLIFrameElement))return;try{Z.contentWindow?.postMessage({type:"figui:dismiss-tooltips"},"*")}catch{}}_syncIframeDismissListeners(){for(let _ of this.querySelectorAll(":scope > iframe")){if(!(_ instanceof HTMLIFrameElement))continue;if(_.dataset.figuiDismissBound==="true")continue;_.dataset.figuiDismissBound="true",_.addEventListener("mouseleave",this._boundIframeMouseLeave)}}_setupIframeDismissListeners(){if(this._syncIframeDismissListeners(),this._iframeDismissMutationObserver)return;this._iframeDismissMutationObserver=new MutationObserver(()=>{this._syncIframeDismissListeners()}),this._iframeDismissMutationObserver.observe(this,{childList:!0,subtree:!1})}_teardownIframeDismissListeners(){this._iframeDismissMutationObserver?.disconnect(),this._iframeDismissMutationObserver=null;for(let _ of this.querySelectorAll(":scope > iframe"))_.removeEventListener("mouseleave",this._boundIframeMouseLeave),delete _.dataset.figuiDismissBound}_handleIframeMessage(_){if(!this.autoresize)return;let Z=_?.data;if(!Z||Z.type!=="figui:iframe-resize")return;let $=_.source;if(!$)return;let q=Array.from(this.querySelectorAll("iframe")).find((J)=>J.contentWindow===$);if(!q)return;this._resizeForIframe(q,Z)}_syncAutoResize(){if(this.autoresize)this._setupAutoResize(),this._scheduleAutoResize();else this._teardownAutoResize()}_setupAutoResize(){if(!this._resizeObserver){this._resizeObserver=new ResizeObserver(this._boundContentResize);for(let _ of this.children)try{this._resizeObserver.observe(_)}catch{}}if(!this._mutationObserver)this._mutationObserver=new MutationObserver((_)=>{for(let Z of _)Z.addedNodes?.forEach(($)=>{if($ instanceof Element&&$.parentElement===this)try{this._resizeObserver?.observe($)}catch{}});this._scheduleAutoResize()}),this._mutationObserver.observe(this,{childList:!0,subtree:!0,attributes:!0,characterData:!0})}_teardownAutoResize(){if(this._resizeObserver)this._resizeObserver.disconnect(),this._resizeObserver=null;if(this._mutationObserver)this._mutationObserver.disconnect(),this._mutationObserver=null;if(this._autoResizeRafId)cancelAnimationFrame(this._autoResizeRafId),this._autoResizeRafId=0}_scheduleAutoResize(){if(!this.autoresize)return;if(this._autoResizeRafId)return;this._autoResizeRafId=requestAnimationFrame(()=>{this._autoResizeRafId=0,this._applyAutoResize()})}_applyAutoResize(){if(!this.autoresize)return;if(this.querySelector(":scope > iframe"))return;this._resizeToContent(null)}_computeChrome(_){let Z=window.getComputedStyle(this),$=parseFloat(Z.paddingTop||"0")+parseFloat(Z.paddingBottom||"0")+parseFloat(Z.borderTopWidth||"0")+parseFloat(Z.borderBottomWidth||"0"),q=0,J=parseFloat(Z.rowGap||Z.gap||"0")||0,Q=0;for(let j of this.children){let W=j.getBoundingClientRect();if(W.height===0)continue;if(Q+=1,j===_)continue;let K=window.getComputedStyle(j),N=parseFloat(K.marginTop||"0")+parseFloat(K.marginBottom||"0");q+=W.height+N}if(J&&Q>1)q+=J*(Q-1);return $+q}_resizeForIframe(_,Z){if(typeof Z.height!=="number"||!(Z.height>0))return;let $=this._computeChrome(_);this.style.height=`${Math.ceil(Z.height+$)}px`}_resizeToContent(){if(this.style.height)this.style.height=""}_ensureHeader(){t0(this)}_addCloseListeners(){this.querySelectorAll("fig-button[close-dialog]").forEach((_)=>{if(!_.hasAttribute("aria-label"))_.setAttribute("aria-label","Close dialog");_.removeEventListener("click",this._boundClose),_.addEventListener("click",this._boundClose)})}_syncA11y(){if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")){let _=this.querySelector("fig-header[dialog-header] h1, fig-header[dialog-header] h2, fig-header[dialog-header] h3, fig-header[dialog-header] h4, fig-header[dialog-header] h5, fig-header[dialog-header] h6");if(_){let Z=_.getAttribute("id")||p();_.setAttribute("id",Z),this.setAttribute("aria-labelledby",Z)}}}_applyPosition(){let _=this.getAttribute("position")||"";this.style.position="fixed",this.style.transform="none",this.style.top="auto",this.style.bottom="auto",this.style.left="auto",this.style.right="auto",this.style.margin="0";let Z=_.includes("top"),$=_.includes("bottom"),q=_.includes("left"),J=_.includes("right"),Q=_.includes("center")&&!Z&&!$,j=_.includes("center")&&!q&&!J;if(Z)this.style.top=`${this._offset}px`;else if($)this.style.bottom=`${this._offset}px`;else if(Q)this.style.top="0",this.style.bottom="0";if(q)this.style.left=`${this._offset}px`;else if(J)this.style.right=`${this._offset}px`;else if(j)this.style.left="0",this.style.right="0";if(Q&&j)this.style.margin="auto";else if(Q)this.style.marginTop="auto",this.style.marginBottom="auto";else if(j)this.style.marginLeft="auto",this.style.marginRight="auto";this._positionInitialized=!0}_setupDragListeners(){if(this.drag){this.addEventListener("pointerdown",this._boundPointerDown);let _=this.getAttribute("handle"),Z=_?this.querySelector(_):this.querySelector("fig-header, header");if(Z)Z.style.cursor="grab"}}_removeDragListeners(){this.removeEventListener("pointerdown",this._boundPointerDown),document.removeEventListener("pointermove",this._boundPointerMove),document.removeEventListener("pointerup",this._boundPointerUp),document.removeEventListener("pointercancel",this._boundPointerUp)}_isInteractiveElement(_){let Z=["input","button","select","textarea","a","label","details","summary",'[contenteditable="true"]',"[tabindex]"],$=["FIG-HEADER","FIG-DIALOG","FIG-FIELD","FIG-TOOLTIP","FIG-CONTENT","FIG-TABS","FIG-TAB","FIG-POPOVER","FIG-SHIMMER","FIG-LAYER","FIG-FILL-PICKER"],q=(Q)=>Z.some((j)=>Q.matches?.(j))||Q.tagName?.startsWith("FIG-")&&!$.includes(Q.tagName);if(q(_))return!0;let J=_.parentElement;while(J&&J!==this){if(q(J))return!0;J=J.parentElement}return!1}_handlePointerDown(_){if(!this.drag)return;if(this._isInteractiveElement(_.target))return;let Z=this.getAttribute("handle");if(Z&&Z.trim()){let q=this.querySelector(Z);if(!q||!q.contains(_.target))return}this._dragPending=!0,this._dragStartPos.x=_.clientX,this._dragStartPos.y=_.clientY;let $=this.getBoundingClientRect();this._dragOffset.x=_.clientX-$.left,this._dragOffset.y=_.clientY-$.top,document.addEventListener("pointermove",this._boundPointerMove),document.addEventListener("pointerup",this._boundPointerUp),document.addEventListener("pointercancel",this._boundPointerUp)}_handlePointerMove(_){if(this._dragPending&&!this._isDragging){let Z=Math.abs(_.clientX-this._dragStartPos.x),$=Math.abs(_.clientY-this._dragStartPos.y);if(Z>this._dragThreshold||$>this._dragThreshold){this._isDragging=!0,this._dragPending=!1,this.setPointerCapture(_.pointerId),this.style.cursor="grabbing";let q=this.getBoundingClientRect();this.style.top=`${q.top}px`,this.style.left=`${q.left}px`,this.style.bottom="auto",this.style.right="auto",this.style.margin="0"}}if(!this._isDragging)return;this.style.left=`${_.clientX-this._dragOffset.x}px`,this.style.top=`${_.clientY-this._dragOffset.y}px`,_.preventDefault()}_handlePointerUp(_){if(this._isDragging){if(this.hasPointerCapture?.(_.pointerId))this.releasePointerCapture(_.pointerId);this.style.cursor=""}this._isDragging=!1,this._dragPending=!1,document.removeEventListener("pointermove",this._boundPointerMove),document.removeEventListener("pointerup",this._boundPointerUp),document.removeEventListener("pointercancel",this._boundPointerUp),_.preventDefault()}static get observedAttributes(){return["modal","drag","position","handle","title","resizable","closedby","autoresize","aria-label","aria-labelledby"]}attributeChangedCallback(_,Z,$){if(this._figInit(),_==="autoresize"&&this.isConnected)this._syncAutoResize();if(_==="drag")if(this.drag=$!==null&&$!=="false",this.drag)this._setupDragListeners();else{this._removeDragListeners();let q=this.querySelector("fig-header, header");if(q)q.style.cursor=""}if(_==="position"&&this._positionInitialized)this._applyPosition();if(_==="modal"){let q=this.modal;if(this.modal=$!==null&&$!=="false",this.open&&q!==this.modal)if(this.close(),this.modal)this.showModal();else this.show()}if(_==="closedby")this.closedby=$||"any";if(_==="title"){let q=this.querySelector("fig-header[data-auto] h3");if(q)q.textContent=$||"Dialog";this._syncA11y()}if(_==="aria-label"||_==="aria-labelledby")this._syncA11y()}}F0("fig-dialog",n0,{extends:"dialog"});class e0 extends HTMLDialogElement{constructor(){super();this._figInit()}_figInit(){if(this._figInitialized)return;this._figInitialized=!0,this._defaultOffset=16,this._autoCloseTimer=null,this._toastVisible=!1,this._syncingOpen=!1,this._managedRole=null,this._managedLive=null,this._managedIcon=null,this._managedDismiss=null,this._managedDismissSeparator=null,this._boundHandleClose=this.handleClose.bind(this)}connectedCallback(){if(this._figInit(),!this.hasAttribute("theme"))this.setAttribute("theme","dark");if(this.syncLiveRegion(),this.syncIcon(),this.syncDismiss(),this.addCloseListeners(),this.applyPosition(),this.hasAttribute("open")&&this.getAttribute("open")!=="false")this.showToast();else{if(this.getAttribute("open")==="false")this._syncingOpen=!0,this.removeAttribute("open"),this._syncingOpen=!1;this._toastVisible=!1}}disconnectedCallback(){this._figInit(),this.clearAutoClose()}addCloseListeners(){this.querySelectorAll("[close-toast]").forEach((_)=>{if(!_.hasAttribute("aria-label"))_.setAttribute("aria-label","Close notification");_.removeEventListener("click",this._boundHandleClose),_.addEventListener("click",this._boundHandleClose)})}handleClose(){this.hideToast()}applyPosition(){this.style.position="fixed",this.style.margin="0",this.style.top="auto";let _=Number.parseFloat(this.getAttribute("offset")),Z=Number.isFinite(_)?_:this._defaultOffset;this.style.bottom=`${Z}px`,this.style.left="50%",this.style.right="auto",this.style.transform="translateX(-50%)"}syncLiveRegion(){let _=this.getAttribute("live")==="assertive"||this.getAttribute("theme")==="danger",Z=_?"alert":"status",$=_?"assertive":"polite";if(!this.hasAttribute("role")||this.getAttribute("role")===this._managedRole)this.setAttribute("role",Z),this._managedRole=Z;if(!this.hasAttribute("aria-live")||this.getAttribute("aria-live")===this._managedLive)this.setAttribute("aria-live",$),this._managedLive=$;if(!this.hasAttribute("aria-atomic"))this.setAttribute("aria-atomic","true")}syncIcon(){let _=this.getAttribute("icon"),Z=this._managedIcon;if(!Z||Z.parentNode!==this)Z=this.querySelector(":scope > fig-icon[data-fig-toast-icon]");if(!_){if(Z)Z.remove();this._managedIcon=null;return}if(!Z)Z=document.createElement("fig-icon"),Z.setAttribute("data-fig-toast-icon",""),Z.setAttribute("aria-hidden","true"),this.prepend(Z);else if(this.firstElementChild!==Z)this.prepend(Z);if(Z.getAttribute("size")!=="medium")Z.setAttribute("size","medium");if(Z.getAttribute("name")!==_)Z.setAttribute("name",_);this._managedIcon=Z}syncDismiss(){let _=F(this,"dismiss"),Z=this._managedDismiss;if(!Z||Z.parentNode!==this)Z=this.querySelector(":scope > fig-button[data-fig-toast-dismiss]");let $=this._managedDismissSeparator;if(!$||$.parentNode!==this)$=this.querySelector(":scope > fig-separator[data-fig-toast-dismiss-separator]");if(!_){if(Z)Z.removeEventListener("click",this._boundHandleClose),Z.remove();if($)$.remove();this._managedDismiss=null,this._managedDismissSeparator=null;return}if(!$)$=document.createElement("fig-separator"),$.setAttribute("data-fig-toast-dismiss-separator",""),$.setAttribute("direction","vertical"),$.setAttribute("aria-orientation","vertical"),$.setAttribute("aria-hidden","true");if(!Z){Z=document.createElement("fig-button"),Z.setAttribute("data-fig-toast-dismiss",""),Z.setAttribute("variant","ghost"),Z.setAttribute("icon",""),Z.setAttribute("close-toast",""),Z.setAttribute("aria-label","Close notification");let q=document.createElement("fig-icon");q.setAttribute("name","close"),q.setAttribute("aria-hidden","true"),Z.append(q)}if($.parentNode!==this||Z.parentNode!==this)this.append($,Z);else if(this.lastElementChild!==Z||Z.previousElementSibling!==$)this.append($,Z);if($.getAttribute("direction")!=="vertical")$.setAttribute("direction","vertical");Z.removeEventListener("click",this._boundHandleClose),Z.addEventListener("click",this._boundHandleClose),this._managedDismiss=Z,this._managedDismissSeparator=$}startAutoClose(){this.clearAutoClose();let _=parseInt(this.getAttribute("duration")??"5000");if(_>0)this._autoCloseTimer=setTimeout(()=>this.hideToast(),_)}clearAutoClose(){if(this._autoCloseTimer)clearTimeout(this._autoCloseTimer),this._autoCloseTimer=null}_resolveAutoTheme(){if(this.getAttribute("theme")!=="auto")return;let _=getComputedStyle(document.documentElement).colorScheme||"";this.style.colorScheme=_.includes("dark")?"light":"dark"}showToast(){let _=this._toastVisible;this.syncLiveRegion(),this.syncIcon(),this.syncDismiss(),this._resolveAutoTheme(),this._syncingOpen=!0;try{if(!this.open)this.show()}finally{this._syncingOpen=!1}if(this._toastVisible=!0,this.applyPosition(),this.startAutoClose(),!_)this.dispatchEvent(new CustomEvent("toast-show",{bubbles:!0}))}hideToast(){let _=this._toastVisible||this.open;this.clearAutoClose(),this._syncingOpen=!0;try{if(this.open)this.close();else if(this.hasAttribute("open"))this.removeAttribute("open")}finally{this._syncingOpen=!1}if(this._toastVisible=!1,_)this.dispatchEvent(new CustomEvent("toast-hide",{bubbles:!0}))}static get observedAttributes(){return["duration","offset","open","theme","live","icon","dismiss"]}attributeChangedCallback(_,Z,$){if(this._figInit(),Z===$)return;if(!this.isConnected)return;if(this._syncingOpen)return;if(_==="offset")this.applyPosition();if(_==="open")if($!==null&&$!=="false")this.showToast();else this.hideToast();if(_==="duration"&&this._toastVisible)this.startAutoClose();if(_==="theme")if($==="auto")this._resolveAutoTheme();else this.style.removeProperty("color-scheme");if(_==="theme"||_==="live")this.syncLiveRegion();if(_==="icon")this.syncIcon();if(_==="dismiss")this.syncDismiss()}}F0("fig-toast",e0,{extends:"dialog"});class __ extends HTMLDialogElement{_anchorObserver=null;_contentObserver=null;_mutationObserver=null;_anchorTrackRAF=null;_lastAnchorRect=null;_isPopupActive=!1;_boundReposition;_boundScroll;_boundOutsidePointerDown;_rafId=null;_anchorRef=null;_isDragging=!1;_dragPending=!1;_dragStartPos={x:0,y:0};_dragOffset={x:0,y:0};_dragThreshold=3;_boundPointerDown;_boundPointerMove;_boundPointerUp;_wasDragged=!1;_previousFocus=null;_boundDocumentKeydown;_boundNativeClose;constructor(){super();this._boundReposition=this.queueReposition.bind(this),this._boundScroll=(_)=>{let Z=_.target;if(this.open&&(!(Z instanceof Node)||!this.contains(Z))&&this.shouldAutoReposition())this.queueReposition()},this._boundOutsidePointerDown=this.handleOutsidePointerDown.bind(this),this._boundPointerDown=this.handlePointerDown.bind(this),this._boundPointerMove=this.handlePointerMove.bind(this),this._boundPointerUp=this.handlePointerUp.bind(this),this._boundDocumentKeydown=this.handleDocumentKeydown.bind(this),this._boundNativeClose=this.handleNativeClose.bind(this),this._boundAutoClose=()=>{this.open=!1}}ensureInitialized(){if(typeof this._anchorObserver>"u")this._anchorObserver=null;if(typeof this._contentObserver>"u")this._contentObserver=null;if(typeof this._mutationObserver>"u")this._mutationObserver=null;if(typeof this._anchorTrackRAF>"u")this._anchorTrackRAF=null;if(typeof this._lastAnchorRect>"u")this._lastAnchorRect=null;if(typeof this._isPopupActive>"u")this._isPopupActive=!1;if(typeof this._rafId>"u")this._rafId=null;if(typeof this._anchorRef>"u")this._anchorRef=null;if(typeof this._isDragging>"u")this._isDragging=!1;if(typeof this._dragPending>"u")this._dragPending=!1;if(typeof this._dragStartPos>"u")this._dragStartPos={x:0,y:0};if(typeof this._dragOffset>"u")this._dragOffset={x:0,y:0};if(typeof this._dragThreshold!=="number")this._dragThreshold=3;if(typeof this._wasDragged>"u")this._wasDragged=!1;if(typeof this._previousFocus>"u")this._previousFocus=null;if(typeof this._boundReposition!=="function")this._boundReposition=this.queueReposition.bind(this);if(typeof this._boundScroll!=="function")this._boundScroll=(_)=>{let Z=_.target;if(this.open&&(!(Z instanceof Node)||!this.contains(Z))&&this.shouldAutoReposition())this.queueReposition()};if(typeof this._boundOutsidePointerDown!=="function")this._boundOutsidePointerDown=this.handleOutsidePointerDown.bind(this);if(typeof this._boundPointerDown!=="function")this._boundPointerDown=this.handlePointerDown.bind(this);if(typeof this._boundPointerMove!=="function")this._boundPointerMove=this.handlePointerMove.bind(this);if(typeof this._boundPointerUp!=="function")this._boundPointerUp=this.handlePointerUp.bind(this);if(typeof this._boundDocumentKeydown!=="function")this._boundDocumentKeydown=this.handleDocumentKeydown.bind(this);if(typeof this._boundNativeClose!=="function")this._boundNativeClose=this.handleNativeClose.bind(this);if(typeof this._boundAutoClose!=="function")this._boundAutoClose=()=>{this.open=!1}}static get observedAttributes(){return["open","anchor","position","offset","variant","theme","drag","handle","autoresize","viewport-margin","title"]}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){if(_===!1||_==="false"||_===null){if(!(this.matches?.(":open")||this.matches?.(":popover-open"))&&!this.hasAttribute("open"))return;if(this.hidePopup(),this.hasAttribute("open"))this.removeAttribute("open");return}if(this.open)return;this.setAttribute("open","true")}get anchor(){return this._anchorRef??this.getAttribute("anchor")}set anchor(_){if(_ instanceof Element)this._anchorRef=_;else if(typeof _==="string")this._anchorRef=null,this.setAttribute("anchor",_);else if(_&&typeof _.getBoundingClientRect==="function")this._anchorRef=_;else this._anchorRef=null;if(this.open)this.queueReposition()}connectedCallback(){if(this.ensureInitialized(),this.getAttribute("variant")==="tooltip"){if(!this.hasAttribute("position"))this.setAttribute("position","top center");if(!this.hasAttribute("offset"))this.setAttribute("offset","8 8");if(!this.hasAttribute("viewport-margin"))this.setAttribute("viewport-margin","8");if(!this.hasAttribute("theme"))this.setAttribute("theme","menu")}if(!this.hasAttribute("position"))this.setAttribute("position","top center");if(!this.hasAttribute("role"))this.setAttribute("role",this.getAttribute("variant")==="tooltip"?"tooltip":"dialog");if(!this.hasAttribute("closedby"))this.setAttribute("closedby","any");if(this.drag=this.hasAttribute("drag")&&this.getAttribute("drag")!=="false",this._ensureHeader(),this.removeEventListener("close",this._boundNativeClose),this.addEventListener("close",this._boundNativeClose),requestAnimationFrame(()=>{this.setupDragListeners()}),this.open)this.showPopup();else this.hidePopup()}disconnectedCallback(){if(this.ensureInitialized(),this.teardownObservers(),this.removeDragListeners(),document.removeEventListener("pointerdown",this._boundOutsidePointerDown,!0),document.removeEventListener("keydown",this._boundDocumentKeydown,!0),this.removeEventListener("close",this._boundNativeClose),this._rafId!==null)cancelAnimationFrame(this._rafId),this._rafId=null}attributeChangedCallback(_,Z,$){if(this.ensureInitialized(),Z===$)return;if(_==="open"){if($==="false"){this.open=!1;return}if($===null){this.hidePopup();return}this.showPopup();return}if(_==="drag"){if(this.drag=$!==null&&$!=="false",this.drag)this.setupDragListeners();else this.removeDragListeners();return}if(_==="title"){this._ensureHeader();let q=this.querySelector("fig-header[data-auto] h3");if(q)q.textContent=$||"Dialog";return}if(this.open)this.queueReposition(),this.setupObservers()}showPopup(){if(this._isPopupActive){this.queueReposition();return}this.style.position="fixed",this.style.inset="auto",this.style.margin="0",this.style.zIndex=String(i0()+1),this.captureFocusBeforeOpen();let _=this.hasAttribute("popover")&&typeof this.showPopover==="function"&&!this.matches?.(":popover-open"),Z=this.shouldAutoReposition();if(Z)this.style.visibility="hidden";if(_)try{this.showPopover()}catch(q){_=!1}if(!_&&!super.open)try{this.show()}catch(q){}if(Z&&(this.matches?.(":open")||this.matches?.(":popover-open")))this.positionPopup(),this.style.visibility="";this.setupObservers(),document.addEventListener("pointerdown",this._boundOutsidePointerDown,!0),document.addEventListener("keydown",this._boundDocumentKeydown,!0),this._wasDragged=!1,this.queueReposition(),this._isPopupActive=!0;let $=this.resolveAnchor();if($?.classList)$.classList.add("has-popup-open");if(this.getAttribute("variant")!=="tooltip")H.dismissHoverTooltips()}hidePopup(){let _=this._isPopupActive||this.matches?.(":open")||this.matches?.(":popover-open"),Z=this.resolveAnchor();if(Z?.classList)Z.classList.remove("has-popup-open");if(this.style.visibility="",this._isPopupActive=!1,this._wasDragged=!1,this.teardownObservers(),document.removeEventListener("pointerdown",this._boundOutsidePointerDown,!0),document.removeEventListener("keydown",this._boundDocumentKeydown,!0),this.hasAttribute("popover")&&typeof this.hidePopover==="function"&&this.matches?.(":popover-open"))try{this.hidePopover()}catch($){}if(this.matches?.(":open"))try{this.close()}catch($){}if(_)this.restoreFocusAfterClose()}shouldRestoreFocus(){return this.getAttribute("variant")!=="tooltip"}captureFocusBeforeOpen(){if(!this.shouldRestoreFocus())return;let _=document.activeElement;this._previousFocus=_ instanceof HTMLElement&&_!==document.body&&!this.contains(_)?_:null}restoreFocusAfterClose(){if(!this.shouldRestoreFocus()){this._previousFocus=null;return}let _=this.resolveAnchor(),Z=this._previousFocus?.isConnected?this._previousFocus:_ instanceof HTMLElement?_:null;if(this._previousFocus=null,!Z?.isConnected)return;let $=document.activeElement;if($&&$!==document.body&&!this.contains($))return;requestAnimationFrame(()=>Z.focus?.())}get autoresize(){let _=this.getAttribute("autoresize");return _===null||_!=="false"}set autoresize(_){if(_===!1||_==="false"||_===null)this.setAttribute("autoresize","false");else if(_||_==="")this.setAttribute("autoresize",_===!0?"":_);else this.setAttribute("autoresize","false")}handleNativeClose(){if(this.teardownObservers(),this.hasAttribute("open"))this.removeAttribute("open")}setupObservers(){this.teardownObservers();let _=this.resolveAnchor();if(_ instanceof Element&&"ResizeObserver"in window)this._anchorObserver=new ResizeObserver(this._boundReposition),this._anchorObserver.observe(_);if(this.autoresize){if("ResizeObserver"in window)this._contentObserver=new ResizeObserver(this._boundReposition),this._contentObserver.observe(this);this._mutationObserver=new MutationObserver(this._boundReposition),this._mutationObserver.observe(this,{childList:!0,subtree:!0,characterData:!0})}window.addEventListener("resize",this._boundReposition),window.addEventListener("scroll",this._boundScroll,{capture:!0,passive:!0}),this.startAnchorTracking()}teardownObservers(){if(this._anchorObserver)this._anchorObserver.disconnect(),this._anchorObserver=null;if(this._contentObserver)this._contentObserver.disconnect(),this._contentObserver=null;if(this._mutationObserver)this._mutationObserver.disconnect(),this._mutationObserver=null;window.removeEventListener("resize",this._boundReposition),window.removeEventListener("scroll",this._boundScroll,{capture:!0,passive:!0}),this.stopAnchorTracking()}readRectSnapshot(_){if(!_)return null;let Z=_.getBoundingClientRect();return{x:Z.x,y:Z.y,width:Z.width,height:Z.height}}hasRectChanged(_,Z,$=0.25){if(!_&&!Z)return!1;if(!_||!Z)return!0;return Math.abs(_.x-Z.x)>$||Math.abs(_.y-Z.y)>$||Math.abs(_.width-Z.width)>$||Math.abs(_.height-Z.height)>$}startAnchorTracking(){if(this.stopAnchorTracking(),!this.open)return;let _=()=>{if(!this.open){this._anchorTrackRAF=null;return}let Z=this.resolveAnchor(),$=this.readRectSnapshot(Z),q=this.shouldAutoReposition();if(q&&this.hasRectChanged(this._lastAnchorRect,$))this._lastAnchorRect=$,this.queueReposition();else if(!q)this._lastAnchorRect=$;this._anchorTrackRAF=requestAnimationFrame(_)};this._lastAnchorRect=this.readRectSnapshot(this.resolveAnchor()),this._anchorTrackRAF=requestAnimationFrame(_)}stopAnchorTracking(){if(this._anchorTrackRAF!==null)cancelAnimationFrame(this._anchorTrackRAF),this._anchorTrackRAF=null;this._lastAnchorRect=null}_ensureHeader(){if(!this.hasAttribute("title")||this.getAttribute("variant")==="tooltip")return;t0(this),this.querySelectorAll("fig-button[close-dialog]").forEach((_)=>{_.removeEventListener("click",this._boundAutoClose),_.addEventListener("click",this._boundAutoClose)})}handleOutsidePointerDown(_){if(!this.open||!(this.matches?.(":open")||this.matches?.(":popover-open")))return;let Z=this.getAttribute("closedby");if(Z==="none"||Z==="closerequest")return;let $=_.target;if(!($ instanceof Node))return;let q=typeof _.composedPath==="function"?_.composedPath():[];if(q.includes(this))return;if(this.contains($))return;let J=this.resolveAnchor();if(J&&(q.includes(J)||J.contains?.($)))return;if(this.isInsideDescendantPopup($))return;this.open=!1}handleDocumentKeydown(_){if(_.key!=="Escape"||_.defaultPrevented)return;if(!this.open)return;if(this.getAttribute("role")==="menu")return;if(this.getAttribute("closedby")==="none")return;let q=Array.from(document.querySelectorAll('dialog[is="fig-popup"][open]')).filter((J)=>J.open).map((J)=>({popup:J,z:Number.parseInt(getComputedStyle(J).zIndex||"0",10)||0})).sort((J,Q)=>J.z-Q.z).at(-1)?.popup;if(q&&q!==this)return;_.preventDefault(),this.open=!1}isInsideDescendantPopup(_){let Z=_.closest?.('dialog[is="fig-popup"]');if(!Z||Z===this)return!1;let $=Z,q=new Set;while($&&!q.has($)){q.add($);let J=$.anchor;if(!(J instanceof Element))break;if(this.contains(J))return!0;$=J.closest?.('dialog[is="fig-popup"]')}return!1}setupDragListeners(){if(this.drag)this.addEventListener("pointerdown",this._boundPointerDown)}removeDragListeners(){this.removeEventListener("pointerdown",this._boundPointerDown),document.removeEventListener("pointermove",this._boundPointerMove),document.removeEventListener("pointerup",this._boundPointerUp),document.removeEventListener("pointercancel",this._boundPointerUp)}isInteractiveElement(_){let Z=["input","button","select","textarea","a","label","details","summary",'[contenteditable="true"]',"[tabindex]"],$=["FIG-HEADER","FIG-DIALOG","FIG-POPUP","FIG-FIELD","FIG-TOOLTIP","FIG-CONTENT","FIG-TABS","FIG-TAB","FIG-POPOVER","FIG-SHIMMER","FIG-LAYER","FIG-FILL-PICKER"],q=(Q)=>Z.some((j)=>Q.matches?.(j))||Q.tagName?.startsWith("FIG-")&&!$.includes(Q.tagName);if(q(_))return!0;let J=_.parentElement;while(J&&J!==this){if(q(J))return!0;J=J.parentElement}return!1}handlePointerDown(_){if(!this.drag)return;if(this.isInteractiveElement(_.target))return;let Z=this.getAttribute("handle");if(Z&&Z.trim()){let q=this.querySelector(Z);if(!q||!q.contains(_.target))return}this._dragPending=!0,this._dragStartPos.x=_.clientX,this._dragStartPos.y=_.clientY;let $=this.getBoundingClientRect();this._dragOffset.x=_.clientX-$.left,this._dragOffset.y=_.clientY-$.top,document.addEventListener("pointermove",this._boundPointerMove),document.addEventListener("pointerup",this._boundPointerUp),document.addEventListener("pointercancel",this._boundPointerUp)}handlePointerMove(_){if(this._dragPending&&!this._isDragging){let Z=Math.abs(_.clientX-this._dragStartPos.x),$=Math.abs(_.clientY-this._dragStartPos.y);if(Z>this._dragThreshold||$>this._dragThreshold){this._isDragging=!0,this._dragPending=!1,this._wasDragged=!0,this.setPointerCapture(_.pointerId),this.style.cursor="grabbing";let q=this.getBoundingClientRect();this.style.top=`${q.top}px`,this.style.left=`${q.left}px`,this.style.bottom="auto",this.style.right="auto",this.style.margin="0"}}if(!this._isDragging)return;this.style.left=`${_.clientX-this._dragOffset.x}px`,this.style.top=`${_.clientY-this._dragOffset.y}px`,_.preventDefault()}handlePointerUp(_){if(this._isDragging){if(this.hasPointerCapture?.(_.pointerId))this.releasePointerCapture(_.pointerId);this.style.cursor=""}this._isDragging=!1,this._dragPending=!1,document.removeEventListener("pointermove",this._boundPointerMove),document.removeEventListener("pointerup",this._boundPointerUp),document.removeEventListener("pointercancel",this._boundPointerUp),_.preventDefault()}resolveAnchor(){if(this._anchorRef)return this._anchorRef;let _=this.getAttribute("anchor");if(!_)return null;let Z=this.parentElement;try{if(Z?.querySelector){let $=Z.querySelector(_);if($&&!this.contains($))return $}return document.querySelector(_)}catch{return null}}parsePosition(){let Z=(this.getAttribute("position")||"top center").trim().toLowerCase().split(/\s+/).filter(Boolean),$=new Set(["top","center","bottom"]),q=new Set(["left","center","right"]),J="top",Q="center",j=null;if(Z.length>=2){if($.has(Z[0]))J=Z[0];if(q.has(Z[1]))Q=Z[1];return{vertical:J,horizontal:Q,shorthand:j}}if(Z.length===1){let W=Z[0];if(W==="top"||W==="bottom")J=W,j=W;else if(W==="left"||W==="right")Q=W,j=W;else if(W==="center")J="center",Q="center"}return{vertical:J,horizontal:Q,shorthand:j}}normalizeOffsetToken(_,Z="0px"){if(!_)return Z;let $=_.trim();if(!$)return Z;if(/^-?\d+(\.\d+)?$/.test($))return`${$}px`;return $}measureLengthPx(_,Z="x"){if(!_)return 0;let $=this.normalizeOffsetToken(_,"0px");if($.endsWith("px")){let Q=parseFloat($);return Number.isFinite(Q)?Q:0}let q=document.createElement("div");if(q.style.position="fixed",q.style.visibility="hidden",q.style.pointerEvents="none",q.style.left="0",q.style.top="0",q.style.margin="0",q.style.padding="0",q.style.border="0",Z==="x")q.style.width=$,q.style.height="0";else q.style.height=$,q.style.width="0";document.body.appendChild(q);let J=q.getBoundingClientRect();return q.remove(),Z==="x"?J.width:J.height}parseOffset(){let Z=(this.getAttribute("offset")||"0 0").trim().split(/\s+/).filter(Boolean),$=this.normalizeOffsetToken(Z[0],"0px"),q=this.normalizeOffsetToken(Z[1],"0px");return{xToken:$,yToken:q,xPx:this.measureLengthPx($,"x"),yPx:this.measureLengthPx(q,"y")}}parseViewportMargins(){let Z=(this.getAttribute("viewport-margin")||"8").trim().split(/\s+/).map(Number).filter((q)=>!Number.isNaN(q)),$=8;if(Z.length===0)return{top:8,right:8,bottom:8,left:8};if(Z.length===1)return{top:Z[0],right:Z[0],bottom:Z[0],left:Z[0]};if(Z.length===2)return{top:Z[0],right:Z[1],bottom:Z[0],left:Z[1]};if(Z.length===3)return{top:Z[0],right:Z[1],bottom:Z[2],left:Z[1]};return{top:Z[0],right:Z[1],bottom:Z[2],left:Z[3]}}getPlacementCandidates(_,Z,$){let q={top:"bottom",bottom:"top",left:"right",right:"left",center:"center"};if($){let Q=$==="left"||$==="right"?["top","bottom"]:["left","right"];return[{v:_,h:Z,s:$},{v:_,h:Z,s:q[$]},{v:_,h:Z,s:Q[0]},{v:_,h:Z,s:Q[1]}]}if(_==="center")return[{v:"center",h:Z,s:null},{v:"center",h:q[Z],s:null},{v:"top",h:Z,s:null},{v:"bottom",h:Z,s:null},{v:"top",h:q[Z],s:null},{v:"bottom",h:q[Z],s:null}];if(Z==="center")return[{v:_,h:"center",s:null},{v:q[_],h:"center",s:null},{v:_,h:"left",s:null},{v:_,h:"right",s:null},{v:q[_],h:"left",s:null},{v:q[_],h:"right",s:null}];return[{v:_,h:Z,s:null},{v:q[_],h:Z,s:null},{v:_,h:q[Z],s:null},{v:q[_],h:q[Z],s:null}]}computeCoords(_,Z,$,q,J,Q){let j,W;if(Q==="left"||Q==="right")return W=Q==="left"?_.left-Z.width-J.xPx:_.right+J.xPx,j=_.top,{top:j,left:W};if(Q==="top"||Q==="bottom")return j=Q==="top"?_.top-Z.height-J.yPx:_.bottom+J.yPx,W=_.left,{top:j,left:W};if($==="top")j=_.top-Z.height-J.yPx;else if($==="bottom")j=_.bottom+J.yPx;else j=_.top+(_.height-Z.height)/2;if($==="center")if(q==="left")W=_.left-Z.width-J.xPx;else if(q==="right")W=_.right+J.xPx;else W=_.left+(_.width-Z.width)/2;else if(q==="left")W=_.left+J.xPx;else if(q==="right")W=_.right-Z.width-J.xPx;else W=_.left+(_.width-Z.width)/2;return{top:j,left:W}}oppositeSide(_){return{top:"bottom",bottom:"top",left:"right",right:"left"}[_]||"bottom"}getPlacementSide(_,Z,$){if($==="top")return"top";if($==="bottom")return"bottom";if($==="left")return"left";if($==="right")return"right";if(_!=="center")return _;if(Z!=="center")return Z;return"top"}lengthToPx(_,Z=0){let $=getComputedStyle(this),q=String(_||"").trim(),J=parseFloat(q);if(!Number.isFinite(J))return Z;if(q.endsWith("rem"))return J*parseFloat(getComputedStyle(document.documentElement).fontSize);if(q.endsWith("em"))return J*parseFloat($.fontSize);return J}radiusForSide(_){let Z=getComputedStyle(this),$=(q)=>this.lengthToPx(q,0);if(_==="top")return Math.max($(Z.borderTopLeftRadius),$(Z.borderTopRightRadius));if(_==="bottom")return Math.max($(Z.borderBottomLeftRadius),$(Z.borderBottomRightRadius));if(_==="left")return Math.max($(Z.borderTopLeftRadius),$(Z.borderBottomLeftRadius));if(_==="right")return Math.max($(Z.borderTopRightRadius),$(Z.borderBottomRightRadius));return 0}getBeakEdgeInset(_){let Z=this.lengthToPx(getComputedStyle(this).getPropertyValue("--fig-popup-beak-width"),16);return Math.max(10,this.radiusForSide(_)+Z/2)}tracksAnchorBeak(){let _=this.getAttribute("variant");return _==="popover"||_==="tooltip"}getViewportBounds(_){let Z=window.visualViewport,$=Z?.width??window.innerWidth,q=Z?.height??window.innerHeight,J=Z?.offsetLeft??0,Q=Z?.offsetTop??0;return{minLeft:J+_.left,minTop:Q+_.top,maxRight:J+$-_.right,maxBottom:Q+q-_.bottom}}clampToViewport(_,Z,$){let q=this.getViewportBounds($),J=q.maxRight-Z.width,Q=q.maxBottom-Z.height,j=Math.max(q.minLeft,J),W=Math.max(q.minTop,Q);return{left:Math.min(j,Math.max(q.minLeft,_.left)),top:Math.min(W,Math.max(q.minTop,_.top))}}resolveCoordsAtViewport(_,Z,$,q,J){let{left:Q,top:j}=this.clampToViewport($,Z,J);if(!_||!this.tracksAnchorBeak())return{left:Q,top:j};let W=this.oppositeSide(q),K=this.getViewportBounds(J),N=K.maxRight-Z.width,L=K.minLeft,G=K.maxBottom-Z.height,X=K.minTop;if(W==="top"||W==="bottom"){let R=this.getBeakEdgeInset(W),B=_.left+_.width/2,M=B-Q;if(M<R)Q=B-R;else if(M>Z.width-R)Q=B-(Z.width-R);Q=Math.min(N,Math.max(L,Q))}else if(W==="left"||W==="right"){let R=this.getBeakEdgeInset(W),B=_.top+_.height/2,M=B-j;if(M<R)j=B-R;else if(M>Z.height-R)j=B-(Z.height-R);j=Math.min(G,Math.max(X,j))}return{left:Q,top:j}}canPointAtAnchor(_,Z,$,q,J){if(!_||!this.tracksAnchorBeak())return!0;let Q=this.oppositeSide(J),j=this.getBeakEdgeInset(Q);if(Q==="top"||Q==="bottom"){let K=_.left+_.width/2-$;return K>=j-0.5&&K<=Z.width-j+0.5}let W=_.top+_.height/2-q;return W>=j-0.5&&W<=Z.height-j+0.5}updatePopoverBeak(_,Z,$,q,J){if(!this.tracksAnchorBeak()||!_){this.style.removeProperty("--fig-popup-beak-offset"),this.removeAttribute("data-beak-side");return}let Q=this.oppositeSide(J);this.setAttribute("data-beak-side",Q);let j=_.left+_.width/2,W=_.top+_.height/2,K=this.getBoundingClientRect(),N=K.width>0&&K.height>0?K:Z,L=N.left,G=N.top,X=this.getBeakEdgeInset(Q),R;if(Q==="top"||Q==="bottom"){R=j-L;let B=X,M=Math.max(B,N.width-X);R=Math.min(M,Math.max(B,R))}else{R=W-G;let B=X,M=Math.max(B,N.height-X);R=Math.min(M,Math.max(B,R))}this.style.setProperty("--fig-popup-beak-offset",`${R}px`)}overflowScore(_,Z,$){let q=this.getViewportBounds($),J=_.left+Z.width,Q=_.top+Z.height,j=Math.max(0,q.minLeft-_.left),W=Math.max(0,q.minTop-_.top),K=Math.max(0,J-q.maxRight),N=Math.max(0,Q-q.maxBottom);return j+W+K+N}fits(_,Z,$){return this.overflowScore(_,Z,$)===0}clamp(_,Z,$,q=null,J="top"){if(q)return this.resolveCoordsAtViewport(q,Z,_,J,$);return this.clampToViewport(_,Z,$)}primaryAxisOverflowPenalty(_,Z,$,q){let J=this.getViewportBounds($),Q=0;if(q==="top")Q=Math.max(0,J.minTop-_.top);else if(q==="bottom")Q=Math.max(0,_.top+Z.height-J.maxBottom);else if(q==="left")Q=Math.max(0,J.minLeft-_.left);else if(q==="right")Q=Math.max(0,_.left+Z.width-J.maxRight);return Q>0?1000+Q:0}placementScore(_,Z,$,q,J){let Q=this.resolveCoordsAtViewport(_,Z,$,q,J),j=this.overflowScore(Q,Z,J);if(j+=this.primaryAxisOverflowPenalty($,Z,J,q),_&&!this.canPointAtAnchor(_,Z,Q.left,Q.top,q))j+=1e4;return{score:j,resolved:Q}}applyPopupPosition(_,Z,$,q,J){let Q=this.resolveCoordsAtViewport(_,Z,$,q,J);this.style.left=`${Q.left}px`,this.style.top=`${Q.top}px`,this.updatePopoverBeak(_,Z,Q.left,Q.top,q)}positionPopup(){if(!this.open)return;let _=this.getBoundingClientRect(),Z=this.parseOffset(),{vertical:$,horizontal:q,shorthand:J}=this.parsePosition(),Q=this.resolveAnchor(),j=this.parseViewportMargins();if(!Q){this.updatePopoverBeak(null,_,0,0,"top");let X=this.getViewportBounds(j),R={left:X.minLeft+(X.maxRight-X.minLeft-_.width)/2,top:X.minTop+(X.maxBottom-X.minTop-_.height)/2},B=this.clampToViewport(R,_,j);this.style.left=`${B.left}px`,this.style.top=`${B.top}px`;return}let W=Q.getBoundingClientRect(),K=this.getPlacementCandidates($,q,J),N=null,L="top",G=Number.POSITIVE_INFINITY;for(let{v:X,h:R,s:B}of K){let M=this.computeCoords(W,_,X,R,Z,B),z=this.getPlacementSide(X,R,B),{score:T,resolved:I}=this.placementScore(W,_,M,z,j);if(B){let U=this.getViewportBounds(j);if((B==="left"||B==="right"?M.left>=U.minLeft&&M.left+_.width<=U.maxRight:M.top>=U.minTop&&M.top+_.height<=U.maxBottom)&&T<1e4){this.applyPopupPosition(W,_,M,z,j);return}}else if(T===0){this.applyPopupPosition(W,_,M,z,j);return}if(T<G)G=T,N=I,L=z}this.applyPopupPosition(W,_,N||{left:0,top:0},L,j)}queueReposition(){if(!this.open||!this.isPopupDisplayed()||!this.shouldAutoReposition())return;if(this._rafId!==null)return;this._rafId=requestAnimationFrame(()=>{this._rafId=null,this.positionPopup()})}shouldAutoReposition(){if(!(this.drag&&this._wasDragged))return!0;return!this.resolveAnchor()}isPopupDisplayed(){return Boolean(this._isPopupActive||this.matches?.(":open")||this.matches?.(":popover-open"))}}F0("fig-popup",__,{extends:"dialog"});class Z_ extends HTMLElement{#Z;#_;constructor(){super();this.content=null,this.#Z=!1,this.#_=this.handleClick.bind(this)}connectedCallback(){if(this.setAttribute("label",this.innerText),this.setAttribute("role","tab"),!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");this.addEventListener("click",this.#_),u(this,()=>{if(typeof this.getAttribute("content")==="string"){if(this.content=document.querySelector(this.getAttribute("content")),this.content){let _=this.getAttribute("id")||p(),Z=this.content.getAttribute("id")||p();if(this.setAttribute("id",_),this.content.setAttribute("id",Z),this.setAttribute("aria-controls",Z),this.content.setAttribute("role","tabpanel"),this.content.setAttribute("aria-labelledby",_),this.#Z)this.content.style.display="block",this.setAttribute("aria-selected","true");else this.content.style.display="none",this.setAttribute("aria-selected","false")}}})}get selected(){return this.#Z}set selected(_){this.setAttribute("selected",_?"true":"false")}disconnectedCallback(){this.removeEventListener("click",this.#_)}handleClick(){if(F(this,"disabled"))return;if(this.selected=!0,this.content)this.content.style.display="block"}static get observedAttributes(){return["selected","disabled"]}attributeChangedCallback(_,Z,$){if(_==="selected"){if(this.#Z=$!==null&&$!=="false",this.setAttribute("aria-selected",this.#Z?"true":"false"),this.setAttribute("tabindex",this.#Z?"0":"-1"),this?.content)this.content.style.display=this.#Z?"block":"none"}if(_==="disabled")if($!==null&&$!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex",this.#Z?"0":"-1")}}A("fig-tab",Z_);class $_ extends HTMLElement{#Z;#_;#q=this.#R.bind(this);#$=null;#J=null;#j=null;#K=null;#Q=!1;#W=new WeakSet;constructor(){super();this.#Z=this.handleClick.bind(this),this.#_=this.#V.bind(this)}static get observedAttributes(){return["value","name","disabled"]}connectedCallback(){if(this.name=this.getAttribute("name")||"tabs",this.setAttribute("role","tablist"),this.shadowRoot)this.shadowRoot.replaceChildren();this.#U(),this.addEventListener("click",this.#Z),this.addEventListener("keydown",this.#_),this.addEventListener("scroll",this.#q),this.#Y(),this.#M(),this.#B(),u(this,()=>{let _=this.getAttribute("value");if(_)this.#H(_);if(F(this,"disabled"))this.#N(!0);this.#G(),this.#R(),this.#L(void 0,"auto")})}#N(_){this.querySelectorAll("fig-tab").forEach(($)=>{if(_){if(!($.hasAttribute("disabled")&&$.getAttribute("disabled")!=="false"))this.#W.add($),$.setAttribute("disabled","");$.setAttribute("aria-disabled","true"),$.setAttribute("tabindex","-1")}else if(this.#W.has($))this.#W.delete($),$.removeAttribute("disabled"),$.removeAttribute("aria-disabled")}),this.#G()}#X(){return Array.from(this.querySelectorAll("fig-tab")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#G(){let _=Array.from(this.querySelectorAll("fig-tab")),Z=_.find(($)=>$.hasAttribute("selected")&&$.getAttribute("selected")!=="false")||this.#X()[0];_.forEach(($)=>{let q=$.hasAttribute("disabled")&&$.getAttribute("disabled")!=="false";$.setAttribute("tabindex",!q&&$===Z?"0":"-1")})}#L(_=this.selectedTab,Z="smooth"){let $=_||this.querySelector('fig-tab[selected]:not([selected="false"])')||this.#X()[0];if(!$)return;requestAnimationFrame(()=>{if(!this.isConnected||!$.isConnected)return;if(!(this.scrollWidth>this.clientWidth))return;let J=this.getBoundingClientRect(),Q=$.getBoundingClientRect(),j=Q.left-J.left+this.scrollLeft+Q.width/2;this.scrollTo({left:j-this.clientWidth/2,behavior:Z}),this.#R()})}disconnectedCallback(){this.removeEventListener("click",this.#Z),this.removeEventListener("keydown",this.#_),this.removeEventListener("scroll",this.#q),this.#$?.disconnect(),this.#$=null,this.#J?.disconnect(),this.#J=null,this.#O()}#U(){if(this.#Q)return;let _=this.querySelector(":scope > [data-fig-tabs-scroll]");if(!_)return;this.#Q=!0;try{let Z=Array.from(_.childNodes);_.replaceWith(...Z)}finally{this.#Q=!1}}#R(){X0(this,this,"x")}#B(){this.#J?.disconnect(),this.#J=new ResizeObserver(()=>this.#R()),this.#J.observe(this)}#M(){this.#$?.disconnect(),this.#$=new MutationObserver(()=>{if(this.#Q)return;this.#U(),this.#Y(),this.#G(),requestAnimationFrame(()=>{this.#R(),this.#L()})}),this.#$.observe(this,{childList:!0,subtree:!1})}#O(){this.#j?.remove(),this.#K?.remove(),this.#j=null,this.#K=null,this.classList.remove("overflow-start","overflow-end")}#Y(){if(this.#j&&this.#K&&this.contains(this.#j)&&this.contains(this.#K)){this.#F();return}this.#j?.remove(),this.#K?.remove();let _=G0({owner:"tabs",onStart:()=>n(this,"x",-1),onEnd:()=>n(this,"x",1)});this.#j=_.start,this.#K=_.end,this.#F()}#F(){if(this.firstElementChild!==this.#j)this.prepend(this.#j);if(this.lastElementChild!==this.#K)this.append(this.#K)}#V(_){let Z=this.#X();if(!Z.length)return;let $=Z.findIndex((J)=>F(J,"selected")),q=$>=0?$:0;switch(_.key){case"ArrowLeft":case"ArrowUp":_.preventDefault(),q=$>0?$-1:Z.length-1;break;case"ArrowRight":case"ArrowDown":_.preventDefault(),q=$<Z.length-1?$+1:0;break;case"Home":_.preventDefault(),q=0;break;case"End":_.preventDefault(),q=Z.length-1;break;default:return}if(q!==$&&Z[q]){this.querySelectorAll("fig-tab").forEach((Q)=>Q.removeAttribute("selected")),this.selectedTab=Z[q],Z[q].setAttribute("selected","true");let J=this.#A(Z[q]);if(J)this.setAttribute("value",J);else this.removeAttribute("value");Z[q].focus(),this.#G(),this.#L(Z[q]),this.#I()}}get value(){return this.#A(this.selectedTab)}set value(_){this.setAttribute("value",_)}#I(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#A(_){if(!_)return"";let Z=_.getAttribute("value");if(Z!==null)return Z;return _.textContent?.trim()||""}#H(_){let Z=this.querySelectorAll("fig-tab");for(let $ of Z)if(this.#A($)===_)this.selectedTab=$,$.setAttribute("selected","true");else $.removeAttribute("selected");this.#G(),this.#L(this.selectedTab)}attributeChangedCallback(_,Z,$){switch(_){case"value":if($!==Z)this.#H($);break;case"disabled":this.#N($!==null&&$!=="false");break}}handleClick(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=_.target.closest("fig-tab");if(!Z||!this.contains(Z))return;if(Z.hasAttribute("disabled")&&Z.getAttribute("disabled")!=="false")return;let $=this.selectedTab,q=this.value,J=this.querySelectorAll("fig-tab");for(let j of J)if(j===Z)this.selectedTab=j,j.setAttribute("selected","true");else j.removeAttribute("selected");let Q=this.#A(Z);if(Q)this.setAttribute("value",Q);else this.removeAttribute("value");if(this.#G(),this.#L(Z),$!==Z||q!==this.value)this.#I()}}A("fig-tabs",$_);class q_ extends HTMLElement{connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","group")}}A("fig-toolbelt-group",q_);class J_ extends HTMLElement{static get observedAttributes(){return["selected","disabled"]}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","button");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");this.#Z()}get value(){let _=this.getAttribute("value");return _!==null?_:this.textContent?.trim()||""}set value(_){this.setAttribute("value",_??"")}get selected(){return F(this,"selected")}set selected(_){this.toggleAttribute("selected",Boolean(_))}get disabled(){return F(this,"disabled")}set disabled(_){this.toggleAttribute("disabled",Boolean(_))}attributeChangedCallback(){this.#Z()}#Z(){let _=F(this,"selected"),Z=F(this,"disabled");if(this.setAttribute("aria-pressed",_?"true":"false"),Z)this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled")}}A("fig-toolbelt-item",J_);class Q_ extends HTMLElement{#Z=this.#V.bind(this);#_=this.#I.bind(this);#q=this.#z.bind(this);#$=null;#J=null;#j=null;#K=null;#Q=null;#W=new WeakSet;#N=!1;constructor(){super();let _=this.attachShadow({mode:"open"}),Z=document.createElement("div");Z.setAttribute("part","frame");let $=document.createElement("slot");$.name="start",$.style.display="contents",this.#$=document.createElement("div"),this.#$.className="fig-overflow-fade",this.#$.setAttribute("part","viewport");let q=document.createElement("slot");q.style.display="contents",this.#$.append(q);let J=document.createElement("slot");J.name="end",J.style.display="contents",Z.append($,this.#$,J),_.append(Z)}static get observedAttributes(){return["value","disabled","layout","overflow"]}get#X(){return this.getAttribute("layout")==="vertical"}get#G(){return this.getAttribute("overflow")==="buttons"?"buttons":"scrollbar"}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","toolbar");this.#C(),this.addEventListener("click",this.#Z),this.addEventListener("keydown",this.#_),this.#$.addEventListener("scroll",this.#q),this.#k(),this.#H(),this.#T(),u(this,()=>{this.#B(),this.#R(F(this,"disabled")),this.#F(),this.#z(),this.#D(void 0,"auto")})}disconnectedCallback(){this.removeEventListener("click",this.#Z),this.removeEventListener("keydown",this.#_),this.#$.removeEventListener("scroll",this.#q),this.#J?.disconnect(),this.#J=null,this.#j?.disconnect(),this.#j=null,this.#f()}get value(){return this.selectedItem?.value||""}set value(_){if(_===null||_===void 0)this.removeAttribute("value");else this.setAttribute("value",String(_))}get selectedItem(){return this.#L().find((_)=>F(_,"selected"))||null}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="value"&&!this.#N)this.#M($);if(_==="disabled")this.#R($!==null&&$!=="false");if(_==="overflow")this.#k(),requestAnimationFrame(()=>this.#z());if(_==="layout"){if(this.#C(),this.#X)this.#$.scrollLeft=0;else this.#$.scrollTop=0;this.#k(),requestAnimationFrame(()=>{this.#z(),this.#D(void 0,"auto")})}}#L(){return Array.from(this.querySelectorAll("fig-toolbelt-item")).filter((_)=>_.closest("fig-toolbelt")===this)}#U(){return this.#L().filter((_)=>!F(_,"disabled"))}#R(_){if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");for(let Z of this.#L())if(_){if(!F(Z,"disabled"))this.#W.add(Z),Z.setAttribute("disabled","")}else if(this.#W.has(Z))this.#W.delete(Z),Z.removeAttribute("disabled");this.#F()}#B(){let _=this.getAttribute("value");if(_!==null){this.#M(_);return}let Z=this.#L().filter((q)=>F(q,"selected")),$=Z[0]||null;for(let q of Z.slice(1))q.removeAttribute("selected");if($)this.#Y($.value)}#M(_){let Z=_===null?null:this.#L().find(($)=>$.value===_)||null;for(let $ of this.#L())$.toggleAttribute("selected",$===Z);if(this.#F(Z),Z)this.#D(Z)}#O(_,{emit:Z=!1,focus:$=!1}={}){if(!_||F(_,"disabled"))return!1;let q=this.selectedItem,J=this.value;for(let Q of this.#L())Q.toggleAttribute("selected",Q===_);if(this.#Y(_.value),this.#F(_),$)_.focus();if(this.#D(_),Z&&(q!==_||J!==_.value))this.#A();return!0}#Y(_){this.#N=!0,this.setAttribute("value",_),this.#N=!1}#F(_){let Z=this.#L(),$=this.#U(),q=_&&$.includes(_)&&_||$.includes(document.activeElement)&&document.activeElement||$.includes(this.selectedItem)&&this.selectedItem||$[0]||null;for(let J of Z)J.setAttribute("tabindex",J===q?"0":"-1")}#V(_){if(F(this,"disabled"))return;let Z=_.target.closest?.("fig-toolbelt-item");if(!Z||Z.closest("fig-toolbelt")!==this)return;this.#O(Z,{emit:!0})}#I(_){if(F(this,"disabled"))return;let Z=_.target.closest?.("fig-toolbelt-item");if(!Z||Z.closest("fig-toolbelt")!==this)return;if(_.key==="Enter"||_.key===" "){_.preventDefault(),this.#O(Z,{emit:!0});return}let $=this.#U();if(!$.length)return;let q=Math.max(0,$.indexOf(Z)),J=q;switch(_.key){case"ArrowLeft":if(this.#X)return;J=q>0?q-1:$.length-1;break;case"ArrowUp":if(!this.#X)return;J=q>0?q-1:$.length-1;break;case"ArrowRight":if(this.#X)return;J=q<$.length-1?q+1:0;break;case"ArrowDown":if(!this.#X)return;J=q<$.length-1?q+1:0;break;case"Home":J=0;break;case"End":J=$.length-1;break;default:return}_.preventDefault(),this.#F($[J]),$[J].focus(),this.#h($[J])}#A(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#H(){this.#J?.disconnect(),this.#J=new MutationObserver((_)=>{if(!_.some(($)=>$.type==="childList"||$.target instanceof Element&&$.target.matches("fig-toolbelt-item")&&$.target.closest("fig-toolbelt")===this))return;this.#k(),this.#B(),this.#R(F(this,"disabled")),this.#F(),requestAnimationFrame(()=>{this.#z(),this.#D()})}),this.#J.observe(this,{childList:!0,attributes:!0,subtree:!0,attributeFilter:["value","selected","disabled"]})}#T(){this.#j?.disconnect(),this.#j=new ResizeObserver(()=>this.#z()),this.#j.observe(this),this.#j.observe(this.#$)}#z(){if(this.#G==="scrollbar")return;X0(this,this.#$,this.#X?"y":"x")}#C(){this.setAttribute("aria-orientation",this.#X?"vertical":"horizontal"),this.#$.classList.add("fig-overflow-fade"),this.#$.classList.toggle("fig-overflow-fade-horizontal",!this.#X)}#k(){if(this.#G==="scrollbar")this.#f();else this.#P()}#P(){if(this.#K&&this.#Q&&this.contains(this.#K)&&this.contains(this.#Q)){this.#E();return}this.#K?.remove(),this.#Q?.remove();let _=G0({owner:"toolbelt",onStart:()=>this.#b(-1),onEnd:()=>this.#b(1)});this.#K=_.start,this.#Q=_.end,this.#K.setAttribute("slot","start"),this.#Q.setAttribute("slot","end"),this.#E()}#E(){if(this.firstElementChild!==this.#K)this.prepend(this.#K);if(this.lastElementChild!==this.#Q)this.append(this.#Q)}#f(){this.#K?.remove(),this.#Q?.remove(),this.#K=null,this.#Q=null,this.classList.remove("overflow-start","overflow-end")}#b(_){n(this.#$,this.#X?"y":"x",_)}#D(_=this.selectedItem,Z="smooth"){if(_)this.#h(_,Z)}#h(_,Z="smooth"){if(!_)return;requestAnimationFrame(()=>{if(!this.isConnected||!_.isConnected)return;let $=this.#X;if(!($?this.#$.scrollHeight>this.#$.clientHeight:this.#$.scrollWidth>this.#$.clientWidth))return;let J=this.#$.getBoundingClientRect(),Q=_.getBoundingClientRect();if($){let j=Q.top-J.top+this.#$.scrollTop+Q.height/2;this.#$.scrollTo({top:j-this.#$.clientHeight/2,behavior:Z})}else{let j=Q.left-J.left+this.#$.scrollLeft+Q.width/2;this.#$.scrollTo({left:j-this.#$.clientWidth/2,behavior:Z})}this.#z()})}}A("fig-toolbelt",Q_);class j_ extends HTMLElement{#Z;#_;#q;constructor(){super();this.#q=this.handleClick.bind(this)}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","radio");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");this.#$(),this.addEventListener("click",this.#q)}disconnectedCallback(){this.removeEventListener("click",this.#q)}handleClick(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let _=this.closest("fig-segmented-control");if(_&&_.hasAttribute("disabled")&&_.getAttribute("disabled")!=="false")return;this.setAttribute("selected","true")}get value(){return this.#Z}set value(_){this.#Z=_,this.setAttribute("value",_)}get selected(){return this.#_}set selected(_){this.#_=_,this.setAttribute("selected",_)}static get observedAttributes(){return["selected","value","disabled"]}#$(){let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false",Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-checked",_?"true":"false"),Z)this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex",_?"0":"-1")}attributeChangedCallback(_,Z,$){switch(_){case"value":this.#Z=$;break;case"selected":this.#_=$,this.#$();break;case"disabled":this.#$();break}}}A("fig-segment",j_);class W_ extends HTMLElement{#Z=null;#_=this.handleClick.bind(this);#q=this.#B.bind(this);#$=null;#J=null;#j=0;#K=!1;#Q=!1;#W=new WeakSet;constructor(){super()}static get observedAttributes(){return["disabled","value","animated","sizing"]}connectedCallback(){if(this.name=this.getAttribute("name")||"segmented-control",!this.hasAttribute("role"))this.setAttribute("role","radiogroup");this.addEventListener("click",this.#_),this.addEventListener("keydown",this.#q),this.#T(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"),this.#H(),this.#V(),u(this,()=>{this.#A({enforceFallback:!0}),this.#I(),this.#Y({forceInstant:!0})})}disconnectedCallback(){if(this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#q),this.#$?.disconnect(),this.#$=null,this.#J?.disconnect(),this.#J=null,this.#j)cancelAnimationFrame(this.#j),this.#j=0;this.#K=!1,this.#Q=!1}get selectedSegment(){return this.#Z}set selectedSegment(_){let Z=this.querySelectorAll("fig-segment");for(let $ of Z){let q=$===_,J=F($,"selected");if(q&&!J)$.setAttribute("selected","true");else if(!q&&J)$.removeAttribute("selected")}this.#Z=_ instanceof HTMLElement&&this.contains(_)?_:null,this.#U(),this.#Y()}get value(){return this.getAttribute("value")||""}set value(_){if(_===null||_===void 0){this.removeAttribute("value");return}this.setAttribute("value",String(_))}#N(_){this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#X(_){let Z=_.getAttribute("value");if(Z!==null){let $=Z.trim();if($.length>0)return $}return _.textContent?.trim()||""}#G(){let _=this.querySelectorAll("fig-segment");for(let Z of _)if(Z.hasAttribute("selected")&&Z.getAttribute("selected")!=="false")return Z;return null}#L(){return Array.from(this.querySelectorAll("fig-segment")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#U(){let _=Array.from(this.querySelectorAll("fig-segment")),Z=_.find(($)=>$.hasAttribute("selected")&&$.getAttribute("selected")!=="false");_.forEach(($)=>{let q=$.hasAttribute("disabled")&&$.getAttribute("disabled")!=="false",J=$===Z;$.setAttribute("aria-checked",J?"true":"false"),$.setAttribute("tabindex",!q&&J?"0":"-1")})}#R(_){if(!_)return;let Z=this.selectedSegment,$=this.value;this.selectedSegment=_;let q=this.#X(_);if(q)this.setAttribute("value",q);else this.removeAttribute("value");let J=this.value;if(Z!==_||$!==J)this.#N(J)}#B(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.#L();if(!Z.length)return;let $=Z.findIndex((Q)=>F(Q,"selected")),q=$>=0?$:0;switch(_.key){case"ArrowLeft":case"ArrowUp":_.preventDefault(),q=q>0?q-1:Z.length-1;break;case"ArrowRight":case"ArrowDown":_.preventDefault(),q=q<Z.length-1?q+1:0;break;case"Home":_.preventDefault(),q=0;break;case"End":_.preventDefault(),q=Z.length-1;break;case" ":case"Enter":{let Q=_.target.closest("fig-segment");if(Q&&this.contains(Q))_.preventDefault(),this.#R(Q);return}default:return}let J=Z[q];this.#R(J),J.focus(),requestAnimationFrame(()=>{if(this.contains(J))J.focus()})}#M(_){let Z=String(_??"").trim();if(!Z)return!1;let $=this.querySelectorAll("fig-segment");for(let q of $){let J=this.#X(q);if(!J)continue;if(J===Z)return this.selectedSegment=q,!0}return!1}#O(){let _=this.getAttribute("animated");if(_===null)return!1;if(_==="")return!0;return _.trim().toLowerCase()==="true"}#Y({forceInstant:_=!1}={}){if(this.#K=this.#K||_,this.#j)return;this.#j=requestAnimationFrame(()=>{this.#j=0;let Z=this.#K;this.#K=!1,this.#F({forceInstant:Z})})}#F({forceInstant:_=!1}={}){let Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",$=this.#O(),q=this.#Z&&this.contains(this.#Z)?this.#Z:this.#G();if(Z||!$){if(this.style.setProperty("--seg-indicator-opacity","0"),this.style.setProperty("--seg-indicator-transition-duration","0ms"),this.removeAttribute("data-indicator-ready"),!$||Z)this.#Q=!1;return}if(!q){if(this.#Q)return;this.style.setProperty("--seg-indicator-opacity","0"),this.style.setProperty("--seg-indicator-transition-duration","0ms"),this.removeAttribute("data-indicator-ready");return}let J=this.getBoundingClientRect(),Q=q.getBoundingClientRect();if(J.width<=0||Q.width<=0){if(this.#Q)return;this.style.setProperty("--seg-indicator-opacity","0"),this.style.setProperty("--seg-indicator-transition-duration","0ms"),this.removeAttribute("data-indicator-ready");return}let j=Math.max(0,Q.left-J.left);this.style.setProperty("--seg-indicator-x",`${j}px`),this.style.setProperty("--seg-indicator-w",`${Q.width}px`),this.style.setProperty("--seg-indicator-opacity","1"),this.style.setProperty("--seg-indicator-transition-duration",!this.#Q||_?"0ms":"150ms"),this.setAttribute("data-indicator-ready","true"),this.#Q=!0}#V(){this.#J?.disconnect(),this.#J=new ResizeObserver(()=>{this.#Y()}),this.#I()}#I(){if(!this.#J)return;this.#J.disconnect(),this.#J.observe(this),this.querySelectorAll("fig-segment").forEach((_)=>{this.#J?.observe(_)})}#A({enforceFallback:_=!1}={}){if(this.querySelectorAll("fig-segment").length===0){this.#Z=null,this.#Y({forceInstant:!0});return}let $=this.getAttribute("value"),q=$?.trim()??"";if($!==null){if(q!==$){this.setAttribute("value",q);return}if(q&&this.#M(q))return}let J=this.#G();if(J){this.selectedSegment=J;return}if(_)this.selectedSegment=this.#L()[0]||null}#H(){this.#$?.disconnect(),this.#$=new MutationObserver((_)=>{let Z=!1;for(let $ of _){if($.type==="childList"){Z=!0;break}if($.type==="attributes"&&$.target instanceof HTMLElement&&$.target.tagName.toLowerCase()==="fig-segment"&&($.attributeName==="value"||$.attributeName==="selected")){Z=!0;break}if($.type==="characterData"){Z=!0;break}}if(Z)this.#T(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"),this.#I(),this.#A({enforceFallback:!0}),this.#U()}),this.#$.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["value","selected"]})}handleClick(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=_.target.closest("fig-segment");if(!Z||!this.contains(Z))return;if(Z.hasAttribute("disabled")&&Z.getAttribute("disabled")!=="false")return;this.#R(Z)}#T(_){this.setAttribute("aria-disabled",_?"true":"false"),this.querySelectorAll("fig-segment").forEach((Z)=>{if(_){if(!(Z.hasAttribute("disabled")&&Z.getAttribute("disabled")!=="false"))this.#W.add(Z),Z.setAttribute("disabled","");Z.setAttribute("aria-disabled","true")}else if(this.#W.has(Z))this.#W.delete(Z),Z.removeAttribute("disabled"),Z.removeAttribute("aria-disabled")}),this.#U()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="disabled"){this.#T($!==null&&$!=="false"),this.#Y({forceInstant:!0});return}if(_==="value"){this.#A({enforceFallback:!1});return}if(_==="animated"){if(!this.#O())this.#Q=!1;this.#Y({forceInstant:!0});return}if(_==="sizing")this.#Y({forceInstant:!0})}}A("fig-segmented-control",W_);class K_ extends HTMLElement{static get observedAttributes(){return["options","value","disabled","full","sizing"]}#Z="segments";#_=0;#q=null;#$=[];#J=null;#j=!1;#K(_){let Z=_?.detail;if(typeof Z==="string")return Z;let $=_?.currentTarget?.value??_?.target?.value??this.getAttribute("value");if($===null||$===void 0)return null;return String($)}#Q(){if(this.#$.length===0)return!1;let _=this.querySelector(":scope > fig-segmented-control");if(_){let $=_.querySelectorAll("fig-segment");if($.length!==this.#$.length)return!1;return Array.from($).every((q,J)=>q.getAttribute("value")===this.#$[J])}let Z=this.querySelector(":scope > fig-dropdown");if(Z){let $=Z.querySelectorAll("option");return $.length===this.#$.length&&Array.from($).every((q,J)=>q.textContent?.trim()===this.#$[J])}return!1}#W(){let _=this.querySelector(":scope > fig-segmented-control");if(_)this.#J=_,this.#Z="segments";else this.#J=this.querySelector(":scope > fig-dropdown"),this.#Z="dropdown";this.#U()}connectedCallback(){if(this.#N(),this.#Q()){this.#W(),this.#B(),u(this,()=>u(this,()=>this.#Y()));return}this.#X(),this.#B(),u(this,()=>u(this,()=>this.#Y()))}disconnectedCallback(){this.#q?.disconnect(),this.#q=null}get value(){return this.getAttribute("value")||""}set value(_){if(_===null||_===void 0)this.removeAttribute("value");else this.setAttribute("value",String(_))}get options(){return this.#$.slice()}set options(_){if(Array.isArray(_)){let $=_.some((q)=>String(q).includes(","))?JSON.stringify(_):_.join(",");this.setAttribute("options",$)}else this.setAttribute("options",String(_||""))}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="options"){this.#N(),this.#L();return}if(_==="value"){this.#U();return}if(_==="disabled"){this.#R("disabled");return}if(_==="full"){this.#R("full");return}if(_==="sizing")this.#R("sizing"),this.#L()}#N(){let _=this.getAttribute("options")||"";if(_.startsWith("["))try{this.#$=JSON.parse(_);return}catch{}let Z=_.includes(`
173
173
  `)?`
174
- `:",";this.#$=_.split(Z).map(($)=>$.trim()).filter(Boolean)}#X(){if(this.replaceChildren(),this.#$.length===0)return;let _=document.createElement("fig-segmented-control");if(_.setAttribute("sizing",this.getAttribute("sizing")||"equal"),F(this,"disabled"))_.setAttribute("disabled","");if(F(this,"full"))_.setAttribute("full","");let Z=this.getAttribute("value");for(let $ of this.#$){let q=document.createElement("fig-segment");if(q.setAttribute("value",$),q.textContent=$,Z===$)q.setAttribute("selected","true");_.appendChild(q)}if(Z)_.setAttribute("value",Z);_.addEventListener("input",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(q===null)return;this.#j=!0,this.setAttribute("value",q),this.#j=!1,this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0,composed:!0}))}),_.addEventListener("change",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(q===null)return;this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#J=_,this.#Z="segments"}#G(){if(this.replaceChildren(),this.#$.length===0)return;let _=document.createElement("fig-dropdown");if(F(this,"disabled"))_.setAttribute("disabled","");let Z=this.getAttribute("value");for(let $ of this.#$){let q=document.createElement("option");if(q.value=$,q.textContent=$,Z===$)q.selected=!0;_.appendChild(q)}if(Z)_.setAttribute("value",Z);_.addEventListener("input",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(!q)return;this.#j=!0,this.setAttribute("value",q),this.#j=!1,this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0,composed:!0}))}),_.addEventListener("change",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(!q)return;this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#J=_,this.#Z="dropdown"}#L(){if(this.#Z==="segments")this.#X(),requestAnimationFrame(()=>{requestAnimationFrame(()=>this.#Y())});else this.#G()}#U(){if(!this.#J||this.#j)return;let _=this.getAttribute("value")||"";this.#J.value=_}#R(_){if(!this.#J)return;if(this.hasAttribute(_))this.#J.setAttribute(_,this.getAttribute(_)||"");else this.#J.removeAttribute(_)}#B(){this.#q?.disconnect(),this.#q=new ResizeObserver(()=>{this.#Y()}),this.#q.observe(this)}#M(_){let Z=document.createRange();Z.selectNodeContents(_);let $=Z.getBoundingClientRect().width,J=_.getBoundingClientRect().width,Q=getComputedStyle(_),j=parseFloat(Q.paddingLeft)||0,W=parseFloat(Q.paddingRight)||0,K=J-j-W;return $>K+0.5}#O(){let _=this.querySelectorAll("fig-segment");for(let Z of _)if(this.#M(Z))return!0;return!1}#Y(){if(this.#$.length<=1)return;if(this.#Z==="segments"){let _=this.#J;if(_&&_.scrollWidth>_.clientWidth+1||this.#O())this.#_=this.clientWidth,this.#G()}else if(this.#_>0&&this.clientWidth>=this.#_)this.#X(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let _=this.#J;if(_&&_.scrollWidth>_.clientWidth+1||this.#O())this.#G()})})}}A("fig-options",K_);class N_ extends HTMLElement{#Z=!1;#_=!1;#q=!1;#$="";#J=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required","aria-valuetext"];#j={range:{min:0,max:100,step:1},hue:{min:0,max:255,step:1},delta:{min:-100,max:100,step:1},stepper:{min:0,max:100,step:25},opacity:{min:0,max:100,step:0.1,color:"#FF0000"}};#K;#Q;#W;#N;#X;#G;#L;#U=null;#R=null;#B=null;#M=null;constructor(){super();this.initialChildren=null,this.#K=(_)=>{_.stopPropagation(),this.#g()},this.#Q=(_)=>{_.stopPropagation(),this.#w()},this.#X=(_)=>{this.#x(_)},this.#W=(_)=>{_.stopPropagation(),this.#A()},this.#N=(_)=>{_.stopPropagation(),this.#S()},this.#G=()=>{this.#Z=!0},this.#L=()=>{if(this.#Z=!1,this.#_&&this.isConnected)this.#_=!1,this.#I()}}#O(){let _=this.getAttribute("value");this.type=this.getAttribute("type")||"range",this.variant=this.getAttribute("variant")||"default",this.text=this.getAttribute("text")!=="false",this.units=this.getAttribute("units")||"",this.transform=Number(this.getAttribute("transform")||1),this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.precision=this.hasAttribute("precision")?Number(this.getAttribute("precision")):null,this.placeholder=this.getAttribute("placeholder")!==null?this.getAttribute("placeholder"):"##";let Z=this.#j[this.type]||this.#j.range,$=(q,J)=>{let Q=this.getAttribute(q),j=Q===null||Q.trim()===""?J:Number(Q);return Number.isFinite(j)?j:J};if(this.min=$("min",Z.min),this.max=$("max",Z.max),this.step=$("step",Z.step),!(this.step>0))this.step=Z.step>0?Z.step:1;this.color=this.getAttribute("color")||Z?.color,this.default=this.#P(),this.value=this.#f(_)}#Y(){if(!this.querySelector("[type=range]"))return!1;return this.getAttribute("text")!=="false"===!!this.querySelector("fig-input-number")}#F(){if(this.#O(),this.color)this.style.setProperty("--color",this.color);else this.style.removeProperty("--color");if(this.input=this.querySelector("[type=range]"),this.inputContainer=this.querySelector(".fig-slider-input-container"),this.input.className=this.type,this.input.min=String(this.min),this.input.max=String(this.max),this.input.step=String(this.step),this.input.value=String(this.value),this.input.disabled=this.disabled,this.text)this.input.setAttribute("tabindex","-1");else this.input.removeAttribute("tabindex");if(this.input.setAttribute("aria-valuemin",String(this.min)),this.input.setAttribute("aria-valuemax",String(this.max)),this.input.setAttribute("aria-valuenow",String(this.value)),this.figInputNumber=this.querySelector("fig-input-number"),this.figInputNumber){if(this.figInputNumber.setAttribute("placeholder",this.placeholder),this.figInputNumber.setAttribute("min",String(this.min)),this.figInputNumber.setAttribute("max",String(this.max)),this.figInputNumber.setAttribute("transform",String(this.transform)),this.figInputNumber.setAttribute("step",String(this.step)),this.figInputNumber.setAttribute("value",String(this.value)),this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");if(this.precision!==null)this.figInputNumber.setAttribute("precision",String(this.precision));else this.figInputNumber.removeAttribute("precision");this.figInputNumber.disabled=this.disabled,this.figInputNumber.toggleAttribute("disabled",this.disabled)}}#V(){if(this.#h(),this.input.removeEventListener("input",this.#K),this.input.addEventListener("input",this.#K),this.input.removeEventListener("change",this.#Q),this.input.addEventListener("change",this.#Q),this.input.removeEventListener("keydown",this.#X),this.input.addEventListener("keydown",this.#X),this.input.removeEventListener("pointerdown",this.#G),this.input.addEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#L),this.input.addEventListener("pointerup",this.#L),this.input.removeEventListener("pointercancel",this.#L),this.input.addEventListener("pointercancel",this.#L),this.style.setProperty("--default",this.#H(this.default)),this.figInputNumber)this.#y(),this.figInputNumber.removeEventListener("input",this.#W),this.figInputNumber.addEventListener("input",this.#W),this.figInputNumber.removeEventListener("change",this.#N),this.figInputNumber.addEventListener("change",this.#N)}#I(){if(this.#O(),this.color)this.style.setProperty("--color",this.color);let _=Y("input",{type:"range",tabindex:this.text?"-1":null,disabled:this.disabled,min:this.min,max:this.max,step:this.step,className:this.type,value:this.value,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this.value}),Z=Y("div",{className:"fig-slider-input-container",role:"group"},_);for(let q of this.initialChildren??[])Z.appendChild(q);let $=[Z];if(this.text)$.push(Y("fig-input-number",{placeholder:this.placeholder,min:this.min,max:this.max,transform:this.transform,step:this.step,value:this.value,units:this.units||null,precision:this.precision}));if(this.replaceChildren(...$),this.input=_,this.inputContainer=Z,this.figInputNumber=this.querySelector("fig-input-number"),this.#V(),this.datalist=this.querySelector("datalist"),this.datalist)this.inputContainer.append(this.datalist),this.datalist.setAttribute("id",this.datalist.getAttribute("id")||p()),this.input.setAttribute("list",this.datalist.getAttribute("id"));else if(this.type==="stepper"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("data-generated","slider-stepper"),this.datalist.setAttribute("id",p());let q=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1));for(let J=0;J<q;J++){let Q=document.createElement("option");Q.setAttribute("value",this.min+J*this.step),this.datalist.append(Q)}this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}else if(this.type==="delta"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("data-generated","slider-delta"),this.datalist.setAttribute("id",p());let q=document.createElement("option");q.setAttribute("value",this.default),this.datalist.append(q),this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}this.#p(),this.#D()}connectedCallback(){if(this.initialChildren===null)this.initialChildren=Array.from(this.childNodes);if(this.#Y()){this.#F(),this.#V(),this.#D();return}this.#I()}get value(){if(this.#$!=="")return this.#$;let _=this.getAttribute("value");if(_!==null)return String(this.#f(_));return""}set value(_){let Z=_===null||_===void 0?"":String(_),q=this.min!==void 0||this.max!==void 0?String(this.#f(Z)):Z;if(this.#$=q,this.getAttribute("value")!==q)this.#q=!0,this.setAttribute("value",q),this.#q=!1;if(this.input&&this.input.value!==q)this.input.value=q,this.input.setAttribute("aria-valuenow",q);if(this.figInputNumber)this.figInputNumber.setAttribute("value",q);if(this.input)this.#b()}get defaultValue(){return this.#P()}disconnectedCallback(){if(this.#_=!1,this.input)this.input.removeEventListener("input",this.#K),this.input.removeEventListener("change",this.#Q),this.input.removeEventListener("keydown",this.#X),this.input.removeEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#L),this.input.removeEventListener("pointercancel",this.#L);if(this.figInputNumber)this.figInputNumber.removeEventListener("input",this.#W),this.figInputNumber.removeEventListener("change",this.#N)}#A(){if(this.figInputNumber){let _=this.figInputNumber.value,Z=this.#f(_);this.value=Z,this.input.value=String(Z),this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}}#H(_){let{min:Z,max:$}=this.#z(),q=$-Z;if(q===0)return 0;return(Number(_)-Z)/q}#T(_){if(_===null||_===void 0)return null;if(typeof _==="string"&&_.trim()==="")return null;let Z=Number(_);return Number.isFinite(Z)?Z:null}#z(){let _=this.#T(this.min),Z=this.#T(this.max);if(_===null)_=0;if(Z===null)Z=_;if(_>Z)[_,Z]=[Z,_];return{min:_,max:Z}}#C(_){let{min:Z,max:$}=this.#z();return Math.min($,Math.max(Z,_))}#k(_){let{min:Z}=this.#z(),$=this.#T(this.step);if(!($>0))return!0;let q=(_-Z)/$,J=Math.round(q),Q=Number.EPSILON*Math.max(1,Math.abs(q))*16;return Math.abs(q-J)<=Q}#P(_=this.getAttribute("default")){let{min:Z,max:$}=this.#z(),q=this.#T(_);if(q!==null&&q>=Z&&q<=$&&(this.type!=="stepper"||this.#k(q)))return q;return this.type==="delta"?Math.min($,Math.max(Z,0)):Z}#E(){if(this.type==="delta"){let Z=this.#T(this.default);if(Z!==null)return this.#C(Z);return this.#C(0)}if(this.type==="range"){let{min:Z,max:$}=this.#z();return this.#C(Z+($-Z)/2)}let{min:_}=this.#z();return _}#f(_){let Z=this.#T(_);if(Z===null)return this.#E();return this.#C(Z)}#b(){let _=this.#H(this.value),Z=this.#H(this.default),$=_<Z?-1:1,q=_===Z?1:0;if(this.#U!==_)this.style.setProperty("--slider-complete",_),this.#U=_;if(this.#R!==Z)this.style.setProperty("--default",Z),this.#R=Z;if(this.#B!==$)this.style.setProperty("--slider-delta-direction",$),this.#B=$;if(this.#M!==q)this.style.setProperty("--unchanged",q),this.#M=q}#D(){let _=this.input.value;if(this.value=_,this.#b(),this.input.setAttribute("aria-valuenow",_),this.figInputNumber)this.figInputNumber.setAttribute("value",_)}#h(){if(!this.input)return;if(this.text){this.input.setAttribute("aria-hidden","true"),["aria-label","aria-labelledby","aria-describedby","aria-valuetext"].forEach((_)=>this.input.removeAttribute(_)),this.#y();return}this.input.removeAttribute("aria-hidden"),this.#J.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#y(){if(!this.figInputNumber)return;["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"].forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.figInputNumber.removeAttribute(_);else this.figInputNumber.setAttribute(_,Z)})}#g(){this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#w(){this.#Z=!1,this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#x(_){if(this.disabled||!_.shiftKey)return;if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(_.key))return;_.preventDefault();let Z=_.key==="ArrowRight"||_.key==="ArrowUp"?1:-1,$=this.#T(this.input.value)??this.#E(),q=this.#T(this.step)??1,J=this.#f($+q*10*Z);this.value=J,this.input.value=String(J),this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#S(){if(this.figInputNumber){let _=this.figInputNumber.value,Z=this.#f(_);this.value=Z,this.input.value=String(Z),this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}}#m(_,Z){if(!this.input)return;let $=this.#j[this.type]||this.#j.range,q=Z===null||String(Z).trim()===""?$[_]:Number(Z),J=Number.isFinite(q)?q:$[_];if(_==="step"&&!(J>0))J=$.step>0?$.step:1;if(this[_]===J&&this.input[_]===String(J))return;if(this[_]=J,this.input[_]=String(J),_==="min")this.input.setAttribute("aria-valuemin",String(J));else if(_==="max")this.input.setAttribute("aria-valuemax",String(J));if(this.figInputNumber)this.figInputNumber.setAttribute(_,String(J));if(!this.hasAttribute("default")&&this.type!=="delta")this.default=this.min;else this.default=this.#P();this.value=this.#f(this.value),this.#b(),this.#v(),this.#p()}#v(){if(this.type!=="stepper"||!this.datalist)return;let _=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1)),Z=document.createDocumentFragment();for(let $=0;$<_;$++){let q=document.createElement("option");q.setAttribute("value",this.min+$*this.step),Z.append(q)}this.datalist.replaceChildren(Z),this.input.setAttribute("list",this.datalist.id),this.#p()}#p(){if(!this.datalist)return;let _=String(this.default),Z=[...this.datalist.querySelectorAll("option")];Z.forEach((q)=>q.removeAttribute("default"));let $=Z.find((q)=>q.value===_);if(!$&&this.type==="delta"&&this.datalist.getAttribute("data-generated")==="slider-delta")$=document.createElement("option"),$.value=_,this.datalist.replaceChildren($);$?.setAttribute("default","true")}#d(){if(this.#Z){this.#_=!0;return}this.#_=!1,this.#I()}static get observedAttributes(){return["value","step","min","max","type","variant","disabled","color","units","transform","text","placeholder","default","precision","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required","aria-valuetext"]}focus(){if(this.text&&this.figInputNumber){this.figInputNumber.focus();return}this.input.focus()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="value"&&this.#q)return;if(this.input)switch(_){case"color":this.color=$,this.style.setProperty("--color",this.color);break;case"disabled":if(this.disabled=this.input.disabled=$!==null&&$!=="false",this.figInputNumber)this.figInputNumber.disabled=this.disabled,this.figInputNumber.setAttribute("disabled",this.disabled);break;case"value":if(this.#Z)break;this.value=$,this.#D();break;case"transform":if(this.transform=Number($)||1,this.figInputNumber)this.figInputNumber.setAttribute("transform",this.transform);break;case"precision":if(this.precision=$!==null?Number($):null,this.figInputNumber)if(this.precision!==null)this.figInputNumber.setAttribute("precision",this.precision);else this.figInputNumber.removeAttribute("precision");break;case"placeholder":if(this.placeholder=$!==null?$:"##",this.figInputNumber)this.figInputNumber.setAttribute("placeholder",this.placeholder);break;case"default":this.default=this.#P($),this.#b(),this.#p();break;case"min":case"max":case"step":this.#m(_,$);break;case"units":if(this.units=$||"",this.figInputNumber)if(this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");break;case"type":case"variant":if(!this.#Z)this[_]=$;this.#d();break;case"text":if(!this.#Z)this.text=$!=="false";this.#d();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":case"aria-valuetext":this.#h();break;default:this[_]=this.input[_]=$,this.#D();break}}}A("fig-slider",N_);class L_ extends HTMLElement{#Z=!1;#_=!1;#q="";#$=!1;#J;#j;#K;#Q;#W;#N;#X;#G;#L=null;#U=0;#R="";#B="";#M=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];constructor(){super();this.#J=this.#b.bind(this),this.#j=this.#h.bind(this),this.#K=this.#h.bind(this),this.#Q=this.#D.bind(this),this.#W=(_)=>{_.stopPropagation(),this.#f(_)},this.#N=(_)=>{_.stopPropagation();let Z=_.target.value;if(this.type==="number")Z=Number(Z)/(this.transform||1);this.value=Z,this.#z(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))},this.#X=()=>{if(!this.disabled)this.focus()},this.#G=this.#Y.bind(this)}connectedCallback(){if(this.multiline=this.hasAttribute("multiline")&&this.getAttribute("multiline")!=="false",this.value=this.getAttribute("value")||"",this.type=this.getAttribute("type")||"text",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.readonly=this.hasAttribute("readonly")&&this.getAttribute("readonly")!=="false",this.type==="number"){if(this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));if(this.transform=Number(this.getAttribute("transform")||1),this.getAttribute("value"))this.value=Number(this.value)}if(this.input=this.#O(),this.input.readOnly=this.readonly,this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.input.disabled=this.disabled,this.#A(),this.#H(),this.#T(),this.#z(),this.#C(),this.#P(),N0(this),this.#F(),this.type==="number"){if(this.getAttribute("min"))this.input.setAttribute("min",this.#E(this.min));if(this.getAttribute("max"))this.input.setAttribute("max",this.#E(this.max));if(this.getAttribute("step"))this.input.setAttribute("step",this.#E(this.step));this.addEventListener("pointerdown",this.#Q)}this.removeEventListener("click",this.#G),this.addEventListener("click",this.#G),this.input.removeEventListener("change",this.#W),this.input.addEventListener("change",this.#W),this.input.removeEventListener("input",this.#N),this.input.addEventListener("input",this.#N)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#W),this.input.removeEventListener("input",this.#N);if(this.removeEventListener("click",this.#G),this.removeEventListener("pointerdown",this.#Q),window.removeEventListener("pointermove",this.#J),window.removeEventListener("pointerup",this.#j),window.removeEventListener("blur",this.#K),this.#L?.disconnect(),this.#L=null,this.#U)cancelAnimationFrame(this.#U),this.#U=0}focus(){this.input.focus()}#O(){let _=this.multiline,Z=this.querySelector("input,textarea");if(Z){if(_?Z.tagName==="TEXTAREA":Z.tagName==="INPUT")return Z;Z.remove()}let $;if(_)$=document.createElement("textarea"),$.value=this.value;else $=document.createElement("input"),$.type=this.type,$.value=this.type==="number"?this.#E(this.value):this.value;if($.setAttribute("data-generated","input-control"),this.name)$.name=this.name;return $.placeholder=this.placeholder,this.insertBefore($,this.querySelector('[slot="append"]')),$}#Y(_){let Z=_.target?.closest?.("[slot]");if(!Z||Z.parentElement!==this)return;if(this.disabled)return;this.focus()}#F(){this.#L?.disconnect(),this.#L=new MutationObserver(()=>this.#V()),this.#L.observe(this,{childList:!0,characterData:!0,subtree:!0})}#V(){if(this.#U)return;this.#U=requestAnimationFrame(()=>{if(this.#U=0,!this.isConnected)return;this.#I()})}#I(){if(!this.input||!this.contains(this.input))this.input=this.#O(),this.input.readOnly=this.readonly,this.input.addEventListener("change",this.#W),this.input.addEventListener("input",this.#N);this.#A(),this.#H(),this.#T(),this.#z(),this.#C(),this.#P(),N0(this)}#A(){if(!this.input)return;this.#M.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#H(){let _=this.querySelector('[slot="prepend"][data-generated="search-prefix"]');if(this.type!=="search"){_?.remove();return}if(this.querySelector('[slot="prepend"]:not([data-generated])')){_?.remove();return}if(_){let q=_.querySelector("fig-icon");if(q&&q.getAttribute("name")!=="search")q.setAttribute("name","search");return}let $=h("search");$.setAttribute("slot","prepend"),$.setAttribute("data-generated","search-prefix"),$.setAttribute("color","var(--figma-color-icon)"),$.addEventListener("click",this.#X),this.prepend($)}#T(){let _=this.querySelector('[slot="append"][data-generated="search-clear"]');if(this.type!=="search"){_?.remove();return}if(this.querySelector('[slot="append"]:not([data-generated])')){_?.remove();return}if(_){let j=_.querySelector("fig-icon");if(j&&j.getAttribute("name")!=="close")j.setAttribute("name","close");return}let $=document.createElement("span");$.setAttribute("slot","append"),$.setAttribute("data-generated","search-clear");let q=document.createElement("fig-tooltip");q.setAttribute("text","Clear search");let J=document.createElement("fig-button");J.setAttribute("variant","ghost"),J.setAttribute("icon",""),J.setAttribute("aria-label","Clear search");let Q=h("close",{size:"small"});Q.setAttribute("color","var(--figma-color-icon-secondary)"),J.append(Q),q.append(J),$.append(q),this.append($),J.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(!this.input||this.input.value===""){this.focus();return}this.value="",this.input.value="",this.dispatchEvent(new CustomEvent("input",{detail:"",bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:"",bubbles:!0})),this.#z(),this.focus()})}#z(){if(this.type!=="search"){this.removeAttribute("data-search-has-value");return}this.toggleAttribute("data-search-has-value",!!this.input?.value)}#C(){let _=this.querySelector('[slot="append"][data-generated="password-toggle"]');if(this.type!=="password"){_?.remove(),this.#_=!1;return}if(this.querySelector('[slot="append"]:not([data-generated])')){_?.remove();return}if(_){this.#k(_);return}let $=document.createElement("span");$.setAttribute("slot","append"),$.setAttribute("data-generated","password-toggle");let q=document.createElement("fig-tooltip"),J=document.createElement("fig-button");J.setAttribute("variant","ghost"),J.setAttribute("icon","");let Q=h("visible",{size:"small"});Q.setAttribute("color","var(--figma-color-icon-secondary)"),J.append(Q),q.append(J),$.append(q),this.append($),this.#k($),J.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(this.#_=!this.#_,this.input)this.input.type=this.#_?"text":"password";this.#k($),this.focus()})}#k(_){let Z=_.querySelector("fig-tooltip"),$=_.querySelector("fig-button"),q=_.querySelector("fig-icon"),J=this.#_?"Hide password":"Show password";Z?.setAttribute("text",J),$?.setAttribute("aria-label",J),q?.setAttribute("name",this.#_?"visible":"hidden")}#P(){this.querySelectorAll('[data-generated="search-clear"] fig-button, [data-generated="password-toggle"] fig-button').forEach((_)=>{if(this.disabled)_.setAttribute("disabled","");else _.removeAttribute("disabled")})}#E(_){if(_==="")return"";let Z=Number(_)*(this.transform||1);return Z=this.#g(Z),Z}#f(_){_.stopPropagation();let Z=_.target.value,$=Z;if(this.type==="number")Z=Z/(this.transform||1),Z=this.#y(Z,!1),$=Z*(this.transform||1);this.value=Z,this.input.value=$,this.#z(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#b(_){if(this.type!=="number")return;if(_.buttons===0){this.#h();return}let Z=(this.step||1)*_.movementX,$=Number(this.input.value);$=$/(this.transform||1)+Z,$=this.#y($,!1);let q=$*(this.transform||1);$=this.#g($),q=this.#g(q),this.value=$,this.input.value=q,this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#D(_){if(this.type!=="number")return;if(_.altKey||_.target.closest("[slot]"))this.#Z=!0,this.#R=this.style.userSelect,this.#B=document.body.style.cursor,this.input.style.cursor=this.style.cursor=document.body.style.cursor="ew-resize",this.style.userSelect="none",window.addEventListener("pointermove",this.#J),window.addEventListener("pointerup",this.#j),window.addEventListener("pointercancel",this.#j),window.addEventListener("blur",this.#K)}#h(_){if(this.type!=="number")return;let Z=this.#Z;if(this.#Z=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#B,this.style.userSelect=this.#R,window.removeEventListener("pointermove",this.#J),window.removeEventListener("pointerup",this.#j),window.removeEventListener("pointercancel",this.#j),window.removeEventListener("blur",this.#K),Z)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#y(_,Z=!0){let $=_;if(this.type==="number"){if($=Number($),typeof this.min==="number")$=Math.max(Z?this.#E(this.min):this.min,$);if(typeof this.max==="number")$=Math.min(Z?this.#E(this.max):this.max,$);$=this.#g($)}return $}#g(_,Z=2){let $=Math.round(_*100)/100;return Number.isInteger($)?$:$.toFixed(Z)}get value(){return this.#q}set value(_){let Z=_??"";this.#q=Z;let $=String(Z);if(this.getAttribute("value")!==$)this.#$=!0,this.setAttribute("value",$),this.#$=!1;this.#w(Z)}#w(_){if(!this.input||this.#Z)return;let Z=this.type==="number"?String(this.#E(_)):String(_??"");if(this.input.value!==Z)this.input.value=Z;this.#z()}static get observedAttributes(){return["value","placeholder","label","disabled","readonly","type","multiline","step","min","max","transform","name","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}attributeChangedCallback(_,Z,$){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=$!==null&&$!=="false",this.#P();break;case"readonly":this.readonly=$!==null&&$!=="false",this.input.readOnly=this.readonly;break;case"transform":if(this.type==="number")this.transform=Number($)||1,this.input.value=this.#E(this.value);break;case"value":if(this.#Z)break;let q=$;if(this.type==="number")q=this.#y(q,!1);if(this.#q=q??"",!this.#$)this.#w(this.#q);break;case"min":case"max":case"step":if($===null||$==="")this[_]=void 0,this.input.removeAttribute(_);else this[_]=this.input[_]=Number($),this.input.setAttribute(_,$);break;case"name":if(this[_]=this.input[_]=$||"",$)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=$??"",this.input.placeholder=this.placeholder;break;case"type":if(this.type=$||"text",this.input.type=this.type,this.removeEventListener("pointerdown",this.#Q),this.type==="number")this.step=this.hasAttribute("step")?Number(this.getAttribute("step")):void 0,this.min=this.hasAttribute("min")?Number(this.getAttribute("min")):void 0,this.max=this.hasAttribute("max")?Number(this.getAttribute("max")):void 0,this.transform=Number(this.getAttribute("transform")||1),this.addEventListener("pointerdown",this.#Q);this.#H(),this.#T(),this.#z(),this.#C(),this.#P();break;case"multiline":{let J=$!==null&&$!=="false";if(J!==this.multiline){this.multiline=J;let Q=this.input;Q.removeEventListener("change",this.#W),Q.removeEventListener("input",this.#N),Q.remove(),this.input=this.#O(),this.input.readOnly=this.readonly,this.input.disabled=Boolean(this.disabled),this.input.addEventListener("change",this.#W),this.input.addEventListener("input",this.#N),this.#A()}break}case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#A();break;default:this[_]=this.input[_]=$;break}}}A("fig-input-text",L_);class L0 extends HTMLElement{#Z;#_;#q;#$;#J;#j;#K;#Q;#W;#N;#X;#G;#L;#U;#R;#B;#M=!1;#O=null;#Y=null;#F=0;#V="";#I="";#A=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];static#H="px";#T(_){return(_||"").split(",").map((Z)=>Z.trim().toLowerCase()).filter(Boolean)}#z(_){let Z=(_||"").trim();if(!Z)return"";return(this.#U??[]).includes(Z.toLowerCase())?"":Z}#C(){this.#G=this.#z(this.#L)}#k(_){if(_&&!this.#O)this.#O=document.createElement("span"),this.#O.className="fig-steppers",this.#O.append(Y("button",{className:"fig-stepper-up",tabindex:"-1","aria-label":"Increase"}),Y("button",{className:"fig-stepper-down",tabindex:"-1","aria-label":"Decrease"})),this.#O.addEventListener("pointerdown",(Z)=>{Z.preventDefault(),Z.stopPropagation();let $=Z.target.closest("button");if(!$||this.disabled||$.disabled)return;let q=$.classList.contains("fig-stepper-up")?1:-1;this.#E(q),this.input.focus()}),this.append(this.#O);else if(!_&&this.#O)this.#O.remove(),this.#O=null;this.#P()}#P(){if(!this.#O)return;let _=this.#O.querySelector(".fig-stepper-up"),Z=this.#O.querySelector(".fig-stepper-down");if(!_||!Z)return;let $=this.input?this.#x(this.input.value):this.value,q=$!==""&&$!==null&&$!==void 0?Number($)/(this.transform||1):Number(this.value),J=Number.isFinite(q),Q=Boolean(this.disabled),j=J&&typeof this.min==="number"&&q<=this.min,W=J&&typeof this.max==="number"&&q>=this.max;_.disabled=Q||W,Z.disabled=Q||j}#E(_){let Z=this.step||1,$=this.#x(this.input.value),q=($!==""?Number($)/(this.transform||1):0)+Z*_;q=this.#u(q,!1),this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}constructor(){super();this.#Z=this.#i.bind(this),this.#_=this.#s.bind(this),this.#q=this.#s.bind(this),this.#$=this.#o.bind(this),this.#J=(_)=>{_.stopPropagation(),this.#c(_)},this.#j=(_)=>{_.stopPropagation(),this.#a(_)},this.#K=(_)=>{this.#v(_)},this.#Q=(_)=>{this.#p(_)},this.#W=(_)=>{this.#d(_)},this.#N=this.focus.bind(this),this.#X=this.#b.bind(this)}connectedCallback(){let _=this.getAttribute("value");this.value=_!==null&&_!==""?Number(_):"",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.#L=this.getAttribute("units")||"";let Z=this.getAttribute("units-disallow");if(this.#U=this.#T(Z===null?L0.#H:Z),this.#C(),this.#R=this.getAttribute("unit-position")||"suffix",this.#B=this.#n(this.hasAttribute("precision")?this.getAttribute("precision"):null),this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));this.transform=Number(this.getAttribute("transform")||1);let $=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.input=this.#f(),this.#g(),this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));if(this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.#k($),this.hasAttribute("disabled")){let q=this.getAttribute("disabled");this.disabled=this.input.disabled=q!=="false"}this.#P(),this.#w(),N0(this),this.addEventListener("pointerdown",this.#$),this.removeEventListener("click",this.#X),this.addEventListener("click",this.#X),this.#D(),this.input.removeEventListener("change",this.#J),this.input.addEventListener("change",this.#J),this.input.removeEventListener("input",this.#j),this.input.addEventListener("input",this.#j),this.input.removeEventListener("focus",this.#K),this.input.addEventListener("focus",this.#K),this.input.removeEventListener("blur",this.#Q),this.input.addEventListener("blur",this.#Q),this.input.removeEventListener("keydown",this.#W),this.input.addEventListener("keydown",this.#W)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#J),this.input.removeEventListener("input",this.#j),this.input.removeEventListener("focus",this.#K),this.input.removeEventListener("blur",this.#Q),this.input.removeEventListener("keydown",this.#W);if(this.removeEventListener("click",this.#X),this.removeEventListener("pointerdown",this.#$),window.removeEventListener("pointermove",this.#Z),window.removeEventListener("pointerup",this.#_),window.removeEventListener("blur",this.#q),this.#Y?.disconnect(),this.#Y=null,this.#F)cancelAnimationFrame(this.#F),this.#F=0}focus(){this.input.focus()}#f(){let _=this.querySelector("input");if(_)return _;let Z=document.createElement("input");if(Z.type="text",Z.inputMode="decimal",Z.setAttribute("data-generated","input-control"),this.name)Z.name=this.name;return Z.placeholder=this.placeholder,Z.value=this.#S(this.value),this.insertBefore(Z,this.querySelector('[slot="append"]')),Z}#b(_){let Z=_.target?.closest?.("[slot]");if(!Z||Z.parentElement!==this)return;this.focus()}#D(){this.#Y?.disconnect(),this.#Y=new MutationObserver(()=>this.#h()),this.#Y.observe(this,{childList:!0,characterData:!0,subtree:!0})}#h(){if(this.#F)return;this.#F=requestAnimationFrame(()=>{if(this.#F=0,!this.isConnected)return;this.#y()})}#y(){if(!this.input||!this.contains(this.input))this.input=this.#f(),this.input.addEventListener("change",this.#J),this.input.addEventListener("input",this.#j),this.input.addEventListener("focus",this.#K),this.input.addEventListener("blur",this.#Q),this.input.addEventListener("keydown",this.#W);let _=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.#O&&!this.contains(this.#O))this.#O=null;this.#k(_),this.#g(),this.#w(),N0(this)}#g(){if(!this.input)return;this.#A.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#w(){if(!this.input)return;if(this.input.setAttribute("role","spinbutton"),typeof this.min==="number")this.input.setAttribute("aria-valuemin",String(this.min));else this.input.removeAttribute("aria-valuemin");if(typeof this.max==="number")this.input.setAttribute("aria-valuemax",String(this.max));else this.input.removeAttribute("aria-valuemax");let _=this.value===""?null:Number(this.value);if(Number.isFinite(_))this.input.setAttribute("aria-valuenow",String(_)),this.input.setAttribute("aria-valuetext",this.#S(this.value));else this.input.removeAttribute("aria-valuenow"),this.input.removeAttribute("aria-valuetext")}#x(_){if(!_)return"";if(!this.#G){let q=_.replace(/[^\d.-]/g,""),J=q.split(".");if(J.length>2)q=J[0]+"."+J.slice(1).join("");return q}let Z=_.replace(this.#G,"").trim();Z=Z.replace(/[^\d.-]/g,"");let $=Z.split(".");if($.length>2)Z=$[0]+"."+$.slice(1).join("");return Z}#S(_){if(_===""||_===null||_===void 0)return"";let Z=Number(_)*(this.transform||1);if(isNaN(Z))return"";if(Z=this.#l(Z),!this.#G)return Z.toString();if(this.#R==="prefix")return this.#G+Z;else return Z+this.#G}#m(_){if(_===""||_===null||_===void 0)return"";let Z=Number(_)*(this.transform||1);return Z=this.#l(Z),Z.toString()}#v(_){this.#M=!0,setTimeout(()=>{let Z=_.target.value;if(Z&&this.#G)if(this.#R==="prefix")_.target.setSelectionRange(this.#G.length,Z.length);else{let $=Z.indexOf(this.#G);if($>-1)_.target.setSelectionRange(0,$)}},0)}#p(_){this.#M=!1;let Z=this.#x(_.target.value);if(Z!==""){let $=Number(Z)/(this.transform||1);$=this.#u($,!1),this.value=$,_.target.value=this.#S(this.value)}else this.value="",_.target.value="";this.#P(),this.#w()}#d(_){if(this.disabled)return;if(_.key!=="ArrowUp"&&_.key!=="ArrowDown")return;_.preventDefault();let Z=this.step||1,$=_.shiftKey?10:1,q=Z*$*(_.key==="ArrowUp"?1:-1),J=this.#x(this.input.value),Q=(J!==""?Number(J)/(this.transform||1):0)+q;Q=this.#u(Q,!1),this.value=Q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#a(_){let Z=this.#x(_.target.value);if(Z!=="")this.value=Number(Z)/(this.transform||1);else this.value="";this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#c(_){_.stopPropagation();let Z=this.#x(_.target.value);if(Z!==""){let $=Number(Z)/(this.transform||1);$=this.#u($,!1),this.value=$,_.target.value=this.#S(this.value)}else this.value="",_.target.value="";this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#i(_){if(this.disabled)return;if(_.buttons===0){this.#s();return}let Z=(this.step||1)*_.movementX,$=this.#x(this.input.value),q=Number($)/(this.transform||1)+Z;q=this.#u(q,!1),this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#o(_){if(this.disabled)return;if(_.altKey||_.target.closest("[slot]"))this.#M=!0,this.#V=this.style.userSelect,this.#I=document.body.style.cursor,this.input.style.cursor=this.style.cursor=document.body.style.cursor="ew-resize",this.style.userSelect="none",window.addEventListener("pointermove",this.#Z),window.addEventListener("pointerup",this.#_),window.addEventListener("pointercancel",this.#_),window.addEventListener("blur",this.#q)}#s(_){let Z=this.#M;if(this.#M=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#I,this.style.userSelect=this.#V,window.removeEventListener("pointermove",this.#Z),window.removeEventListener("pointerup",this.#_),window.removeEventListener("pointercancel",this.#_),window.removeEventListener("blur",this.#q),Z)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#u(_,Z=!0){let $=Number(_);if(isNaN($))return"";if(typeof this.min==="number")$=Math.max(this.min,$);if(typeof this.max==="number")$=Math.min(this.max,$);return $=this.#t($),$}#l(_){let Z=this.#B??2,$=this.#t(_);if(this.#B!==null)return $.toFixed(Z);return Number.isInteger($)?String($):String(parseFloat($.toFixed(Z)))}#t(_){let Z=this.#B??2,$=Math.pow(10,Z);return Math.round(_*$)/$}#n(_){if(_===null||_===void 0||_==="")return null;let Z=Number(_);if(!Number.isFinite(Z))return 2;return Math.max(0,Math.min(100,Math.trunc(Z)))}static get observedAttributes(){return["value","placeholder","disabled","step","min","max","transform","name","units","units-disallow","unit-position","steppers","precision","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}attributeChangedCallback(_,Z,$){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=$!==null&&$!=="false",this.#P();break;case"units":this.#L=$||"",this.#C(),this.input.value=this.#S(this.value),this.#w();break;case"units-disallow":this.#U=this.#T($===null?L0.#H:$),this.#C(),this.input.value=this.#S(this.value),this.#w();break;case"unit-position":this.#R=$||"suffix",this.input.value=this.#S(this.value),this.#w();break;case"transform":this.transform=Number($)||1,this.input.value=this.#S(this.value),this.#w();break;case"value":if(this.#M)break;let q=$!==null&&$!==""?Number($):"";if(q!=="")q=this.#u(q,!1);this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w();break;case"min":case"max":case"step":if($===null||$===""){this[_]=void 0,this.#P(),this.#w();break}this[_]=Number($),this.#P(),this.#w();break;case"steppers":{let J=$!==null&&$!=="false";this.#k(J);break}case"precision":this.#B=this.#n($),this.input.value=this.#S(this.value),this.#w();break;case"name":if(this[_]=this.input[_]=$||"",$)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=$??"",this.input.placeholder=this.placeholder;break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#g();break;default:this[_]=this.input[_]=$;break}}}A("fig-input-number",L0);class G_ extends HTMLElement{constructor(){super()}connectedCallback(){this.src=this.getAttribute("src"),this.name=this.getAttribute("name"),this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials),this.setSrc(this.src),this.img=this.querySelector("img")}setSrc(_){if(this.src=_,!_){this.querySelector(":scope > img")?.remove(),this.img=null;return}let Z=this.querySelector(":scope > img")||document.createElement("img");if(Z.src=_,Z.alt=this.name||"",!Z.isConnected)this.replaceChildren(Z);this.img=Z}getInitials(_){return _?_.split(" ").map((Z)=>Z[0]).join(""):""}static get observedAttributes(){return["src","href","name"]}attributeChangedCallback(_,Z,$){if(this[_]=$,_==="name"){if(this.img)this.img.alt=$||"";this.name=$,this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials)}else if(_==="src")this.src=$,this.setSrc(this.src)}}A("fig-avatar",G_);class X_ extends HTMLElement{#Z=!1;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;constructor(){super();this.#q=this.#N.bind(this),this.#$=this.focus.bind(this),this.#J=this.#X.bind(this),this.#j=this.#G.bind(this)}static get observedAttributes(){return["label"]}connectedCallback(){queueMicrotask(()=>{if(!this.isConnected)return;this.#W(),this.#Q()})}#Q(){if(this.#K||typeof MutationObserver>"u")return;this.#K=new MutationObserver(()=>{this.#W()}),this.#K.observe(this,{childList:!0})}#W(){let _=this.label,Z=this.#_;_?.removeEventListener("click",this.#q),_?.removeEventListener("click",this.#$),_?.removeEventListener("pointerenter",this.#J),_?.removeEventListener("pointerleave",this.#j),Z?.removeEventListener("click",this.#q),this.label=this.querySelector(":scope>label"),this.input=Array.from(this.childNodes).find((J)=>J.nodeType===Node.ELEMENT_NODE&&J.nodeName.toLowerCase().startsWith("fig-")&&!(J instanceof Element&&J.classList.contains("fig-field-chevron")));let $=this.input?.localName??"",q=$==="fig-select"||$==="fig-menu"||$==="fig-dropdown"||$==="fig-tooltip"||$==="fig-fill-picker"||this.input instanceof HTMLDialogElement;if(this.#Z=!!(this.input&&("open"in this.input)&&typeof this.input.open!=="function"&&!q),this.#Z&&this.label){if(!this.#_||!this.#_.isConnected)this.#_=h("chevron",{size:"small",className:"fig-field-chevron"}),this.insertBefore(this.#_,this.label);this.#_.addEventListener("click",this.#q),this.label.addEventListener("click",this.#q)}else{if(this.#_)this.#_.removeEventListener("click",this.#q),this.#_.remove(),this.#_=null;if(this.input&&this.label){if(this.input.querySelectorAll("input, select, textarea").length!==1)this.label.addEventListener("click",this.#$)}}if(this.input&&this.label&&!this.#Z)this.#L();if(this.label)this.label.removeEventListener("pointerenter",this.#J),this.label.addEventListener("pointerenter",this.#J),this.label.removeEventListener("pointerleave",this.#j),this.label.addEventListener("pointerleave",this.#j)}disconnectedCallback(){if(this.#K?.disconnect(),this.#K=null,this.label)H.hide(this.label);if(this.label&&this.#q)this.label.removeEventListener("click",this.#q);if(this.label&&this.#$)this.label.removeEventListener("click",this.#$);if(this.label&&this.#J)this.label.removeEventListener("pointerenter",this.#J);if(this.label&&this.#j)this.label.removeEventListener("pointerleave",this.#j);if(this.#_&&this.#q)this.#_.removeEventListener("click",this.#q)}#N(_){if(_.preventDefault(),_.stopPropagation(),this.input&&typeof this.input.open<"u")this.input.open=!this.input.open}#X(){if(!this.label||this.label.scrollWidth<=this.label.clientWidth)return;H.show(this.label,this.label.textContent.trim())}#G(){if(this.label)H.hide(this.label)}#L(){if(!this.input||!this.label)return;let _=this.label.getAttribute("id")||p();this.label.setAttribute("id",_);let Z=this.input.querySelectorAll("input, select, textarea");if(Z.length===1){let $=Z[0],q=$.getAttribute("id")||p();if($.setAttribute("id",q),this.label.setAttribute("for",q),this.input.getAttribute("aria-labelledby")===_)this.input.removeAttribute("aria-labelledby");if(!$.hasAttribute("aria-labelledby"))$.setAttribute("aria-labelledby",_);return}if(this.label.removeAttribute("for"),!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-labelledby",_)}attributeChangedCallback(_,Z,$){switch(_){case"label":if(this.label)this.label.textContent=$,this.#L();break}}focus(){if(!this.input)return;if(this.input.contains(document.activeElement))return;let _=this.input.querySelectorAll("input, select, textarea");if(_.length===1)_[0].focus();else if(this.input.focus(),_.length===0)this.input.click()}}A("fig-field",X_);class U_ extends HTMLElement{rgba;hex;#Z=100;#_;#q;#$;#J;#j=!1;#K=!1;#Q=null;#W=this.#k.bind(this);#N=this.#P.bind(this);#X=this.#E.bind(this);#G=this.#w.bind(this);#L=this.#b.bind(this);#U=this.#h.bind(this);#R=this.#D.bind(this);#B=this.#x.bind(this);constructor(){super()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0||_===!1)this.removeAttribute("alpha");else this.setAttribute("alpha",String(_))}#M(){let _={};for(let{name:Z,value:$}of this.attributes)if(Z.startsWith("picker-")&&Z!=="picker-anchor"&&Z!=="picker-experimental"){let q=Z.slice(7);if(/^on/i.test(q))continue;_[q]=$}if(!_["dialog-position"])_["dialog-position"]="left";return _}#O(){let _=this.#M();return Object.entries(_).map(([Z,$])=>`${Z}="${$}"`).join(" ")}connectedCallback(){if(this.#Y()){this.#F();return}this.#A()}disconnectedCallback(){this.#V()}#Y(){return this.getAttribute("text")!=="false"?!!this.querySelector(":scope > .input-combo"):!!this.querySelector(":scope > fig-swatch")}#F(){if(this.#f(this.getAttribute("value")),this.#_=this.querySelector("fig-swatch"),this.#q=this.querySelector("fig-fill-picker"),this.#$=this.querySelector("fig-input-text:not([type=number])"),this.#J=this.querySelector("fig-input-number"),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J)this.#J.setAttribute("value",String(this.#Z));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",String(this.rgba.a));this.#g(),this.#I()}#V(){if(this.#_)this.#_.removeEventListener("pointerdown",this.#W,{capture:!0}),this.#_.removeEventListener("click",this.#N,{capture:!0}),this.#_.querySelector('input[type="color"]')?.removeEventListener("keydown",this.#X),this.#_.removeEventListener("input",this.#G);this.#$?.removeEventListener("input",this.#L),this.#$?.removeEventListener("change",this.#U),this.#J?.removeEventListener("input",this.#R),this.#J?.removeEventListener("change",this.#U),this.#q?.removeEventListener("input",this.#B),this.#q?.removeEventListener("change",this.#U)}#I(){if(this.#_){this.#_.disabled=F(this,"disabled");let _=this.#_.querySelector('input[type="color"]');if(this.#$||this.hasAttribute("swatch-disabled"))_?.setAttribute("tabindex","-1");if(this.hasAttribute("swatch-disabled")){if(_?.setAttribute("disabled",""),_)_.style.pointerEvents="none"}this.#_.addEventListener("pointerdown",this.#W,{capture:!0}),this.#_.addEventListener("click",this.#N,{capture:!0}),_?.addEventListener("keydown",this.#X),this.#_.addEventListener("input",this.#G)}if(this.#$)this.#$.addEventListener("input",this.#L),this.#$.addEventListener("change",this.#U);if(this.#J)this.#J.addEventListener("input",this.#R),this.#J.addEventListener("change",this.#U);if(this.#q)this.#q.addEventListener("input",this.#B),this.#q.addEventListener("change",this.#U)}#A(){this.#f(this.getAttribute("value"));let _=this.getAttribute("alpha")!=="false",Z=this.#p,$=this.getAttribute("text")!=="false",q=Y("fig-swatch",{background:this.hexOpaque,alpha:this.rgba.a,disabled:Z});if($){let J=Y("div",{className:"input-combo"},[q,Y("fig-input-text",{type:"text",placeholder:"000000",value:this.hexOpaque.slice(1).toUpperCase(),disabled:Z})]);if(_)J.appendChild(Y("fig-tooltip",{text:"Opacity"},Y("fig-input-number",{placeholder:"##",min:"0",max:"100",value:this.#Z,units:"%",disabled:Z})));this.replaceChildren(J)}else this.replaceChildren(q);if(this.#_=q,this.#q=this.querySelector("fig-fill-picker"),this.#$=this.querySelector("fig-input-text:not([type=number])"),this.#J=this.querySelector("fig-input-number"),this.#g(),this.#$){let J=this.rgbAlphaToHex(this.rgba,1);if(this.#$.value=J.slice(1).toUpperCase(),this.#_)this.#_.background=J}this.#I()}#H(){if(!this.#q)return;for(let[_,Z]of Object.entries(this.#M()))this.#q.setAttribute(_,Z);if(this.#q.setAttribute("mode","solid"),this.getAttribute("alpha")!=="false")this.#q.removeAttribute("alpha");else this.#q.setAttribute("alpha","false");if(F(this,"disabled"))this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");this.#q.anchorElement=this,this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}))}#T(){if(!l())return null;if(this.#q?.isConnected)return this.#H(),this.#q;let _=document.createElement("fig-fill-picker");return _.appendChild(Y("span",{hidden:!0})),_.addEventListener("input",this.#B),_.addEventListener("change",this.#U),this.appendChild(_),this.#q=_,this.#H(),_}#z(){if(F(this,"disabled")||F(this,"swatch-disabled"))return!1;let _=this.#T();if(!_)return!1;return requestAnimationFrame(()=>_.open?.()),!0}#C(_){_.preventDefault(),_.stopPropagation(),_.stopImmediatePropagation?.()}#k(_){if(!l())return;if(F(this,"disabled")||F(this,"swatch-disabled"))return;if(this.#K=!0,this.#j=!0,this.#Q)clearTimeout(this.#Q);this.#Q=setTimeout(()=>{this.#j=!1,this.#K=!1,this.#Q=null},500),this.#C(_)}#P(_){if(!this.#j)return;if(this.#j=!1,this.#Q)clearTimeout(this.#Q),this.#Q=null;if(this.#C(_),this.#K)this.#K=!1,this.#z()}#E(_){if(_.key!=="Enter"&&_.key!==" ")return;if(!l())return;if(!this.#z())return;this.#C(_)}#f(_){let Z=typeof _==="string"&&_.trim()?_.trim():"#D9D9D9",$=this.convertToRGBA(Z);if(!$||!Number.isFinite($.r)||!Number.isFinite($.g)||!Number.isFinite($.b)||!Number.isFinite($.a))Z="#D9D9D9",$={r:217,g:217,b:217,a:1};this.rgba=$,this.value=this.rgbAlphaToHex({r:isNaN(this.rgba.r)?0:this.rgba.r,g:isNaN(this.rgba.g)?0:this.rgba.g,b:isNaN(this.rgba.b)?0:this.rgba.b},this.rgba.a),this.hexWithAlpha=this.value.toUpperCase(),this.hexOpaque=this.hexWithAlpha.slice(0,7),this.#Z=Z.length>7?(this.rgba.a*100).toFixed(0):100,this.style.setProperty("--alpha",this.rgba.a)}#b(_){_.stopPropagation();let Z=_.target.value.replace(/#/g,"");if(this.#f("#"+Z),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J)this.#J.setAttribute("value",this.#Z);if(this.#_)this.#_.setAttribute("background",this.hexOpaque);this.#S()}#D(_){_.stopPropagation();let Z=Number(_.target.value)||0,q=Math.round(Z/100*255).toString(16).padStart(2,"0");if(this.#f(this.hexOpaque+q),this.#_)this.#_.setAttribute("alpha",this.rgba.a);if(this.#q)this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}));this.#S()}#h(_){_.stopPropagation(),this.#m()}focus(){if(this.#$){this.#$.focus();return}this.#_?.focus()}#y(){return this.getAttribute("aria-label")||"Color"}#g(){if(!this.hasAttribute("role"))this.setAttribute("role","group");if(this.#p)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");let _=this.getAttribute("aria-describedby"),Z=this.getAttribute("aria-invalid"),$=this.getAttribute("aria-required"),q=this.getAttribute("aria-labelledby"),J=this.#y();if(this.#$){if(this.#$.setAttribute("aria-label",`${J} hex color`),_)this.#$.setAttribute("aria-describedby",_);else this.#$.removeAttribute("aria-describedby");if(Z)this.#$.setAttribute("aria-invalid",Z);else this.#$.removeAttribute("aria-invalid");if($)this.#$.setAttribute("aria-required",$);else this.#$.removeAttribute("aria-required")}if(this.#J){if(this.#J.setAttribute("aria-label",`${J} opacity`),_)this.#J.setAttribute("aria-describedby",_);else this.#J.removeAttribute("aria-describedby");if(Z)this.#J.setAttribute("aria-invalid",Z);else this.#J.removeAttribute("aria-invalid");if($)this.#J.setAttribute("aria-required",$);else this.#J.removeAttribute("aria-required")}if(!this.#$){let Q=this.#_?.querySelector('input[type="color"]');if(!Q)return;if(q)Q.setAttribute("aria-labelledby",q),Q.removeAttribute("aria-label");else Q.setAttribute("aria-label",J),Q.removeAttribute("aria-labelledby");if(_)Q.setAttribute("aria-describedby",_);else Q.removeAttribute("aria-describedby")}}#w(_){if(_.stopPropagation(),this.#f(_.target.value),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());this.#S()}#x(_){_.stopPropagation();let Z=_.detail;if(Z&&Z.color){let $=Z.color;if(Z.alpha!==void 0){let q=Math.round(Z.alpha*255).toString(16).padStart(2,"0");$=Z.color+q}if(this.#f($),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J&&Z.alpha!==void 0)this.#J.setAttribute("value",Math.round(Z.alpha*100));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);this.#S()}}#S(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:this.#v()}))}#m(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:this.#v()}))}#v(){return{value:this.value,hex:this.hex,rgba:this.rgba,...r(this.hexOpaque,this.rgba?.a,Math.round((this.rgba?.a??1)*100))}}static get observedAttributes(){return["value","style","mode","alpha","text","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}get mode(){return this.getAttribute("mode")}set mode(_){this.setAttribute("mode",_)}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":if(this.#f($),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);if(this.#q)this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}));if(this.#J)this.#J.setAttribute("value",this.#Z);break;case"mode":this.#H();break;case"alpha":case"text":if(this.isConnected)this.#A();break;case"disabled":this.#d();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#g();break}}get#p(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#d(){let _=this.#p;for(let Z of[this.#_,this.#$,this.#J]){if(!Z)continue;if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}if(this.#g(),this.#q)this.#H()}rgbAlphaToHex({r:_,g:Z,b:$},q=1){_=Math.max(0,Math.min(255,Math.round(_))),Z=Math.max(0,Math.min(255,Math.round(Z))),$=Math.max(0,Math.min(255,Math.round($))),q=Math.max(0,Math.min(1,q));let J=_.toString(16).padStart(2,"0"),Q=Z.toString(16).padStart(2,"0"),j=$.toString(16).padStart(2,"0");if(q===1)return`#${J}${Q}${j}`.toUpperCase();let K=Math.round(q*255).toString(16).padStart(2,"0");return`#${J}${Q}${j}${K}`.toUpperCase()}convertToRGBA(_){if(typeof _!=="string")return null;let Z,$,q,J=1;if(_.startsWith("#")){let Q=_.slice(1);if(Q.length===8)J=parseInt(Q.slice(6),16)/255,Q=Q.slice(0,6);Z=parseInt(Q.slice(0,2),16),$=parseInt(Q.slice(2,4),16),q=parseInt(Q.slice(4,6),16)}else if(_.startsWith("rgba")||_.startsWith("rgb")){let Q=_.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)/);if(Q)Z=parseInt(Q[1]),$=parseInt(Q[2]),q=parseInt(Q[3]),J=Q[4]?parseFloat(Q[4]):1}else if(_.startsWith("hsla")||_.startsWith("hsl")){let Q=_.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*(\d+(?:\.\d+)?))?\)/);if(Q){let j=parseInt(Q[1])/360,W=parseInt(Q[2])/100,K=parseInt(Q[3])/100;if(J=Q[4]?parseFloat(Q[4]):1,W===0)Z=$=q=K;else{let N=(X,R,B)=>{if(B<0)B+=1;if(B>1)B-=1;if(B<0.16666666666666666)return X+(R-X)*6*B;if(B<0.5)return R;if(B<0.6666666666666666)return X+(R-X)*(0.6666666666666666-B)*6;return X},L=K<0.5?K*(1+W):K+W-K*W,G=2*K-L;Z=N(G,L,j+0.3333333333333333),$=N(G,L,j),q=N(G,L,j-0.3333333333333333)}Z=Math.round(Z*255),$=Math.round($*255),q=Math.round(q*255)}}else return null;return{r:Z,g:$,b:q,a:J}}}A("fig-input-color",U_);var W1=["srgb","srgb-linear","display-p3","oklab","oklch","hsl"],K1=["shorter","longer","increasing","decreasing"],R_=new Set(["oklch","hsl"]);function J0(_){let Z={..._??{}},$=String(Z.interpolationSpace??"srgb").toLowerCase();if(!W1.includes($))$="srgb";Z.interpolationSpace=$;let q=String(Z.hueInterpolation??"shorter").toLowerCase();return Z.hueInterpolation=K1.includes(q)?q:"shorter",Z}function Y_(_){let Z=J0(_),$={...Z,interpolationSpace:Z.interpolationSpace};if(R_.has(Z.interpolationSpace))$.hueInterpolation=Z.hueInterpolation;else delete $.hueInterpolation;return $}function O_(_){let Z=J0(_);if(Z.interpolationSpace==="srgb")return"";if(R_.has(Z.interpolationSpace))return`in ${Z.interpolationSpace} ${Z.hueInterpolation} hue`;return`in ${Z.interpolationSpace}`}function M0(_){if(!_)return"";return`url("${String(_).replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}")`}function N1(_){let Z=String(_??"").trim();if(!Z||Z.startsWith("{")||Z.startsWith("#"))return!1;if(Z.startsWith("data:video/"))return!0;try{let $=new URL(Z,"https://fig.local").pathname;return/\.(mp4|webm|mov|m4v|ogv)$/i.test($)}catch{return/\.(mp4|webm|mov|m4v|ogv)(?:[?#]|$)/i.test(Z)}}function e(_){let Z=_.replace(/^#/,"");return{r:parseInt(Z.substring(0,2),16),g:parseInt(Z.substring(2,4),16),b:parseInt(Z.substring(4,6),16)}}function s(_){let Z=_/255;return Z<=0.04045?Z/12.92:Math.pow((Z+0.055)/1.055,2.4)}function t(_){let Z=_<=0.0031308?12.92*_:1.055*Math.pow(_,0.4166666666666667)-0.055;return Math.round(Math.max(0,Math.min(1,Z))*255)}function K0(_,Z,$){let q=s(_),J=s(Z),Q=s($),j=Math.cbrt(0.4122214708*q+0.5363325363*J+0.0514459929*Q),W=Math.cbrt(0.2119034982*q+0.6806995451*J+0.1073969566*Q),K=Math.cbrt(0.0883024619*q+0.2817188376*J+0.6299787005*Q);return{l:0.2104542553*j+0.793617785*W-0.0040720468*K,a:1.9779984951*j-2.428592205*W+0.4505937099*K,b:0.0259040371*j+0.7827717662*W-0.808675766*K}}function w0(_,Z,$){let q=_+0.3963377774*Z+0.2158037573*$,J=_-0.1055613458*Z-0.0638541728*$,Q=_-0.0894841775*Z-1.291485548*$,j=q*q*q,W=J*J*J,K=Q*Q*Q;return{r:t(4.0767416621*j-3.3077115913*W+0.2309699292*K),g:t(-1.2684380046*j+2.6097574011*W-0.3413193965*K),b:t(-0.0041960863*j-0.7034186147*W+1.707614701*K)}}function x0(_,Z,$){return{l:_,c:Math.sqrt(Z*Z+$*$),h:Math.atan2($,Z)*180/Math.PI}}function L1(_,Z,$){let q=$*Math.PI/180;return{l:_,a:Z*Math.cos(q),b:Z*Math.sin(q)}}function b0(_,Z,$,q){let J=(_%360+360)%360,j=(Z%360+360)%360-J;switch(q){case"longer":if(j>0&&j<180)j-=360;else if(j<0&&j>-180)j+=360;else if(j===0)j=0;break;case"increasing":if(j<0)j+=360;break;case"decreasing":if(j>0)j-=360;break;default:if(j>180)j-=360;else if(j<-180)j+=360;break}return((J+j*$)%360+360)%360}function G1(_,Z,$,q){let J=[..._].sort((T,I)=>T.position-I.position),Q=Z*100;if(J.length===0)return"#888888";if(Q<=J[0].position)return J[0].color;if(Q>=J[J.length-1].position)return J[J.length-1].color;let j=0;while(j<J.length-1&&J[j+1].position<Q)j++;let W=J[j],K=J[j+1],N=K.position-W.position,L=N>0?(Q-W.position)/N:0,G=e(W.color),X=e(K.color),R,B,M,z=$||"oklab";if(z==="srgb-linear"){let T=s(G.r),I=s(G.g),U=s(G.b),P=s(X.r),D=s(X.g),E=s(X.b);R=t(T+(P-T)*L),B=t(I+(D-I)*L),M=t(U+(E-U)*L)}else if(z==="oklch"){let T=K0(G.r,G.g,G.b),I=K0(X.r,X.g,X.b),U=x0(T.l,T.a,T.b),P=x0(I.l,I.a,I.b),D=U.l+(P.l-U.l)*L,E=U.c+(P.c-U.c)*L,f=b0(U.h,P.h,L,q||"shorter"),x=L1(D,E,f),S=w0(x.l,x.a,x.b);R=S.r,B=S.g,M=S.b}else if(z==="hsl"){let T=y0(G.r,G.g,G.b),I=y0(X.r,X.g,X.b),U=b0(T.h,I.h,L,q||"shorter"),P=T.s+(I.s-T.s)*L,D=T.l+(I.l-T.l)*L,E=X1(U,P,D);R=E[0],B=E[1],M=E[2]}else if(z==="srgb")R=Math.round(G.r+(X.r-G.r)*L),B=Math.round(G.g+(X.g-G.g)*L),M=Math.round(G.b+(X.b-G.b)*L);else{let T=K0(G.r,G.g,G.b),I=K0(X.r,X.g,X.b),U=T.l+(I.l-T.l)*L,P=T.a+(I.a-T.a)*L,D=T.b+(I.b-T.b)*L,E=w0(U,P,D);R=E.r,B=E.g,M=E.b}return`#${R.toString(16).padStart(2,"0")}${B.toString(16).padStart(2,"0")}${M.toString(16).padStart(2,"0")}`.toUpperCase()}function y0(_,Z,$){let q=_/255,J=Z/255,Q=$/255,j=Math.max(q,J,Q),W=Math.min(q,J,Q),K=(j+W)/2;if(j===W)return{h:0,s:0,l:K*100};let N=j-W,L=K>0.5?N/(2-j-W):N/(j+W),G;switch(j){case q:G=((J-Q)/N+(J<Q?6:0))/6;break;case J:G=((Q-q)/N+2)/6;break;default:G=((q-J)/N+4)/6;break}return{h:G*360,s:L*100,l:K*100}}function X1(_,Z,$){Z/=100,$/=100;let q=(1-Math.abs(2*$-1))*Z,J=q*(1-Math.abs(_/60%2-1)),Q=$-q/2,j,W,K;if(_<60)j=q,W=J,K=0;else if(_<120)j=J,W=q,K=0;else if(_<180)j=0,W=q,K=J;else if(_<240)j=0,W=J,K=q;else if(_<300)j=J,W=0,K=q;else j=q,W=0,K=J;return[Math.round((j+Q)*255),Math.round((W+Q)*255),Math.round((K+Q)*255)]}class B_ extends HTMLElement{#Z="solid";#_;#q;#$;#J={color:"#D9D9D9",alpha:1};#j={type:"linear",angle:180,interpolationSpace:"srgb",hueInterpolation:"shorter",opacity:1,stops:[{position:0,color:"#D9D9D9",opacity:100},{position:100,color:"#737373",opacity:100}]};#K={url:null,scaleMode:"fill",scale:50,opacity:1};#Q={url:null,poster:null,scaleMode:"fill",scale:50,opacity:1,missing:!0};#W={live:!0,snapshot:null,deviceId:null,scaleMode:"fill",scale:50,opacity:1};#N={};constructor(){super()}static get observedAttributes(){return["value","disabled","mode","alpha","webcam-mode","default-video","aria-label","aria-describedby","aria-invalid","aria-required"]}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#X(),this.#T()}disconnectedCallback(){this.#_=null,this.#q=null,this.#$=null}#X(){let _=this.getAttribute("value");if(!_)return;try{let Z=JSON.parse(_);if(Z.type)this.#Z=Z.type;switch(this.#Z){case"solid":if(Z.color)this.#J.color=Z.color;if(Z.alpha!==void 0)this.#J.alpha=Z.alpha;if(Z.opacity!==void 0)this.#J.alpha=Z.opacity/100;break;case"gradient":if(Z.gradient)this.#j=J0({...this.#j,...Z.gradient}),this.#j.opacity=this.#R(Z.gradient.opacity??Z.opacity??Z.alpha,this.#j.opacity??1);else if(Z.opacity!==void 0||Z.alpha!==void 0)this.#j.opacity=this.#R(Z.opacity??Z.alpha,this.#j.opacity??1);break;case"image":if(Z.image)this.#K={...this.#K,...Z.image};break;case"video":if(Z.video)this.#Q={...this.#Q,...Z.video},this.#Q.missing=!this.#Q.url;break;case"webcam":if(Z.webcam&&typeof Z.webcam==="object"){let{stream:$,snapshot:q,...J}=Z.webcam;if(this.#W={...this.#W,...J},typeof q==="string"&&q)this.#W.snapshot=q}else if(Z.image?.url){if(this.#W.snapshot=Z.image.url,Z.image.scaleMode)this.#W.scaleMode=Z.image.scaleMode;if(Z.image.scale!=null)this.#W.scale=Z.image.scale}if(Z.opacity!==void 0)this.#W.opacity=Z.opacity;break;default:{let{type:$,...q}=Z;this.#N=q;break}}}catch(Z){if(_.startsWith("#")){if(this.#Z="solid",this.#J.color=_.slice(0,7),_.length>7){let $=_.slice(7,9);this.#J.alpha=parseInt($,16)/255}return}if(N1(_))this.#Z="video",this.#Q.url=_.trim(),this.#Q.missing=!1}}#G(){let _={},Z=this.getAttribute("mode");if(Z)_.mode=Z;let $=this.getAttribute("alpha");if($)_.alpha=$;for(let{name:Q,value:j}of this.attributes)if(Q.startsWith("picker-")&&Q!=="picker-anchor"&&Q!=="picker-experimental"){let W=Q.slice(7);if(/^on/i.test(W))continue;_[W]=j}if(!_["dialog-position"])_["dialog-position"]="left";let q=this.getAttribute("webcam-mode");if(q&&!_["webcam-mode"])_["webcam-mode"]=q;let J=this.getAttribute("default-video");if(J&&!_["default-video"])_["default-video"]=J;return _}#L(){switch(this.#Z){case"solid":return this.#J.color;case"gradient":{let Z=[...this.#j.stops].sort((J,Q)=>J.position-Q.position).map((J)=>{let Q=(J.opacity??100)/100;if(Q>=1)return`${J.color} ${J.position}%`;let{r:j,g:W,b:K}=e(J.color);return`rgba(${j}, ${W}, ${K}, ${Q}) ${J.position}%`}).join(", "),$=O_(this.#j),q=$?` ${$}`:"";switch(this.#j.type){case"radial":return`radial-gradient(circle${q}, ${Z})`;case"angular":return`conic-gradient(from ${this.#j.angle}deg${q}, ${Z})`;default:return`linear-gradient(${this.#j.angle}deg${q}, ${Z})`}}case"image":return this.#K.url?M0(this.#K.url):"#D9D9D9";case"video":return this.#Q.poster?M0(this.#Q.poster):"#D9D9D9";case"webcam":{let _=this.#W.snapshot||this.#_?.value?.webcam?.snapshot;return _?M0(_):""}default:return this.#Y()}}#U(){return this.#L()}#R(_,Z=1){if(_===void 0||_===null||_==="")return Z;let $=Number(_);if(!Number.isFinite($))return Z;if($>1)return Math.max(0,Math.min(1,$/100));return Math.max(0,Math.min(1,$))}#B(){switch(this.#Z){case"solid":return this.#J.alpha;case"gradient":return this.#j.opacity??1;case"image":return this.#K.opacity??1;case"video":return this.#Q.opacity??1;case"webcam":return this.#W.opacity??1;default:return this.#R(this.#N.opacity??this.#N.alpha,1)}}#M(){return this.querySelector(`[slot="mode-${this.#Z}"]`)}#O(){let _=this.#M()?.getAttribute("label");if(_)return _;if(!this.#Z)return"Fill";return this.#Z.charAt(0).toUpperCase()+this.#Z.slice(1)}#Y(){return this.#N.swatchBackground||this.#N.background||this.#N.css||this.#M()?.getAttribute("swatch-background")||""}#F(){if(!this.#_)return;for(let _ of[...this.querySelectorAll(":scope > [slot^='mode-']")])this.#_.append(_)}#V(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.setAttribute("aria-disabled",_?"true":"false");for(let Z of[this.#_,this.#q,this.#$]){if(!Z)continue;if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}}#I(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#V();let _=this.getAttribute("aria-label")||"Fill",Z=this.getAttribute("aria-describedby"),$=this.getAttribute("aria-invalid"),q=this.getAttribute("aria-required"),J=(Q,j)=>{if(!Q)return;if(Q.setAttribute("aria-label",j),Z)Q.setAttribute("aria-describedby",Z);else Q.removeAttribute("aria-describedby");if($)Q.setAttribute("aria-invalid",$);else Q.removeAttribute("aria-invalid");if(q)Q.setAttribute("aria-required",q);else Q.removeAttribute("aria-required")};J(this.#_,`${_} picker`),J(this.#$,`${_} hex color`),J(this.#q,`${_} opacity`)}#A(_,Z){if(this.getAttribute("alpha")==="false")return null;return Y("fig-tooltip",{text:"Opacity"},Y("fig-input-number",{className:"fig-input-fill-opacity",placeholder:"##",min:"0",max:"100",value:_,units:"%",disabled:Z}))}#H(_){let Z=null,$=1;switch(this.#Z){case"solid":return[Y("fig-input-text",{type:"text",className:"fig-input-fill-hex",placeholder:"000000",value:this.#J.color.slice(1).toUpperCase(),disabled:_}),this.#A(Math.round(this.#J.alpha*100),_)].filter(Boolean);case"gradient":Z=this.#j.type.charAt(0).toUpperCase()+this.#j.type.slice(1),$=this.#j.opacity??1;break;case"image":Z="Image",$=this.#K.opacity??1;break;case"video":Z="Video",$=this.#Q.opacity??1;break;case"webcam":Z="Webcam",$=this.#W.opacity??1;break;default:Z=this.#O(),$=this.#R(this.#N.opacity??this.#N.alpha,1);break}return[Y("label",{className:"fig-input-fill-label"},Z),this.#A(Math.round($*100),_)].filter(Boolean)}#T(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=JSON.stringify(this.value),$=this.#G(),q=Y("fig-swatch",{background:this.#L(),alpha:this.#B(),disabled:_}),J=[...this.querySelectorAll("[slot^='mode-']")],Q=Y("fig-fill-picker",{value:Z,disabled:_,...$},[q,...J]),j=Y("div",{className:"input-combo"},[Q,this.#H(_)]);this.replaceChildren(j),this.#z(),queueMicrotask(()=>{this.#F(),this.#E(),this.#C()})}#z(){this.#_=this.querySelector("fig-fill-picker"),this.#q=this.querySelector(".fig-input-fill-opacity"),this.#$=this.querySelector(".fig-input-fill-hex");let _=this.querySelector(".fig-input-fill-label");if(this.#I(),_&&this.#_)_.addEventListener("click",()=>{let Z=this.#_.querySelector("fig-swatch");if(Z)Z.click()});if(this.#_){let Z=this.getAttribute("picker-anchor");if(!Z||Z==="self")this.#_.anchorElement=this;else{let $=null;try{$=document.querySelector(Z)}catch{}if($)this.#_.anchorElement=$}this.#_.addEventListener("input",($)=>{$.stopPropagation();let q=$.detail;if(!q)return;let J=q.type,Q=J!==this.#Z;switch(this.#Z=J,J){case"solid":this.#J.color=q.color,this.#J.alpha=q.alpha;break;case"gradient":if(q.gradient)this.#j=J0({...this.#j,...q.gradient});break;case"image":if(q.image)this.#K=q.image;break;case"video":if(q.video)this.#Q={...this.#Q,...q.video};break;case"webcam":if(q.webcam){let{stream:j,snapshot:W,...K}=q.webcam;if(this.#W={...this.#W,...K},typeof W==="string"&&W)this.#W.snapshot=W}else if(q.image?.url)this.#W.snapshot=q.image.url;if(!this.#W.snapshot){let j=this.#_?.value?.webcam?.snapshot;if(j)this.#W.snapshot=j}break;default:{let{type:j,colorSpace:W,...K}=q;this.#N=K;break}}if(Q)this.#k();else this.#C();this.#E(),this.#b()}),this.#_.addEventListener("change",($)=>{$.stopPropagation(),this.#D()}),this.#_.addEventListener("loaded",($)=>{$.stopPropagation(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,detail:$.detail}))}),this.#_.addEventListener("webcamstream",($)=>{this.dispatchEvent(new CustomEvent("webcamstream",{bubbles:!0,composed:!0,detail:$.detail}))})}if(this.#$)this.#$.addEventListener("input",(Z)=>{Z.stopPropagation();let $="#"+Z.target.value.replace("#","");this.#J.color=$,this.#P(),this.#b()}),this.#$.addEventListener("change",(Z)=>{Z.stopPropagation(),this.#D()});if(this.#q)this.#q.addEventListener("input",(Z)=>{Z.stopPropagation();let $=parseFloat(Z.target.value),J=(isNaN($)?100:$)/100;switch(this.#Z){case"solid":this.#J.alpha=J;break;case"gradient":this.#j.opacity=J;break;case"image":this.#K.opacity=J;break;case"video":this.#Q.opacity=J;break;case"webcam":this.#W.opacity=J;break;default:this.#N.opacity=J;break}this.#P(),this.#E(),this.#b()}),this.#q.addEventListener("change",(Z)=>{Z.stopPropagation(),this.#D()})}#C(){switch(this.#Z){case"solid":if(this.#$)this.#$.setAttribute("value",this.#J.color.slice(1).toUpperCase());if(this.#q)this.#q.setAttribute("value",Math.round(this.#J.alpha*100));break;case"gradient":{let _=this.querySelector(".fig-input-fill-label");if(_){let Z=this.#j.type.charAt(0).toUpperCase()+this.#j.type.slice(1);_.textContent=Z}if(this.#q)this.#q.setAttribute("value",Math.round((this.#j.opacity??1)*100));break}case"image":if(this.#q)this.#q.setAttribute("value",Math.round((this.#K.opacity??1)*100));break;case"video":if(this.#q)this.#q.setAttribute("value",Math.round((this.#Q.opacity??1)*100));break;case"webcam":if(this.#q)this.#q.setAttribute("value",Math.round((this.#W.opacity??1)*100));break;default:{let _=this.querySelector(".fig-input-fill-label");if(_)_.textContent=this.#O();if(this.#q)this.#q.setAttribute("value",Math.round(this.#R(this.#N.opacity??this.#N.alpha,1)*100));break}}}#k(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.querySelector(".input-combo");if(!Z)return;let $=Z.querySelector(".fig-input-fill-label"),q=Z.querySelector(".fig-input-fill-hex"),J=Z.querySelector(".fig-input-fill-opacity"),Q=Z.querySelectorAll("fig-tooltip");$?.remove(),q?.remove(),Q.forEach((W)=>W.remove()),Z.append(...this.#H(_)),this.#q=this.querySelector(".fig-input-fill-opacity"),this.#$=this.querySelector(".fig-input-fill-hex");let j=this.querySelector(".fig-input-fill-label");if(this.#I(),j&&this.#_)j.addEventListener("click",()=>{let W=this.#_.querySelector("fig-swatch");if(W)W.click()});if(this.#$)this.#$.addEventListener("input",(W)=>{W.stopPropagation();let K="#"+W.target.value.replace("#","");this.#J.color=K,this.#P(),this.#b()}),this.#$.addEventListener("change",(W)=>{W.stopPropagation(),this.#D()});if(this.#q)this.#q.addEventListener("input",(W)=>{W.stopPropagation();let K=parseFloat(W.target.value),L=(isNaN(K)?100:K)/100;switch(this.#Z){case"solid":this.#J.alpha=L;break;case"gradient":this.#j.opacity=L;break;case"image":this.#K.opacity=L;break;case"video":this.#Q.opacity=L;break;case"webcam":this.#W.opacity=L;break;default:this.#N.opacity=L;break}this.#P(),this.#f(L),this.#b()}),this.#q.addEventListener("change",(W)=>{W.stopPropagation(),this.#D()})}#P(){if(this.#_)this.#_.setAttribute("value",JSON.stringify(this.value));this.#E()}#E(){let _=this.#_?.querySelector("fig-swatch");if(!_)return;let Z=this.#L();if(this.#Z==="webcam"&&!Z){if((_.getAttribute("background")||"").startsWith("url(")){_.setAttribute("alpha",this.#B());return}}_.setAttribute("background",Z),_.setAttribute("alpha",this.#B())}#f(_){let Z=this.#_?.querySelector("fig-swatch");if(Z)Z.setAttribute("alpha",_)}#b(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#D(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get webcamStream(){return this.#_?.webcamStream??null}releaseWebcam(){this.#_?.releaseWebcam?.()}#h(){let _=this.#Q.url??null;return{url:_,poster:this.#Q.poster??null,scaleMode:this.#Q.scaleMode||"fill",scale:this.#Q.scale??50,opacity:this.#Q.opacity??1,..._?{}:{missing:!0}}}#y(){return{live:this.#W.live!==!1,snapshot:this.#W.snapshot??this.#_?.value?.webcam?.snapshot??null,deviceId:this.#W.deviceId??null,scaleMode:this.#W.scaleMode||"fill",scale:this.#W.scale??50,opacity:this.#W.opacity??1}}get value(){switch(this.#Z){case"solid":return{type:"solid",colorSpace:"srgb",color:this.#J.color,alpha:this.#J.alpha,opacity:Math.round(this.#J.alpha*100)};case"gradient":return{type:"gradient",colorSpace:"srgb",gradient:Y_(this.#j),css:this.#U()};case"image":return{type:"image",colorSpace:"srgb",image:{...this.#K}};case"video":return{type:"video",colorSpace:"srgb",video:this.#h()};case"webcam":return{type:"webcam",colorSpace:"srgb",webcam:this.#y()};default:return{type:this.#Z,...this.#N}}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":let q=this.#Z;if(this.#X(),this.#_)if(this.#Z!==q)this.#T();else this.#P(),this.#C();break;case"disabled":this.#V();break;case"mode":case"webcam-mode":case"default-video":if(this.#_)if($)this.#_.setAttribute(_,$);else this.#_.removeAttribute(_);break;case"alpha":if(this.isConnected)this.#T();break;case"aria-label":case"aria-describedby":case"aria-invalid":case"aria-required":this.#I();break}}}A("fig-input-fill",B_);class M_ extends HTMLElement{#Z=[];#_=[];#q=[];#$=null;#J=this.#N.bind(this);#j=()=>this.focus();static get observedAttributes(){return["value","disabled","min","max","open","fixed"]}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){let Z=this.open;if(_)this.setAttribute("open","");else this.removeAttribute("open");if(Z!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}get#K(){return this.hasAttribute("fixed")&&this.getAttribute("fixed")!=="false"}get#Q(){let _=parseInt(this.getAttribute("min"));return isNaN(_)?2:_}get#W(){let _=parseInt(this.getAttribute("max"));return isNaN(_)?8:_}connectedCallback(){if(this.setAttribute("tabindex","-1"),this.removeEventListener("focus",this.#j),this.addEventListener("focus",this.#j),this.removeEventListener("keydown",this.#J),this.addEventListener("keydown",this.#J),this.#$)cancelAnimationFrame(this.#$);this.#$=requestAnimationFrame(()=>{if(this.#$=null,!this.isConnected)return;this.#X(),this.#G()})}disconnectedCallback(){if(this.#$)cancelAnimationFrame(this.#$),this.#$=null;this.removeEventListener("keydown",this.#J),this.removeEventListener("focus",this.#j),this.#_=[],this.#q=[]}#N(_){if(_.key!=="Enter"&&_.key!==" ")return;if(_.target!==this.querySelector(".palette-colors-inline"))return;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;_.preventDefault(),_.stopPropagation(),this.open=!0,this.querySelector(".palette-colors-inline")?.setAttribute("aria-expanded","true")}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":this.#X(),this.#Y();break;case"disabled":this.#F();break;case"min":case"max":case"fixed":this.#G();break;case"open":this.#V();break}}#X(){let _=this.getAttribute("value");if(!_){this.#Z=[];return}let Z=_.trim();try{let $=JSON.parse(Z);if(Array.isArray($)){this.#Z=$.map((q)=>{if(typeof q==="string")return{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1};if(q&&typeof q==="object")return{color:q.color||"#D9D9D9",alpha:q.alpha!==void 0?q.alpha:q.opacity!==void 0?q.opacity/100:1};return{color:"#D9D9D9",alpha:1}});return}}catch($){}if(Z.includes(",")){this.#Z=Z.split(",").map(($)=>{let q=$.trim();return{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1}});return}if(Z.startsWith("#")){this.#Z=[{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1}];return}this.#Z=[]}get value(){return this.#Z.map((_)=>({..._}))}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}#G(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.replaceChildren(),this.#_=[],this.#q=[];let Z=document.createElement("div");Z.className="palette-colors-inline",Z.setAttribute("role","button"),Z.setAttribute("tabindex",_?"-1":"+0"),Z.setAttribute("aria-expanded",String(this.open)),Z.setAttribute("aria-label","Edit palette colors"),Z.addEventListener("blur",()=>{Z.style.removeProperty("outline"),Z.style.removeProperty("outline-offset")});let $=()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.open=!0,Z.setAttribute("aria-expanded","true")};Z.addEventListener("click",$);let q=document.createElement("div");if(q.className="palette-colors",this.#Z.forEach((Q,j)=>{q.appendChild(this.#L(Q,j,_,{inline:!0}))}),Z.appendChild(q),this.appendChild(Z),this.#V(),!this.#K)this.#B(_,this);let J=document.createElement("div");J.className="palette-colors-expanded",this.#Z.forEach((Q,j)=>{if(J.appendChild(this.#L(Q,j,_)),!this.#K)J.appendChild(this.#U(j,_))}),this.appendChild(J)}#L(_,Z,$,{inline:q=!1}={}){let J=_.alpha<1?_.color+Math.round(_.alpha*255).toString(16).padStart(2,"0"):_.color,Q=document.createElement("fig-input-color");if(Q.setAttribute("value",J),q)Q.setAttribute("text","false"),Q.setAttribute("alpha","true"),Q.setAttribute("swatch-disabled","");else Q.setAttribute("text","true"),Q.setAttribute("alpha","true"),Q.setAttribute("full","");if($)Q.setAttribute("disabled","");let j=q?this.#q:this.#_,W=(K)=>{K.stopPropagation();let N=K.currentTarget;this.#Z[Z]={color:N.hexOpaque||this.#Z[Z].color,alpha:N.rgba?N.rgba.a:this.#Z[Z].alpha};let L=j[Z];if(L){let G=this.#Z[Z],X=G.alpha<1?G.color+Math.round(G.alpha*255).toString(16).padStart(2,"0"):G.color;L.setAttribute("value",X)}};if(Q.addEventListener("input",(K)=>{W(K),this.#A()}),Q.addEventListener("change",(K)=>{W(K),this.#H()}),q)this.#_.push(Q);else this.#q.push(Q);return Q}#U(_,Z){let $=document.createElement("fig-button");if($.setAttribute("variant","ghost"),$.setAttribute("icon","true"),$.setAttribute("aria-label","Remove color"),$.className="palette-remove-btn",Z||this.#Z.length<=this.#Q)$.setAttribute("disabled","");$.appendChild(h("minus")),$.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.#R(_)});let q=document.createElement("fig-tooltip");return q.setAttribute("text","Remove color"),q.appendChild($),q}#R(_){if(this.#K)return;if(_<0||_>=this.#Z.length)return;if(this.#Z.length<=this.#Q)return;this.#Z.splice(_,1),this.#_=[],this.#q=[],this.#G(),this.#H()}#B(_,Z=this){let $=this.#Z.length>=this.#W,q=document.createElement("fig-button");if(q.setAttribute("variant","ghost"),q.setAttribute("icon","true"),q.setAttribute("aria-label","Add color"),q.className="palette-add-btn",_||$)q.setAttribute("disabled","");q.appendChild(h("add")),q.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#Z.length>=this.#W)return;this.open=!0,this.#M({color:"#D9D9D9",alpha:1})});let J=document.createElement("fig-tooltip");J.setAttribute("text","Add color"),J.appendChild(q),Z.appendChild(J)}#M(_){if(this.#K)return;this.#Z.push(_);let Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",$=this.#Z.length-1,q=this.#L(_,$,Z,{inline:!0}),J=this.querySelector(".palette-colors");if(J)J.appendChild(q);let Q=this.#L(_,$,Z),j=this.querySelector(".palette-colors-expanded");if(j)j.appendChild(Q),j.appendChild(this.#U($,Z));if(this.#Z.length>=this.#W){let W=this.querySelector(".palette-add-btn");if(W)W.setAttribute("disabled","")}this.#I(Z),this.#H()}#O(_){let Z=this.#Z[_];if(!Z)return;let $=Z.alpha<1?Z.color+Math.round(Z.alpha*255).toString(16).padStart(2,"0"):Z.color,q=this.#_[_];if(q)q.setAttribute("value",$);let J=this.#q[_];if(J)J.setAttribute("value",$)}#Y(){if(this.#_.length!==this.#Z.length){this.#G();return}this.#Z.forEach((_,Z)=>{this.#O(Z)})}#F(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";[...this.#_,...this.#q].forEach(($)=>{if(_)$.setAttribute("disabled","");else $.removeAttribute("disabled")});let Z=this.querySelector(".palette-add-btn");if(Z)if(_||this.#Z.length>=this.#W)Z.setAttribute("disabled","");else Z.removeAttribute("disabled");this.#I(_),this.#V()}#V(){let _=this.querySelector(".palette-colors-inline");if(!_)return;let Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";_.setAttribute("tabindex",Z?"-1":"+0"),_.setAttribute("aria-disabled",String(Z)),_.setAttribute("aria-expanded",String(this.open))}focus(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let _=this.querySelector(".palette-colors-inline");if(!_)return;_.style.outline="var(--figma-focus-outline)",_.style.outlineOffset="var(--figma-focus-outline-offset)",_.focus()}#I(_=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){let Z=_||this.#Z.length<=this.#Q;this.querySelectorAll(".palette-remove-btn").forEach(($)=>{if(Z)$.setAttribute("disabled","");else $.removeAttribute("disabled")})}#A(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#H(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}}A("fig-input-palette",M_);class q0 extends HTMLElement{static SHIFT_SNAP=5;#Z;#_;#q=!1;#$=null;#J=null;#j=null;#K=null;anchorElement=null;#Q={type:"linear",angle:90,interpolationSpace:"srgb",hueInterpolation:"shorter",stops:[{position:0,color:"#D9D9D9",opacity:100},{position:100,color:"#737373",opacity:100}]};constructor(){super()}static get observedAttributes(){return["value","disabled","edit","mode","size"]}get#W(){let _=this.getAttribute("edit");if(_==="false")return"false";if(_==="picker")return"picker";return"true"}get#N(){return this.#W==="true"}get#X(){return this.getAttribute("mode")==="tip"?"tip":"handle"}#G(){if(!this.#_)return null;return this.#_.querySelector("fig-handle:not(.fig-input-gradient-ghost):not([disabled])")}#L(){if(!this.#_)return null;let _=this.#_.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)");if(_)return _;let Z=document.activeElement;if(!(Z instanceof Element)||!this.#_.contains(Z))return null;return Z.closest("fig-handle:not(.fig-input-gradient-ghost)")}#U(_){if(!_||!this.#_)return;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z)=>{if(Z!==_)Z.deselect()}),_.select(),_.focus()}#R(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){this.setAttribute("tabindex","-1");return}this.setAttribute("tabindex",this.#N?"-1":"0")}#B(_){let Z=J0(_);return{...Z,type:["linear","radial","angular"].includes(Z.type)?Z.type:"linear",angle:Number.isFinite(Number(Z.angle))?Number(Z.angle):90,centerX:Number.isFinite(Number(Z.centerX))?Number(Z.centerX):50,centerY:Number.isFinite(Number(Z.centerY))?Number(Z.centerY):50}}connectedCallback(){if(this.#F(),this.#C(),this.#M(),this.removeEventListener("keydown",this.#Y),this.addEventListener("keydown",this.#Y),this.#N)document.addEventListener("keydown",this.#O)}#M(){if(this.#W!=="picker"||l())return;this.#K??=customElements.whenDefined("fig-fill-picker").then(()=>{if(!this.isConnected||this.#W!=="picker")return;this.#C()})}disconnectedCallback(){if(document.removeEventListener("keydown",this.#O),this.removeEventListener("keydown",this.#Y),this.#J)this.#J.disconnect(),this.#J=null;if(this.#j!==null)cancelAnimationFrame(this.#j),this.#j=null;clearTimeout(this.#$),this.removeEventListener("pointerenter",this.#D),this.removeEventListener("pointermove",this.#y),this.removeEventListener("pointerleave",this.#h),this.removeEventListener("click",this.#x),this.removeEventListener("dblclick",this.#w)}#O=(_)=>{let Z=document.activeElement,$=Z instanceof Node&&this.contains(Z),q=this.#_?.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)"),J=!Z||Z===document.body||Z===document.documentElement;if(!$&&!(q&&J))return;let Q=Z&&(Z.tagName==="INPUT"||Z.tagName==="TEXTAREA"||Z.isContentEditable);if(!this.#_)return;if(_.key==="Tab"&&!Q){let L=this.#L();if(!L)return;_.preventDefault();let G=[...this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")],X=G.indexOf(L),R=_.shiftKey?(X-1+G.length)%G.length:(X+1)%G.length;L.deselect(),this.#U(G[R]);return}if((_.key==="ArrowLeft"||_.key==="ArrowRight")&&!Q){let L=this.#L();if(!L)return;let G=parseInt(L.dataset.stopIndex,10);if(isNaN(G)||!this.#Q.stops[G])return;_.preventDefault();let X=(_.key==="ArrowRight"?1:-1)*(_.shiftKey?q0.SHIFT_SNAP:1),R=this.#Q.stops[G];R.position=Math.max(0,Math.min(100,R.position+X)),L.setAttribute("value",`${R.position}% 50%`);let B=L.closest("fig-tooltip");if(B)B.text=`${Math.round(R.position)}%`,B.setAttribute("show","true"),B.showPopup(),L.hideColorTip(),clearTimeout(this.#$),this.#$=setTimeout(()=>{B.removeAttribute("show"),L.showColorTip()},600);this.#c(),this.#o(),this.#s();return}if(_.key!=="Delete"&&_.key!=="Backspace")return;if(Q)return;if(this.#Q.stops.length<=2)return;let j=this.#L();if(!j)return;let W=parseInt(j.dataset.stopIndex,10);if(isNaN(W)||!this.#Q.stops[W])return;_.preventDefault(),this.#Q.stops.splice(W,1),this.#v(),this.#c(),this.#o(),this.#s();let K=Math.min(W,this.#Q.stops.length-1),N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[K];this.#U(N)};#Y=(_)=>{if(this.#W!=="picker")return;if(_.key!=="Enter"&&_.key!==" ")return;if(_.altKey||_.ctrlKey||_.metaKey)return;if(F(this,"disabled"))return;let Z=this.querySelector("fig-fill-picker");if(!Z||typeof Z.open!=="function")return;_.preventDefault(),Z.open()};#F(){let _=this.getAttribute("value");if(!_)return;try{let Z=JSON.parse(_);if(Z?.type==="gradient"&&Z.gradient){this.#Q=this.#B({...this.#Q,...Z.gradient});return}if(Z?.gradient)this.#Q=this.#B({...this.#Q,...Z.gradient})}catch(Z){}}#V(){let _=this.#B(this.#Q),$=[..._.stops].sort((Q,j)=>Q.position-j.position).map((Q)=>{let j=(Q.opacity??100)/100;if(j>=1)return`${Q.color} ${Q.position}%`;let{r:W,g:K,b:N}=e(Q.color);return`rgba(${W}, ${K}, ${N}, ${j}) ${Q.position}%`}).join(", "),q=O_(_),J=q?` ${q}`:"";if(this.#W==="picker")switch(_.type){case"radial":return`radial-gradient(circle at ${_.centerX}% ${_.centerY}%${J}, ${$})`;case"angular":return`conic-gradient(from ${_.angle}deg${J}, ${$})`;default:return`linear-gradient(${_.angle}deg${J}, ${$})`}return`linear-gradient(to right${J}, ${$})`}#I(_){let Z=(_.opacity??100)/100;if(Z>=1)return _.color;let{r:$,g:q,b:J}=e(_.color);return`rgba(${$}, ${q}, ${J}, ${Z})`}#A(){if(!this.#Z)return;let _=this.getAttribute("size");if(_)this.#Z.setAttribute("size",_);else this.#Z.removeAttribute("size")}#H(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";return this.#Q.stops.map((Z,$)=>Y("fig-tooltip",{action:"manual",text:`${Math.round(Z.position)}%`},Y("fig-handle",{drag:!0,"drag-axes":"x","drag-surface":".fig-input-gradient-track",type:"color",tip:this.#X==="tip"?"color":null,color:this.#I(Z),value:`${Z.position}% 50%`,"hit-area":"4","data-stop-index":$,disabled:_})))}#T=null;#z=!1;#C(){this.#J?.disconnect(),this.#J=null;let _=F(this,"disabled"),Z=this.#W,$=this.getAttribute("size"),q=Y("fig-swatch",{background:this.#V(),size:$||null,disabled:_});if(Z==="picker"&&l()){let j=JSON.stringify(this.value),W=Y("fig-fill-picker",{mode:"gradient",value:j,disabled:_},q);this.replaceChildren(W),this.#Z=q,this.#_=null,this.#k(),this.#R();return}let J=Z==="true"||Z==="picker",Q=J?Y("div",{className:"fig-input-gradient-track"},this.#H()):null;if(this.replaceChildren(...Q?[q,Q]:[q]),this.#Z=q,this.#_=Q,J)this.#E(),this.#i();this.#R()}#k(){let _=this.querySelector("fig-fill-picker");if(!_)return;_.anchorElement=this.anchorElement||this;let Z=($)=>{$.stopPropagation();let q=$.detail;if(!q?.gradient)return;if(this.#Q=this.#B({...this.#Q,...q.gradient}),this.#W==="picker"&&typeof q.css==="string"&&q.css){this.#Z?.setAttribute("background",q.css),this.#A();return}this.#c()};_.addEventListener("input",($)=>{Z($),this.#o()}),_.addEventListener("change",($)=>{Z($),this.#s()})}#P(_){return G1(this.#Q.stops,_,this.#Q.interpolationSpace,this.#Q.hueInterpolation)}#E(){if(!this.#_||this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let _=document.createElement("fig-handle");if(_.classList.add("fig-input-gradient-ghost"),_.setAttribute("type","color"),this.#X==="tip")_.setAttribute("tip","add");_.style.position="absolute",_.style.top="50%",_.style.transform="translate(-50%, -50%)",_.style.pointerEvents="none",_.style.opacity="0",_.style.transition="opacity 0.15s",this.#_.appendChild(_),this.#T=_,this.addEventListener("pointerenter",this.#D),this.addEventListener("pointermove",this.#y),this.addEventListener("pointerleave",this.#h),this.addEventListener("click",this.#x),this.addEventListener("dblclick",this.#w)}#f(){if(!this.#T)return;this.#T.style.opacity="1"}#b(){if(!this.#T)return;this.#T.style.opacity="0"}#D=()=>{if(this.#q)return;this.#f()};#h=()=>{this.#b()};#y=(_)=>{if(this.#q){this.#b();return}if(!this.#T||!this.#_)return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){this.#b();return}let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width));this.#T.style.left=`${$*100}%`;let q=this.#P($);this.#T.setAttribute("color",q),this.#f()};#g(){let _=this.#Q.stops.length;if(_<2)return;for(let Z=0;Z<_;Z++)this.#Q.stops[Z].position=Math.round(Z/(_-1)*100);this.#v(),this.#c(),this.#o(),this.#s()}#w=(_)=>{if(!this.#_)return;if(!_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;this.#g(),this.#_.querySelectorAll("fig-handle[selected]").forEach((Z)=>{Z.removeAttribute("selected")})};#x=(_)=>{if(!this.#_)return;if(this.#q)return;if(this.#z){this.#z=!1;return}if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){if(_.shiftKey){let j=_.target.closest("fig-handle"),W=parseInt(j?.dataset.stopIndex,10);if(this.#g(),!isNaN(W))this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((K)=>{if(parseInt(K.dataset.stopIndex,10)===W)K.select();else K.deselect()});_.stopPropagation()}return}let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width)),q=Math.round($*100),J=this.#P($);this.#Q.stops.push({position:q,color:J,opacity:100}),this.#Q.stops.sort((j,W)=>j.position-W.position);let Q=this.#Q.stops.findIndex((j)=>j.position===q&&j.color===J);this.#v(),this.#c(),this.#o(),this.#s(),requestAnimationFrame(()=>{let W=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[Q];if(W)this.#U(W)})};#S(){if(this.#j=null,!this.isConnected)return;if(!this.#_)return;let _=this.#Q.stops;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z,$)=>{if($>=_.length)return;Z.removeAttribute("value"),Z.setAttribute("value",`${_[$].position}% 50%`)})}refreshLayout(){this.#S()}#m(){if(this.#j!==null)return;this.#j=requestAnimationFrame(()=>this.#S())}#v(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),Z=this.#Q.stops;if(_.length!==Z.length){let $=this.#T;if(this.#_.replaceChildren(...this.#H()),$)this.#_.appendChild($);this.#p(),this.#d(),this.#m();return}for(let $=0;$<Z.length;$++){let q=_[$],J=Z[$];if(q.dataset.stopIndex=$,q.setAttribute("value",`${J.position}% 50%`),q.setAttribute("color",this.#I(J)),this.#X==="tip")q.setAttribute("tip","color");else q.removeAttribute("tip");let Q=q.closest("fig-tooltip");if(Q)Q.setAttribute("text",`${Math.round(J.position)}%`)}this.#p()}#p(){if(!this.#_)return;let _=this.#X==="tip";if(this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z)=>{if(_)Z.setAttribute("tip","color");else Z.removeAttribute("tip")}),this.#T)if(_)this.#T.setAttribute("tip","add");else this.#T.removeAttribute("tip")}#d(){if(!this.#J||!this.#_)return;this.#J.disconnect(),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#J.observe(_,{attributes:!0,attributeFilter:["color"]})})}#a(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),Z=this.#Q.stops,$=new Set;_.forEach((q)=>{let J=Math.round(parseFloat(q.getAttribute("value"))||0),Q=(q.getAttribute("color")||"").toUpperCase(),j=-1;for(let W=0;W<Z.length;W++){if($.has(W))continue;if(Z[W].position===J&&Z[W].color.toUpperCase()===Q){j=W;break}}if(j===-1){let W=1/0;for(let K=0;K<Z.length;K++){if($.has(K))continue;let N=Math.abs(Z[K].position-J);if(N<W)W=N,j=K}}if(j!==-1)$.add(j),q.dataset.stopIndex=j})}#c(){if(!this.#Z)return;this.#Z.setAttribute("background",this.#V()),this.#A()}#i(){if(!this.#_)return;this.#_.addEventListener("pointerdown",(_)=>{if(F(this,"disabled"))return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;if(_.button!==0)return;_.preventDefault(),_.stopPropagation();let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width)),q=Math.round($*100),J=this.#P($);this.#Q.stops.push({position:q,color:J,opacity:100}),this.#Q.stops.sort((K,N)=>K.position-N.position);let Q=this.#Q.stops.findIndex((K)=>K.position===q&&K.color===J);this.#z=!0,this.#v(),this.#c(),this.#o(),this.#b();let W=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[Q];if(W)this.#U(W),W.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,clientX:_.clientX,clientY:_.clientY,pointerId:_.pointerId,pointerType:_.pointerType,button:_.button,buttons:_.buttons}))}),this.#_.addEventListener("input",(_)=>{let Z=_.target.closest("fig-handle");if(!Z)return;if(_.stopPropagation(),_.detail?.color){let K=parseInt(Z.dataset.stopIndex,10);if(!isNaN(K)&&this.#Q.stops[K]){if(this.#Q.stops[K].color=_.detail.color,_.detail.opacity!==void 0)this.#Q.stops[K].opacity=_.detail.opacity;else if(_.detail.alpha!==void 0)this.#Q.stops[K].opacity=Math.round(_.detail.alpha*100);Z.setAttribute("color",this.#I(this.#Q.stops[K])),this.#c(),this.#o()}return}if(!this.#q)Z.style.zIndex="5";this.#q=!0;let $=parseInt(Z.dataset.stopIndex,10);if(isNaN($)||!this.#Q.stops[$])return;let q=_.detail?.px??0,J=Math.round(q*100),Q=J,j=this.#_.getBoundingClientRect().width;if(_.detail?.shiftKey)Q=Math.round(Q/q0.SHIFT_SNAP)*q0.SHIFT_SNAP;else{let K=j>0?5/j*100:0;for(let N=0;N<this.#Q.stops.length;N++){if(N===$)continue;if(Math.abs(this.#Q.stops[N].position-Q)<=K){Q=this.#Q.stops[N].position;break}}}if(this.#Q.stops[$].position=Q,Q!==J)Z.style.left=`${Q/100*j}px`;let W=Z.closest("fig-tooltip");if(W){if(W.text=`${Math.round(Q)}%`,!W.hasAttribute("show"))W.setAttribute("show","true"),Z.hideColorTip()}this.#c(),this.#o()}),this.#_.addEventListener("change",(_)=>{let Z=_.target.closest("fig-handle");if(!Z)return;if(_.stopPropagation(),_.detail?.color){let K=parseInt(Z.dataset.stopIndex,10);if(!isNaN(K)&&this.#Q.stops[K]){if(this.#Q.stops[K].color=_.detail.color,_.detail.opacity!==void 0)this.#Q.stops[K].opacity=_.detail.opacity;Z.setAttribute("color",this.#I(this.#Q.stops[K])),this.#c(),this.#s()}return}Z.style.zIndex="";let $=Z.closest("fig-tooltip");if($)$.removeAttribute("show");Z.showColorTip();let q=parseInt(Z.dataset.stopIndex,10);if(isNaN(q)||!this.#Q.stops[q])return;let J=_.detail?.px??0,Q=Math.round(J*100),j=this.#_.getBoundingClientRect().width,W=j>0?5/j*100:0;for(let K=0;K<this.#Q.stops.length;K++){if(K===q)continue;if(Math.abs(this.#Q.stops[K].position-Q)<=W){Q=this.#Q.stops[K].position;break}}this.#Q.stops[q].position=Q,Z.style.left=`${Q/100*j}px`,this.#Q.stops.sort((K,N)=>K.position-N.position),this.#a(),this.#c(),this.#s(),requestAnimationFrame(()=>{this.#q=!1})}),this.#J=new MutationObserver((_)=>{for(let Z of _){if(Z.attributeName!=="color")continue;let $=Z.target;if($.classList.contains("fig-input-gradient-ghost"))continue;let q=parseInt($.dataset.stopIndex,10);if(isNaN(q)||!this.#Q.stops[q])continue;let J=$.getAttribute("color");if(!J||!J.startsWith("#"))continue;if(J!==this.#Q.stops[q].color)this.#Q.stops[q].color=J,this.#c(),this.#o()}}),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#J.observe(_,{attributes:!0,attributeFilter:["color"]})})}#o(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#s(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){return{type:"gradient",gradient:Y_(this.#B(this.#Q))}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}focus(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#N){let Z=this.#G();if(Z){Z.focus(_);return}}HTMLElement.prototype.focus.call(this,_)}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":this.#F(),this.#c(),this.#v();break;case"disabled":this.#u();break;case"edit":if(this.#C(),this.#M(),this.#N)document.addEventListener("keydown",this.#O);else document.removeEventListener("keydown",this.#O);break;case"mode":this.#p();break;case"size":this.#A();break}}#u(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.#R(),this.#Z)if(_)this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled");if(this.#_)for(let Z of this.#_.querySelectorAll("fig-handle"))if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}}A("fig-input-gradient",q0);class U0 extends HTMLElement{#Z=null;#_;#q;#$;#J=!1;constructor(){super();if(this.input=document.createElement("input"),this.name=this.getAttribute("name")||"",this.input.value=this.getAttribute("value")||"",this.input.setAttribute("id",p()),this.name)this.input.setAttribute("name",this.name);this.input.setAttribute("type","checkbox"),this.#_=this.handleInput.bind(this),this.#q=this.handleChange.bind(this),this.#$=(_)=>{if(_.target!==this||this.input.disabled)return;this.input.click()}}connectedCallback(){let _=this.querySelector(":scope > input");if(_)this.input=_;else if(!this.input.parentNode)this.append(this.input);this.input.removeEventListener("input",this.#_),this.input.addEventListener("input",this.#_),this.input.removeEventListener("change",this.#q),this.input.addEventListener("change",this.#q),this.removeEventListener("click",this.#$),this.addEventListener("click",this.#$),this.#W();let Z=this.querySelector(":scope > label");if(Z)this.#Z=Z,this.#J=!1,this.#Z.setAttribute("for",this.input.id);if(this.hasAttribute("label"))this.#j(),this.#Z.innerText=this.getAttribute("label");if(!this.hasAttribute("label")){let $=Array.from(this.childNodes).filter((q)=>q.nodeType===Node.TEXT_NODE).map((q)=>q.textContent||"").join(" ").trim();if($&&!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-label",$)}this.render()}static get observedAttributes(){return["disabled","label","checked","name","value","indeterminate"]}#j(){if(!this.#Z)this.#Z=document.createElement("label"),this.#J=!0,this.#Z.setAttribute("for",this.input.id);if(this.#Z&&!this.#Z.parentNode&&this.input.parentNode)this.input.after(this.#Z)}render(){}#K(_){return this.hasAttribute(_)&&this.getAttribute(_)!=="false"}#Q(){if(this.input.indeterminate)this.input.setAttribute("aria-checked","mixed");else this.input.setAttribute("aria-checked",this.input.checked?"true":"false")}#W(){let _=this.#K("checked"),Z=this.#K("indeterminate")&&!_,$=this.#K("disabled");this.input.checked=_,this.input.indeterminate=Z,this.input.disabled=$,this.input.value=this.getAttribute("value")||"";let q=this.getAttribute("name")||this.name;if(q)this.input.setAttribute("name",q);else this.input.removeAttribute("name");if(Z)this.input.setAttribute("indeterminate","true");else this.input.removeAttribute("indeterminate");this.#Q()}focus(){this.input.focus()}get value(){return this.input.value}set value(_){this.input.value=_,this.setAttribute("value",_)}get checked(){return this.input.checked}set checked(_){if(this.input.checked=_,_)this.setAttribute("checked","");else this.removeAttribute("checked")}disconnectedCallback(){this.input.removeEventListener("input",this.#_),this.input.removeEventListener("change",this.#q),this.removeEventListener("click",this.#$)}attributeChangedCallback(_,Z,$){switch(_){case"label":if($)this.#j(),this.#Z.innerText=$;else if(this.#Z&&this.#J)this.#Z.remove(),this.#Z=null,this.#J=!1;break;case"checked":if(this.#K("checked")&&this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");this.#W();break;case"indeterminate":this.#W();break;case"disabled":this.#W();break;case"name":if($)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"value":this.input.value=$||"";break;default:this.input[_]=$,this.input.setAttribute(_,$);break}}handleInput(_){if(_.stopPropagation(),this.input.indeterminate=!1,this.input.removeAttribute("indeterminate"),this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");if(this.#Q(),this.input.checked)this.setAttribute("checked","");else this.removeAttribute("checked");this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}handleChange(_){_.stopPropagation(),this.#Q(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}}A("fig-checkbox",U0);class A_ extends U0{constructor(){super();this.input.setAttribute("type","radio");let _=this.getAttribute("name");if(_)this.input.setAttribute("name",_);else this.input.removeAttribute("name")}}A("fig-radio",A_);class F_ extends U0{render(){this.input.setAttribute("class","switch"),this.input.setAttribute("role","switch")}}A("fig-switch",F_);class H_ extends HTMLElement{static observedAttributes=["options","placeholder","value","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#Z=!1;#_=null;#q=null;#$=null;#J=null;#j=!1;#K=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#Q=this.#M.bind(this);#W=this.#O.bind(this);#N=this.#F.bind(this);#X=this.#V.bind(this);get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}#G(){return!!this.querySelector(":scope > .input-combo")}#L(){if(this.#_=this.querySelector("fig-input-text"),this.#$=this.querySelector("fig-button"),this.#q=this.querySelector("fig-dropdown"),this.#_)this.#_.setAttribute("value",this.value),this.#_.setAttribute("placeholder",this.getAttribute("placeholder")||"");this.#C()}connectedCallback(){if(this.#J=Array.from(this.children).find((_)=>_.tagName==="FIG-DROPDOWN")||null,this.#Z=this.#J!==null,this.#J)this.#J.remove();if(this.#G())this.#L(),this.#R();else this.#U(),this.#R();this.#k(F(this,"disabled"))}disconnectedCallback(){this.#B()}#U(){let _=this.#H(),Z=this.getAttribute("placeholder")||"",$=this.value,q=this.#z(),J=Y("fig-input-text",{placeholder:Z,value:$}),Q=Y("fig-button",{type:"select",variant:"input",icon:!0});if(!this.#Z)Q.appendChild(Y("fig-dropdown",{type:"dropdown",label:q},_.map((j)=>Y("option",{},j.trim()))));if(this.replaceChildren(Y("div",{className:"input-combo"},[J,Q])),this.#_=J,this.#$=Q,this.#Z&&this.#J&&this.#$){if(!this.#J.hasAttribute("type"))this.#J.setAttribute("type","dropdown");if(!this.#J.hasAttribute("label"))this.#J.setAttribute("label",q);this.#$.append(this.#J)}this.#q=this.querySelector("fig-dropdown"),this.#C()}#R(){this.#B(),this.#q?.addEventListener("input",this.#Q),this.#q?.addEventListener("change",this.#W),this.#_?.addEventListener("input",this.#N),this.#_?.addEventListener("change",this.#X)}#B(){this.#q?.removeEventListener("input",this.#Q),this.#q?.removeEventListener("change",this.#W),this.#_?.removeEventListener("input",this.#N),this.#_?.removeEventListener("change",this.#X)}#M(_){_.stopPropagation(),this.#Y(_),this.#I()}#O(_){_.stopPropagation(),this.#Y(_),this.#A()}#Y(_){let Z=_.target.closest("fig-dropdown")?.value??"";if(this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#_)this.#_.setAttribute("value",Z)}#F(_){_.stopPropagation();let Z=_.target.value??"";this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#I()}#V(_){_.stopPropagation();let Z=_.target.value??"";this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#A()}#I(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#A(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#H(){return(this.getAttribute("options")||"").split(",").map((_)=>_.trim()).filter(Boolean)}#T(){return(this.getAttribute("aria-label")||this.getAttribute("placeholder")||"Combo input").trim()}#z(){return`${this.#T()} options`}#C(){if(this.#_)this.#K.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,Z)});if(this.#q&&!this.#q.hasAttribute("aria-label"))this.#q.setAttribute("label",this.#z())}#k(_){if(this.#_)if(_)this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled");if(this.#$)if(_)this.#$.setAttribute("disabled","");else this.#$.removeAttribute("disabled");if(this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}focus(){this.#_?.focus()}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"options":if(this.#q&&!this.#Z){let q=this.#H();this.#q.replaceChildren(...q.map((J)=>{let Q=document.createElement("option");return Q.textContent=J,Q}))}break;case"placeholder":if(this.#_)this.#_.setAttribute("placeholder",$||"");this.#C();break;case"value":if(!this.#j&&this.#_)this.#_.setAttribute("value",$||"");break;case"disabled":this.#k($!==null&&$!=="false");break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#C();break}}}A("fig-combo-input",H_);class T0 extends HTMLElement{#Z="color";#_=null;#q=!1;constructor(){super();this.#_=this.#N.bind(this)}static get observedAttributes(){return["background","size","selected","disabled","alpha","aria-label","aria-labelledby","aria-describedby"]}connectedCallback(){this.#Q(),this.#$(),this.#W()}#$(){let _=this.getAttribute("alpha");if(_!==null)this.style.setProperty("--alpha",_);else this.style.removeProperty("--alpha")}#J(_){if(!_)return"color";let Z=_.toLowerCase();if(Z.includes("gradient"))return"gradient";if(Z.includes("url("))return"image";return"color"}#j(_){if(!_)return"#D9D9D9";if(_.startsWith("#"))return _.slice(0,7);try{let{ctx:Z}=H0(1,1);return Z.fillStyle=_,Z.fillStyle}catch{return"#D9D9D9"}}#K(_){if(!_||!_.includes("var("))return _;let Z=this.style.background;this.style.background=_;let $=getComputedStyle(this),q=$.backgroundImage,J=$.backgroundColor;if(this.style.background=Z,q&&q!=="none")return q;return J||_}#Q(){let _=this.getAttribute("background");if(this.hasAttribute("background")&&!_?.trim()){if(this.#Z!=="image"||this.input){if(this.#Z="image",this.setAttribute("data-type","image"),this.input)this.input.removeEventListener("input",this.#_);this.replaceChildren(document.createElement("div")),this.input=null,this.#W()}this.style.setProperty("--swatch-background","none");return}let $=_||"#D9D9D9",q=$.includes("var("),J=q?this.#K($):$,Q=this.#J(J);if(Q!==this.#Z||!this.input){if(this.#Z=Q,this.setAttribute("data-type",this.#Z),this.input)this.input.removeEventListener("input",this.#_);if(this.#Z==="color"){let W=this.#j(J),K=Y("input",{type:"color",value:W});if(this.replaceChildren(document.createElement("div"),K),this.input=K,!q)this.input.addEventListener("input",this.#_);this.#W()}else this.replaceChildren(document.createElement("div")),this.input=null,this.#W()}else if(this.#Z==="color"&&this.input){let W=this.#j(J);if(this.input.value!==W)this.input.value=W}let j=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test($);this.style.setProperty("--swatch-background",j?$:`linear-gradient(${$}, ${$})`)}#W(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-disabled",_?"true":"false"),this.input){this.input.disabled=_;let Z=this.getAttribute("aria-labelledby"),$=this.getAttribute("aria-label")||"Color swatch",q=this.getAttribute("aria-describedby");if(Z)this.input.setAttribute("aria-labelledby",Z),this.input.removeAttribute("aria-label");else this.input.setAttribute("aria-label",$),this.input.removeAttribute("aria-labelledby");if(q)this.input.setAttribute("aria-describedby",q);else this.input.removeAttribute("aria-describedby");this.removeAttribute("role"),this.removeAttribute("aria-hidden");return}if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-hidden","true");else this.setAttribute("role","img"),this.removeAttribute("aria-hidden")}#N(_){this.#q=!0,this.setAttribute("background",_.target.value),this.#q=!1}get background(){return this.getAttribute("background")}set background(_){this.setAttribute("background",_)}focus(){if(this.input?.isConnected){this.input.focus();return}HTMLElement.prototype.focus.call(this)}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="background"){if(this.#q){let q=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test($);this.style.setProperty("--swatch-background",q?$:`linear-gradient(${$}, ${$})`);return}this.#Q()}else if(_==="alpha")this.#$();else if(_==="disabled"||_==="aria-label"||_==="aria-labelledby"||_==="aria-describedby")this.#W()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0)this.removeAttribute("alpha");else this.setAttribute("alpha",_)}}A("fig-swatch",T0);class z_ extends T0{}A("fig-chit",z_);var T_=["load","error"],k_=["loadstart","progress","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","durationchange","timeupdate","ratechange","resize","volumechange"],U1=[...new Set([...T_,...k_])];class R0 extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=this.#s.bind(this);#W=this.#t.bind(this);#N=this.#n.bind(this);#X=this.#$0.bind(this);#G=this.#l.bind(this);#L=null;#U=null;#R=null;#B=void 0;#M=null;#O=null;#Y=null;#F=null;#V=null;#I=null;#A=null;static get observedAttributes(){return["src","type","alt","upload","loading-indicator","label","aspect-ratio","fit","checkerboard","caption","controls","autoplay","loop","muted","poster","aria-label","aria-labelledby","title"]}get mediaKind(){return(this.getAttribute("type")||"image").toLowerCase()==="video"?"video":"image"}get src(){return this.#Z}set src(_){if(this.#Z=_||"",_===null||_===void 0||_==="")this.removeAttribute("src");else this.setAttribute("src",_)}get file(){return this.#K}#H(){return this.#j||this.#Z||""}async getBase64(){if(this.mediaKind!=="image")return null;if(!this.#H())return null;if(!this.#_)return null;try{if(typeof this.#_.decode==="function")await this.#_.decode();else if(!this.#_.complete)await new Promise((q,J)=>{this.#_.addEventListener("load",q,{once:!0}),this.#_.addEventListener("error",J,{once:!0})})}catch{}let _=this.#_.naturalWidth,Z=this.#_.naturalHeight;if(!(_>0)||!(Z>0))return null;let $=document.createElement("canvas");return $.width=_,$.height=Z,$.getContext("2d").drawImage(this.#_,0,0),$.toDataURL()}connectedCallback(){this.#Z=this.getAttribute("src")||"";let _=this.getAttribute("aspect-ratio");if(_)this.style.setProperty("--fig-media-aspect-ratio",_);else this.style.setProperty("--fig-media-aspect-ratio","4/3");let Z=this.getAttribute("fit");if(Z)this.style.setProperty("--fig-media-fit",Z);if(this.querySelectorAll("fig-swatch[data-generated]").forEach((q)=>q.remove()),this.#E(),this.#b(),this.#z(),this.#x(),this.#k(),this.#D(),this.#g(),this.hasAttribute("upload")&&this.getAttribute("upload")!=="false"&&!this.querySelector("fig-input-file[data-generated]"))this.#i();this.#$=this.querySelector("fig-input-file[data-generated]"),this.#$?.removeEventListener("change",this.#Q),this.#$?.addEventListener("change",this.#Q)}disconnectedCallback(){if(this.#$?.removeEventListener("change",this.#Q),this.#P(),this.#T(),this.#c(),this.#J)URL.revokeObjectURL(this.#J),this.#J=null;this.#j=null}#T(){if(!this.#_)return;if(U1.forEach((_)=>{this.#_.removeEventListener(_,this.#G)}),this.#_.tagName==="VIDEO")this.#_.removeEventListener("play",this.#W),this.#_.removeEventListener("pause",this.#N),this.#_.removeEventListener("ended",this.#X)}#z(){if(this.#T(),!this.#_)return;if((this.#_.tagName==="VIDEO"?k_:T_).forEach((Z)=>{this.#_.addEventListener(Z,this.#G)}),this.#_.tagName!=="VIDEO")return;this.#_.addEventListener("play",this.#W),this.#_.addEventListener("pause",this.#N),this.#_.addEventListener("ended",this.#X)}#C(){return this.mediaKind==="image"&&this.getAttribute("loading-indicator")!=="false"&&this.#q?.hasAttribute("data-generated")&&this.#_?.hasAttribute("data-generated")}#k(){let _=this.#H();if(!_||!this.#C()){this.#P();return}if(this.#_?.tagName==="IMG"&&this.#_.complete&&this.#_.currentSrc){this.#P();return}if(this.#R===_)return;this.#P(),this.#R=_,this.#B=this.getAttribute("aria-busy"),this.setAttribute("aria-busy","true"),this.#U=setTimeout(()=>{if(this.#U=null,this.#R!==_||!this.isConnected||!this.#C())return;let Z=document.createElement("fig-spinner");Z.setAttribute("data-generated",""),Z.setAttribute("data-loading-indicator",""),Z.setAttribute("slot","overlay"),Z.setAttribute("size","small"),Z.setAttribute("aria-hidden","true"),this.append(Z),this.#L=Z},150)}#P(){if(this.#U!==null)clearTimeout(this.#U),this.#U=null;if(this.#L?.remove(),this.#L=null,this.#R=null,this.#B!==void 0){if(this.#B===null)this.removeAttribute("aria-busy");else this.setAttribute("aria-busy",this.#B);this.#B=void 0}}#E(){if(this.#q?.isConnected)return;let _=this.querySelector(":scope > fig-preview");if(_){this.#q=_;return}let Z=document.createElement("fig-preview");Z.setAttribute("data-generated",""),this.prepend(Z),this.#q=Z}#f(){let _=this.mediaKind==="video"?"video":"img";return this.querySelector(`${_}:not([data-generated])`)}#b(){let _=this.#f();if(_){if(this.#E(),this.#_&&this.#_!==_){if(this.#T(),this.#_.hasAttribute("data-generated"))this.#_.remove()}if(this.#_=_,this.#q&&_.parentElement!==this.#q)this.#q.append(_);this.#z(),this.#D();return}this.#E();let Z=this.mediaKind==="video"?"VIDEO":"IMG";if(this.#_&&this.#_.tagName!==Z){if(this.#T(),this.#_.hasAttribute("data-generated"))this.#_.remove();this.#_=null}if(this.#_)return;if(this.mediaKind==="video"){let $=document.createElement("video");$.setAttribute("data-generated",""),$.className="fig-media-element",$.setAttribute("playsinline",""),$.preload="auto",this.#q.append($),this.#_=$;let q=()=>{if(this.#_?.autoplay)return;try{this.#_.currentTime=0.001}catch{}};this.#_.addEventListener("loadedmetadata",q,{once:!0})}else{let $=document.createElement("img");$.setAttribute("data-generated",""),$.className="fig-media-element",$.loading="lazy",$.decoding="async",$.alt=this.getAttribute("alt")||"",this.#q.append($),this.#_=$}this.#z()}#D(){if(!this.#_)return;if(this.#_.tagName==="IMG"){if(this.hasAttribute("alt")||this.#_.hasAttribute("data-generated"))this.#_.alt=this.getAttribute("alt")||"";return}if(this.#_.tagName!=="VIDEO")return;["aria-label","aria-labelledby","title"].forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,Z)})}#h(){return this.querySelector(":scope > figcaption:not([data-generated])")}#y(){return Array.from(this.querySelectorAll(":scope > figcaption[data-generated]"))}#g(){let _=this.#h(),Z=this.#y();if(_){Z.forEach((Q)=>Q.remove());return}let $=this.getAttribute("caption")||"";if(!$){Z.forEach((Q)=>Q.remove());return}let q=Z[0]||document.createElement("figcaption");if(Z.slice(1).forEach((Q)=>Q.remove()),!q.hasAttribute("data-generated"))q.setAttribute("data-generated","");if(q.textContent!==$)q.textContent=$;let J=this.querySelector(":scope > fig-media-controls");if(J)J.before(q);else if(this.#q?.isConnected)this.#q.after(q);else if(!q.isConnected)this.append(q)}#w(_,Z=!1){if(!this.hasAttribute(_))return Z;return this.getAttribute(_)!=="false"}#x(){if(!this.#_)return;if(!this.#_.hasAttribute("data-generated"))return;let _=this.#H();if(this.#_.getAttribute("src")!==_){if(_)this.#_.setAttribute("src",_);else if(this.#_.removeAttribute("src"),this.#_.tagName==="VIDEO")this.#_.load()}if(this.#_.tagName==="IMG"){this.#D(),this.#k();return}let Z=this.getAttribute("poster");if(Z)this.#_.setAttribute("poster",Z);else this.#_.removeAttribute("poster");this.#_.controls=!1,this.#_.removeAttribute("controls"),this.#_.autoplay=this.#w("autoplay",!1),this.#_.loop=this.#w("loop",!1),this.#_.muted=this.#w("muted",!1),this.#_.playsInline=!0,this.#D(),this.#v(),this.#m(),this.#k()}get mediaEl(){return this.#_}#S(){if(this.mediaKind!=="video")return!1;return Boolean(this.#H())}#m(){let _=this.#M||this.querySelector(":scope > fig-media-controls");if(!_)return;if(this.mediaKind!=="video")return;if(this.#S()){if(_.hasAttribute("data-fig-empty-disabled"))_.removeAttribute("disabled"),_.removeAttribute("data-fig-empty-disabled");return}_.setAttribute("disabled",""),_.setAttribute("data-fig-empty-disabled",""),_.playing=!1,_.time=0,_.duration=0}#v(){if(this.mediaKind!=="video"){this.#c();return}let _=this.querySelector(":scope > fig-media-controls:not([data-generated])");if(_){if(this.#M!==_)this.#c(),this.#M=_;this.#d(),this.#m();return}if(this.#w("controls",!1))this.#p();else this.#c()}#p(){let _=Array.from(this.querySelectorAll(":scope > fig-media-controls[data-generated]")),Z=_[0];if(_.slice(1).forEach((q)=>q.remove()),Z){this.#M=Z,this.#d(),this.#m();return}let $=document.createElement("fig-media-controls");$.setAttribute("data-generated",""),this.append($),this.#M=$,this.#d(),this.#m()}#d(){if(!this.#M||!this.#_)return;if(this.#O===this.#_&&this.#Y===this.#M){this.#m();return}this.#a();let _=this.#M,Z=this.#_;this.#O=Z,this.#Y=_;let $=null,q=()=>{if(this.#m(),!this.#S())return;if(_.playing=!Z.paused&&!Z.ended,Number.isFinite(Z.duration))_.duration=Z.duration;if($!==null)if(Math.abs(Z.currentTime-$)<0.25)$=null;else return;_.time=Z.currentTime||0},J=()=>{if(!this.#S())return;let W=Z.play?.();if(W&&typeof W.catch==="function")W.catch(()=>{})},Q=()=>Z.pause?.(),j=(W)=>{if(!this.#S())return;let K=Number(W?.detail?.time);if(!Number.isFinite(K))return;$=K;try{Z.currentTime=K}catch{}};this.#F=q,this.#V=J,this.#I=Q,this.#A=j,Z.addEventListener("play",q),Z.addEventListener("pause",q),Z.addEventListener("ended",q),Z.addEventListener("timeupdate",q),Z.addEventListener("loadedmetadata",q),Z.addEventListener("durationchange",q),Z.addEventListener("seeked",q),_.addEventListener("play",J),_.addEventListener("pause",Q),_.addEventListener("seek",j),q()}#a(){let _=this.#O,Z=this.#Y;if(_&&this.#F)_.removeEventListener("play",this.#F),_.removeEventListener("pause",this.#F),_.removeEventListener("ended",this.#F),_.removeEventListener("timeupdate",this.#F),_.removeEventListener("loadedmetadata",this.#F),_.removeEventListener("durationchange",this.#F),_.removeEventListener("seeked",this.#F);if(Z){if(this.#V)Z.removeEventListener("play",this.#V);if(this.#I)Z.removeEventListener("pause",this.#I);if(this.#A)Z.removeEventListener("seek",this.#A)}this.#O=null,this.#Y=null,this.#F=null,this.#V=null,this.#I=null,this.#A=null}#c(){this.#a(),this.querySelectorAll(":scope > fig-media-controls[data-generated]").forEach((_)=>{_.remove()}),this.#M=null}toggle(){if(!this.#_||this.mediaKind!=="video")return;if(this.#_.paused||this.#_.ended)this.play();else this.pause()}play(){if(this.mediaKind!=="video"||!this.#_)return;let _=this.#_.play();if(_&&typeof _.catch==="function")_.catch(()=>{})}pause(){if(this.mediaKind!=="video"||!this.#_)return;this.#_.pause()}#i(){let _=document.createElement("fig-input-file");_.setAttribute("data-generated",""),_.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*"),_.setAttribute("variant","overlay");let Z=this.getAttribute("label")||"Upload";if(_.setAttribute("label",this.#Z?"Replace":Z),this.#K?.name)_.setAttribute("filename",this.#K.name);else if(this.#Z)_.setAttribute("url",this.#Z);_.addEventListener("change",this.#Q),this.#E(),this.#q.append(_),this.#$=_}#o(){if(this.#$)this.#$.removeEventListener("change",this.#Q),this.#$.remove(),this.#$=null}#s(_){if(_.target!==this.#$)return;let Z=_.detail?.files?.[0],$=_.detail?.cleared===!0;if(!Z){if(this.#J)URL.revokeObjectURL(this.#J),this.#J=null;if(this.#K=null,this.#j=null,$)this.src="";if(this.#x(),this.#$){let q=this.getAttribute("label")||"Upload";if(this.#$.setAttribute("label",this.#Z?"Replace":q),this.#$.removeAttribute("filename"),this.#Z)this.#$.setAttribute("url",this.#Z);else this.#$.removeAttribute("url")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0}));return}if(this.#J)URL.revokeObjectURL(this.#J);if(this.#K=Z,this.#J=URL.createObjectURL(Z),this.#j=this.#J,this.#x(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,detail:{file:Z,src:this.#J}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0})),this.#$)this.#$.removeAttribute("url"),this.#$.setAttribute("filename",Z.name),this.#$.setAttribute("label","Replace")}#u(_){if(!this.#_)return;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!1,composed:!0,detail:{src:this.#Z||"",currentTime:this.#_.currentTime,duration:this.#_.duration}}))}#l(_){let Z=this.#_;if(!Z||_.currentTarget!==Z)return;if(Z.tagName==="IMG"&&(_.type==="load"||_.type==="error"))this.#P();let $={src:this.#H(),media:Z,originalEvent:_};if(Z.tagName==="VIDEO")$.currentTime=Z.currentTime,$.duration=Z.duration,$.readyState=Z.readyState,$.networkState=Z.networkState,$.error=Z.error;if(this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,cancelable:!1,composed:!0,detail:$})),Z.tagName==="IMG"&&_.type==="load"||Z.tagName==="VIDEO"&&_.type==="loadeddata")this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,composed:!0,detail:{src:$.src,file:this.#K,media:Z}}))}#t(){this.#u("play")}#n(){this.#u("pause")}#$0(){this.#u("ended")}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="src"){let q=$||"",J=q&&(q===this.#j||q===this.#J);if(this.#Z=q,this.#J&&!J)URL.revokeObjectURL(this.#J),this.#J=null,this.#j=null,this.#K=null;if(this.#x(),this.#$){let Q=this.getAttribute("label")||"Upload";if(this.#$.setAttribute("label",this.#Z?"Replace":Q),this.#Z)if(this.#K?.name)this.#$.removeAttribute("url"),this.#$.setAttribute("filename",this.#K.name);else this.#$.setAttribute("url",this.#Z),this.#$.removeAttribute("filename");else this.#$.removeAttribute("url"),this.#$.removeAttribute("filename")}}if(_==="type"){if(this.#b(),this.#x(),this.#$)this.#$.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*")}if(["alt","aria-label","aria-labelledby","title"].includes(_))this.#D();if(_==="upload"){let q=$!==null&&$!=="false";if(q&&!this.#$)this.#i();else if(!q)this.#o()}if(_==="loading-indicator")this.#k();if(_==="aspect-ratio")if($)this.style.setProperty("--fig-media-aspect-ratio",$);else this.style.removeProperty("--fig-media-aspect-ratio");if(_==="fit")if($)this.style.setProperty("--fig-media-fit",$);else this.style.removeProperty("--fig-media-fit");if(_==="label"&&this.#$){let q=this.getAttribute("label")||"Upload";this.#$.setAttribute("label",this.#Z?"Replace":q)}if(["controls","autoplay","loop","muted","poster"].includes(_))this.#x();if(_==="caption")this.#g()}}A("fig-media",R0);class I_ extends R0{get mediaKind(){return"image"}}A("fig-image",I_);class P_ extends R0{get mediaKind(){return"video"}}A("fig-video",P_);class D_ extends HTMLElement{static get observedAttributes(){return["src","alt","label","text","sublabel","selected","disabled","full","size","aspect-ratio","fit","label-line-clamp"]}#Z=null;#_=null;#q=null;#$=null;#J=!1;#j=new MutationObserver((_)=>{if(!_.some(($)=>[...$.addedNodes,...$.removedNodes].some((q)=>q instanceof Element&&(q.matches("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])")||q.querySelector("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])"))))||!this.isConnected)return;this.#L(),this.#R()});connectedCallback(){this.#j.observe(this,{childList:!0,subtree:!0}),this.#L(),this.#R()}disconnectedCallback(){this.#j.disconnect()}attributeChangedCallback(){if(!this.isConnected)return;this.#L(),this.#R()}#K(){return this.getAttribute("label")??this.getAttribute("text")??""}#Q(){return this.getAttribute("sublabel")??""}#W(){return this.getAttribute("label-line-clamp")==="2"?"2":"1"}#N(){return Boolean(this.getAttribute("src"))}#X(){return this.querySelector(":scope > fig-image:not([data-generated]), :scope > fig-media:not([data-generated]), :scope > fig-preview:not([data-generated])")}#G(){this.querySelectorAll(":scope > .fig-card-link").forEach((_)=>{_.querySelectorAll(":scope > .fig-card-media").forEach((Z)=>{while(Z.firstChild)_.insertBefore(Z.firstChild,Z);Z.remove()});while(_.firstChild)this.insertBefore(_.firstChild,_);_.remove()})}#L(){if(this.#G(),!this.#N()){this.#U();return}let _=this.#X();if(this.#J=Boolean(_),_)this.querySelectorAll(":scope > [data-generated]:not(fig-footer)").forEach(($)=>$.remove()),this.#_=null;if(!this.#J){if(this.#_=this.querySelector(":scope > fig-image[data-generated]")||null,!this.#_)this.querySelectorAll(":scope > fig-image, :scope > fig-media, :scope > fig-preview").forEach(($)=>{if($.hasAttribute("data-generated"))$.remove()}),this.#_=document.createElement("fig-image"),this.#_.setAttribute("data-generated",""),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto"),this.prepend(this.#_)}if(!Boolean(this.#K()||this.#Q())){this.querySelector(":scope > fig-footer[data-generated]")?.remove(),this.#Z=null,this.#q=null,this.#$=null;return}if(!this.#Z||!this.#Z.isConnected){if(this.#Z=this.querySelector(":scope > fig-footer[data-generated]"),!this.#Z)this.#Z=document.createElement("fig-footer"),this.#Z.setAttribute("data-generated",""),this.appendChild(this.#Z)}if(!this.#q||!this.#q.isConnected){if(this.#q=this.#Z.querySelector(":scope > .fig-card-label[data-generated]"),!this.#q)this.#q=document.createElement("label"),this.#q.className="fig-card-label",this.#q.setAttribute("data-generated",""),this.#Z.appendChild(this.#q)}if(!this.#$||!this.#$.isConnected){if(this.#$=this.#Z.querySelector(":scope > .fig-card-sublabel[data-generated]"),!this.#$)this.#$=document.createElement("label"),this.#$.className="fig-card-sublabel",this.#$.setAttribute("data-generated",""),this.#q.after(this.#$)}}#U(){if(this.#G(),this.querySelectorAll(":scope > [data-generated]").forEach((Z)=>Z.remove()),this.#_=null,this.#J=!0,this.#Z=null,this.#q=null,this.#$=null,!this.#K()&&!this.#Q())return;this.#Z=document.createElement("fig-footer"),this.#Z.setAttribute("data-generated",""),this.#q=document.createElement("label"),this.#q.className="fig-card-label",this.#q.setAttribute("data-generated",""),this.#Z.appendChild(this.#q);let _=this.#Q();if(this.#$=null,_)this.#$=document.createElement("label"),this.#$.className="fig-card-sublabel",this.#$.setAttribute("data-generated",""),this.#Z.appendChild(this.#$);this.appendChild(this.#Z)}#R(){if(!this.#N()){this.#B();return}let _=F(this,"disabled"),Z=this.#K(),$=this.#Q(),q=this.#W();this.style.setProperty("--fig-card-label-line-clamp",q),this.setAttribute("role","group");let J=[Z,$].filter(Boolean).join(", ");if(J)this.setAttribute("aria-label",J);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#_&&!this.#J){let Q=this.getAttribute("src"),j=this.getAttribute("alt"),W=this.getAttribute("aspect-ratio")||"1/1",K=this.getAttribute("fit")||"contain",N=j!=null?j:"";if(Q)this.#_.setAttribute("src",Q);else this.#_.removeAttribute("src");this.#_.setAttribute("alt",N),this.#_.setAttribute("aspect-ratio",W),this.#_.setAttribute("fit",K),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto")}if(this.#q)this.#q.textContent=Z,this.#q.hidden=!Z;if(this.#$)this.#$.textContent=$,this.#$.hidden=!$;if(this.#Z)this.#Z.hidden=!Z&&!$}#B(){let _=F(this,"disabled"),Z=this.#K(),$=this.#Q();this.style.setProperty("--fig-card-label-line-clamp",this.#W()),this.setAttribute("role","group");let q=[Z,$].filter(Boolean).join(", ");if(q)this.setAttribute("aria-label",q);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#q)this.#q.textContent=Z,this.#q.hidden=!Z;if(this.#$)this.#$.textContent=$}}A("fig-card",D_);class C_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=!1;#j=!1;static get observedAttributes(){return["playing","duration","time","disabled"]}connectedCallback(){this.#K(),this.#X(),this.#G(),this.#Q()}get playing(){return this.hasAttribute("playing")&&this.getAttribute("playing")!=="false"}set playing(_){if(_)this.setAttribute("playing","");else this.removeAttribute("playing")}get duration(){let _=Number(this.getAttribute("duration"));return Number.isFinite(_)&&_>=0?_:0}set duration(_){let Z=Number(_);if(!Number.isFinite(Z)||Z<0){this.removeAttribute("duration");return}this.setAttribute("duration",String(Z))}get time(){let _=Number(this.getAttribute("time"));return Number.isFinite(_)&&_>=0?_:0}set time(_){let Z=Number(_);if(!Number.isFinite(Z)||Z<0){this.removeAttribute("time");return}this.setAttribute("time",String(Z))}get disabled(){return F(this,"disabled")}set disabled(_){if(_)this.setAttribute("disabled","");else this.removeAttribute("disabled")}attributeChangedCallback(_){if(!this.#j)return;if(_==="playing")this.#X();if(_==="duration"||_==="time")this.#G();if(_==="disabled")this.#Q()}#K(){if(this.#j)return;if(this.#j=!0,!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-label","Media controls");let _=document.createElement("fig-tooltip");_.setAttribute("text","Play");let Z=document.createElement("fig-button");Z.setAttribute("variant","ghost"),Z.setAttribute("icon","true"),Z.setAttribute("aria-label","Play"),Z.append(h("play")),_.append(Z),Z.addEventListener("click",(Q)=>{Q.preventDefault(),Q.stopPropagation(),this.toggle()});let $=document.createElement("fig-slider");$.setAttribute("text","false"),$.setAttribute("min","0"),$.setAttribute("max",String(this.duration)),$.setAttribute("step","1"),$.setAttribute("value",String(this.time)),$.setAttribute("full",""),$.setAttribute("aria-label","Seek"),$.setAttribute("aria-valuetext",this.#N(this.time,this.duration));let q=document.createElement("span");q.className="fig-media-controls-time",q.textContent=this.#W(this.time);let J=(Q)=>{if(this.disabled){Q.preventDefault?.(),Q.stopPropagation();return}let j=Q.currentTarget,W=Number(j?.value);if(!Number.isFinite(W))return;this.#J=!0,this.setAttribute("time",String(W)),this.dispatchEvent(new CustomEvent("seek",{bubbles:!0,composed:!0,detail:{time:W}})),requestAnimationFrame(()=>{this.#J=!1})};$.addEventListener("input",J),$.addEventListener("change",J),this.append(_,$,q),this.#Z=Z,this.#_=_,this.#q=$,this.#$=q,this.#Q()}#Q(){let _=this.disabled;if(this.setAttribute("aria-disabled",_?"true":"false"),this.#Z)if(_)this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled");if(this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}#W(_){if(!Number.isFinite(_)||_<0)_=0;let Z=Math.floor(_),$=Math.floor(Z/60),q=Z%60;return`${String($).padStart(2,"0")}:${String(q).padStart(2,"0")}`}#N(_,Z=0){let $=this.#W(_);if(!Number.isFinite(Z)||Z<=0)return $;return`${$} of ${this.#W(Z)}`}#X(){if(!this.#Z)return;let _=this.playing;this.#Z.setAttribute("aria-label",_?"Pause":"Play"),this.#_?.setAttribute("text",_?"Pause":"Play");let Z=this.#Z.querySelector("fig-icon");if(Z)Z.setAttribute("name",_?"pause":"play")}#G(){if(!this.#q)return;let _=this.duration;if(Number(this.#q.getAttribute("max"))!==_)this.#q.setAttribute("max",String(_));let Z=this.time;if(!this.#J)this.#q.setAttribute("value",String(Z));if(this.#q.setAttribute("aria-valuetext",this.#N(Z,_)),this.#$)this.#$.textContent=this.#W(Z)}toggle(){if(this.disabled)return;let _=!this.playing;this.playing=_,this.dispatchEvent(new CustomEvent(_?"play":"pause",{bubbles:!0,composed:!0,detail:{playing:_}}))}play(){if(this.disabled||this.playing)return;this.toggle()}pause(){if(this.disabled||!this.playing)return;this.toggle()}}A("fig-media-controls",C_);class E_ extends HTMLElement{static observedAttributes=["accepts","label","disabled","multiple","variant","url","filename"];#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;get files(){return this.#j}get#K(){let _=this.getAttribute("filename");if(_)return _;let Z=this.getAttribute("url");if(!Z)return"";try{let q=new URL(Z,location.href).pathname.split("/").pop();return q?decodeURIComponent(q):Z}catch{return Z}}get value(){if(this.#j&&this.#j.length>0){if(this.#j.length===1)return this.#j[0].name;return`${this.#j.length} files`}return this.#K}connectedCallback(){this.#U(),this.addEventListener("dragover",this.#X),this.addEventListener("dragleave",this.#G),this.addEventListener("drop",this.#L)}disconnectedCallback(){this.#Z?.removeEventListener("change",this.#W),this.#q?.removeEventListener("click",this.#N),this.removeEventListener("dragover",this.#X),this.removeEventListener("dragleave",this.#G),this.removeEventListener("drop",this.#L)}attributeChangedCallback(_,Z,$){if(Z===$)return;this.#U()}clear(){if(this.#j=null,this.#Z)this.#Z.value="";this.removeAttribute("url"),this.removeAttribute("filename"),this.#U(),this.#Q({cleared:!0})}#Q(_={}){let Z={files:this.#j,..._};this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0}))}#W=()=>{if(this.#Z.files.length>0)this.#j=this.#Z.files,this.removeAttribute("url"),this.#U(),this.#Q()};#N=(_)=>{_.stopPropagation(),this.clear()};#X=(_)=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(_.preventDefault(),!this.hasAttribute("dragover")){if(this.setAttribute("dragover",""),this.#J)this.#J.dataset.prevText=this.#J.textContent,this.#J.textContent="Drop file"}};#G=()=>{if(this.removeAttribute("dragover"),this.#J&&this.#J.dataset.prevText!==void 0)this.#J.textContent=this.#J.dataset.prevText,delete this.#J.dataset.prevText};#L=(_)=>{if(_.preventDefault(),this.removeAttribute("dragover"),this.#J&&this.#J.dataset.prevText!==void 0)this.#J.textContent=this.#J.dataset.prevText,delete this.#J.dataset.prevText;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.getAttribute("accepts"),$=Array.from(_.dataTransfer.files);if(Z){let J=Z.split(",").map((Q)=>Q.trim().toLowerCase());$=$.filter((Q)=>{let j="."+Q.name.split(".").pop().toLowerCase(),W=Q.type.toLowerCase();return J.some((K)=>K===j||K===W||K.endsWith("/*")&&W.startsWith(K.slice(0,-1)))})}if(!this.hasAttribute("multiple")||this.getAttribute("multiple")==="false")$=$.slice(0,1);if($.length===0)return;let q=new DataTransfer;if($.forEach((J)=>q.items.add(J)),this.#j=q.files,this.#Z)this.#Z.files=q.files;this.removeAttribute("url"),this.#U(),this.#Q()};#U(){let _=this.getAttribute("accepts")||"",Z=this.getAttribute("label")||"Upload",$=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=this.hasAttribute("multiple")&&this.getAttribute("multiple")!=="false",J=this.getAttribute("variant")||"input",Q=this.#j&&this.#j.length>0||!!this.getAttribute("url")||!!this.getAttribute("filename");if(this.replaceChildren(),Q){let j=_?`Accepts ${_.split(",").map((G)=>G.trim()).join(", ")}`:"";if(this.#J=document.createElement("fig-button"),this.#J.setAttribute("variant",J),this.#J.setAttribute("type","upload"),this.#J.className="fig-input-file-filename",$)this.#J.setAttribute("disabled","");let W=document.createElement("fig-truncate");W.setAttribute("position","middle"),W.setAttribute("tooltip","");let K=this.value,N=K.lastIndexOf(".");if(N>0)W.setAttribute("tail",K.slice(N));if(W.textContent=K,this.#J.appendChild(W),this.#Z=document.createElement("input"),this.#Z.type="file",this.#Z.title="",this.#Z.disabled=$,_)this.#Z.setAttribute("accept",_);if(q)this.#Z.setAttribute("multiple","");if(this.#Z.addEventListener("change",this.#W),this.#J.appendChild(this.#Z),j)this.#$=document.createElement("fig-tooltip"),this.#$.setAttribute("text",j),this.#$.appendChild(this.#J),this.appendChild(this.#$);else this.appendChild(this.#J);let L=document.createElement("fig-tooltip");if(L.setAttribute("text","Remove"),this.#q=document.createElement("fig-button"),this.#q.setAttribute("variant",J==="overlay"?"overlay":"ghost"),this.#q.setAttribute("icon","true"),this.#q.setAttribute("aria-label","Remove"),this.#q.className="fig-input-file-clear",$)this.#q.setAttribute("disabled","");this.#q.replaceChildren(h("minus")),this.#q.addEventListener("click",this.#N),L.appendChild(this.#q),this.appendChild(L)}else{let j=_?`Accepts ${_.split(",").map((W)=>W.trim()).join(", ")}`:"";if(j)this.#$=document.createElement("fig-tooltip"),this.#$.setAttribute("text",j);if(this.#J=document.createElement("fig-button"),this.#J.setAttribute("variant",J),this.#J.setAttribute("type","upload"),this.#J.textContent=Z,$)this.#J.setAttribute("disabled","");if(this.#Z=document.createElement("input"),this.#Z.type="file",this.#Z.title="",this.#Z.disabled=$,_)this.#Z.setAttribute("accept",_);if(q)this.#Z.setAttribute("multiple","");if(this.#Z.addEventListener("change",this.#W),this.#J.appendChild(this.#Z),this.#$)this.#$.appendChild(this.#J),this.appendChild(this.#$);else this.appendChild(this.#J)}}}A("fig-input-file",E_);class y extends HTMLElement{#Z={x:0.42,y:0};#_={x:0.58,y:1};#q={stiffness:200,damping:15,mass:1,initialVelocity:0};#$="bezier";#J=2;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=null;#G=null;#L=null;#U=null;#R=null;#B=null;#M=0.8;#O=200;#Y=200;#F=null;#V=null;#I=null;#A=null;#H=5;#T=10;#z=10;#C=3;static PRESETS=[{group:null,name:"Linear",type:"bezier",value:[0,0,1,1]},{group:"Bezier",name:"Ease in",type:"bezier",value:[0.42,0,1,1]},{group:"Bezier",name:"Ease out",type:"bezier",value:[0,0,0.58,1]},{group:"Bezier",name:"Ease in and out",type:"bezier",value:[0.42,0,0.58,1]},{group:"Bezier",name:"Ease in back",type:"bezier",value:[0.6,-0.28,0.735,0.045]},{group:"Bezier",name:"Ease out back",type:"bezier",value:[0.175,0.885,0.32,1.275]},{group:"Bezier",name:"Ease in and out back",type:"bezier",value:[0.68,-0.55,0.265,1.55]},{group:"Bezier",name:"Custom bezier",type:"bezier",value:null},{group:"Spring",name:"Gentle",type:"spring",spring:{stiffness:120,damping:14,mass:1}},{group:"Spring",name:"Quick",type:"spring",spring:{stiffness:380,damping:20,mass:1}},{group:"Spring",name:"Bouncy",type:"spring",spring:{stiffness:250,damping:8,mass:1}},{group:"Spring",name:"Slow",type:"spring",spring:{stiffness:60,damping:11,mass:1}},{group:"Spring",name:"Custom spring",type:"spring",spring:null}];static get observedAttributes(){return["value","mode","precision","aspect-ratio","edit","presets","text"]}connectedCallback(){this.#J=parseInt(this.getAttribute("precision")||"2"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio"));let _=this.#k();if(_)this.#$=_;let Z=this.getAttribute("value");if(Z)this.#h(Z);this.#P(),this.#R=this.#y(),this.#i(),this.#J0()}disconnectedCallback(){if(this.#j=null,this.#A)this.#A.disconnect(),this.#A=null}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="aspect-ratio"){if(m(this,"--aspect-ratio",$),this.#K)this.#r(),this.#e();return}if(_==="edit"||_==="presets"||_==="text"){if(this.isConnected)this.#i();return}if(_==="mode"){this.#P();let q=this.getAttribute("value");if(q)this.#h(q);if(this.#P(),this.#R=this.#y(),this.isConnected)this.#i();return}if(_==="value"&&$){let q=this.#$;if(this.#h($),this.#R=this.#y(),q!==this.#$&&this.#d())this.#i();else{if(this.#K)this.#e();this.#G0(),this.#_0()}}if(_==="precision")this.#J=parseInt($||"2")}get value(){if(this.#$==="spring"){let{stiffness:Z,damping:$,mass:q,initialVelocity:J=0}=this.#q,Q=J?`, ${J}`:"";return`spring(${Z}, ${$}, ${q}${Q})`}let _=this.#J;return`${this.#Z.x.toFixed(_)}, ${this.#Z.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)}`}get cssValue(){if(this.#$==="spring"){let Z=this.#g(),$=20,q=Math.max(1,Math.floor(Z.length/20)),J=[];for(let Q=0;Q<Z.length;Q+=q)J.push(Z[Q].value.toFixed(3));if(Z.length>0)J.push(Z[Z.length-1].value.toFixed(3));return`linear(${J.join(", ")})`}let _=this.#J;return`cubic-bezier(${this.#Z.x.toFixed(_)}, ${this.#Z.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)})`}get preset(){return this.#R}set value(_){if(_&&typeof _==="object"){let Z=this.#f(_);if(!Z)throw TypeError("Invalid easing value or mode/type mismatch");let $=Z.type==="spring"?{type:"spring",...Z.spring}:{type:"bezier",x1:Z.bezier[0],y1:Z.bezier[1],x2:Z.bezier[2],y2:Z.bezier[3]};this.setAttribute("value",JSON.stringify($));return}this.setAttribute("value",_)}get spring(){if(this.#$!=="spring")return null;return{...this.#q,initialVelocity:this.#q.initialVelocity??0}}set spring(_){if(!_||typeof _!=="object")throw TypeError("spring must be an object");this.value={..._,type:"spring"}}#k(){let _=this.getAttribute("mode")?.trim().toLowerCase();return _==="bezier"||_==="spring"?_:null}#P(){let _=this.#k();if(_)this.#$=_}#E(_){let Z=this.#k();return!Z||_.type===Z}#f(_){if(!_||typeof _!=="object"||Array.isArray(_))return null;let Z=this.#k(),$=typeof _.type==="string"?_.type.trim().toLowerCase():null;if($&&$!=="bezier"&&$!=="spring")return null;if($&&Z&&$!==Z)return null;let q=$||Z;if(!q)return null;if(q==="spring"){let Q={mass:Number(_.mass),stiffness:Number(_.stiffness),damping:Number(_.damping),initialVelocity:_.initialVelocity===void 0?0:Number(_.initialVelocity)};if(!Number.isFinite(Q.mass)||Q.mass<=0||!Number.isFinite(Q.stiffness)||Q.stiffness<=0||!Number.isFinite(Q.damping)||Q.damping<0||!Number.isFinite(Q.initialVelocity))return null;return{type:q,spring:Q}}let J=[_.x1,_.y1,_.x2,_.y2].map(Number);if(J.some((Q)=>!Number.isFinite(Q))||J[0]<0||J[0]>1||J[2]<0||J[2]>1)return null;return{type:q,bezier:J}}#b(_){if(_.type==="spring")this.#$="spring",this.#q={..._.spring};else this.#$="bezier",[this.#Z.x,this.#Z.y,this.#_.x,this.#_.y]=_.bezier}#D(_){let Z=_.match(/^spring\(\s*(.*?)\s*\)$/i);if(!Z)return null;let $=Z[1].split(",").map((J)=>Number(J.trim()));if($.length!==3&&$.length!==4||$.some((J)=>!Number.isFinite(J)))return null;let q={stiffness:$[0],damping:$[1],mass:$[2],initialVelocity:$[3]??0};if(q.stiffness<=0||q.damping<0||q.mass<=0)return null;return q}#h(_){if(_&&typeof _==="object"){let J=this.#f(_);if(!J)return!1;return this.#b(J),!0}if(typeof _!=="string")return!1;let Z=_.trim();if(Z.startsWith("{"))try{return this.#h(JSON.parse(Z))}catch{return!1}let $=this.#D(Z);if($&&this.#k()!=="bezier")return this.#$="spring",this.#q=$,!0;let q=Z.split(",").map((J)=>parseFloat(J.trim()));if(q.length>=4&&q.every((J)=>!isNaN(J))&&this.#k()!=="spring")return this.#$="bezier",this.#Z.x=q[0],this.#Z.y=q[1],this.#_.x=q[2],this.#_.y=q[3],!0;return!1}#y(){if(this.#$==="bezier"){for(let Z of y.PRESETS){if(Z.type!=="bezier"||!Z.value)continue;if(Math.abs(this.#Z.x-Z.value[0])<0.001&&Math.abs(this.#Z.y-Z.value[1])<0.001&&Math.abs(this.#_.x-Z.value[2])<0.001&&Math.abs(this.#_.y-Z.value[3])<0.001)return Z.name}return"Custom bezier"}for(let Z of y.PRESETS){if(Z.type!=="spring"||!Z.spring)continue;if(Math.abs(this.#q.stiffness-Z.spring.stiffness)<0.001&&Math.abs(this.#q.damping-Z.spring.damping)<0.001&&Math.abs(this.#q.mass-Z.spring.mass)<0.001&&Math.abs(this.#q.initialVelocity??0)<0.001)return Z.name}return"Custom spring"}#g(){let{stiffness:_,damping:Z,mass:$,initialVelocity:q=0}=this.#q,J=0.004,Q=5,j=[],W=0,K=q;for(let N=0;N<=5;N+=0.004){let L=-_*(W-1)-Z*K;if(K+=L/$*0.004,W+=K*0.004,j.push({t:N,value:W}),N>0.1&&Math.abs(W-1)<0.0005&&Math.abs(K)<0.0005)break}return j}static#w(_,Z=24){let{stiffness:$,damping:q,mass:J,initialVelocity:Q=0}=_,j=0.004,W=5,K=[],N=0,L=Q;for(let U=0;U<=5;U+=0.004){let P=-$*(N-1)-q*L;if(L+=P/J*0.004,N+=L*0.004,K.push({t:U,value:N}),U>0.1&&Math.abs(N-1)<0.001&&Math.abs(L)<0.001)break}let G=K[K.length-1].t||1,X=1;for(let U of K)if(U.value>X)X=U.value;let R=0;for(let U of K)if(U.value<R)R=U.value;let B=Math.max(X-R,1),M=6,z=Z-M*2,T=Math.max(1,Math.floor(K.length/30)),I="";for(let U=0;U<K.length;U+=T){let P=M+K[U].t/G*z,D=M+(1-(K[U].value-R)/B)*z;I+=(U===0?"M":"L")+P.toFixed(1)+","+D.toFixed(1)}return y.#v(I,Z,y.#m(Z))}static#x(_,Z,$,q,J=24){let j=(J-11)/2,W=48,K=[],N=(U,P,D,E,f)=>{let x=1-f;return x*x*x*U+3*x*x*f*P+3*x*f*f*D+f*f*f*E};for(let U=0;U<=48;U++){let P=U/48;K.push({x:N(0,_,$,1,P),y:N(0,Z,q,1,P)})}let L=1/0,G=-1/0,X=1/0,R=-1/0;for(let U of K){if(U.x<L)L=U.x;if(U.x>G)G=U.x;if(U.y<X)X=U.y;if(U.y>R)R=U.y}let B=Math.max(G-L,0.000001),M=Math.max(R-X,0.000001),z=(U)=>j+(U-L)/B*11,T=(U)=>j+(1-(U-X)/M)*11,I="";for(let U=0;U<K.length;U++){let P=z(K[U].x),D=T(K[U].y);I+=`${U===0?"M":"L"}${P.toFixed(1)},${D.toFixed(1)}`}return I}static#S(_=24){let $=(_-11)/2,q=3.6666666666666665;return Array.from({length:16},(J,Q)=>({x:$+Q%4*3.6666666666666665,y:$+Math.floor(Q/4)*3.6666666666666665}))}static#m(_=24){return y.#S(_).map(({x:Z,y:$})=>V("circle",{cx:Z,cy:$,r:0.5,fill:"var(--figma-color-icon-tertiary)"}))}static#v(_,Z=24,$=[]){return V("svg",{width:Z,height:Z,viewBox:`0 0 ${Z} ${Z}`,fill:"none"},[...$,V("path",{d:_,stroke:"currentColor","stroke-width":"1","stroke-linecap":"round",fill:"none"})])}static#p(_,Z,$,q,J=24){return y.#v(y.#x(_,Z,$,q,J),J,y.#m(J))}static curveIcon(_,Z,$,q,J=24){let Q=y.#x(_,Z,$,q,J),j=y.#S(J).map(({x:W,y:K})=>`<circle cx="${W}" cy="${K}" r="0.5" fill="var(--figma-color-icon-tertiary)"></circle>`).join("");return`<svg width="${J}" height="${J}" viewBox="0 0 ${J} ${J}" fill="none">${j}<path d="${Q}" stroke="currentColor" stroke-width="1" stroke-linecap="round"/></svg>`}#d(){return this.getAttribute("edit")!=="false"}#a(){return this.getAttribute("presets")!=="false"}#c(){return this.getAttribute("text")!=="false"}#i(){if(this.classList.toggle("spring-mode",this.#$==="spring"),this.classList.toggle("bezier-mode",this.#$!=="spring"),this.#j0(),this.replaceChildren(...this.#K0()),this.#N0(),this.#K)this.#L0(),this.#r(),this.#e();this.#_0(),this.#y0()}#o(){return["fig-select","fig-select-options","fig-select-option"].every((_)=>{let Z=customElements.get(_);return typeof Z==="function"&&Z.prototype instanceof HTMLElement})}#s(){let _=Y("fig-dropdown",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#R,full:!0}),Z=void 0,$=_;for(let q of y.PRESETS){if(!this.#E(q))continue;if(!this.#d()&&!q.value&&!q.spring)continue;if(q.group!==Z){if(Z=q.group,$=Z?Y("optgroup",{label:Z}):_,$!==_)_.appendChild($)}$.appendChild(Y("option",{value:q.name},q.name))}return _}#u(){if(!this.#o())return this.#s();let _=document.createElement("fig-select-options"),Z=void 0;for(let $ of y.PRESETS){if(!this.#E($))continue;if(!this.#d()&&!$.value&&!$.spring)continue;if($.group!==Z){if($.group)_.appendChild(Y("fig-separator",{label:$.group}));Z=$.group}let q;if($.type==="spring"){let J=$.spring||this.#q;q=y.#w(J)}else{let J=$.value||[this.#Z.x,this.#Z.y,this.#_.x,this.#_.y];q=y.#p(...J)}_.appendChild(Y("fig-select-option",{value:$.name,label:$.name},[Y("span",{slot:"prepend"},q),Y("span",{},$.name)]))}return Y("fig-select",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#R,full:!0},_)}#l(_,Z,$){let q=Y("fig-handle",{size:"small",type:"minimal","aria-label":$});return V("foreignObject",{className:_,"data-handle":Z,width:"20",height:"20"},Y("fig-tooltip",{text:this.#n(Z)},q))}#t(_){if(!Number.isFinite(_))return"0";return String(Number(_.toFixed(this.#J)))}#n(_){if(this.#$==="spring"){if(_==="bounce")return`Bounce ${this.#t(this.#X0())}`;return`Duration ${Math.round(this.#M*100)}%`}let Z=_==="1"?this.#Z:this.#_;return`${_==="1"?"Start":"End"} ${this.#t(Z.x)}, ${this.#t(Z.y)}`}#$0(){for(let[_,Z]of[[this.#X,this.#$==="spring"?"bounce":"1"],[this.#G,this.#$==="spring"?"duration":"2"]]){let $=_?.querySelector("fig-tooltip");if($)$.text=this.#n(Z)}}#q0(_,Z){let $=_?.querySelector("fig-tooltip");if(!$)return;if(Z)$.setAttribute("show","true");else $.removeAttribute("show")}#K0(){let Z=this.#a()?this.#u():null;if(!this.#d())return Z?[Z]:[];let $=this.#c()?this.#$==="spring"?Y("fig-input-number",{className:"fig-easing-curve-value-input",value:this.#X0().toFixed(2),min:"0",max:"1",step:"0.01",precision:"2","aria-label":"Spring bounce",full:!0}):Y("fig-input-text",{className:"fig-easing-curve-value-input",value:this.value,full:!0}):null,q=[V("rect",{className:"fig-easing-curve-bounds",x:"0",y:"0",width:200,height:200})];if(this.#$==="spring")q.push(V("line",{className:"fig-easing-curve-target",x1:"0",y1:40,x2:200,y2:40}),V("path",{className:"fig-easing-curve-path"}),this.#l("fig-easing-curve-handle","bounce","Spring bounce handle"),this.#l("fig-easing-curve-handle fig-easing-curve-duration-bar","duration","Spring duration handle"));else q.push(V("line",{className:"fig-easing-curve-boundary","data-boundary":"top",x1:"0",y1:"0",x2:200,y2:"0"}),V("line",{className:"fig-easing-curve-boundary","data-boundary":"bottom",x1:"0",y1:200,x2:200,y2:200}),V("path",{className:"fig-easing-curve-path"}),V("line",{className:"fig-easing-curve-arm","data-arm":"1"}),V("line",{className:"fig-easing-curve-arm","data-arm":"2"}),this.#l("fig-easing-curve-handle","1","First easing control point"),this.#l("fig-easing-curve-handle","2","Second easing control point"));let J=V("svg",{viewBox:"0 0 200 200",className:"fig-easing-curve-svg"},q);return[...Z?[Z]:[],Y("div",{className:"fig-easing-curve-svg-container"},J),...$?[$]:[]]}#Q0(_,Z){let $=getComputedStyle(this).getPropertyValue(_).trim();if(!$)return Z;let q=Number.parseFloat($);return Number.isFinite(q)?q:Z}#j0(){this.#C=this.#Q0("--easing-duration-bar-radius",this.#C)}#N0(){this.#K=this.querySelector(".fig-easing-curve-svg"),this.#Q=this.querySelector(".fig-easing-curve-path"),this.#W=this.querySelector('[data-arm="1"]'),this.#N=this.querySelector('[data-arm="2"]'),this.#X=this.querySelector('[data-handle="1"]')||this.querySelector('[data-handle="bounce"]'),this.#G=this.querySelector('[data-handle="2"]')||this.querySelector('[data-handle="duration"]'),this.#L=this.querySelector(".fig-easing-curve-select"),this.#U=this.querySelector(".fig-easing-curve-value-input"),this.#B=this.querySelector(".fig-easing-curve-target"),this.#F=this.querySelector(".fig-easing-curve-bounds"),this.#V=this.querySelector('[data-boundary="top"]'),this.#I=this.querySelector('[data-boundary="bottom"]')}#L0(){let _=this.#X?.querySelector("fig-handle"),Z=this.#G?.querySelector("fig-handle");if(_){let $=_.offsetWidth||this.#H*2,q=_.offsetHeight||this.#H*2;this.#H=Math.max($,q)/2,this.#X.setAttribute("width",$),this.#X.setAttribute("height",q)}if(Z){let $=Z.offsetWidth||this.#T,q=Z.offsetHeight||this.#z;if(this.#$==="spring")this.#T=$,this.#z=q;this.#G.setAttribute("width",$),this.#G.setAttribute("height",q)}}#J0(){if(this.#A||!window.ResizeObserver)return;this.#A=new ResizeObserver(()=>{if(this.#r())this.#e()}),this.#A.observe(this)}#r(){if(!this.#K)return!1;let _=this.#K.getBoundingClientRect(),Z=Math.max(1,Math.round(_.width||200)),$=Math.max(1,Math.round(_.height||200)),q=Z!==this.#O||$!==this.#Y;return this.#O=Z,this.#Y=$,this.#K.setAttribute("viewBox",`0 0 ${Z} ${$}`),q}#M0(){let _=Math.min(0,this.#Z.y,this.#_.y),Z=Math.max(1,this.#Z.y,this.#_.y),$=Z-_||1,q=0;return{minVal:_,maxVal:Z,range:$,pad:0,draw:Math.max(1,this.#Y-0)}}#R0(_,Z){let{maxVal:$,range:q,pad:J,draw:Q}=this.#M0();return{x:_*this.#O,y:J+($-Z)/q*Q}}#P0(_,Z){let{maxVal:$,range:q,pad:J,draw:Q}=this.#M0();return{x:_/this.#O,y:$-(Z-J)/Q*q}}#A0={minVal:0,maxVal:1.2,totalTime:1};#W0(_,Z){let q=this.#Y-40,{minVal:J,maxVal:Q}=this.#A0,j=Q-J||1;return{x:_*this.#O,y:20+(1-(Z-J)/j)*q}}#e(){if(this.#r(),this.#$==="spring")this.#E0();else this.#D0();this.#$0()}#F0(){this.#W?.classList.toggle("is-active",this.#$==="bezier"&&this.#j===1),this.#N?.classList.toggle("is-active",this.#$==="bezier"&&this.#j===2)}#D0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#O),this.#F.setAttribute("height",this.#Y);let _=this.#R0(0,0),Z=this.#R0(this.#Z.x,this.#Z.y),$=this.#R0(this.#_.x,this.#_.y),q=this.#R0(1,1);for(let[Q,j]of[[this.#V,q.y],[this.#I,_.y]]){if(!Q)continue;Q.setAttribute("x1","0"),Q.setAttribute("y1",j),Q.setAttribute("x2",this.#O),Q.setAttribute("y2",j)}this.#Q.setAttribute("d",`M${_.x},${_.y} C${Z.x},${Z.y} ${$.x},${$.y} ${q.x},${q.y}`),this.#W.setAttribute("x1",_.x),this.#W.setAttribute("y1",_.y),this.#W.setAttribute("x2",Z.x),this.#W.setAttribute("y2",Z.y),this.#N.setAttribute("x1",q.x),this.#N.setAttribute("y1",q.y),this.#N.setAttribute("x2",$.x),this.#N.setAttribute("y2",$.y);let J=this.#H;this.#X.setAttribute("x",Z.x-J),this.#X.setAttribute("y",Z.y-J),this.#G.setAttribute("x",$.x-J),this.#G.setAttribute("y",$.y-J),this.#C0()}#C0(){if(!this.#K||!this.#X||!this.#G)return;let _=this.#Z.y>=this.#_.y?[this.#X,this.#G]:[this.#G,this.#X];for(let Z of _)this.#K.append(Z)}#E0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#O),this.#F.setAttribute("height",this.#Y);let _=this.#g();if(!_.length)return;let Z=_[_.length-1].t||1,$=0,q=1;for(let M of _){if(M.value<$)$=M.value;if(M.value>q)q=M.value}let J=Math.max(Math.abs($-1),Math.abs(q-1),0.01),Q=0;this.#A0={minVal:1-J-Q,maxVal:1+J+Q,totalTime:Z};let j=Math.max(0.05,Math.min(1,this.#M)),W="";for(let M=0;M<_.length;M++){let z=_[M].t/Z*j,T=this.#W0(z,_[M].value);W+=(M===0?"M":"L")+T.x.toFixed(1)+","+T.y.toFixed(1)}let K=this.#W0(j,1),N=this.#W0(1,1);if(W+=`L${K.x.toFixed(1)},${K.y.toFixed(1)} L${N.x.toFixed(1)},${N.y.toFixed(1)}`,this.#Q.setAttribute("d",W),this.#B){let M=this.#W0(0,1),z=this.#W0(1,1);this.#B.setAttribute("x1",M.x),this.#B.setAttribute("y1",M.y),this.#B.setAttribute("x2",z.x),this.#B.setAttribute("y2",z.y)}let L=this.#f0(_),G=L.t/Z*j,X=this.#W0(G,L.value),R=this.#H;this.#X.setAttribute("x",X.x-R),this.#X.setAttribute("y",X.y-R);let B=this.#W0(j,1);this.#G.setAttribute("x",B.x-this.#T/2),this.#G.setAttribute("y",B.y-this.#z/2)}#f0(_){let Z={t:0,value:1},$=!1;for(let q=1;q<_.length-1;q++){let J=_[q-1],Q=_[q],j=_[q+1];if(Q.value>=0.99)$=!0;if($&&Q.value>Z.value)Z={t:Q.t,value:Q.value};if($&&Q.value>1&&Q.value>=J.value&&Q.value>=j.value)return{t:Q.t,value:Q.value}}return Z}#G0(){if(!this.#L)return;this.#L.value=this.#R,this.#w0()}#_0(){if(!this.#U)return;let _=this.#$==="spring"?this.#X0().toFixed(2):this.value;this.#U.setAttribute("value",_)}#X0(){let{stiffness:_,damping:Z,mass:$}=this.#q,q=2*Math.sqrt(_*$);if(!Number.isFinite(q)||q<=0)return 0;return Math.max(0,Math.min(1,1-Z/q))}#U0(_){let Z=Math.max(0,Math.min(1,Number(_))),$=2*Math.sqrt(this.#q.stiffness*this.#q.mass);this.#q.damping=Number(($*(1-Z)).toFixed(4))}#H0(_,Z){let $=Number(_);if(!Number.isFinite($)){if(Z==="change")this.#_0();return}if(this.#U0($),this.#R=this.#y(),this.#e(),this.#G0(),Z==="change")this.#_0();this.#Z0(Z)}#V0(_){let Z=_.split(",").map(($)=>Number.parseFloat($.trim()));if(Z.length!==4||Z.some(($)=>!Number.isFinite($)))return null;if(Z[0]<0||Z[0]>1||Z[2]<0||Z[2]>1)return null;return Z}#S0(_){return this.#D(_)}#z0(_,Z){let $=this.#k(),q=$==="bezier"?null:this.#S0(_),J=$==="spring"?null:this.#V0(_);if(!q&&!J){if(Z==="change")this.#_0();return}let Q=this.#$;if(q)this.#$="spring",this.#q=q;else this.#$="bezier",this.#Z.x=J[0],this.#Z.y=J[1],this.#_.x=J[2],this.#_.y=J[3];if(this.#R=this.#y(),Q!==this.#$)this.#i();else if(this.#e(),this.#G0(),Z==="change")this.#_0();this.#Z0(Z)}#T0(_,Z){if(!this.#L)return;for(let $ of this.#L.querySelectorAll("fig-select-option"))if($.value===_){let q=$.querySelector(':scope > [slot="prepend"]');if(q)q.replaceChildren(Z.cloneNode(!0))}}#w0(){if(!this.#L)return;if(!this.#d())return;let _=y.#p(this.#Z.x,this.#Z.y,this.#_.x,this.#_.y),Z=y.#w(this.#q);this.#T0("Custom bezier",_),this.#T0("Custom spring",Z)}#k0(_){this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0(_)}#x0(_,Z){let $=_.shiftKey?0.1:0.01,q=Z===1?this.#Z:this.#_;switch(_.key){case"ArrowLeft":q.x-=$;break;case"ArrowRight":q.x+=$;break;case"ArrowUp":q.y+=$;break;case"ArrowDown":q.y-=$;break;case"Home":q.x=0,q.y=0;break;case"End":q.x=1,q.y=1;break;default:return!1}return q.x=Math.max(0,Math.min(1,Math.round(q.x*100)/100)),q.y=Math.round(q.y*100)/100,this.#k0("input"),this.#Z0("change"),!0}#b0(_,Z){let $=_.shiftKey?10:1;if(Z==="bounce"){let q=$/100;switch(_.key){case"ArrowUp":this.#U0(this.#X0()+q);break;case"ArrowDown":this.#U0(this.#X0()-q);break;case"Home":this.#U0(0);break;case"End":this.#U0(1);break;default:return!1}}else{let q=$*2;switch(_.key){case"ArrowLeft":this.#M=Math.max(0.05,this.#M-q/200),this.#q.stiffness=Math.max(10,Math.round(this.#q.stiffness+q*1.5));break;case"ArrowRight":this.#M=Math.min(1,this.#M+q/200),this.#q.stiffness=Math.max(10,Math.round(this.#q.stiffness-q*1.5));break;case"Home":this.#M=0.05;break;case"End":this.#M=1;break;default:return!1}}return this.#k0("input"),this.#Z0("change"),!0}#Y0(_,Z){let $=_?.querySelector("fig-handle");if(!$)return;$.addEventListener("pointerdown",(q)=>{if(q.preventDefault(),q.stopImmediatePropagation(),this.#$==="bezier")this.#O0(q,Number(Z));else this.#B0(q,Z)},{capture:!0}),$.addEventListener("keydown",(q)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(q.key))return;if(!(this.#$==="bezier"?this.#x0(q,Number(Z)):this.#b0(q,Z)))return;q.preventDefault(),q.stopImmediatePropagation()},{capture:!0})}#Z0(_){let Z=this.spring;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{mode:this.#$,value:this.value,cssValue:this.cssValue,preset:this.#R,...Z?{spring:Z}:{}}}))}#y0(){if(this.#K&&this.#$==="bezier"){this.#Y0(this.#X,"1"),this.#Y0(this.#G,"2"),this.#X.addEventListener("pointerdown",(Z)=>this.#O0(Z,1)),this.#G.addEventListener("pointerdown",(Z)=>this.#O0(Z,2));let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(Z)=>{if(Z.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#O0(Z,this.#h0(Z))})}else if(this.#K){this.#Y0(this.#X,"bounce"),this.#Y0(this.#G,"duration"),this.#X.addEventListener("pointerdown",(Z)=>{Z.stopPropagation(),this.#B0(Z,"bounce")}),this.#G.addEventListener("pointerdown",(Z)=>{Z.stopPropagation(),this.#B0(Z,"duration")});let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(Z)=>{if(Z.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#B0(Z,"duration")})}if(this.#L)this.#L.addEventListener("input",(_)=>{_.stopPropagation()}),this.#L.addEventListener("optionhover",(_)=>{_.stopPropagation()}),this.#L.addEventListener("change",(_)=>{_.stopPropagation();let Z=_.detail,$=y.PRESETS.find((q)=>q.name===Z);if(!$)return;if($.type==="bezier"){if($.value)this.#Z.x=$.value[0],this.#Z.y=$.value[1],this.#_.x=$.value[2],this.#_.y=$.value[3];if(this.#R=Z,this.#$!=="bezier")this.#$="bezier",this.#i();else if(this.#K)this.#e(),this.#_0()}else if($.type==="spring"){if($.spring)this.#q={...$.spring,initialVelocity:0};if(this.#R=Z,this.#$!=="spring")this.#$="spring",this.#i();else if(this.#K)this.#e(),this.#_0()}this.#Z0("input"),this.#Z0("change")});if(this.#U)this.#U.addEventListener("input",(_)=>{_.stopPropagation();let Z=_.detail??_.target?.value;if(this.#$==="spring")this.#H0(Z,"input");else if(typeof Z==="string")this.#z0(Z,"input")}),this.#U.addEventListener("change",(_)=>{_.stopPropagation();let Z=_.detail??_.target?.value;if(this.#$==="spring")this.#H0(Z,"change");else if(typeof Z==="string")this.#z0(Z,"change")})}#I0(_){let Z=this.#K.getScreenCTM();if(!Z)return{x:0,y:0};let $=Z.inverse();return{x:$.a*_.clientX+$.c*_.clientY+$.e,y:$.b*_.clientX+$.d*_.clientY+$.f}}#h0(_){return this.#I0(_).x<=this.#O/2?1:2}#O0(_,Z){_.preventDefault(),this.#j=Z,this.#F0();let $=Z===1?this.#X:this.#G;this.#q0($,!0);let q=this.#K.getBoundingClientRect(),J=_.clientX,Q=_.clientY,j=_.target?.closest?.(".fig-easing-curve-handle, fig-handle"),W=Z===1?this.#Z:this.#_,K=this.#I0(_),N=j?{...W}:this.#P0(K.x,K.y),{range:L,draw:G}=this.#M0(),X=L/Math.max(1,G/this.#Y*Math.max(1,q.height)),R=(M)=>{if(!this.#j)return;let z={x:N.x+(M.clientX-J)/Math.max(1,q.width),y:M.shiftKey?Z===1?0:1:N.y-(M.clientY-Q)*X};if(z.x=Math.round(z.x*100)/100,z.y=Math.round(z.y*100)/100,z.x=Math.max(0,Math.min(1,z.x)),this.#j===1)this.#Z.x=z.x,this.#Z.y=z.y;else this.#_.x=z.x,this.#_.y=z.y;this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0("input")},B=()=>{this.#j=null,this.#F0(),this.#q0($,!1),document.removeEventListener("pointermove",R),document.removeEventListener("pointerup",B),this.#Z0("change")};document.addEventListener("pointermove",R),document.addEventListener("pointerup",B)}#B0(_,Z){_.preventDefault(),this.#j=Z,this.classList.toggle("spring-bounce-dragging",Z==="bounce");let $=Z==="bounce"?this.#X:this.#G;this.#q0($,!0);let q=this.#X0(),J=this.#q.stiffness,Q=this.#M,j=_.clientY,W=_.clientX,K=(L)=>{if(!this.#j)return;if(Z==="bounce"){let G=L.clientY-j;this.#U0(q-G/200)}else{let G=L.clientX-W;this.#M=Math.max(0.05,Math.min(1,Q+G/200)),this.#q.stiffness=Math.max(10,Math.round(J-G*1.5))}this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0("input")},N=()=>{this.#j=null,this.classList.remove("spring-bounce-dragging"),this.#q0($,!1),document.removeEventListener("pointermove",K),document.removeEventListener("pointerup",N),this.#Z0("change")};document.addEventListener("pointermove",K),document.addEventListener("pointerup",N)}}A("fig-easing-curve",y);class a extends HTMLElement{#Z=0;#_=0;#q="deg";#$=null;#J=null;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=null;#G=null;#L=null;#U=null;#R=!1;#B=!1;#M=(_)=>this.#q0(_);#O=(_)=>this.#K0(_);#Y=(_)=>this.#Q0(_);#F=(_)=>this.#N0(_);#V=(_)=>this.#L0(_);#I=(_)=>this.#J0(_);#A=()=>this.#t();static#H(_,Z=12,$=12,q=7,J=3,Q=0){let j=Number(_),W=Number(Q),K=Number.isFinite(j)?j:0,N=Number.isFinite(W)?W:0,L=K-N,G=L<0?"counterclockwise":"clockwise",X=Math.abs(L);if(X<0.001)return{direction:G,arc:"",arrow:""};let R=(d)=>`${Number(d.x.toFixed(3))} ${Number(d.y.toFixed(3))}`,B=(d)=>{let _0=d*Math.PI/180;return{x:Z+Math.cos(_0)*q,y:$+Math.sin(_0)*q}},M=L>=0?1:-1,z=G==="clockwise"?1:0,T=[`M ${R(B(N))}`],I=N,U=Math.floor(X/360);for(let d=0;d<U;d++)I+=M*180,T.push(`A ${q} ${q} 0 0 ${z} ${R(B(I))}`),I+=M*180,T.push(`A ${q} ${q} 0 0 ${z} ${R(B(I))}`);let P=X-U*360;if(P>=0.001)I+=M*P,T.push(`A ${q} ${q} 0 ${P>180?1:0} ${z} ${R(B(I))}`);let D=B(K),E=K*Math.PI/180,f=L>=0?{x:-Math.sin(E),y:Math.cos(E)}:{x:Math.sin(E),y:-Math.cos(E)},x={x:-f.y,y:f.x},S=J/Math.SQRT2,c={x:D.x-f.x*S+x.x*S,y:D.y-f.y*S+x.y*S},i={x:D.x-f.x*S-x.x*S,y:D.y-f.y*S-x.y*S};return{direction:G,arc:T.join(" "),arrow:`M ${R(c)} L ${R(D)} L ${R(i)}`}}static#T(_=0,Z=0){let $=a.#H(_,50,50,47,4,Z);return V("svg",{class:"fig-angle-reference",x:"3%",y:"3%",width:"94%",height:"94%",viewBox:"3 3 94 94",fill:"none",overflow:"visible","aria-hidden":"true","data-direction":$.direction},V("path",{class:"fig-angle-reference-path",d:[$.arc,$.arrow].filter(Boolean).join(" "),hidden:!$.arc,fill:"none",stroke:"currentColor","stroke-width":"var(--stroke-width)","stroke-linecap":"round","stroke-linejoin":"round"}))}static rotationIcon(_=0,Z=48){let $=Number.isFinite(Number(Z))?Math.max(1,Number(Z)):48,q=a.#H(_),J=q.arc?`<path d="${q.arc} ${q.arrow}" fill="none" stroke="currentColor" stroke-width="var(--stroke-width, 1)" stroke-linecap="round" stroke-linejoin="round"></path>`:"";return`<svg width="${$}" height="${$}" viewBox="0 0 24 24" fill="none" data-direction="${q.direction}">${J}</svg>`}static get observedAttributes(){return["value","default","precision","dial","min","max","step","units","rotations","disabled","aria-label","name"]}connectedCallback(){this.#z(),this.#i()}disconnectedCallback(){this.#j0(),this.#s()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(this.#B)return;if(_==="value"){if(this.#R)return;let q=Number($);if(Number.isFinite(q))this.#u(q,{reflect:!1});return}if(_==="units"&&this.isConnected){let q=this.#x(this.#Z),J=this.#q;this.#q=this.#k($),this.#P(J,this.#q),this.#_=this.#C(),this.#u(this.#S(q)),this.#i();return}if(this.#z(),!this.isConnected)return;if(["dial","precision","min","max","step","units","rotations","disabled","aria-label","name"].includes(_)){this.#i();return}this.#u(this.#Z)}get value(){return this.#Z}set value(_){let Z=Number(_);if(!Number.isFinite(Z))return;this.#u(Z)}get defaultValue(){return this.#y()}set defaultValue(_){if(_===null||_===void 0||_===""){this.removeAttribute("default");return}let Z=Number(_);if(Number.isFinite(Z))this.setAttribute("default",String(Z))}get adjacent(){return Math.cos(this.#x(this.#Z)*Math.PI/180)}get opposite(){return Math.sin(this.#x(this.#Z)*Math.PI/180)}focus(_){this.#J?.focus(_)}#z(){this.#q=this.#k(this.getAttribute("units")),this.#_=this.#C();let _=this.getAttribute("value"),Z=_===null||_.trim()===""?this.#y():Number(_);if(Number.isFinite(Z))this.#Z=this.#h(Z)}#C(){if(!this.hasAttribute("precision")){if(this.#q==="turn")return 3;if(this.#q==="rad")return 2;return 0}let _=Number.parseInt(this.getAttribute("precision"),10);return Number.isFinite(_)?Math.max(0,_):0}#k(_){let Z=String(_||"deg").trim().toLowerCase();if(Z==="°")return"°";return["deg","rad","turn","grad"].includes(Z)?Z:"deg"}#P(_,Z){if(_===Z)return;this.#B=!0;for(let $ of["min","max","default","step"]){let q=this.getAttribute($);if(q===null||q.trim()==="")continue;let J=Number(q);if(!Number.isFinite(J))continue;let Q=this.#w(this.#g(J,_),Z);this.setAttribute($,String(Q))}this.#B=!1}#E(_,Z=!1){if(!this.hasAttribute(_))return Z;return this.getAttribute(_)?.toLowerCase()!=="false"}#f(){return F(this,"disabled")}#b(){let _=Number(this.getAttribute("min"));return this.hasAttribute("min")&&Number.isFinite(_)?_:null}#D(){let _=Number(this.getAttribute("max"));return this.hasAttribute("max")&&Number.isFinite(_)?_:null}#h(_){let Z=Number(_);if(!Number.isFinite(Z))return this.#Z;let $=this.#b(),q=this.#D();if($!==null)Z=Math.max($,Z);if(q!==null)Z=Math.min(q,Z);return Z}#y(_=this.getAttribute("default")){let Z=_===null||String(_).trim()===""?0:Number(_);return this.#h(Number.isFinite(Z)?Z:0)}#g(_,Z){switch(Z){case"rad":return _*180/Math.PI;case"turn":return _*360;case"grad":return _*0.9;default:return _}}#w(_,Z){switch(Z){case"rad":return _*Math.PI/180;case"turn":return _/360;case"grad":return _/0.9;default:return _}}#x(_){return this.#g(_,this.#q)}#S(_){return this.#w(_,this.#q)}#m(){return this.#q==="deg"?"°":this.#q}#v(){let _=this.#x(this.#Z),Z=_/360,$=Math.round(Z),q=Math.abs(Z-$)<0.0000000001?$:Math.trunc(Z),J=_-q*360;return{rotations:q,remainder:this.#S(Math.abs(J)<0.0000000001?0:J)}}#p(){return this.#E("rotations")?this.#v().remainder:this.#Z}#d(){switch(this.#q){case"rad":return 0.01;case"turn":return 0.001;case"grad":return 0.1;default:return 1}}#a(){let _=Number(this.getAttribute("step"));return this.hasAttribute("step")&&Number.isFinite(_)&&_>0?_:this.#d()}#c(){return this.getAttribute("aria-label")||this.getAttribute("name")||"Angle"}#i(){this.#j0(),this.#s();let _=[],Z=this.#E("rotations")?Y("span",{slot:"append",className:"fig-angle-rotations"},Y("span",{className:"fig-angle-rotation-value"})):null,$=this.#E("dial",!0),q=Y("fig-input-number",{className:"fig-angle-input",variant:$?"ghost":void 0,tabular:!0,name:"angle",value:this.#p(),min:this.#b(),max:this.#D(),step:this.#a(),precision:this.#_,units:this.#m(),disabled:this.#f(),"aria-label":this.#c()},Z);if($){let J=Y("fig-tooltip",{text:"Reset"},Y("fig-button",{variant:"ghost",icon:"true",className:"fig-angle-reset",disabled:this.#f(),"aria-label":"Reset to default"},h("reset",{size:"small"}))),Q=this.#b()??this.#S(0),j=this.#D()??this.#S(360),W=this.#f(),K=Array.from({length:24},(L,G)=>{let X=G*15,R=X*Math.PI/180,B=37,M=X%45===0?31:35;return V("line",{class:X%45===0?"fig-angle-tick fig-angle-tick-major":"fig-angle-tick",x1:50+Math.cos(R)*M,y1:50+Math.sin(R)*M,x2:50+Math.cos(R)*37,y2:50+Math.sin(R)*37})}),N=V("svg",{class:"fig-angle-svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid meet",role:"slider",tabindex:W?"-1":"0","aria-label":this.#c(),"aria-valuemin":Q,"aria-valuemax":j,"aria-disabled":W?"true":"false"},[V("rect",{class:"fig-angle-hit-area",x:"0",y:"0",width:"100",height:"100",fill:"transparent"}),V("circle",{class:"fig-angle-boundary",cx:"50",cy:"50",r:"47"}),...K,a.#T(this.#x(this.#Z),this.#x(this.#y())),V("line",{class:"fig-angle-indicator-halo",x1:"75",y1:"50",x2:"87",y2:"50"}),V("line",{class:"fig-angle-indicator",x1:"75",y1:"50",x2:"87",y2:"50"})]);_.push(Y("div",{className:"fig-angle-surface"},[N,q,J]))}else _.push(q);this.replaceChildren(..._),this.#$=this.querySelector(".fig-angle-surface"),this.#J=this.querySelector(".fig-angle-svg"),this.#j=this.querySelector(".fig-angle-indicator"),this.#K=this.querySelector(".fig-angle-indicator-halo"),this.#Q=this.querySelector(".fig-angle-reference"),this.#W=this.querySelector(".fig-angle-input"),this.#N=this.querySelector(".fig-angle-rotations"),this.#X=this.querySelector(".fig-angle-reset"),this.#o(),this.#l()}#o(){this.#G=new AbortController;let _=this.#G.signal;this.#J?.addEventListener("pointerdown",this.#M,{signal:_}),this.#J?.addEventListener("pointermove",this.#O,{signal:_}),this.#J?.addEventListener("pointerup",this.#Y,{signal:_}),this.#J?.addEventListener("pointercancel",this.#Y,{signal:_}),this.#J?.addEventListener("lostpointercapture",this.#Y,{signal:_}),this.#J?.addEventListener("keydown",this.#F,{signal:_}),this.#W?.addEventListener("input",this.#V,{signal:_}),this.#W?.addEventListener("change",this.#V,{signal:_}),this.#X?.addEventListener("click",this.#A,{signal:_}),this.addEventListener("change",this.#I,{capture:!0,signal:_})}#s(){this.#G?.abort(),this.#G=null}#u(_,{reflect:Z=!0}={}){let $=this.#h(_);if(this.#Z=$,Z){let q=String($);if(this.getAttribute("value")!==q)this.#R=!0,this.setAttribute("value",q),this.#R=!1}this.#l()}#l(){let _=this.#x(this.#Z),$=`rotate(${(_%360+360)%360} 50 50)`;this.#j?.setAttribute("transform",$),this.#K?.setAttribute("transform",$);let q=this.#x(this.#y()),J=a.#H(_,50,50,47,4,q);this.#Q?.setAttribute("data-direction",J.direction);let Q=this.#Q?.querySelector(".fig-angle-reference-path");if(Q?.setAttribute("d",[J.arc,J.arrow].filter(Boolean).join(" ")),Q?.toggleAttribute("hidden",!J.arc),this.#J){let j=this.#S(0),W=this.#S(360);this.#J.setAttribute("aria-valuemin",String(this.#b()??Math.min(j,this.#Z))),this.#J.setAttribute("aria-valuemax",String(this.#D()??Math.max(W,this.#Z))),this.#J.setAttribute("aria-valuenow",String(this.#Z)),this.#J.setAttribute("aria-valuetext",`${this.#Z.toFixed(this.#_)}${this.#m()}`)}if(this.#W){let j=this.#p().toFixed(this.#_);if(this.#W.getAttribute("value")!==j)this.#W.setAttribute("value",j)}if(this.#N){let{rotations:j}=this.#v(),W=this.#N.querySelector(".fig-angle-rotation-value");if(W)W.textContent=j?`×${j}`:"";this.#N.hidden=j===0}if(this.#X)this.#X.hidden=this.#Z===this.#y()}#t(){if(this.#f())return;this.#u(this.#y()),this.#r("input"),this.#r("change")}#n(_){let Z=this.#$.getBoundingClientRect(),$=Z.left+Z.width/2,q=Z.top+Z.height/2,J=_.clientX-$,Q=_.clientY-q;if(Math.hypot(J,Q)<Math.min(Z.width,Z.height)*0.08)return null;let j=Math.atan2(Q,J)*180/Math.PI;if(j=(j%360+360)%360,_.shiftKey)j=Math.round(j/15)*15;return j}#$0(_){let Z=this.#n(_);if(Z===null)return;let $=this.#x(this.#Z),q;if(this.#U===null){let J=($%360+360)%360;q=Z-J}else q=Z-this.#U;if(q>180)q-=360;if(q<-180)q+=360;this.#U=Z,this.#u(this.#S($+q)),this.#r("input")}#q0(_){if(this.#f()||_.button!==0)return;_.preventDefault(),this.#J?.focus({preventScroll:!0}),this.#L=_.pointerId,this.#U=null,this.#$.classList.add("dragging");try{this.#J.setPointerCapture?.(_.pointerId)}catch{}this.#$0(_)}#K0(_){if(_.pointerId!==this.#L)return;if(_.buttons===0){this.#Q0(_);return}this.#$0(_)}#Q0(_){if(_.pointerId!==this.#L)return;let Z=this.#L;if(this.#L=null,this.#U=null,this.#$?.classList.remove("dragging"),this.#J?.hasPointerCapture?.(Z))this.#J.releasePointerCapture(Z);this.#r("change")}#j0(){this.#L=null,this.#U=null,this.#$?.classList.remove("dragging")}#N0(_){if(this.#f())return;let Z=this.#Z,$=_.key==="ArrowLeft"||_.key==="ArrowDown"?-1:_.key==="ArrowRight"||_.key==="ArrowUp"?1:0;if($){let q=_.shiftKey?this.#S(15):this.#a();Z+=$*q}else if(_.key==="Home")Z=this.#b()??this.#S(0);else if(_.key==="End")Z=this.#D()??this.#S(360);else return;_.preventDefault(),_.stopPropagation(),this.#u(Z),this.#r("input"),this.#r("change")}#L0(_){if(_.stopPropagation(),this.#f())return;let Z=Number(_.currentTarget.value);if(!Number.isFinite(Z))return;if(this.#E("rotations")){let{rotations:$}=this.#v();this.#u(this.#S($*360+this.#x(Z)))}else this.#u(Z);this.#r(_.type)}#J0(_){if(!_.target?.matches?.("input"))return;let Z=String(_.target.value).match(/^(-?\d*\.?\d+)\s*(deg|°|rad|turn|grad)$/i);if(!Z)return;let $=Number(Z[1]),q=this.#k(Z[2]),J=$;if(q==="rad")J=$*180/Math.PI;else if(q==="turn")J=$*360;else if(q==="grad")J=$*0.9;_.target.value=String(this.#S(J))}#r(_){let Z=Number(this.value.toFixed(this.#_));this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!0,detail:{value:Z,angle:Z,units:this.#q}}))}}A("fig-angle",a);class f_ extends HTMLElement{#Z=0;#_=0;#q=0;#$=1;#J=!1;#j=!1;#K=null;#Q=null;#W=null;#N=null;#X=(_)=>this.#f(_);#G=null;#L=[];#U={};#R={};static get observedAttributes(){return["value","precision","aspect-ratio","fields","perspective","perspective-origin","transform-origin","selected","drag"]}connectedCallback(){this.#$=parseInt(this.getAttribute("precision")||"1"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),m(this,"--perspective",this.getAttribute("perspective")),m(this,"--perspective-origin",this.getAttribute("perspective-origin")),this.#O(this.getAttribute("transform-origin")),this.#V(this.getAttribute("fields"));let _=this.getAttribute("value");if(_)this.#I(_);if(this.querySelector(".fig-3d-rotate-container"))this.#B();else this.#A();this.#F(this.getAttribute("selected")),this.#Y()}disconnectedCallback(){this.#J=!1,this.#M()}#B(){this.#Q=this.querySelector(".fig-3d-rotate-container"),this.#K=this.querySelector(".fig-3d-rotate-cube"),this.#H(),this.#z(),this.#P()}#M(){if(this.#G?.abort(),this.#G=null,this.#W)window.removeEventListener("keydown",this.#W),window.removeEventListener("keyup",this.#N),this.#W=null,this.#N=null}#O(_){if(!_||!_.trim()){this.style.removeProperty("--transform-origin");return}let Z=_.trim().split(/\s+/);if(Z.length===2)this.style.setProperty("--transform-origin",`${Z[0]} ${Z[1]} -50cqi`);else this.style.setProperty("--transform-origin",_.trim())}#Y(){if(!this.#Q)return;this.#Q.style.cursor=this.#E?"":"default"}#F(_){if(!this.#K)return;let Z=this.#K.querySelectorAll(".fig-3d-rotate-face"),$=_?_.trim().toLowerCase():"";for(let q of Z)q.classList.toggle("selected",$!==""&&q.classList.contains($))}#V(_){if(!_||!_.trim()){this.#L=[];return}let Z=["rotateX","rotateY","rotateZ"];this.#L=_.split(",").map(($)=>$.trim()).filter(($)=>Z.includes($))}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="perspective"){m(this,"--perspective",$);return}if(_==="perspective-origin"){m(this,"--perspective-origin",$);return}if(_==="transform-origin"){this.#O($);return}if(_==="selected"){this.#F($);return}if(_==="drag"){this.#Y();return}if(_==="fields"){if(this.#V($),this.#K)this.#A();return}if(!this.#K)return;if(_==="value"&&$){if(this.#J)return;this.#I($),this.#z(),this.#T()}if(_==="precision")this.#$=parseInt($||"1")}get value(){let _=this.#$;return`rotateX(${this.#Z.toFixed(_)}deg) rotateY(${this.#_.toFixed(_)}deg) rotateZ(${this.#q.toFixed(_)}deg)`}set value(_){this.setAttribute("value",_)}get rotateX(){return this.#Z}get rotateY(){return this.#_}get rotateZ(){return this.#q}#I(_){let Z=_.match(/rotateX\(\s*(-?[\d.]+)\s*deg\s*\)/),$=_.match(/rotateY\(\s*(-?[\d.]+)\s*deg\s*\)/),q=_.match(/rotateZ\(\s*(-?[\d.]+)\s*deg\s*\)/);if(Z)this.#Z=parseFloat(Z[1]);if($)this.#_=parseFloat($[1]);if(q)this.#q=parseFloat(q[1])}#A(){let _={rotateX:"X",rotateY:"Y",rotateZ:"Z"},Z={rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q},$=Y("div",{className:"fig-3d-rotate-cube"},["front","back","right","left","top","bottom"].map((Q)=>Y("div",{className:`fig-3d-rotate-face ${Q}`}))),q=Y("div",{className:"fig-3d-rotate-container",tabindex:"0"},Y("div",{className:"fig-3d-rotate-scene"},$)),J=this.#L.map((Q)=>Y("fig-input-number",{name:Q,step:"1",precision:"1",value:Z[Q],units:"°"},Y("span",{slot:"prepend"},_[Q])));this.replaceChildren(q,...J),this.#Q=q,this.#K=$,this.#H(),this.#z(),this.#P()}#H(){this.#U={};for(let _ of this.#L){let Z=this.querySelector(`fig-input-number[name="${_}"]`);if(!Z)continue;if(this.#U[_]=Z,!this.#R[_])this.#R[_]=(q)=>{q.stopPropagation();let J=parseFloat(q.target.value);if(isNaN(J))return;if(_==="rotateX")this.#Z=J;else if(_==="rotateY")this.#_=J;else if(_==="rotateZ")this.#q=J;this.#z(),this.#C(q.type)};let $=this.#R[_];Z.removeEventListener("input",$),Z.removeEventListener("change",$),Z.addEventListener("input",$),Z.addEventListener("change",$)}}#T(){let _={rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q};for(let Z of this.#L){let $=this.#U[Z];if($)$.setAttribute("value",_[Z].toFixed(this.#$))}}#z(){if(!this.#K)return;this.#K.style.transform=`rotateX(${this.#Z}deg) rotateY(${this.#_}deg) rotateZ(${this.#q}deg)`}#C(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q}}))}#k(_){if(!this.#j)return _;return Math.round(_/15)*15}#P(){if(this.#M(),!this.#Q)return;this.#G=new AbortController,this.#Q.addEventListener("pointerdown",this.#X,{signal:this.#G.signal}),this.#W=(_)=>{if(_.key==="Shift")this.#j=!0},this.#N=(_)=>{if(_.key==="Shift")this.#j=!1},window.addEventListener("keydown",this.#W),window.addEventListener("keyup",this.#N)}get#E(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}#f(_){if(!this.#E)return;_.preventDefault(),this.#J=!0,this.#Q.classList.add("dragging"),this.#Q.setPointerCapture(_.pointerId);let{clientX:Z,clientY:$}=_,q=this.#Z,J=this.#_,Q=(W)=>{if(!this.#J)return;if(W.buttons===0){j();return}let K=W.clientX-Z,N=W.clientY-$;this.#_=this.#k(J+K*0.5),this.#Z=this.#k(q-N*0.5),this.#z(),this.#T(),this.setAttribute("value",this.value),this.#C("input")},j=()=>{if(!this.#J)return;this.setAttribute("value",this.value),this.#J=!1,this.#Q.classList.remove("dragging"),this.#Q.removeEventListener("pointermove",Q),this.#Q.removeEventListener("pointerup",j),this.#Q.removeEventListener("pointercancel",j),this.#Q.removeEventListener("lostpointercapture",j),this.#C("change")};this.#Q.addEventListener("pointermove",Q),this.#Q.addEventListener("pointerup",j),this.#Q.addEventListener("pointercancel",j),this.#Q.addEventListener("lostpointercapture",j)}}A("fig-3d-rotate",f_);class k0 extends HTMLElement{#Z=50;#_=50;#q=0;#$=null;#J=[];#j=null;#K=null;#Q=null;#W=!1;#N=!1;#X=null;#G=null;#L=null;static SNAP_POINTS=[0,16.6667,33.3333,50,66.6667,83.3333,100];static get observedAttributes(){return["value","precision","aspect-ratio","drag","fields"]}#U(){this.#$=this.querySelector(".origin-grid"),this.#J=Array.from(this.querySelectorAll(".origin-grid-cell")),this.#j=this.querySelector("fig-handle"),this.#K=this.querySelector('fig-input-number[name="x"]'),this.#Q=this.querySelector('fig-input-number[name="y"]'),this.#z(),this.#C(),this.#A(),this.#v()}connectedCallback(){if(this.#q=parseInt(this.getAttribute("precision")||"0"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),this.#V(this.getAttribute("value")),this.querySelector(".fig-origin-grid-surface"))this.#U();else this.#I();this.#M(),this.#H()}disconnectedCallback(){this.#W=!1,this.#w(),this.#m()}get value(){let _=this.#q;return`${this.#Z.toFixed(_)}% ${this.#_.toFixed(_)}%`}set value(_){this.setAttribute("value",_)}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="drag"){this.#M();return}if(_==="fields"){this.#I(),this.#M(),this.#H();return}if(_==="precision"){this.#q=parseInt($||"0"),this.#A(),this.#H();return}if(_==="value"){if(this.#N||this.#W)return;this.#V($),this.#z(),this.#C(),this.#A()}}get#R(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}get#B(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#M(){if(!this.#$)return;this.#$.classList.toggle("drag-disabled",!this.#R)}#O(_){return Math.max(0,Math.min(100,_))}#Y(_,Z){let $=(_||"").trim().toLowerCase();if(!$)return Z==="x"?this.#Z:this.#_;let q=Z==="x"?{left:0,center:50,right:100}:{top:0,center:50,bottom:100};if($ in q)return q[$];let J=Number.parseFloat($.replace("%",""));if(Number.isFinite(J))return J;return Z==="x"?this.#Z:this.#_}#F(_){let Z=_.trim().replace(/,/g," ").split(/\s+/).filter(Boolean);if(Z.length<1)return;if(Z.length===1){let $=this.#Y(Z[0],"x");this.#Z=$,this.#_=$;return}this.#Z=this.#Y(Z[0],"x"),this.#_=this.#Y(Z[1],"y")}#V(_){let Z=typeof _==="string"?_.trim():"";if(!Z){this.#Z=50,this.#_=50;return}this.#F(Z)}#I(){let _=Array.from({length:9},(W,K)=>{let N=K%3,L=Math.floor(K/3);return Y("span",{className:"origin-grid-cell","data-col":N,"data-row":L},Y("span",{className:"origin-grid-dot"}))}),Z=this.#Z.toFixed(this.#q),$=this.#_.toFixed(this.#q),q=document.createElement("fig-handle"),J=Y("div",{className:"origin-grid","aria-label":"Transform origin grid"},[Y("div",{className:"origin-grid-cells"},_),q]),j=[Y("div",{className:"fig-origin-grid-surface"},J)];if(this.#B){let W=(K,N)=>Y("fig-input-number",{name:K,value:N,step:"1",units:"%"},Y("span",{slot:"prepend"},K.toUpperCase()));j.push(Y("div",{className:"origin-values"},[W("x",Z),W("y",$)]))}this.replaceChildren(...j),this.#$=J,this.#J=_,this.#j=q,this.#K=this.querySelector('fig-input-number[name="x"]'),this.#Q=this.querySelector('fig-input-number[name="y"]'),this.#z(),this.#C(),this.#A(),this.#v()}#A(){let _=this.#Z.toFixed(this.#q),Z=this.#_.toFixed(this.#q);if(this.#K)this.#K.setAttribute("value",_);if(this.#Q)this.#Q.setAttribute("value",Z)}#H(){let _=this.value;if(this.getAttribute("value")===_)return;this.#N=!0,this.setAttribute("value",_),this.#N=!1}#T(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,x:this.#Z,y:this.#_}}))}#z(){if(!this.#j)return;let _=(Z)=>16.6667+this.#O(Z)/100*66.6667;this.#j.style.left=`${_(this.#Z)}%`,this.#j.style.top=`${_(this.#_)}%`}#C(){if(!this.#j)return;let _=this.#Z<0||this.#Z>100,Z=this.#_<0||this.#_>100,$=this.#Z<0,q=this.#Z>100,J=this.#_<0,Q=this.#_>100;this.#j.classList.toggle("beyond-bounds-x",_),this.#j.classList.toggle("beyond-bounds-y",Z),this.#j.classList.toggle("overflow-left",$),this.#j.classList.toggle("overflow-right",q),this.#j.classList.toggle("overflow-up",J),this.#j.classList.toggle("overflow-down",Q)}#k(_,Z){if(!this.#$)return null;let $=this.#$.getBoundingClientRect(),q=(_-$.left)/Math.max($.width,1),J=(Z-$.top)/Math.max($.height,1);if(q<0||q>1||J<0||J>1)return null;let Q=Math.max(0,Math.min(2,Math.floor(q*3))),j=Math.max(0,Math.min(2,Math.floor(J*3)));return this.#J.find((W)=>Number(W.getAttribute("data-col"))===Q&&Number(W.getAttribute("data-row"))===j)}#P(){for(let _ of this.#J)_.classList.remove("is-hovered")}#E(_){if(this.#P(),_)_.classList.add("is-hovered")}#f(_,Z,$){let q=Number(_),J=Number(Z);if(!Number.isFinite(q)||!Number.isFinite(J))return;if(q===this.#Z&&J===this.#_&&$==="input")return;this.#Z=q,this.#_=J,this.#z(),this.#C(),this.#A(),this.#H(),this.#T($)}#b(_,Z){if(!this.#$)return{x:this.#Z,y:this.#_};let $=this.#$.getBoundingClientRect(),q=$.width/6,J=$.height/6,Q=Math.max(1,$.width-q*2),j=Math.max(1,$.height-J*2),W=(_-($.left+q))/Q,K=(Z-($.top+J))/j;return{x:W*100,y:K*100}}#D(_,Z){if(!this.#$)return{x:50,y:50};let $=this.#$.getBoundingClientRect(),q=(_-$.left)/Math.max($.width,1)*3,J=(Z-$.top)/Math.max($.height,1)*3,Q=Math.max(0,Math.min(2,Math.floor(q))),j=Math.max(0,Math.min(2,Math.floor(J)));return{x:Q*50,y:j*50}}#h(_){let $=_,q=1/0;for(let J of k0.SNAP_POINTS){let Q=Math.abs(_-J);if(Q<q)q=Q,$=J}return q<=2.5?$:_}#y(_,Z){if(!Z)return _;return{x:this.#h(_.x),y:this.#h(_.y)}}#g(_){if(!this.#R)return!1;let Z=_.shiftKey?10:1,$=this.#Z,q=this.#_;switch(_.key){case"ArrowLeft":$-=Z;break;case"ArrowRight":$+=Z;break;case"ArrowUp":q-=Z;break;case"ArrowDown":q+=Z;break;case"Home":$=0,q=0;break;case"End":$=100,q=100;break;default:return!1}return this.#f(this.#O($),this.#O(q),"input"),this.#T("change"),!0}#w(){if(!this.#$||!this.#G||!this.#L)return;this.#$.removeEventListener("pointermove",this.#G),this.#$.removeEventListener("pointerup",this.#L),this.#$.removeEventListener("pointercancel",this.#L),this.#$.removeEventListener("lostpointercapture",this.#L),this.#G=null,this.#L=null}#x(_){if(!this.#$||!this.#R)return;_.preventDefault(),this.#W=!0,this.#X=_.pointerId;let{clientX:Z,clientY:$}=_,q=3,J=!1;this.#$.setPointerCapture(_.pointerId),this.#G=(Q)=>{if(!this.#W||Q.pointerId!==this.#X)return;let j=Q.clientX-Z,W=Q.clientY-$,K=Math.hypot(j,W);if(!J&&K<q)return;if(!J)J=!0,this.#$.classList.add("is-dragging"),this.#P();let N=this.#y(this.#b(Q.clientX,Q.clientY),Q.shiftKey);this.#f(N.x,N.y,"input")},this.#L=(Q)=>{if(!this.#W||Q.pointerId!==this.#X)return;if(this.#W=!1,this.#X=null,this.#$.classList.remove("is-dragging"),this.#P(),this.#w(),!J){let j=this.#D(Z,$);this.#f(j.x,j.y,"input")}this.#T("change")},this.#$.addEventListener("pointermove",this.#G),this.#$.addEventListener("pointerup",this.#L),this.#$.addEventListener("pointercancel",this.#L),this.#$.addEventListener("lostpointercapture",this.#L)}#S=null;#m(){this.#S?.abort(),this.#S=null}#v(){if(this.#m(),!this.#$||!this.#j)return;this.#S=new AbortController;let{signal:_}=this.#S;this.#$.addEventListener("pointerdown",($)=>{let q=this.#k($.clientX,$.clientY);if(this.#E(q),this.#R){this.#x($);return}let J=this.#D($.clientX,$.clientY);this.#f(J.x,J.y,"input"),this.#T("change")},{signal:_}),this.#$.addEventListener("pointermove",($)=>{if(this.#W)return;let q=this.#k($.clientX,$.clientY);this.#E(q)},{signal:_}),this.#$.addEventListener("pointerleave",()=>{this.#P()},{signal:_}),this.#j.addEventListener("keydown",($)=>{if(!this.#g($))return;$.preventDefault(),$.stopPropagation()},{signal:_});let Z=($,q)=>{if(!$)return;let J=(Q)=>{let j=Number.parseFloat(Q.target.value);if(!Number.isFinite(j))return;if(q==="x")this.#f(j,this.#_,"input");else this.#f(this.#Z,j,"input")};$.addEventListener("input",J,{signal:_}),$.addEventListener("change",J,{signal:_}),$.addEventListener("focusout",()=>{this.#T("change")},{signal:_})};Z(this.#K,"x"),Z(this.#Q,"y")}}A("fig-origin-grid",k0);class V_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=null;#W=!1;#N={x:0.5,y:0.5};#X=!1;constructor(){super();this.position={x:0.5,y:0.5},this.isDragging=!1,this.plane=null,this.cursor=null,this.xInput=null,this.yInput=null,this.coordinates="screen",this.#Z=(_)=>this.#A(_),this.#_=()=>{this.isDragging=!0,this.plane?.classList.add("dragging")},this.#q=(_)=>this.#H(_),this.#$=()=>this.#T(),this.#J=(_)=>this.#Y(_),this.#j=(_)=>this.#F(_),this.#K=()=>this.#V(),this.#Q=()=>this.#V()}#G(){this.#M(),this.#k(),this.#E(),this.#f(),this.#X=!0}connectedCallback(){u(this,()=>{if(this.precision=this.getAttribute("precision")||3,this.precision=parseInt(this.precision),this.transform=this.getAttribute("transform")||1,this.transform=Number(this.transform),this.coordinates=this.getAttribute("coordinates")||"screen",m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),!this.hasAttribute("value"))this.setAttribute("value","50% 50%");if(this.querySelector(".fig-input-joystick-plane")){this.#G();return}this.#R(),this.#M(),this.#k(),this.#E(),this.#f(),this.#X=!0})}#L(_){return this.coordinates==="math"?1-_:_}disconnectedCallback(){this.#O()}get#U(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#R(){let _=this.#B(),Z=Y("div",{className:"fig-input-joystick-plane-container"}),$=(j,W)=>W?Y("label",{className:["fig-joystick-axis-label",j].join(" "),"aria-hidden":"true"},W):null;Z.append(...[$("left",_.left),$("right",_.right),$("top",_.top),$("bottom",_.bottom)].filter(Boolean));let q=Y("div",{className:"fig-input-joystick-plane"},[Y("div",{className:"fig-input-joystick-guides"}),Y("fig-handle",{drag:!0,"drag-surface":".fig-input-joystick-plane","drag-axes":"x,y","drag-snapping":"modifier"})]),J=Y("fig-tooltip",{text:"Reset"},Y("fig-button",{variant:"ghost",icon:"true",className:"fig-joystick-reset","aria-label":"Reset to default"},h("reset",{size:"small"})));Z.append(q,J);let Q=[Z];if(this.#U){let j=(W,K)=>Y("fig-input-number",{name:W,step:"1",value:K,min:"0",max:"100",units:"%"},Y("span",{slot:"prepend"},W.toUpperCase()));Q.push(Y("div",{className:"joystick-values"},[j("x",(this.position.x*100).toFixed(this.precision)),j("y",(this.position.y*100).toFixed(this.precision))]))}this.replaceChildren(...Q)}#B(){let _=(this.getAttribute("axis-labels")||"").trim();if(!_)return{left:"",right:"",top:"",bottom:""};let Z=_.split(/[\s,]+/).filter(Boolean);if(Z.length===1)return{left:"",right:"",top:Z[0],bottom:""};if(Z.length===2){let[$,q]=Z;return{left:$,right:"",top:"",bottom:q}}if(Z.length===4){let[$,q,J,Q]=Z;return{left:$,right:q,top:J,bottom:Q}}return{left:"",right:"",top:"",bottom:""}}#M(){this.plane=this.querySelector(".fig-input-joystick-plane"),this.cursor=this.querySelector("fig-handle"),this.xInput=this.querySelector("fig-input-number[name='x']"),this.yInput=this.querySelector("fig-input-number[name='y']"),this.plane?.addEventListener("pointerdown",this.#Z),this.cursor?.addEventListener("pointerdown",this.#_),this.cursor?.addEventListener("input",this.#q),this.cursor?.addEventListener("change",this.#$);let _=this.querySelector(".fig-joystick-reset");if(_)_.addEventListener("click",()=>this.#b());if(this.#U&&this.xInput&&this.yInput)this.xInput.addEventListener("input",this.#J),this.xInput.addEventListener("change",this.#J),this.xInput.addEventListener("focusout",this.#K),this.yInput.addEventListener("input",this.#j),this.yInput.addEventListener("change",this.#j),this.yInput.addEventListener("focusout",this.#Q)}#O(){if(this.plane?.removeEventListener("pointerdown",this.#Z),this.cursor?.removeEventListener("pointerdown",this.#_),this.cursor?.removeEventListener("input",this.#q),this.cursor?.removeEventListener("change",this.#$),this.plane?.classList.remove("dragging"),this.isDragging=!1,this.#U&&this.xInput&&this.yInput)this.xInput.removeEventListener("input",this.#J),this.xInput.removeEventListener("change",this.#J),this.xInput.removeEventListener("focusout",this.#K),this.yInput.removeEventListener("input",this.#j),this.yInput.removeEventListener("change",this.#j),this.yInput.removeEventListener("focusout",this.#Q)}#Y(_){let Z=Number.parseFloat(_.target.value);if(!Number.isFinite(Z))return;this.position.x=Math.max(0,Math.min(1,Z/100)),this.#k(),this.#E(),this.#z()}#F(_){let Z=Number.parseFloat(_.target.value);if(!Number.isFinite(Z))return;this.position.y=Math.max(0,Math.min(1,Z/100)),this.#k(),this.#E(),this.#z()}#V(){this.#E(),this.#C()}#I(_,Z,{syncHandle:$=!0}={}){let q=Math.max(0,Math.min(1,_)),J=Math.max(0,Math.min(1,Z)),Q=this.coordinates==="math"?1-J:J;if(this.position={x:q,y:Q},$)this.#k();this.#P(),this.#E()}#A(_){if(!this.plane||!this.cursor)return;if(_.target?.closest?.(".fig-joystick-reset, fig-tooltip, fig-handle"))return;let Z=this.plane.getBoundingClientRect(),$=Z.width>0?(_.clientX-Z.left)/Z.width:0.5,q=Z.height>0?(_.clientY-Z.top)/Z.height:0.5;this.cursor.value=`${Math.round($*100)}% ${Math.round(q*100)}%`,this.#I($,q,{syncHandle:!1}),this.#z(),this.#C()}#H(_){let Z=_.detail??{};if(typeof Z.px!=="number"||typeof Z.py!=="number")return;this.#I(Z.px,Z.py,{syncHandle:!1}),this.#z()}#T(){this.isDragging=!1,this.plane?.classList.remove("dragging"),this.#E(),this.#C()}#z(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value,x:this.position.x,y:this.position.y}}))}#C(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value,x:this.position.x,y:this.position.y}}))}#k(){let _=this.#L(this.position.y);if(this.cursor)this.cursor.value=`${this.position.x*100}% ${_*100}%`;this.#P()}#P(){if(this.#U&&this.xInput&&this.yInput)this.xInput.setAttribute("value",Math.round(this.position.x*100)),this.yInput.setAttribute("value",Math.round(this.position.y*100))}#E(){let _=this.value;if(this.getAttribute("value")!==_)this.#W=!0,this.setAttribute("value",_),this.#W=!1;this.#f()}#f(){let _=this.#N,Z=Math.round(this.position.x*100)===Math.round(_.x*100)&&Math.round(this.position.y*100)===Math.round(_.y*100);this.toggleAttribute("default",Z),this.style.setProperty("--is-not-default",Z?"0":"1")}#b(){this.position={...this.#N},this.#k(),this.#E(),this.#z(),this.#C()}focus(){this.cursor?.focus()}static get observedAttributes(){return["value","precision","transform","fields","coordinates","aspect-ratio","axis-labels"]}get value(){return`${Math.round(this.position.x*100)}% ${Math.round(this.position.y*100)}%`}set value(_){let Z=_==null?"":String(_).trim();if(!Z)this.position={x:0.5,y:0.5};else{let $=Z.split(/[\s,]+/).filter(Boolean),q=(j)=>{if(!j)return 0.5;let W=j.includes("%"),K=Number.parseFloat(j.replace(/%/g,"").trim());if(!Number.isFinite(K))return 0.5;let N=W||Math.abs(K)>1?K/100:K;return Math.max(0,Math.min(1,N))},J=q($[0]),Q=q($[1]??$[0]);this.position={x:J,y:Q}}if(this.#X)this.#k(),this.#f()}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="value"){if(this.#W||this.isDragging)return;this.value=$}if(_==="precision")this.precision=parseInt($);if(_==="transform")this.transform=Number($);if(_==="fields"&&$!==Z)this.#O(),this.#R(),this.#M(),this.#k();if(_==="axis-labels"&&$!==Z)this.#O(),this.#R(),this.#M(),this.#k();if(_==="coordinates")this.coordinates=$||"screen",this.#k()}}A("fig-joystick",V_);class I0 extends HTMLElement{get durationPropertyName(){return this.localName==="fig-skeleton"?"--fig-skeleton-duration":"--fig-shimmer-duration"}connectedCallback(){let _=this.getAttribute("duration");if(_)this.style.setProperty(this.durationPropertyName,_);this.#Z()}static get observedAttributes(){return["duration","playing","aria-label","aria-labelledby"]}get playing(){return this.getAttribute("playing")!=="false"}set playing(_){if(_)this.removeAttribute("playing");else this.setAttribute("playing","false")}attributeChangedCallback(_,Z,$){if(_==="duration")this.style.setProperty(this.durationPropertyName,$||"1.5s");if(_==="playing"||_==="aria-label"||_==="aria-labelledby")this.#Z()}#Z(){let _=this.playing;if(this.setAttribute("aria-busy",_?"true":"false"),this.hasAttribute("aria-label")||this.hasAttribute("aria-labelledby")){if(!this.hasAttribute("role"))this.setAttribute("role","status");this.removeAttribute("aria-hidden")}else this.removeAttribute("role"),this.setAttribute("aria-hidden","true")}}A("fig-shimmer",I0);class S_ extends I0{connectedCallback(){super.connectedCallback(),this.inert=!0,this.setAttribute("inert","")}}A("fig-skeleton",S_);class w_ extends HTMLElement{static observedAttributes=["name","collapsible","open","compact"];#Z=null;#_=null;#q=null;#$=null;#J=null;connectedCallback(){this.#G()}disconnectedCallback(){this.#j()}#j(){if(this.#_?.removeEventListener("click",this.#N),this.#q?.removeEventListener("click",this.#N),this.#q?.removeEventListener("keydown",this.#X),this.#Z)this.#Z.removeEventListener("click",this.#N),this.#Z.removeEventListener("keydown",this.#X)}attributeChangedCallback(_,Z,$){if(Z===$)return;if(!this.isConnected)return;if(_==="open"){this.#K();return}this.#G()}get open(){let _=this.getAttribute("open");return _!==null&&_!=="false"}set open(_){let Z=this.open;if(_)this.setAttribute("open","true");else this.setAttribute("open","false");if(this.#K(),Z!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}#K(){if(this.hasAttribute("collapsible"))this.#q?.setAttribute("aria-expanded",String(this.open));else this.#q?.removeAttribute("aria-expanded")}#Q(){if(!this.#$)return;if(this.#J===null)this.#$.removeAttribute("compact");else this.#$.setAttribute("compact",this.#J);this.#$=null,this.#J=null}#W(){if(!(this.hasAttribute("compact")&&this.getAttribute("compact")!=="false")){this.#Q();return}if(this.#$!==this.#Z)this.#Q(),this.#$=this.#Z,this.#J=this.#Z?.getAttribute("compact")??null;this.#Z?.setAttribute("compact","")}#N=(_)=>{_.stopPropagation(),this.open=!this.open};#X=(_)=>{if(_.key!=="Enter"&&_.key!==" ")return;_.preventDefault(),_.stopPropagation(),this.open=!this.open};#G(){this.#j();let _=this.hasAttribute("collapsible"),$=this.getAttribute("name")||(_?"Group":null),q=this.querySelector(":scope > fig-header:not([data-generated])");if(!$&&!_&&!q){if(this.#Z&&this.#Z.dataset.generated)this.#Q(),this.#Z.remove(),this.#Z=null,this.#_=null,this.#q=null;return}if(q)this.querySelectorAll(":scope > fig-header[data-generated]").forEach((Q)=>Q.remove()),this.#Z=q;else if(!this.#Z||!this.#Z.dataset.generated)this.#Z=document.createElement("fig-header"),this.#Z.setAttribute("borderless",""),this.#Z.dataset.generated="true",this.prepend(this.#Z);this.#W();let J=this.#Z.querySelector("h3");if(!J)J=document.createElement("h3"),this.#Z.prepend(J);if(this.#q=J,!J.id)J.id=p();if(this.#Z.dataset.generated)J.textContent=$;if(!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-labelledby",J.id);if(_){let Q=this.#Z.querySelector(".fig-group-chevron");if(!Q)Q=h("chevron",{size:"small",className:"fig-group-chevron"});if(this.#Z.insertBefore(Q,J),this.#_=Q,this.#Z.removeAttribute("role"),this.#Z.removeAttribute("tabindex"),this.#Z.removeAttribute("aria-expanded"),J.setAttribute("role","button"),J.setAttribute("tabindex","0"),J.setAttribute("aria-expanded",String(this.open)),J.addEventListener("click",this.#N),J.addEventListener("keydown",this.#X),Q.addEventListener("click",this.#N),!this.hasAttribute("open"))this.setAttribute("open","false"),J.setAttribute("aria-expanded","false")}else{if(J.removeAttribute("role"),J.removeAttribute("tabindex"),J.removeAttribute("aria-expanded"),this.#Z.removeAttribute("role"),this.#Z.removeAttribute("tabindex"),this.#Z.removeAttribute("aria-expanded"),this.#_)this.#_.remove(),this.#_=null;this.removeAttribute("open")}}}A("fig-group",w_);class x_ extends HTMLElement{}A("fig-header",x_);class b_ extends HTMLElement{}A("fig-footer",b_);class y_ extends HTMLElement{connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","status");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-label","Loading")}}A("fig-spinner",y_);class h_ extends HTMLElement{static get observedAttributes(){return["fit","aspect-ratio"]}connectedCallback(){this.#Z(),this.#_()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="fit")this.#Z();if(_==="aspect-ratio")this.#_()}#Z(){let _=this.getAttribute("fit");if(_)this.style.setProperty("--fig-preview-fit",_);else this.style.removeProperty("--fig-preview-fit")}#_(){let _=this.getAttribute("aspect-ratio");if(_)this.style.setProperty("--fig-preview-aspect-ratio",_);else this.style.removeProperty("--fig-preview-aspect-ratio")}}A("fig-preview",h_);var R1={chevron:{medium:"--icon-24-chevron",small:"--icon-16-chevron"},checkmark:{medium:"--icon-24-checkmark",small:"--icon-16-checkmark"},reset:{medium:"--icon-24-reset",small:"--icon-16-reset"},"arrow-left":{medium:"--icon-24-arrow-left",small:"--icon-16-arrow-left"},steppers:"--icon-24-steppers",eyedropper:"--icon-24-eyedropper",add:"--icon-24-add",send:{medium:"--icon-24-send",small:"--icon-16-send"},adjust:{medium:"--icon-24-adjust",small:"--icon-16-adjust"},minus:"--icon-24-minus",back:"--icon-24-back",forward:"--icon-24-forward",close:{medium:"--icon-24-close",small:"--icon-16-close"},rotate:"--icon-24-rotate",swap:"--icon-24-swap",play:"--icon-24-play",pause:"--icon-24-pause",search:"--icon-24-search",download:"--icon-24-download",upload:"--icon-24-upload",sun:"--icon-24-sun",moon:"--icon-24-moon",edit:{medium:"--icon-24-edit",small:"--icon-16-edit"},settings:{medium:"--icon-24-settings",small:"--icon-16-settings"},more:{medium:"--icon-24-more",small:"--icon-16-more"},visible:{medium:"--icon-24-visible",small:"--icon-16-visible"},hidden:{medium:"--icon-24-hidden",small:"--icon-16-hidden"},globe:{medium:"--icon-24-globe",small:"--icon-16-globe"},warning:{medium:"--icon-24-warning",small:"--icon-16-warning"},copy:{medium:"--icon-24-copy",small:"--icon-16-copy"},trash:{medium:"--icon-24-trash",small:"--icon-16-trash"}};function Y1(_,Z="medium"){let $=_&&R1[_];if(!$)return"";let q=typeof $==="string"?$:$[Z==="small"?"small":"medium"];return q?`var(${q})`:""}var O1={primary:"--figma-color-icon",secondary:"--figma-color-icon-secondary",tertiary:"--figma-color-icon-tertiary",disabled:"--figma-color-icon-disabled",brand:"--figma-color-icon-brand",component:"--figma-color-icon-component",danger:"--figma-color-icon-danger",success:"--figma-color-icon-success",warning:"--figma-color-icon-warning",selected:"--figma-color-icon-selected",hover:"--figma-color-icon-hover",pressed:"--figma-color-icon-pressed",onbrand:"--figma-color-icon-onbrand",oncomponent:"--figma-color-icon-oncomponent",ondanger:"--figma-color-icon-ondanger",ondisabled:"--figma-color-icon-ondisabled",oninverse:"--figma-color-icon-oninverse",onselected:"--figma-color-icon-onselected",onsuccess:"--figma-color-icon-onsuccess",onwarning:"--figma-color-icon-onwarning"};function B1(_){if(!_)return"";if(_.startsWith("var("))return _;let Z=O1[_.toLowerCase()];return Z?`var(${Z})`:_}class v_ extends HTMLElement{static get observedAttributes(){return["name","size","color"]}connectedCallback(){this.#Z()}attributeChangedCallback(_,Z,$){if(Z!==$)this.#Z()}#Z(){let _=this.getAttribute("name"),Z=this.getAttribute("size")||"medium",$=Y1(_,Z);if($)this.style.setProperty("--icon",$);else this.style.removeProperty("--icon");if(Z==="small")this.style.setProperty("--size","var(--spacer-3)");else this.style.removeProperty("--size");let q=B1(this.getAttribute("color"));if(q)this.style.backgroundColor=q,this.style.setProperty("--icon-color",q);else this.style.removeProperty("background-color"),this.style.removeProperty("--icon-color");if(!this.hasAttribute("aria-hidden"))this.setAttribute("aria-hidden","true")}}A("fig-icon",v_);class g_ extends HTMLElement{}A("fig-content",g_);class m_ extends HTMLElement{}A("fig-tab-content",m_);class u_ extends HTMLElement{}A("fig-button-combo",u_);class p_ extends HTMLElement{}A("fig-input-combo",p_);class c_ extends HTMLElement{static get observedAttributes(){return["gap","columns","min-width"]}connectedCallback(){this.#Z()}attributeChangedCallback(){this.#Z()}#Z(){let _=this.getAttribute("gap")?.trim();this.#_("--fig-stack-gap",_&&/^(\d+(-5)?|half)$/.test(_)?`var(--spacer-${_})`:_);let Z=this.getAttribute("columns")?.trim();this.#_("--fig-stack-columns",Z&&/^\d+$/.test(Z)?`repeat(${Z}, minmax(0, 1fr))`:Z),this.#_("--fig-stack-min-width",this.getAttribute("min-width")?.trim())}#_(_,Z){if(Z)this.style.setProperty(_,Z);else this.style.removeProperty(_)}}A("fig-stack",c_);class d_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=this.#O.bind(this);#J=this.#Y.bind(this);static get observedAttributes(){return["value","selected","disabled","alpha","control","aria-label","aria-labelledby","aria-describedby"]}get#j(){return this.getAttribute("control")||"color"}connectedCallback(){this.#N(),this.#R()}disconnectedCallback(){this.#K(),this.removeEventListener("click",this.#X)}#K(){if(this.#Z)this.#Z.removeEventListener("input",this.#$),this.#Z.removeEventListener("change",this.#J);if(this.#_)this.#_.removeEventListener("input",this.#$),this.#_.removeEventListener("change",this.#J);if(this.#q)this.#q.disconnect(),this.#q=null}#Q(){if(this.#q)this.#q.disconnect(),this.#q=null;if(!this.#_)return;this.#q=new MutationObserver(()=>{if(this.#_?.hasAttribute("selected")&&this.#_.getAttribute("selected")!=="false"){if(!this.hasAttribute("selected"))this.setAttribute("selected","")}else if(this.hasAttribute("selected"))this.removeAttribute("selected")}),this.#q.observe(this.#_,{attributes:!0,attributeFilter:["selected"]})}get#W(){let _=this.getAttribute("alpha");return _===null||_!=="false"}#N(){this.#K();let _=this.#j;if(_==="add"||_==="remove"){let W=_==="add"?"add":"minus",K=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");this.replaceChildren(Y("fig-button",{icon:!0,variant:"ghost","aria-label":K},h(W))),this.#Z=null,this.#_=null,this.addEventListener("click",this.#X),this.#B();return}this.removeEventListener("click",this.#X);let Z=(this.getAttribute("value")||"").trim(),$=this.#U(Z),q=this.#L(Z),J=q<1?JSON.stringify({type:"solid",color:$,opacity:Math.round(q*100)}):JSON.stringify({type:"solid",color:$}),Q=Y("fig-swatch",{background:$,alpha:q<1?q:null}),j=null;if(l())j=Y("fig-fill-picker",{mode:"solid",alpha:this.#W?null:"false",value:J},Q),this.replaceChildren(j);else this.replaceChildren(Q);if(this.#Z=j,this.#_=Q,this.#Z?.addEventListener("input",this.#$),this.#Z?.addEventListener("change",this.#J),!this.#Z)this.#_?.addEventListener("input",this.#$),this.#_?.addEventListener("change",this.#J);this.#Q(),this.#B()}#X=()=>{let _=this.#j;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,composed:!0}))};#G(_){if(!_)return"#D9D9D9";let Z=_.replace("#","").trim();if(Z.length===3||Z.length===4){let[$,q,J]=Z;return`#${$}${$}${q}${q}${J}${J}`.toUpperCase()}if(Z.length===6||Z.length===8)return`#${Z.slice(0,6)}`.toUpperCase();return"#D9D9D9"}#L(_){if(!_)return 1;let Z=String(_).trim(),$=Z.replace(/^#/,"");if(/^[0-9a-f]{4}$/i.test($)){let J=$[3];return parseInt(`${J}${J}`,16)/255}if(/^[0-9a-f]{8}$/i.test($))return parseInt($.slice(6,8),16)/255;let q=Z.match(/rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*([\d.]+)\s*\)/i);if(q)return parseFloat(q[1]);return 1}#U(_){if(!_)return"#D9D9D9";let Z=String(_).trim();if(Z.startsWith("{"))try{let $=JSON.parse(Z);if($?.color)return this.#U($.color)}catch{}if(Z.startsWith("#"))return this.#G(Z);if(/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(Z))return this.#G(Z);try{let{ctx:$}=H0(1,1);$.fillStyle="#000000",$.fillStyle=Z;let q=$.fillStyle;if(q.startsWith("#"))return this.#G(q);let J=q.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(J){let Q=(j)=>Math.max(0,Math.min(255,Number(j))).toString(16).padStart(2,"0");return`#${Q(J[1])}${Q(J[2])}${Q(J[3])}`.toUpperCase()}}catch{}return"#D9D9D9"}#R(){let _=this.getAttribute("value"),Z=this.#U(_),$=this.#L(_);if(_!==Z&&$>=1){this.setAttribute("value",Z);return}if(this.#Z){this.#B();let q=$<1?{type:"solid",color:Z,opacity:Math.round($*100)}:{type:"solid",color:Z};if(this.#Z.setAttribute("value",JSON.stringify(q)),this.#W)this.#Z.removeAttribute("alpha");else this.#Z.setAttribute("alpha","false");if(F(this,"disabled"))this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled")}if(this.#_){if(this.#B(),this.#_.setAttribute("background",Z),$<1)this.#_.setAttribute("alpha",String($));else this.#_.removeAttribute("alpha");if(F(this,"disabled"))this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled")}}#B(){let _=this.#j,Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",$=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(this.setAttribute("aria-disabled",Z?"true":"false"),this.setAttribute("aria-pressed",$?"true":"false"),_==="add"||_==="remove"){let W=this.querySelector("fig-button"),K=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");if(W?.setAttribute("aria-label",K),Z)W?.setAttribute("disabled","");else W?.removeAttribute("disabled");return}let q=this.#Z||this.#_;if(!q)return;let J=this.getAttribute("aria-label")||"Color stop",Q=this.getAttribute("aria-labelledby"),j=this.getAttribute("aria-describedby");if(Q)q.setAttribute("aria-labelledby",Q),q.removeAttribute("aria-label");else q.setAttribute("aria-label",J),q.removeAttribute("aria-labelledby");if(j)q.setAttribute("aria-describedby",j);else q.removeAttribute("aria-describedby")}#M(_,Z){let $=this.#U(_?.color),q=this.#U(this.getAttribute("value"));if($!==q)this.setAttribute("value",$);else this.#R();let J={color:this.value};if(this.#W){if(_?.opacity!==void 0)J.opacity=_.opacity;else if(_?.alpha!==void 0)J.opacity=Math.round(_.alpha*100)}Object.assign(J,r(J.color,this.#W?_?.alpha:1,J.opacity)),this.dispatchEvent(new CustomEvent(Z,{bubbles:!0,cancelable:!0,composed:!0,detail:J}))}#O(_){_.stopPropagation(),this.#M(_.detail||{color:_.target?.value},"input")}#Y(_){_.stopPropagation(),this.#M(_.detail||{color:_.target?.value},"change")}attributeChangedCallback(_,Z,$){if(Z===$)return;if(!this.isConnected)return;switch(_){case"control":this.#N();break;case"value":case"selected":case"disabled":case"aria-label":case"aria-labelledby":case"aria-describedby":this.#R(),this.#B();break}}get value(){return this.#U(this.getAttribute("value"))}set value(_){if(_===null||_===void 0||_===""){this.removeAttribute("value");return}this.setAttribute("value",this.#U(_))}get selected(){return F(this,"selected")}set selected(_){this.toggleAttribute("selected",Boolean(_))}get disabled(){return F(this,"disabled")}set disabled(_){this.toggleAttribute("disabled",Boolean(_))}}A("fig-color-tip",d_);class s_ extends HTMLElement{static get observedAttributes(){return["selected","disabled"]}connectedCallback(){if(this.setAttribute("role","option"),!this.hasAttribute("tabindex"))this.setAttribute("tabindex","0");if(this.setAttribute("aria-selected",F(this,"selected")?"true":"false"),F(this,"disabled"))this.setAttribute("aria-disabled","true")}attributeChangedCallback(_){if(_==="selected")this.setAttribute("aria-selected",F(this,"selected")?"true":"false");if(_==="disabled")if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex","0")}}A("fig-choice",s_);class o_ extends HTMLElement{#Z=null;#_=this.#F.bind(this);#q=this.#V.bind(this);#$=this.#A.bind(this);#J=null;#j=null;#K=null;#Q=null;#W=null;#N=!1;constructor(){super()}static get observedAttributes(){return["value","disabled","choice-element","columns","drag","layout","overflow","loop","auto-scroll"]}get#X(){return this.getAttribute("overflow")==="scrollbar"?"scrollbar":"buttons"}get#G(){let _=this.getAttribute("drag");return _===null||_!=="false"}get autoScroll(){let _=this.getAttribute("auto-scroll");return _===null||_!=="false"}set autoScroll(_){if(_===!1||_==="false"||_===null)this.setAttribute("auto-scroll","false");else this.removeAttribute("auto-scroll")}get scrollBehavior(){return this.getAttribute("scroll-behavior")==="auto"?"auto":"smooth"}set scrollBehavior(_){if(_==="auto"||_==="smooth")this.setAttribute("scroll-behavior",_);else this.removeAttribute("scroll-behavior")}get#L(){return this.getAttribute("choice-element")||"fig-choice"}#U(){let _=this.getAttribute("columns"),Z=_===null?NaN:Number(_),$=Number.isInteger(Z)&&Z>0,q=$?Z:2;if($)this.style.setProperty("--fig-chooser-grid-columns",String(q));else this.style.removeProperty("--fig-chooser-grid-columns");let J=this.getAttribute("layout")==="grid";this.choices.forEach((Q,j)=>{Q.toggleAttribute("data-fig-chooser-first-row",J&&j<q)})}get choices(){return Array.from(this.querySelectorAll(`:scope > ${this.#L}`))}get selectedChoice(){return this.#Z}set selectedChoice(_){if(_&&!this.contains(_))return;let Z=this.choices;for(let q of Z){let J=q===_,Q=F(q,"selected");if(J&&!Q)q.setAttribute("selected","");else if(!J&&Q)q.removeAttribute("selected")}this.#Z=_??null;let $=_?.getAttribute("value")??"";if(this.getAttribute("value")!==$)this.setAttribute("value",$);if(this.autoScroll)this.#h(_)}get value(){return this.#Z?.getAttribute("value")??""}set value(_){if(_===null||_===void 0||_===""){this.setAttribute("value","");return}this.setAttribute("value",String(_))}scrollSelectionIntoView(_={}){if(!this.#Z)return;this.#h(this.#Z,_)}connectedCallback(){if(this.setAttribute("role","listbox"),this.shadowRoot)this.shadowRoot.replaceChildren();this.#U(),this.#C(),this.addEventListener("click",this.#_),this.addEventListener("keydown",this.#q),this.addEventListener("scroll",this.#$),this.#k(),this.#T(),this.#g(),this.#H(),this.#M(),u(this,()=>{this.#B(),this.#A(),this.#R()})}#R(){let _=()=>{if(!this.isConnected||!this.autoScroll)return;if(this.#Z)this.#h(this.#Z)},Z=()=>{let $=this.querySelectorAll("img, video");for(let q of $){if(q.tagName==="IMG"?q.complete:q.readyState>=1)continue;let J=()=>{q.removeEventListener("load",J),q.removeEventListener("loadedmetadata",J),q.removeEventListener("error",J),_()};q.addEventListener("load",J),q.addEventListener("loadedmetadata",J),q.addEventListener("error",J)}};requestAnimationFrame(()=>{Z(),_()})}disconnectedCallback(){this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#q),this.removeEventListener("scroll",this.#$),this.#z(),this.#J?.disconnect(),this.#J=null,this.#j?.disconnect(),this.#j=null,this.#P()}attributeChangedCallback(_,Z,$){if(_==="value"&&$!==Z)if($==="")this.selectedChoice=null;else if($==null)this.#B();else this.#O($);if(_==="disabled")this.#M();if(_==="choice-element")requestAnimationFrame(()=>{this.#U(),this.#B()});if(_==="columns")this.#U(),this.#D();if(_==="drag")if(this.#G)this.#T();else this.#z();if(_==="overflow")this.#k(),requestAnimationFrame(()=>this.#A());if(_==="layout"){if(this.#U(),this.#k(),$==="horizontal")this.scrollTop=0;else this.scrollLeft=0;this.#D()}if(_==="auto-scroll"&&this.autoScroll)this.#D()}#B(){let _=this.choices;if(!_.length){this.#Z=null;return}let Z=this.hasAttribute("value"),$=this.getAttribute("value");if(Z&&$===""){this.selectedChoice=null;return}if($&&this.#O($))return;let q=_.find((J)=>F(J,"selected"));if(q){this.selectedChoice=q;return}this.selectedChoice=_[0]}#M(){let _=F(this,"disabled");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");for(let Z of this.choices)if(_||F(Z,"disabled"))Z.setAttribute("aria-disabled","true"),Z.setAttribute("tabindex","-1");else Z.removeAttribute("aria-disabled"),Z.setAttribute("tabindex","0")}#O(_){let Z=this.choices;for(let $ of Z)if($.getAttribute("value")===_)return this.selectedChoice=$,!0;return!1}#Y(_){let Z=this.#L,$=_;while($&&$!==this){if($.matches(Z))return $;$=$.parentElement}return null}#F(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.#Y(_.target);if(!Z)return;if(Z.hasAttribute("disabled")&&Z.getAttribute("disabled")!=="false")return;this.selectedChoice=Z,this.#I()}#V(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.choices.filter((Q)=>!Q.hasAttribute("disabled")||Q.getAttribute("disabled")==="false");if(!Z.length)return;let $=Z.indexOf(this.#Z),q=$,J=this.hasAttribute("loop");switch(_.key){case"ArrowDown":case"ArrowRight":if(_.preventDefault(),$<Z.length-1)q=$+1;else if(J)q=0;break;case"ArrowUp":case"ArrowLeft":if(_.preventDefault(),$>0)q=$-1;else if(J)q=Z.length-1;break;case"Home":_.preventDefault(),q=0;break;case"End":_.preventDefault(),q=Z.length-1;break;case"Enter":case" ":if(_.preventDefault(),document.activeElement?.matches(this.#L)){let Q=this.#Y(document.activeElement);if(Q&&Q!==this.#Z)this.selectedChoice=Q,this.#I()}return;default:return}if(q!==$&&Z[q])this.selectedChoice=Z[q],Z[q].focus({preventScroll:!this.autoScroll}),this.#I()}#I(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#A(){if(this.#X==="scrollbar")return;let _=this.getAttribute("layout")==="horizontal";X0(this,this,_?"x":"y")}#H(){this.#j?.disconnect(),this.#j=new ResizeObserver(()=>{this.#A(),this.#D()}),this.#j.observe(this)}#T(){if(this.#W?.bound)return;if(!this.#G)return;let _=(j)=>{if(j.button!==0)return;if(j.target.closest("[data-fig-chooser-nav]"))return;if(!(this.getAttribute("layout")==="horizontal"?this.scrollWidth>this.clientWidth:this.scrollHeight>this.clientHeight))return;this.#W.active=!0,this.#W.didDrag=!1,this.#W.startX=j.clientX,this.#W.startY=j.clientY,this.#W.scrollLeft=this.scrollLeft,this.#W.scrollTop=this.scrollTop,this.style.cursor="grab",this.style.userSelect="none"},Z=(j)=>{if(!this.#W.active)return;let W=this.getAttribute("layout")==="horizontal",K=j.clientX-this.#W.startX,N=j.clientY-this.#W.startY;if(!this.#W.didDrag&&Math.abs(W?K:N)>3)this.#W.didDrag=!0,this.style.cursor="grabbing",this.setPointerCapture(j.pointerId);if(!this.#W.didDrag)return;if(W)this.scrollLeft=this.#W.scrollLeft-K;else this.scrollTop=this.#W.scrollTop-N},$=(j)=>{if(!this.#W.active)return;let W=this.#W.didDrag;if(this.#W.active=!1,this.#W.didDrag=!1,this.style.cursor="",this.style.userSelect="",j.pointerId!==void 0)try{this.releasePointerCapture(j.pointerId)}catch{}if(W)j.preventDefault(),j.stopPropagation()},q=(j)=>{if(this.#W?.suppressClick)j.stopPropagation(),j.preventDefault(),this.#W.suppressClick=!1},J=(j)=>{if(this.#W?.didDrag)this.#W.suppressClick=!0,setTimeout(()=>{if(this.#W)this.#W.suppressClick=!1},0)},Q=(j)=>{if(this.#W?.active)j.preventDefault()};this.#W={active:!1,didDrag:!1,suppressClick:!1,startX:0,startY:0,scrollLeft:0,scrollTop:0,bound:!0,onPointerDown:_,onPointerMove:Z,onPointerUp:$,onClick:q,onPointerUpCapture:J,onDragStart:Q},this.addEventListener("pointerdown",_),window.addEventListener("pointermove",Z),window.addEventListener("pointerup",$),this.addEventListener("pointerup",J,!0),this.addEventListener("click",q,!0),this.addEventListener("dragstart",Q)}#z(){if(!this.#W?.bound)return;this.removeEventListener("pointerdown",this.#W.onPointerDown),window.removeEventListener("pointermove",this.#W.onPointerMove),window.removeEventListener("pointerup",this.#W.onPointerUp),this.removeEventListener("pointerup",this.#W.onPointerUpCapture,!0),this.removeEventListener("click",this.#W.onClick,!0),this.removeEventListener("dragstart",this.#W.onDragStart),this.style.cursor="",this.style.userSelect="",this.#W=null}#C(){if(this.#N)return;let _=this.querySelector(":scope > [data-fig-chooser-scroll]");if(!_)return;this.#N=!0;try{let Z=Array.from(_.childNodes);_.replaceWith(...Z)}finally{this.#N=!1}}#k(){if(this.#X==="scrollbar")this.#P(),this.classList.add("fig-overflow-fade"),this.classList.toggle("fig-overflow-fade-horizontal",this.getAttribute("layout")==="horizontal");else this.#E(),this.classList.remove("fig-overflow-fade","fig-overflow-fade-horizontal")}#P(){this.#K?.remove(),this.#Q?.remove(),this.#K=null,this.#Q=null,this.classList.remove("overflow-start","overflow-end")}#E(){if(this.#K&&this.#Q&&this.contains(this.#K)&&this.contains(this.#Q)){this.#f();return}this.#K?.remove(),this.#Q?.remove(),this.#K=null,this.#Q=null;let _=G0({owner:"chooser",startClass:"fig-chooser-nav-start",endClass:"fig-chooser-nav-end",chevronClass:"fig-chooser-nav-chevron",onStart:()=>this.#b(-1),onEnd:()=>this.#b(1)});this.#K=_.start,this.#Q=_.end,this.#f()}#f(){if(this.firstElementChild!==this.#K)this.prepend(this.#K);if(this.lastElementChild!==this.#Q)this.append(this.#Q)}#b(_){let Z=this.getAttribute("layout")==="horizontal";n(this,Z?"x":"y",_,"auto")}#D(){if(!this.autoScroll||!this.#Z)return;this.#h(this.#Z)}#h(_,Z={}){if(!_)return;let $=typeof Z==="object"&&Z!==null?Z:{},q=$.behavior==="smooth"||$.behavior==="instant"?$.behavior:"auto",J=$.block||"center",Q=$.inline||"center";requestAnimationFrame(()=>{if(!_.isConnected)return;let j=this.scrollHeight>this.clientHeight,W=this.scrollWidth>this.clientWidth;if(!W&&!j)return;let K=_.getBoundingClientRect(),N=this.getBoundingClientRect(),L={behavior:q},G=!1;if(j){let X=K.top-N.top+this.scrollTop,R=this.scrollHeight-this.clientHeight;L.top=this.#y(X,K.height,this.clientHeight,this.scrollTop,R,J),G=!0}if(W){let X=K.left-N.left+this.scrollLeft,R=this.scrollWidth-this.clientWidth;L.left=this.#y(X,K.width,this.clientWidth,this.scrollLeft,R,Q),G=!0}if(G)this.scrollTo(L);this.#A()})}#y(_,Z,$,q,J,Q){let j;if(Q==="start")j=_;else if(Q==="end")j=_+Z-$;else if(Q==="nearest"){let W=q,K=q+$,N=_+Z;if(_>=W&&N<=K)j=q;else if(_<W)j=_;else j=N-$}else j=_+Z/2-$/2;return Math.max(0,Math.min(j,J))}#g(){this.#J?.disconnect(),this.#J=new MutationObserver(()=>{if(this.#N)return;this.#C(),this.#U(),this.#k(),this.#M();let _=this.choices;if(this.#Z&&!_.includes(this.#Z))this.#Z=null,this.#B();else if(!this.#Z&&_.length)this.#B();requestAnimationFrame(()=>this.#A())}),this.#J.observe(this,{childList:!0,subtree:!1})}}A("fig-chooser",o_);class i_ extends HTMLElement{static observedAttributes=["color","selected","disabled","drag","drag-surface","drag-axes","drag-snapping","value","precision","type","tip","hit-area","hit-area-mode","aria-label","aria-labelledby"];#Z=!1;#_=!1;#q=null;#$=null;#J=!1;#j=null;#K=null;#Q=null;#W=null;get#N(){let _=(this.getAttribute("tip")||"").trim().toLowerCase();return _==="color"||_==="add"||_==="remove"?_:null}get#X(){return!this.hasAttribute("data-no-color-picker")}get#G(){let _=this.getAttribute("drag");return _!==null&&_!=="false"}get#L(){let _=(this.getAttribute("drag-axes")||"x,y").toLowerCase();return{x:_.includes("x"),y:_.includes("y")}}get#U(){let _=this.getAttribute("drag-snapping");if(_===null)return"false";let Z=_.trim().toLowerCase();if(Z==="modifier")return"modifier";if(Z===""||Z==="true")return"true";return"false"}#R(_){let Z=this.#U;if(Z==="true")return!0;if(Z==="modifier")return!!_;return!1}#B(_){if(_<0.1)return 0;if(_>0.9)return 1;if(_>0.4&&_<0.6)return 0.5;return _}#M(_,Z){if(Math.abs(_-Z)<0.1){let q=(_+Z)/2;return{x:q,y:q}}if(Math.abs(1-_-Z)<0.1)return{x:_,y:1-_};return{x:_,y:Z}}#O(){let _=this.getAttribute("drag-surface");if(!_||_==="parent")return this.parentElement;return this.closest(_)}get value(){let _=this.#O();if(!_)return"0% 0%";let{px:Z,py:$}=this.#r(_.getBoundingClientRect());return`${(Z*100).toFixed(this.precision)}% ${($*100).toFixed(this.precision)}%`}set value(_){this.setAttribute("value",_??"0% 0%")}get precision(){let _=Number(this.getAttribute("precision")??2);if(!Number.isFinite(_))return 2;return Math.max(0,Math.min(10,Math.trunc(_)))}set precision(_){if(_===null||_===void 0||_==="")this.removeAttribute("precision");else{let Z=Number(_),$=Number.isFinite(Z)?Math.max(0,Math.min(10,Math.trunc(Z))):2;this.setAttribute("precision",String($))}}#Y(_){let Z=10**this.precision,$=Math.round(_*Z)/Z;return Object.is($,-0)?0:$}#F(_){let Z=_==null?"":String(_).trim();if(!Z)return{xPct:0,yPct:0};let $=Z.split(/[\s,]+/).filter(Boolean),q=(j)=>{if(!j)return 0;let W=j.includes("px"),K=j.includes("%"),N=parseFloat(j.replace(/[%px]/g,""));if(!Number.isFinite(N))return 0;if(W)return{px:N};if(K||Math.abs(N)>1)return Math.max(0,Math.min(100,N));return Math.max(0,Math.min(100,N*100))},J=q($[0]),Q=q($[1]??$[0]);return{xToken:J,yToken:Q}}#V(_){let Z=this.#O();if(!Z)return;let{xToken:$,yToken:q}=this.#F(_),J=Z.getBoundingClientRect(),Q=(K,N)=>{if(K&&typeof K==="object"&&"px"in K)return Math.max(0,Math.min(N,K.px));return null},j=(K)=>{let N=typeof K==="number"?K:0;return`${this.#Y(N)}%`},W=this.#L;if(this.#I(W),W.x){let K=Q($,J.width);this.style.left=K===null?j($):`${this.#Y(K)}px`}if(W.y){let K=Q(q,J.height);this.style.top=K===null?j(q):`${this.#Y(K)}px`}}#I(_=this.#L){this.style.setProperty("--fig-handle-position-translate",`${_.x?"-50%":"0"} ${_.y?"-50%":"0"}`)}#A(){this.#J=!0,this.setAttribute("value",this.value),this.#J=!1}get#H(){return this.getAttribute("hit-area-mode")||"handle"}#T(){let _=this.getAttribute("hit-area");if(!_)return null;let Z=_.trim().split(/\s+/),$=0,q=0,J=!1,Q=[];for(let j of Z){if(j==="circle"){J=!0;continue}let W=parseFloat(j);if(Number.isFinite(W))Q.push(W)}if(Q.length>=2)$=Q[0],q=Q[1];else if(Q.length===1)$=Q[0],q=Q[0];else return null;return{vPad:$,hPad:q,circle:J}}#z(){let _=this.#T();if(!_){if(this.#W)this.#W.remove(),this.#W=null;this.style.removeProperty("--fig-handle-hit-area-size");return}if(!this.#W){let Z=document.createElement("div");Z.classList.add("fig-handle-hit-area"),Z.addEventListener("pointerdown",($)=>this.#C($)),this.prepend(Z),this.#W=Z}if(this.style.setProperty("--fig-handle-hit-area-size",String(_.hPad*2)),_.circle)this.#W.style.borderRadius="50%";else this.#W.style.borderRadius="inherit"}#C(_){if(F(this,"disabled"))return;if(_.target!==this.#W)return;if(this.#H==="delegate")_.preventDefault(),_.stopPropagation(),this.dispatchEvent(new CustomEvent("hitareadown",{bubbles:!0,detail:{originalEvent:_}}));else this.#g(_)}connectedCallback(){this.#h(),this.#D(),this.#z(),this.addEventListener("click",this.#k),this.addEventListener("blur",this.#E),document.addEventListener("pointerdown",this.#P),document.addEventListener("keydown",this.#f);let _=this.getAttribute("value");if(_)this.#V(_);if(this.#N)this.#o()}disconnectedCallback(){if(this.#y(),this.#s(),this.#p(),this.#c(),this.#W)this.#W.remove(),this.#W=null;this.removeEventListener("click",this.#k),this.removeEventListener("blur",this.#E),document.removeEventListener("pointerdown",this.#P),document.removeEventListener("keydown",this.#f)}select(){if(F(this,"disabled"))return;this.setAttribute("selected","")}deselect(){this.removeAttribute("selected")}#k=(_)=>{if(this.#_){this.#_=!1;return}if(this.select(),this.getAttribute("type")==="color"&&this.#X&&!this.#N)this.#v()};#P=(_)=>{if(this.contains(_.target))return;if((this.#j||this.#K)&&_.target.closest?.("dialog, [popover]"))return;this.deselect()};#E=()=>{this.removeAttribute("data-fig-pointer-focus")};#f=(_)=>{if(this.removeAttribute("data-fig-pointer-focus"),_.defaultPrevented)return;if(_.target===this&&this.#G&&["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(_.key)){if(this.#b(_)){if(_.preventDefault(),!F(this,"selected"))this.select()}return}if(_.key!=="Enter"&&_.key!==" ")return;if(_.target===this&&!F(this,"selected")){if(_.preventDefault(),this.getAttribute("type")==="color"&&this.#X&&!this.#N)this.#v();else this.select();return}if(!F(this,"selected"))return;if(this.getAttribute("type")!=="color")return;if(!this.#X)return;if(_.preventDefault(),!this.#N)this.#v()};#b(_){if(F(this,"disabled"))return!1;let Z=this.#O();if(!Z)return!1;let $=Z.getBoundingClientRect();if($.width<=0||$.height<=0)return!1;let q=this.#L,J=this.#r($),Q=_.shiftKey?0.1:0.01,j=J.px,W=J.py;switch(_.key){case"ArrowLeft":if(!q.x)return!1;j-=Q;break;case"ArrowRight":if(!q.x)return!1;j+=Q;break;case"ArrowUp":if(!q.y)return!1;W-=Q;break;case"ArrowDown":if(!q.y)return!1;W+=Q;break;case"Home":if(q.x)j=0;if(q.y)W=0;break;case"End":if(q.x)j=1;if(q.y)W=1;break;default:return!1}if(j=Math.max(0,Math.min(1,j)),W=Math.max(0,Math.min(1,W)),this.#I(q),q.x)this.style.left=`${this.#Y(j*$.width)}px`;if(q.y)this.style.top=`${this.#Y(W*$.height)}px`;this.#A();let K={...this.#r($),shiftKey:_.shiftKey,keyboard:!0};return this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:K})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:K})),!0}attributeChangedCallback(_,Z,$){if(_==="color"){if(!$||$==="false"||$==="true")this.style.removeProperty("--fill");else this.style.setProperty("--fill",$);if(this.#j&&this.#N==="color"&&$)this.#j.setAttribute("value",$);this.#S()}if(_==="drag")this.#D();if(_==="hit-area")this.#z();if(_==="selected")this.#u();if(_==="selected"||_==="disabled"||_==="type"||_==="tip"||_==="aria-label"||_==="aria-labelledby")this.#h();if(_==="value"&&!this.#J&&!this.#Z)this.#V($);if(_==="precision"&&this.isConnected&&!this.#Z&&this.hasAttribute("value"))this.#V(this.getAttribute("value")),this.#A();if(_==="tip"){if(this.#s(),this.#N)this.#p(),this.#o()}}#D(){if(this.#G&&!this.#q)this.#q=(_)=>this.#g(_),this.addEventListener("pointerdown",this.#q);else if(!this.#G&&this.#q)this.#y()}#h(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(!this.hasAttribute("role"))this.setAttribute("role","button");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex",_?"-1":"0");else if(_)this.setAttribute("tabindex","-1");if(this.setAttribute("aria-disabled",_?"true":"false"),this.setAttribute("aria-pressed",Z?"true":"false"),!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")){let $=this.#N||this.getAttribute("type")||"handle";this.setAttribute("aria-label",$==="color"?"Color handle":$==="add"?"Add handle":$==="remove"?"Remove handle":"Handle")}}#y(){if(this.#$?.(),this.#$=null,this.#q)this.removeEventListener("pointerdown",this.#q),this.#q=null;this.#Z=!1,this.#_=!1}#g(_){if(!this.#G||F(this,"disabled"))return;_.preventDefault(),this.setAttribute("data-fig-pointer-focus",""),this.focus(),this.select();let Z=this.#O();if(!Z)return;this.#$?.(),this.#Z=!0;let $=this.#L,q=null,J=this.getBoundingClientRect(),Q=J.left+J.width/2,j=J.top+J.height/2,W=_.clientX-Q,K=_.clientY-j,N=_.clientX,L=_.clientY,G=3,X=(z,T,I=!1)=>{let U=Z.getBoundingClientRect();q=U;let P=this.#r(U),D=z-W-U.left,E=T-K-U.top,f=Math.max(0,Math.min(U.width,D)),x=Math.max(0,Math.min(U.height,E)),S=U.width>0?$.x?f/U.width:P.px:0.5,c=U.height>0?$.y?x/U.height:P.py:0.5;if(this.#R(I)){if($.x)S=this.#B(S);if($.y)c=this.#B(c);if($.x&&$.y){let i=this.#M(S,c);S=i.x,c=i.y}}if(this.#I($),$.x)this.style.left=`${this.#Y(Math.max(0,Math.min(U.width,S*U.width)))}px`;if($.y)this.style.top=`${this.#Y(Math.max(0,Math.min(U.height,c*U.height)))}px`},R=(z)=>{if(!this.#Z)return;if(!this.#_){let T=z.clientX-N,I=z.clientY-L;if(T*T+I*I<G*G)return;if(this.#i(),this.classList.add("dragging"),this.style.cursor="grabbing",!F(this,"selected"))this.select()}this.#_=!0,X(z.clientX,z.clientY,z.shiftKey),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{...this.#r(q),shiftKey:z.shiftKey}}))},B=(z)=>{if(M(),this.#_){X(z.clientX,z.clientY,z.shiftKey),this.#A(),this.#V(this.getAttribute("value")),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.#r(q)}));let T=(I)=>{I.stopPropagation(),I.preventDefault()};this.addEventListener("click",T,{capture:!0,once:!0})}else this.#A();this.#_=!1},M=()=>{if(window.removeEventListener("pointermove",R),window.removeEventListener("pointerup",B),this.#Z=!1,this.style.cursor="",this.classList.remove("dragging"),this.#$===M)this.#$=null};this.#$=M,window.addEventListener("pointermove",R),window.addEventListener("pointerup",B)}showColorTip(){if(!this.#N)return;if(this.#j){this.#j.style.display="";return}this.#o()}hideColorTip(){if(!this.#j)return;this.#j.style.display="none"}#w(_=this.getAttribute("color")){let Z={color:"#D9D9D9",opacity:100},$=String(_||"").trim();if(!$)return Z;let q=(Q)=>{let j=Q.replace("#","").trim();if(j.length===3||j.length===4){let[W,K,N,L]=j;return{color:`#${W}${W}${K}${K}${N}${N}`.toUpperCase(),opacity:L?Math.round(parseInt(`${L}${L}`,16)/255*100):100}}if(j.length===6||j.length===8)return{color:`#${j.slice(0,6)}`.toUpperCase(),opacity:j.length===8?Math.round(parseInt(j.slice(6,8),16)/255*100):100};return Z},J=(Q,j,W)=>{let K=(N)=>Math.max(0,Math.min(255,Math.round(Number(N)))).toString(16).padStart(2,"0");return`#${K(Q)}${K(j)}${K(W)}`.toUpperCase()};if($.startsWith("#"))return q($);try{let{ctx:Q}=H0(1,1);Q.fillStyle="#000000",Q.fillStyle=$;let j=Q.fillStyle;if(j.startsWith("#"))return q(j);let W=j.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*([\d.]+))?/i);if(W)return{color:J(W[1],W[2],W[3]),opacity:W[4]!==void 0?Math.round(parseFloat(W[4])*100):100}}catch{}return Z}#x(){let{color:_,opacity:Z}=this.#w();return JSON.stringify(Z<100?{type:"solid",color:_,opacity:Z}:{type:"solid",color:_})}#S(){if(!this.#K)return;this.#K.setAttribute("value",this.#x())}#m(){if(!l())return null;if(this.#K)return this.#K;let _=document.createElement("fig-fill-picker");_.setAttribute("mode","solid"),_.setAttribute("alpha","true"),_.setAttribute("dialog-offset","8 8"),_.setAttribute("value",this.#x()),_.anchorElement=this;let Z=document.createElement("span");return Z.hidden=!0,_.appendChild(Z),_.addEventListener("input",this.#n),_.addEventListener("change",this.#$0),_.addEventListener("close",this.#j0),this.appendChild(_),this.#K=_,_}#v(){if(F(this,"disabled"))return;let _=this.#m();if(!_){this.#a();return}this.setAttribute("selected",""),this.#S(),_.open()}#p(){if(!this.#K)return;this.#K.removeEventListener("input",this.#n),this.#K.removeEventListener("change",this.#$0),this.#K.removeEventListener("close",this.#j0),this.#K.close(),this.#K.remove(),this.#K=null,this.removeAttribute("selected")}#d(){if(this.#Q)return this.#Q;let _=document.createElement("input");return _.type="color",_.tabIndex=-1,_.setAttribute("aria-hidden","true"),_.style.position="fixed",_.style.inlineSize="1px",_.style.blockSize="1px",_.style.opacity="0",_.style.pointerEvents="none",_.addEventListener("input",this.#K0),_.addEventListener("change",this.#Q0),this.appendChild(_),this.#Q=_,_}#a(){let _=this.#d(),{color:Z}=this.#w();_.value=Z,this.setAttribute("selected",""),_.click()}#c(){if(!this.#Q)return;this.#Q.removeEventListener("input",this.#K0),this.#Q.removeEventListener("change",this.#Q0),this.#Q.remove(),this.#Q=null}#i(){if(this.getAttribute("type")!=="color")return;this.#K?.close()}#o(){let _=this.#N;if(!_)return;if(this.#j)return;let Z=document.createElement("fig-color-tip");if(_==="add"||_==="remove")Z.setAttribute("control",_);else Z.setAttribute("value",this.getAttribute("color")||"#D9D9D9"),Z.setAttribute("alpha","true");Z.addEventListener("input",this.#N0),Z.addEventListener("change",this.#L0),Z.addEventListener("add",this.#J0),Z.addEventListener("remove",this.#J0),this.appendChild(Z),this.#j=Z,this.#u()}#s(){if(!this.#j)return;this.#j.removeEventListener("input",this.#N0),this.#j.removeEventListener("change",this.#L0),this.#j.removeEventListener("add",this.#J0),this.#j.removeEventListener("remove",this.#J0),this.#j.remove(),this.#j=null}#u(){if(!this.#j||this.#N!=="color")return;let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";this.#j.toggleAttribute("selected",_)}#l(_,Z){if(Z===void 0||Z>=100)return _;let{r:$,g:q,b:J}=e(_);return`rgba(${$}, ${q}, ${J}, ${Z/100})`}#t(_){if(!_?.color)return null;let Z=_.opacity!==void 0?_.opacity:_.alpha!==void 0?Math.round(_.alpha*100):void 0;return{color:_.color,opacity:Z,...r(_.color,_.alpha,Z)}}#n=(_)=>{_.stopPropagation();let Z=this.#t(_.detail);if(!Z)return;this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))};#$0=(_)=>{_.stopPropagation();let Z=this.#t(_.detail);if(!Z)return;this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z}))};#q0(_){let{opacity:Z}=this.#w();return{...Z<100?{color:_,opacity:Z}:{color:_},...r(_,void 0,Z)}}#K0=(_)=>{_.stopPropagation();let Z=this.#q0(_.target.value);this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))};#Q0=(_)=>{_.stopPropagation();let Z=this.#q0(_.target.value);if(this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z})),this.isConnected)this.focus()};#j0=()=>{if(!this.isConnected)return;this.setAttribute("selected",""),this.focus()};#N0=(_)=>{if(_.stopPropagation(),_.detail?.color){let Z={color:_.detail.color,opacity:_.detail.opacity,...r(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))}};#L0=(_)=>{if(_.stopPropagation(),_.detail?.color){let Z={color:_.detail.color,opacity:_.detail.opacity,...r(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z}))}};#J0=(_)=>{_.stopPropagation(),this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,composed:!0}))};#r(_){let Z=_||this.#O()?.getBoundingClientRect();if(!Z)return{x:0,y:0,px:0,py:0};let $=this.getBoundingClientRect(),q=this.offsetWidth/2,J=this.offsetHeight/2,Q=$.left-Z.left,j=$.top-Z.top,W=Q+q,K=j+J,N=Z.width>0?W/Z.width:0,L=Z.height>0?K/Z.height:0;return{x:this.#Y(Q),y:this.#Y(j),px:N,py:L}}}A("fig-handle",i_);class l_ extends HTMLElement{static get observedAttributes(){return["value","disabled"]}get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","menuitem");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");this.#Z()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="disabled")this.#Z()}#Z(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else if(this.removeAttribute("aria-disabled"),!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1")}}A("fig-menu-item",l_);class P0 extends HTMLElement{#Z=null;#_=null;#q=this.#Q.bind(this);static get observedAttributes(){return["label","direction","sticky"]}get label(){return this.getAttribute("label")??""}set label(_){if(_==null||_==="")this.removeAttribute("label");else this.setAttribute("label",String(_))}connectedCallback(){this.#$(),this.#j()}disconnectedCallback(){this.#K()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(this.#$(),_==="sticky")this.#j()}#$(){if(!this.hasAttribute("role"))this.setAttribute("role","separator");if(this.getAttribute("direction")==="vertical")this.setAttribute("aria-orientation","vertical");else if(!this.hasAttribute("aria-orientation"))this.setAttribute("aria-orientation","horizontal");let Z=this.label.trim();if(Z)this.setAttribute("aria-label",Z);else this.removeAttribute("aria-label")}#J(){return this.hasAttribute("sticky")&&this.getAttribute("sticky")!=="false"}#j(){if(this.#K(),!this.isConnected||!this.#J()){this.removeAttribute("stuck");return}let _=M1(this);if(this.#Z=_,_?.addEventListener("scroll",this.#q,{passive:!0}),this.#_=new ResizeObserver(this.#q),this.#_.observe(this),_ instanceof Element)this.#_.observe(_);requestAnimationFrame(this.#q)}#K(){this.#Z?.removeEventListener?.("scroll",this.#q),this.#Z=null,this.#_?.disconnect(),this.#_=null}#Q(){if(!this.#J()||!this.#Z){this.removeAttribute("stuck");return}let _=parseFloat(getComputedStyle(this).top)||0,Z=this.#Z,$=Z===document.scrollingElement||Z===document.documentElement?{top:0}:Z.getBoundingClientRect(),q=Z instanceof Element?parseFloat(getComputedStyle(Z).paddingTop)||0:0,J=$.top+q+_;this.toggleAttribute("stuck",this.getBoundingClientRect().top<=J+1)}}A("fig-separator",P0);function M1(_){let Z=_.parentElement;while(Z){let $=getComputedStyle(Z),q=$.overflowY||$.overflow;if(q&&q!=="visible"&&q!=="clip")return Z;Z=Z.parentElement}return document.scrollingElement}class r_ extends P0{}A("fig-menu-separator",r_);var A1=new Set(["FIG-MENU-ITEM","FIG-SEPARATOR","FIG-MENU-SEPARATOR"]),$0="trigger";function h0(_){return _?.nodeType===1&&A1.has(_.tagName)}function F1(_,Z){if(!_||!Z)return null;let $=Z;while($.parentElement&&$.parentElement!==_)$=$.parentElement;return $.parentElement===_?$:null}class a_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=!1;#G;#L;#U;#R;#B;#M;#O=this.#D.bind(this);#Y=-1;static get observedAttributes(){return["position","offset","closedby","disabled","open","trigger"]}constructor(){super();this.#G=this.#p.bind(this),this.#L=this.#d.bind(this),this.#U=this.#c.bind(this),this.#R=this.#i.bind(this),this.#B=this.#o.bind(this),this.#M=this.#D.bind(this),this.#F()}get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){if(_){if(this.#v())return;this.setAttribute("open","")}else this.removeAttribute("open")}connectedCallback(){if(this.#I(),this.#C(),this.#E(),this.#P(),this.#m(),this.open)this.#u()}disconnectedCallback(){if(this.#k(),this.#f(),document.removeEventListener("keydown",this.#R,!0),this.#K)this.#K.disconnect(),this.#K=null}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="open"){if($===null||$==="false")this.#l();else{if(this.#v()){this.removeAttribute("open");return}this.#u()}return}if(_==="disabled"){this.#m();return}if(this.#Z&&(_==="position"||_==="offset"||_==="closedby"))if($!==null)this.#Z.setAttribute(_,$);else this.#Z.removeAttribute(_)}#F(){if(this.#X)return;this.#X=!0;let _=this.attachShadow({mode:"open"});s0(_,{icons:!0});let Z=document.createElement("style");Z.textContent=`
174
+ `:",";this.#$=_.split(Z).map(($)=>$.trim()).filter(Boolean)}#X(){if(this.replaceChildren(),this.#$.length===0)return;let _=document.createElement("fig-segmented-control");if(_.setAttribute("sizing",this.getAttribute("sizing")||"equal"),F(this,"disabled"))_.setAttribute("disabled","");if(F(this,"full"))_.setAttribute("full","");let Z=this.getAttribute("value");for(let $ of this.#$){let q=document.createElement("fig-segment");if(q.setAttribute("value",$),q.textContent=$,Z===$)q.setAttribute("selected","true");_.appendChild(q)}if(Z)_.setAttribute("value",Z);_.addEventListener("input",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(q===null)return;this.#j=!0,this.setAttribute("value",q),this.#j=!1,this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0,composed:!0}))}),_.addEventListener("change",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(q===null)return;this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#J=_,this.#Z="segments"}#G(){if(this.replaceChildren(),this.#$.length===0)return;let _=document.createElement("fig-dropdown");if(F(this,"disabled"))_.setAttribute("disabled","");let Z=this.getAttribute("value");for(let $ of this.#$){let q=document.createElement("option");if(q.value=$,q.textContent=$,Z===$)q.selected=!0;_.appendChild(q)}if(Z)_.setAttribute("value",Z);_.addEventListener("input",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(!q)return;this.#j=!0,this.setAttribute("value",q),this.#j=!1,this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0,composed:!0}))}),_.addEventListener("change",($)=>{if($.stopPropagation(),this.#j)return;let q=this.#K($);if(!q)return;this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#J=_,this.#Z="dropdown"}#L(){if(this.#Z==="segments")this.#X(),requestAnimationFrame(()=>{requestAnimationFrame(()=>this.#Y())});else this.#G()}#U(){if(!this.#J||this.#j)return;let _=this.getAttribute("value")||"";this.#J.value=_}#R(_){if(!this.#J)return;if(this.hasAttribute(_))this.#J.setAttribute(_,this.getAttribute(_)||"");else this.#J.removeAttribute(_)}#B(){this.#q?.disconnect(),this.#q=new ResizeObserver(()=>{this.#Y()}),this.#q.observe(this)}#M(_){let Z=document.createRange();Z.selectNodeContents(_);let $=Z.getBoundingClientRect().width,J=_.getBoundingClientRect().width,Q=getComputedStyle(_),j=parseFloat(Q.paddingLeft)||0,W=parseFloat(Q.paddingRight)||0,K=J-j-W;return $>K+0.5}#O(){let _=this.querySelectorAll("fig-segment");for(let Z of _)if(this.#M(Z))return!0;return!1}#Y(){if(this.#$.length<=1)return;if(this.#Z==="segments"){let _=this.#J;if(_&&_.scrollWidth>_.clientWidth+1||this.#O())this.#_=this.clientWidth,this.#G()}else if(this.#_>0&&this.clientWidth>=this.#_)this.#X(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let _=this.#J;if(_&&_.scrollWidth>_.clientWidth+1||this.#O())this.#G()})})}}A("fig-options",K_);class N_ extends HTMLElement{#Z=!1;#_=!1;#q=!1;#$="";#J=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required","aria-valuetext"];#j={range:{min:0,max:100,step:1},hue:{min:0,max:255,step:1},delta:{min:-100,max:100,step:1},stepper:{min:0,max:100,step:25},opacity:{min:0,max:100,step:0.1,color:"#FF0000"}};#K;#Q;#W;#N;#X;#G;#L;#U=null;#R=null;#B=null;#M=null;constructor(){super();this.initialChildren=null,this.#K=(_)=>{_.stopPropagation(),this.#g()},this.#Q=(_)=>{_.stopPropagation(),this.#w()},this.#X=(_)=>{this.#x(_)},this.#W=(_)=>{_.stopPropagation(),this.#A()},this.#N=(_)=>{_.stopPropagation(),this.#S()},this.#G=()=>{this.#Z=!0},this.#L=()=>{if(this.#Z=!1,this.#_&&this.isConnected)this.#_=!1,this.#I()}}#O(){let _=this.getAttribute("value");this.type=this.getAttribute("type")||"range",this.variant=this.getAttribute("variant")||"default",this.text=this.getAttribute("text")!=="false",this.units=this.getAttribute("units")||"",this.transform=Number(this.getAttribute("transform")||1),this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.precision=this.hasAttribute("precision")?Number(this.getAttribute("precision")):null,this.placeholder=this.getAttribute("placeholder")!==null?this.getAttribute("placeholder"):"##";let Z=this.#j[this.type]||this.#j.range,$=(q,J)=>{let Q=this.getAttribute(q),j=Q===null||Q.trim()===""?J:Number(Q);return Number.isFinite(j)?j:J};if(this.min=$("min",Z.min),this.max=$("max",Z.max),this.step=$("step",Z.step),!(this.step>0))this.step=Z.step>0?Z.step:1;this.color=this.getAttribute("color")||Z?.color,this.default=this.#P(),this.value=this.#f(_)}#Y(){if(!this.querySelector("[type=range]"))return!1;return this.getAttribute("text")!=="false"===!!this.querySelector("fig-input-number")}#F(){if(this.#O(),this.color)this.style.setProperty("--color",this.color);else this.style.removeProperty("--color");if(this.input=this.querySelector("[type=range]"),this.inputContainer=this.querySelector(".fig-slider-input-container"),this.input.className=this.type,this.input.min=String(this.min),this.input.max=String(this.max),this.input.step=String(this.step),this.input.value=String(this.value),this.input.disabled=this.disabled,this.text)this.input.setAttribute("tabindex","-1");else this.input.removeAttribute("tabindex");if(this.input.setAttribute("aria-valuemin",String(this.min)),this.input.setAttribute("aria-valuemax",String(this.max)),this.input.setAttribute("aria-valuenow",String(this.value)),this.figInputNumber=this.querySelector("fig-input-number"),this.figInputNumber){if(this.figInputNumber.setAttribute("placeholder",this.placeholder),this.figInputNumber.setAttribute("min",String(this.min)),this.figInputNumber.setAttribute("max",String(this.max)),this.figInputNumber.setAttribute("transform",String(this.transform)),this.figInputNumber.setAttribute("step",String(this.step)),this.figInputNumber.setAttribute("value",String(this.value)),this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");if(this.precision!==null)this.figInputNumber.setAttribute("precision",String(this.precision));else this.figInputNumber.removeAttribute("precision");this.figInputNumber.disabled=this.disabled,this.figInputNumber.toggleAttribute("disabled",this.disabled)}}#V(){if(this.#h(),this.input.removeEventListener("input",this.#K),this.input.addEventListener("input",this.#K),this.input.removeEventListener("change",this.#Q),this.input.addEventListener("change",this.#Q),this.input.removeEventListener("keydown",this.#X),this.input.addEventListener("keydown",this.#X),this.input.removeEventListener("pointerdown",this.#G),this.input.addEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#L),this.input.addEventListener("pointerup",this.#L),this.input.removeEventListener("pointercancel",this.#L),this.input.addEventListener("pointercancel",this.#L),this.style.setProperty("--default",this.#H(this.default)),this.figInputNumber)this.#y(),this.figInputNumber.removeEventListener("input",this.#W),this.figInputNumber.addEventListener("input",this.#W),this.figInputNumber.removeEventListener("change",this.#N),this.figInputNumber.addEventListener("change",this.#N)}#I(){if(this.#O(),this.color)this.style.setProperty("--color",this.color);let _=Y("input",{type:"range",tabindex:this.text?"-1":null,disabled:this.disabled,min:this.min,max:this.max,step:this.step,className:this.type,value:this.value,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this.value}),Z=Y("div",{className:"fig-slider-input-container",role:"group"},_);for(let q of this.initialChildren??[])Z.appendChild(q);let $=[Z];if(this.text)$.push(Y("fig-input-number",{placeholder:this.placeholder,min:this.min,max:this.max,transform:this.transform,step:this.step,value:this.value,units:this.units||null,precision:this.precision}));if(this.replaceChildren(...$),this.input=_,this.inputContainer=Z,this.figInputNumber=this.querySelector("fig-input-number"),this.#V(),this.datalist=this.querySelector("datalist"),this.datalist)this.inputContainer.append(this.datalist),this.datalist.setAttribute("id",this.datalist.getAttribute("id")||p()),this.input.setAttribute("list",this.datalist.getAttribute("id"));else if(this.type==="stepper"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("data-generated","slider-stepper"),this.datalist.setAttribute("id",p());let q=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1));for(let J=0;J<q;J++){let Q=document.createElement("option");Q.setAttribute("value",this.min+J*this.step),this.datalist.append(Q)}this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}else if(this.type==="delta"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("data-generated","slider-delta"),this.datalist.setAttribute("id",p());let q=document.createElement("option");q.setAttribute("value",this.default),this.datalist.append(q),this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}this.#p(),this.#D()}connectedCallback(){if(this.initialChildren===null)this.initialChildren=Array.from(this.childNodes);if(this.#Y()){this.#F(),this.#V(),this.#D();return}this.#I()}get value(){if(this.#$!=="")return this.#$;let _=this.getAttribute("value");if(_!==null)return String(this.#f(_));return""}set value(_){let Z=_===null||_===void 0?"":String(_),q=this.min!==void 0||this.max!==void 0?String(this.#f(Z)):Z;if(this.#$=q,this.getAttribute("value")!==q)this.#q=!0,this.setAttribute("value",q),this.#q=!1;if(this.input&&this.input.value!==q)this.input.value=q,this.input.setAttribute("aria-valuenow",q);if(this.figInputNumber)this.figInputNumber.setAttribute("value",q);if(this.input)this.#b()}get defaultValue(){return this.#P()}disconnectedCallback(){if(this.#_=!1,this.input)this.input.removeEventListener("input",this.#K),this.input.removeEventListener("change",this.#Q),this.input.removeEventListener("keydown",this.#X),this.input.removeEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#L),this.input.removeEventListener("pointercancel",this.#L);if(this.figInputNumber)this.figInputNumber.removeEventListener("input",this.#W),this.figInputNumber.removeEventListener("change",this.#N)}#A(){if(this.figInputNumber){let _=this.figInputNumber.value,Z=this.#f(_);this.value=Z,this.input.value=String(Z),this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}}#H(_){let{min:Z,max:$}=this.#z(),q=$-Z;if(q===0)return 0;return(Number(_)-Z)/q}#T(_){if(_===null||_===void 0)return null;if(typeof _==="string"&&_.trim()==="")return null;let Z=Number(_);return Number.isFinite(Z)?Z:null}#z(){let _=this.#T(this.min),Z=this.#T(this.max);if(_===null)_=0;if(Z===null)Z=_;if(_>Z)[_,Z]=[Z,_];return{min:_,max:Z}}#C(_){let{min:Z,max:$}=this.#z();return Math.min($,Math.max(Z,_))}#k(_){let{min:Z}=this.#z(),$=this.#T(this.step);if(!($>0))return!0;let q=(_-Z)/$,J=Math.round(q),Q=Number.EPSILON*Math.max(1,Math.abs(q))*16;return Math.abs(q-J)<=Q}#P(_=this.getAttribute("default")){let{min:Z,max:$}=this.#z(),q=this.#T(_);if(q!==null&&q>=Z&&q<=$&&(this.type!=="stepper"||this.#k(q)))return q;return this.type==="delta"?Math.min($,Math.max(Z,0)):Z}#E(){if(this.type==="delta"){let Z=this.#T(this.default);if(Z!==null)return this.#C(Z);return this.#C(0)}if(this.type==="range"){let{min:Z,max:$}=this.#z();return this.#C(Z+($-Z)/2)}let{min:_}=this.#z();return _}#f(_){let Z=this.#T(_);if(Z===null)return this.#E();return this.#C(Z)}#b(){let _=this.#H(this.value),Z=this.#H(this.default),$=_<Z?-1:1,q=_===Z?1:0;if(this.#U!==_)this.style.setProperty("--slider-complete",_),this.#U=_;if(this.#R!==Z)this.style.setProperty("--default",Z),this.#R=Z;if(this.#B!==$)this.style.setProperty("--slider-delta-direction",$),this.#B=$;if(this.#M!==q)this.style.setProperty("--unchanged",q),this.#M=q}#D(){let _=this.input.value;if(this.value=_,this.#b(),this.input.setAttribute("aria-valuenow",_),this.figInputNumber)this.figInputNumber.setAttribute("value",_)}#h(){if(!this.input)return;if(this.text){this.input.setAttribute("aria-hidden","true"),["aria-label","aria-labelledby","aria-describedby","aria-valuetext"].forEach((_)=>this.input.removeAttribute(_)),this.#y();return}this.input.removeAttribute("aria-hidden"),this.#J.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#y(){if(!this.figInputNumber)return;["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"].forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.figInputNumber.removeAttribute(_);else this.figInputNumber.setAttribute(_,Z)})}#g(){this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#w(){this.#Z=!1,this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#x(_){if(this.disabled||!_.shiftKey)return;if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(_.key))return;_.preventDefault();let Z=_.key==="ArrowRight"||_.key==="ArrowUp"?1:-1,$=this.#T(this.input.value)??this.#E(),q=this.#T(this.step)??1,J=this.#f($+q*10*Z);this.value=J,this.input.value=String(J),this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#S(){if(this.figInputNumber){let _=this.figInputNumber.value,Z=this.#f(_);this.value=Z,this.input.value=String(Z),this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}}#m(_,Z){if(!this.input)return;let $=this.#j[this.type]||this.#j.range,q=Z===null||String(Z).trim()===""?$[_]:Number(Z),J=Number.isFinite(q)?q:$[_];if(_==="step"&&!(J>0))J=$.step>0?$.step:1;if(this[_]===J&&this.input[_]===String(J))return;if(this[_]=J,this.input[_]=String(J),_==="min")this.input.setAttribute("aria-valuemin",String(J));else if(_==="max")this.input.setAttribute("aria-valuemax",String(J));if(this.figInputNumber)this.figInputNumber.setAttribute(_,String(J));if(!this.hasAttribute("default")&&this.type!=="delta")this.default=this.min;else this.default=this.#P();this.value=this.#f(this.value),this.#b(),this.#v(),this.#p()}#v(){if(this.type!=="stepper"||!this.datalist)return;let _=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1)),Z=document.createDocumentFragment();for(let $=0;$<_;$++){let q=document.createElement("option");q.setAttribute("value",this.min+$*this.step),Z.append(q)}this.datalist.replaceChildren(Z),this.input.setAttribute("list",this.datalist.id),this.#p()}#p(){if(!this.datalist)return;let _=String(this.default),Z=[...this.datalist.querySelectorAll("option")];Z.forEach((q)=>q.removeAttribute("default"));let $=Z.find((q)=>q.value===_);if(!$&&this.type==="delta"&&this.datalist.getAttribute("data-generated")==="slider-delta")$=document.createElement("option"),$.value=_,this.datalist.replaceChildren($);$?.setAttribute("default","true")}#d(){if(this.#Z){this.#_=!0;return}this.#_=!1,this.#I()}static get observedAttributes(){return["value","step","min","max","type","variant","disabled","color","units","transform","text","placeholder","default","precision","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required","aria-valuetext"]}focus(){if(this.text&&this.figInputNumber){this.figInputNumber.focus();return}this.input.focus()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="value"&&this.#q)return;if(this.input)switch(_){case"color":this.color=$,this.style.setProperty("--color",this.color);break;case"disabled":if(this.disabled=this.input.disabled=$!==null&&$!=="false",this.figInputNumber)this.figInputNumber.disabled=this.disabled,this.figInputNumber.setAttribute("disabled",this.disabled);break;case"value":if(this.#Z)break;this.value=$,this.#D();break;case"transform":if(this.transform=Number($)||1,this.figInputNumber)this.figInputNumber.setAttribute("transform",this.transform);break;case"precision":if(this.precision=$!==null?Number($):null,this.figInputNumber)if(this.precision!==null)this.figInputNumber.setAttribute("precision",this.precision);else this.figInputNumber.removeAttribute("precision");break;case"placeholder":if(this.placeholder=$!==null?$:"##",this.figInputNumber)this.figInputNumber.setAttribute("placeholder",this.placeholder);break;case"default":this.default=this.#P($),this.#b(),this.#p();break;case"min":case"max":case"step":this.#m(_,$);break;case"units":if(this.units=$||"",this.figInputNumber)if(this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");break;case"type":case"variant":if(!this.#Z)this[_]=$;this.#d();break;case"text":if(!this.#Z)this.text=$!=="false";this.#d();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":case"aria-valuetext":this.#h();break;default:this[_]=this.input[_]=$,this.#D();break}}}A("fig-slider",N_);class L_ extends HTMLElement{#Z=!1;#_=!1;#q="";#$=!1;#J;#j;#K;#Q;#W;#N;#X;#G;#L=null;#U=0;#R="";#B="";#M=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];constructor(){super();this.#J=this.#b.bind(this),this.#j=this.#h.bind(this),this.#K=this.#h.bind(this),this.#Q=this.#D.bind(this),this.#W=(_)=>{_.stopPropagation(),this.#f(_)},this.#N=(_)=>{_.stopPropagation();let Z=_.target.value;if(this.type==="number")Z=Number(Z)/(this.transform||1);this.value=Z,this.#z(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))},this.#X=()=>{if(!this.disabled)this.focus()},this.#G=this.#Y.bind(this)}connectedCallback(){if(this.multiline=this.hasAttribute("multiline")&&this.getAttribute("multiline")!=="false",this.value=this.getAttribute("value")||"",this.type=this.getAttribute("type")||"text",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.readonly=this.hasAttribute("readonly")&&this.getAttribute("readonly")!=="false",this.type==="number"){if(this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));if(this.transform=Number(this.getAttribute("transform")||1),this.getAttribute("value"))this.value=Number(this.value)}if(this.input=this.#O(),this.input.readOnly=this.readonly,this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.input.disabled=this.disabled,this.#A(),this.#H(),this.#T(),this.#z(),this.#C(),this.#P(),N0(this),this.#F(),this.type==="number"){if(this.getAttribute("min"))this.input.setAttribute("min",this.#E(this.min));if(this.getAttribute("max"))this.input.setAttribute("max",this.#E(this.max));if(this.getAttribute("step"))this.input.setAttribute("step",this.#E(this.step));this.addEventListener("pointerdown",this.#Q)}this.removeEventListener("click",this.#G),this.addEventListener("click",this.#G),this.input.removeEventListener("change",this.#W),this.input.addEventListener("change",this.#W),this.input.removeEventListener("input",this.#N),this.input.addEventListener("input",this.#N)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#W),this.input.removeEventListener("input",this.#N);if(this.removeEventListener("click",this.#G),this.removeEventListener("pointerdown",this.#Q),window.removeEventListener("pointermove",this.#J),window.removeEventListener("pointerup",this.#j),window.removeEventListener("blur",this.#K),this.#L?.disconnect(),this.#L=null,this.#U)cancelAnimationFrame(this.#U),this.#U=0}focus(){this.input.focus()}#O(){let _=this.multiline,Z=this.querySelector("input,textarea");if(Z){if(_?Z.tagName==="TEXTAREA":Z.tagName==="INPUT")return Z;Z.remove()}let $;if(_)$=document.createElement("textarea"),$.value=this.value;else $=document.createElement("input"),$.type=this.type,$.value=this.type==="number"?this.#E(this.value):this.value;if($.setAttribute("data-generated","input-control"),this.name)$.name=this.name;return $.placeholder=this.placeholder,this.insertBefore($,this.querySelector('[slot="append"]')),$}#Y(_){let Z=_.target?.closest?.("[slot]");if(!Z||Z.parentElement!==this)return;if(this.disabled)return;this.focus()}#F(){this.#L?.disconnect(),this.#L=new MutationObserver(()=>this.#V()),this.#L.observe(this,{childList:!0,characterData:!0,subtree:!0})}#V(){if(this.#U)return;this.#U=requestAnimationFrame(()=>{if(this.#U=0,!this.isConnected)return;this.#I()})}#I(){if(!this.input||!this.contains(this.input))this.input=this.#O(),this.input.readOnly=this.readonly,this.input.addEventListener("change",this.#W),this.input.addEventListener("input",this.#N);this.#A(),this.#H(),this.#T(),this.#z(),this.#C(),this.#P(),N0(this)}#A(){if(!this.input)return;this.#M.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#H(){let _=this.querySelector('[slot="prepend"][data-generated="search-prefix"]');if(this.type!=="search"){_?.remove();return}if(this.querySelector('[slot="prepend"]:not([data-generated])')){_?.remove();return}if(_){let q=_.querySelector("fig-icon");if(q&&q.getAttribute("name")!=="search")q.setAttribute("name","search");return}let $=h("search");$.setAttribute("slot","prepend"),$.setAttribute("data-generated","search-prefix"),$.setAttribute("color","var(--figma-color-icon)"),$.addEventListener("click",this.#X),this.prepend($)}#T(){let _=this.querySelector('[slot="append"][data-generated="search-clear"]');if(this.type!=="search"){_?.remove();return}if(this.querySelector('[slot="append"]:not([data-generated])')){_?.remove();return}if(_){let j=_.querySelector("fig-icon");if(j&&j.getAttribute("name")!=="close")j.setAttribute("name","close");return}let $=document.createElement("span");$.setAttribute("slot","append"),$.setAttribute("data-generated","search-clear");let q=document.createElement("fig-tooltip");q.setAttribute("text","Clear search");let J=document.createElement("fig-button");J.setAttribute("variant","ghost"),J.setAttribute("icon",""),J.setAttribute("aria-label","Clear search");let Q=h("close",{size:"small"});Q.setAttribute("color","var(--figma-color-icon-secondary)"),J.append(Q),q.append(J),$.append(q),this.append($),J.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(!this.input||this.input.value===""){this.focus();return}this.value="",this.input.value="",this.dispatchEvent(new CustomEvent("input",{detail:"",bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:"",bubbles:!0})),this.#z(),this.focus()})}#z(){if(this.type!=="search"){this.removeAttribute("data-search-has-value");return}this.toggleAttribute("data-search-has-value",!!this.input?.value)}#C(){let _=this.querySelector('[slot="append"][data-generated="password-toggle"]');if(this.type!=="password"){_?.remove(),this.#_=!1;return}if(this.querySelector('[slot="append"]:not([data-generated])')){_?.remove();return}if(_){this.#k(_);return}let $=document.createElement("span");$.setAttribute("slot","append"),$.setAttribute("data-generated","password-toggle");let q=document.createElement("fig-tooltip"),J=document.createElement("fig-button");J.setAttribute("variant","ghost"),J.setAttribute("icon","");let Q=h("visible",{size:"small"});Q.setAttribute("color","var(--figma-color-icon-secondary)"),J.append(Q),q.append(J),$.append(q),this.append($),this.#k($),J.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(this.#_=!this.#_,this.input)this.input.type=this.#_?"text":"password";this.#k($),this.focus()})}#k(_){let Z=_.querySelector("fig-tooltip"),$=_.querySelector("fig-button"),q=_.querySelector("fig-icon"),J=this.#_?"Hide password":"Show password";Z?.setAttribute("text",J),$?.setAttribute("aria-label",J),q?.setAttribute("name",this.#_?"visible":"hidden")}#P(){this.querySelectorAll('[data-generated="search-clear"] fig-button, [data-generated="password-toggle"] fig-button').forEach((_)=>{if(this.disabled)_.setAttribute("disabled","");else _.removeAttribute("disabled")})}#E(_){if(_==="")return"";let Z=Number(_)*(this.transform||1);return Z=this.#g(Z),Z}#f(_){_.stopPropagation();let Z=_.target.value,$=Z;if(this.type==="number")Z=Z/(this.transform||1),Z=this.#y(Z,!1),$=Z*(this.transform||1);this.value=Z,this.input.value=$,this.#z(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#b(_){if(this.type!=="number")return;if(_.buttons===0){this.#h();return}let Z=(this.step||1)*_.movementX,$=Number(this.input.value);$=$/(this.transform||1)+Z,$=this.#y($,!1);let q=$*(this.transform||1);$=this.#g($),q=this.#g(q),this.value=$,this.input.value=q,this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#D(_){if(this.type!=="number")return;if(_.altKey||_.target.closest("[slot]"))this.#Z=!0,this.#R=this.style.userSelect,this.#B=document.body.style.cursor,this.input.style.cursor=this.style.cursor=document.body.style.cursor="ew-resize",this.style.userSelect="none",window.addEventListener("pointermove",this.#J),window.addEventListener("pointerup",this.#j),window.addEventListener("pointercancel",this.#j),window.addEventListener("blur",this.#K)}#h(_){if(this.type!=="number")return;let Z=this.#Z;if(this.#Z=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#B,this.style.userSelect=this.#R,window.removeEventListener("pointermove",this.#J),window.removeEventListener("pointerup",this.#j),window.removeEventListener("pointercancel",this.#j),window.removeEventListener("blur",this.#K),Z)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#y(_,Z=!0){let $=_;if(this.type==="number"){if($=Number($),typeof this.min==="number")$=Math.max(Z?this.#E(this.min):this.min,$);if(typeof this.max==="number")$=Math.min(Z?this.#E(this.max):this.max,$);$=this.#g($)}return $}#g(_,Z=2){let $=Math.round(_*100)/100;return Number.isInteger($)?$:$.toFixed(Z)}get value(){return this.#q}set value(_){let Z=_??"";this.#q=Z;let $=String(Z);if(this.getAttribute("value")!==$)this.#$=!0,this.setAttribute("value",$),this.#$=!1;this.#w(Z)}#w(_){if(!this.input||this.#Z)return;let Z=this.type==="number"?String(this.#E(_)):String(_??"");if(this.input.value!==Z)this.input.value=Z;this.#z()}static get observedAttributes(){return["value","placeholder","label","disabled","readonly","type","multiline","step","min","max","transform","name","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}attributeChangedCallback(_,Z,$){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=$!==null&&$!=="false",this.#P();break;case"readonly":this.readonly=$!==null&&$!=="false",this.input.readOnly=this.readonly;break;case"transform":if(this.type==="number")this.transform=Number($)||1,this.input.value=this.#E(this.value);break;case"value":if(this.#Z)break;let q=$;if(this.type==="number")q=this.#y(q,!1);if(this.#q=q??"",!this.#$)this.#w(this.#q);break;case"min":case"max":case"step":if($===null||$==="")this[_]=void 0,this.input.removeAttribute(_);else this[_]=this.input[_]=Number($),this.input.setAttribute(_,$);break;case"name":if(this[_]=this.input[_]=$||"",$)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=$??"",this.input.placeholder=this.placeholder;break;case"type":if(this.type=$||"text",this.input.type=this.type,this.removeEventListener("pointerdown",this.#Q),this.type==="number")this.step=this.hasAttribute("step")?Number(this.getAttribute("step")):void 0,this.min=this.hasAttribute("min")?Number(this.getAttribute("min")):void 0,this.max=this.hasAttribute("max")?Number(this.getAttribute("max")):void 0,this.transform=Number(this.getAttribute("transform")||1),this.addEventListener("pointerdown",this.#Q);this.#H(),this.#T(),this.#z(),this.#C(),this.#P();break;case"multiline":{let J=$!==null&&$!=="false";if(J!==this.multiline){this.multiline=J;let Q=this.input;Q.removeEventListener("change",this.#W),Q.removeEventListener("input",this.#N),Q.remove(),this.input=this.#O(),this.input.readOnly=this.readonly,this.input.disabled=Boolean(this.disabled),this.input.addEventListener("change",this.#W),this.input.addEventListener("input",this.#N),this.#A()}break}case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#A();break;default:this[_]=this.input[_]=$;break}}}A("fig-input-text",L_);class L0 extends HTMLElement{#Z;#_;#q;#$;#J;#j;#K;#Q;#W;#N;#X;#G;#L;#U;#R;#B;#M=!1;#O=null;#Y=null;#F=0;#V="";#I="";#A=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];static#H="px";#T(_){return(_||"").split(",").map((Z)=>Z.trim().toLowerCase()).filter(Boolean)}#z(_){let Z=(_||"").trim();if(!Z)return"";return(this.#U??[]).includes(Z.toLowerCase())?"":Z}#C(){this.#G=this.#z(this.#L)}#k(_){if(_&&!this.#O)this.#O=document.createElement("span"),this.#O.className="fig-steppers",this.#O.append(Y("button",{className:"fig-stepper-up",tabindex:"-1","aria-label":"Increase"}),Y("button",{className:"fig-stepper-down",tabindex:"-1","aria-label":"Decrease"})),this.#O.addEventListener("pointerdown",(Z)=>{Z.preventDefault(),Z.stopPropagation();let $=Z.target.closest("button");if(!$||this.disabled||$.disabled)return;let q=$.classList.contains("fig-stepper-up")?1:-1;this.#E(q),this.input.focus()}),this.append(this.#O);else if(!_&&this.#O)this.#O.remove(),this.#O=null;this.#P()}#P(){if(!this.#O)return;let _=this.#O.querySelector(".fig-stepper-up"),Z=this.#O.querySelector(".fig-stepper-down");if(!_||!Z)return;let $=this.input?this.#x(this.input.value):this.value,q=$!==""&&$!==null&&$!==void 0?Number($)/(this.transform||1):Number(this.value),J=Number.isFinite(q),Q=Boolean(this.disabled),j=J&&typeof this.min==="number"&&q<=this.min,W=J&&typeof this.max==="number"&&q>=this.max;_.disabled=Q||W,Z.disabled=Q||j}#E(_){let Z=this.step||1,$=this.#x(this.input.value),q=($!==""?Number($)/(this.transform||1):0)+Z*_;q=this.#u(q,!1),this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}constructor(){super();this.#Z=this.#i.bind(this),this.#_=this.#s.bind(this),this.#q=this.#s.bind(this),this.#$=this.#o.bind(this),this.#J=(_)=>{_.stopPropagation(),this.#c(_)},this.#j=(_)=>{_.stopPropagation(),this.#a(_)},this.#K=(_)=>{this.#v(_)},this.#Q=(_)=>{this.#p(_)},this.#W=(_)=>{this.#d(_)},this.#N=this.focus.bind(this),this.#X=this.#b.bind(this)}connectedCallback(){let _=this.getAttribute("value");this.value=_!==null&&_!==""?Number(_):"",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.#L=this.getAttribute("units")||"";let Z=this.getAttribute("units-disallow");if(this.#U=this.#T(Z===null?L0.#H:Z),this.#C(),this.#R=this.getAttribute("unit-position")||"suffix",this.#B=this.#n(this.hasAttribute("precision")?this.getAttribute("precision"):null),this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));this.transform=Number(this.getAttribute("transform")||1);let $=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.input=this.#f(),this.#g(),this.getAttribute("min"))this.min=Number(this.getAttribute("min"));if(this.getAttribute("max"))this.max=Number(this.getAttribute("max"));if(this.getAttribute("step"))this.step=Number(this.getAttribute("step"));if(this.#k($),this.hasAttribute("disabled")){let q=this.getAttribute("disabled");this.disabled=this.input.disabled=q!=="false"}this.#P(),this.#w(),N0(this),this.addEventListener("pointerdown",this.#$),this.removeEventListener("click",this.#X),this.addEventListener("click",this.#X),this.#D(),this.input.removeEventListener("change",this.#J),this.input.addEventListener("change",this.#J),this.input.removeEventListener("input",this.#j),this.input.addEventListener("input",this.#j),this.input.removeEventListener("focus",this.#K),this.input.addEventListener("focus",this.#K),this.input.removeEventListener("blur",this.#Q),this.input.addEventListener("blur",this.#Q),this.input.removeEventListener("keydown",this.#W),this.input.addEventListener("keydown",this.#W)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#J),this.input.removeEventListener("input",this.#j),this.input.removeEventListener("focus",this.#K),this.input.removeEventListener("blur",this.#Q),this.input.removeEventListener("keydown",this.#W);if(this.removeEventListener("click",this.#X),this.removeEventListener("pointerdown",this.#$),window.removeEventListener("pointermove",this.#Z),window.removeEventListener("pointerup",this.#_),window.removeEventListener("blur",this.#q),this.#Y?.disconnect(),this.#Y=null,this.#F)cancelAnimationFrame(this.#F),this.#F=0}focus(){this.input.focus()}#f(){let _=this.querySelector("input");if(_)return _;let Z=document.createElement("input");if(Z.type="text",Z.inputMode="decimal",Z.setAttribute("data-generated","input-control"),this.name)Z.name=this.name;return Z.placeholder=this.placeholder,Z.value=this.#S(this.value),this.insertBefore(Z,this.querySelector('[slot="append"]')),Z}#b(_){let Z=_.target?.closest?.("[slot]");if(!Z||Z.parentElement!==this)return;this.focus()}#D(){this.#Y?.disconnect(),this.#Y=new MutationObserver(()=>this.#h()),this.#Y.observe(this,{childList:!0,characterData:!0,subtree:!0})}#h(){if(this.#F)return;this.#F=requestAnimationFrame(()=>{if(this.#F=0,!this.isConnected)return;this.#y()})}#y(){if(!this.input||!this.contains(this.input))this.input=this.#f(),this.input.addEventListener("change",this.#J),this.input.addEventListener("input",this.#j),this.input.addEventListener("focus",this.#K),this.input.addEventListener("blur",this.#Q),this.input.addEventListener("keydown",this.#W);let _=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.#O&&!this.contains(this.#O))this.#O=null;this.#k(_),this.#g(),this.#w(),N0(this)}#g(){if(!this.input)return;this.#A.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.input.removeAttribute(_);else this.input.setAttribute(_,Z)})}#w(){if(!this.input)return;if(this.input.setAttribute("role","spinbutton"),typeof this.min==="number")this.input.setAttribute("aria-valuemin",String(this.min));else this.input.removeAttribute("aria-valuemin");if(typeof this.max==="number")this.input.setAttribute("aria-valuemax",String(this.max));else this.input.removeAttribute("aria-valuemax");let _=this.value===""?null:Number(this.value);if(Number.isFinite(_))this.input.setAttribute("aria-valuenow",String(_)),this.input.setAttribute("aria-valuetext",this.#S(this.value));else this.input.removeAttribute("aria-valuenow"),this.input.removeAttribute("aria-valuetext")}#x(_){if(!_)return"";if(!this.#G){let q=_.replace(/[^\d.-]/g,""),J=q.split(".");if(J.length>2)q=J[0]+"."+J.slice(1).join("");return q}let Z=_.replace(this.#G,"").trim();Z=Z.replace(/[^\d.-]/g,"");let $=Z.split(".");if($.length>2)Z=$[0]+"."+$.slice(1).join("");return Z}#S(_){if(_===""||_===null||_===void 0)return"";let Z=Number(_)*(this.transform||1);if(isNaN(Z))return"";if(Z=this.#l(Z),!this.#G)return Z.toString();if(this.#R==="prefix")return this.#G+Z;else return Z+this.#G}#m(_){if(_===""||_===null||_===void 0)return"";let Z=Number(_)*(this.transform||1);return Z=this.#l(Z),Z.toString()}#v(_){this.#M=!0,setTimeout(()=>{let Z=_.target.value;if(Z&&this.#G)if(this.#R==="prefix")_.target.setSelectionRange(this.#G.length,Z.length);else{let $=Z.indexOf(this.#G);if($>-1)_.target.setSelectionRange(0,$)}},0)}#p(_){this.#M=!1;let Z=this.#x(_.target.value);if(Z!==""){let $=Number(Z)/(this.transform||1);$=this.#u($,!1),this.value=$,_.target.value=this.#S(this.value)}else this.value="",_.target.value="";this.#P(),this.#w()}#d(_){if(this.disabled)return;if(_.key!=="ArrowUp"&&_.key!=="ArrowDown")return;_.preventDefault();let Z=this.step||1,$=_.shiftKey?10:1,q=Z*$*(_.key==="ArrowUp"?1:-1),J=this.#x(this.input.value),Q=(J!==""?Number(J)/(this.transform||1):0)+q;Q=this.#u(Q,!1),this.value=Q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#a(_){let Z=this.#x(_.target.value);if(Z!=="")this.value=Number(Z)/(this.transform||1);else this.value="";this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#c(_){_.stopPropagation();let Z=this.#x(_.target.value);if(Z!==""){let $=Number(Z)/(this.transform||1);$=this.#u($,!1),this.value=$,_.target.value=this.#S(this.value)}else this.value="",_.target.value="";this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#i(_){if(this.disabled)return;if(_.buttons===0){this.#s();return}let Z=(this.step||1)*_.movementX,$=this.#x(this.input.value),q=Number($)/(this.transform||1)+Z;q=this.#u(q,!1),this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#o(_){if(this.disabled)return;if(_.altKey||_.target.closest("[slot]"))this.#M=!0,this.#V=this.style.userSelect,this.#I=document.body.style.cursor,this.input.style.cursor=this.style.cursor=document.body.style.cursor="ew-resize",this.style.userSelect="none",window.addEventListener("pointermove",this.#Z),window.addEventListener("pointerup",this.#_),window.addEventListener("pointercancel",this.#_),window.addEventListener("blur",this.#q)}#s(_){let Z=this.#M;if(this.#M=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#I,this.style.userSelect=this.#V,window.removeEventListener("pointermove",this.#Z),window.removeEventListener("pointerup",this.#_),window.removeEventListener("pointercancel",this.#_),window.removeEventListener("blur",this.#q),Z)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#u(_,Z=!0){let $=Number(_);if(isNaN($))return"";if(typeof this.min==="number")$=Math.max(this.min,$);if(typeof this.max==="number")$=Math.min(this.max,$);return $=this.#t($),$}#l(_){let Z=this.#B??2,$=this.#t(_);if(this.#B!==null)return $.toFixed(Z);return Number.isInteger($)?String($):String(parseFloat($.toFixed(Z)))}#t(_){let Z=this.#B??2,$=Math.pow(10,Z);return Math.round(_*$)/$}#n(_){if(_===null||_===void 0||_==="")return null;let Z=Number(_);if(!Number.isFinite(Z))return 2;return Math.max(0,Math.min(100,Math.trunc(Z)))}static get observedAttributes(){return["value","placeholder","disabled","step","min","max","transform","name","units","units-disallow","unit-position","steppers","precision","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}attributeChangedCallback(_,Z,$){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=$!==null&&$!=="false",this.#P();break;case"units":this.#L=$||"",this.#C(),this.input.value=this.#S(this.value),this.#w();break;case"units-disallow":this.#U=this.#T($===null?L0.#H:$),this.#C(),this.input.value=this.#S(this.value),this.#w();break;case"unit-position":this.#R=$||"suffix",this.input.value=this.#S(this.value),this.#w();break;case"transform":this.transform=Number($)||1,this.input.value=this.#S(this.value),this.#w();break;case"value":if(this.#M)break;let q=$!==null&&$!==""?Number($):"";if(q!=="")q=this.#u(q,!1);this.value=q,this.input.value=this.#S(this.value),this.#P(),this.#w();break;case"min":case"max":case"step":if($===null||$===""){this[_]=void 0,this.#P(),this.#w();break}this[_]=Number($),this.#P(),this.#w();break;case"steppers":{let J=$!==null&&$!=="false";this.#k(J);break}case"precision":this.#B=this.#n($),this.input.value=this.#S(this.value),this.#w();break;case"name":if(this[_]=this.input[_]=$||"",$)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=$??"",this.input.placeholder=this.placeholder;break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#g();break;default:this[_]=this.input[_]=$;break}}}A("fig-input-number",L0);class G_ extends HTMLElement{constructor(){super()}connectedCallback(){this.src=this.getAttribute("src"),this.name=this.getAttribute("name"),this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials),this.setSrc(this.src),this.img=this.querySelector("img")}setSrc(_){if(this.src=_,!_){this.querySelector(":scope > img")?.remove(),this.img=null;return}let Z=this.querySelector(":scope > img")||document.createElement("img");if(Z.src=_,Z.alt=this.name||"",!Z.isConnected)this.replaceChildren(Z);this.img=Z}getInitials(_){return _?_.split(" ").map((Z)=>Z[0]).join(""):""}static get observedAttributes(){return["src","href","name"]}attributeChangedCallback(_,Z,$){if(this[_]=$,_==="name"){if(this.img)this.img.alt=$||"";this.name=$,this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials)}else if(_==="src")this.src=$,this.setSrc(this.src)}}A("fig-avatar",G_);class X_ extends HTMLElement{#Z=!1;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;constructor(){super();this.#q=this.#N.bind(this),this.#$=this.focus.bind(this),this.#J=this.#X.bind(this),this.#j=this.#G.bind(this)}static get observedAttributes(){return["label"]}connectedCallback(){queueMicrotask(()=>{if(!this.isConnected)return;this.#W(),this.#Q()})}#Q(){if(this.#K||typeof MutationObserver>"u")return;this.#K=new MutationObserver(()=>{this.#W()}),this.#K.observe(this,{childList:!0})}#W(){let _=this.label,Z=this.#_;_?.removeEventListener("click",this.#q),_?.removeEventListener("click",this.#$),_?.removeEventListener("pointerenter",this.#J),_?.removeEventListener("pointerleave",this.#j),Z?.removeEventListener("click",this.#q),this.label=this.querySelector(":scope>label"),this.input=Array.from(this.childNodes).find((J)=>J.nodeType===Node.ELEMENT_NODE&&J.nodeName.toLowerCase().startsWith("fig-")&&!(J instanceof Element&&J.classList.contains("fig-field-chevron")));let $=this.input?.localName??"",q=$==="fig-select"||$==="fig-menu"||$==="fig-dropdown"||$==="fig-tooltip"||$==="fig-fill-picker"||this.input instanceof HTMLDialogElement;if(this.#Z=!!(this.input&&("open"in this.input)&&typeof this.input.open!=="function"&&!q),this.#Z&&this.label){if(!this.#_||!this.#_.isConnected)this.#_=h("chevron",{size:"small",className:"fig-field-chevron"}),this.insertBefore(this.#_,this.label);this.#_.addEventListener("click",this.#q),this.label.addEventListener("click",this.#q)}else{if(this.#_)this.#_.removeEventListener("click",this.#q),this.#_.remove(),this.#_=null;if(this.input&&this.label){if(this.input.querySelectorAll("input, select, textarea").length!==1)this.label.addEventListener("click",this.#$)}}if(this.input&&this.label&&!this.#Z)this.#L();if(this.label)this.label.removeEventListener("pointerenter",this.#J),this.label.addEventListener("pointerenter",this.#J),this.label.removeEventListener("pointerleave",this.#j),this.label.addEventListener("pointerleave",this.#j)}disconnectedCallback(){if(this.#K?.disconnect(),this.#K=null,this.label)H.hide(this.label);if(this.label&&this.#q)this.label.removeEventListener("click",this.#q);if(this.label&&this.#$)this.label.removeEventListener("click",this.#$);if(this.label&&this.#J)this.label.removeEventListener("pointerenter",this.#J);if(this.label&&this.#j)this.label.removeEventListener("pointerleave",this.#j);if(this.#_&&this.#q)this.#_.removeEventListener("click",this.#q)}#N(_){if(_.preventDefault(),_.stopPropagation(),this.input&&typeof this.input.open<"u")this.input.open=!this.input.open}#X(){if(!this.label||this.label.scrollWidth<=this.label.clientWidth)return;H.show(this.label,this.label.textContent.trim())}#G(){if(this.label)H.hide(this.label)}#L(){if(!this.input||!this.label)return;let _=this.label.getAttribute("id")||p();this.label.setAttribute("id",_);let Z=this.input.querySelectorAll("input, select, textarea");if(Z.length===1){let $=Z[0],q=$.getAttribute("id")||p();if($.setAttribute("id",q),this.label.setAttribute("for",q),this.input.getAttribute("aria-labelledby")===_)this.input.removeAttribute("aria-labelledby");if(!$.hasAttribute("aria-labelledby"))$.setAttribute("aria-labelledby",_);return}if(this.label.removeAttribute("for"),!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-labelledby",_)}attributeChangedCallback(_,Z,$){switch(_){case"label":if(this.label)this.label.textContent=$,this.#L();break}}focus(){if(!this.input)return;if(this.input.contains(document.activeElement))return;let _=this.input.querySelectorAll("input, select, textarea");if(_.length===1)_[0].focus();else if(this.input.focus(),_.length===0)this.input.click()}}A("fig-field",X_);class U_ extends HTMLElement{rgba;hex;#Z=100;#_;#q;#$;#J;#j=!1;#K=!1;#Q=null;#W=this.#k.bind(this);#N=this.#P.bind(this);#X=this.#E.bind(this);#G=this.#w.bind(this);#L=this.#b.bind(this);#U=this.#h.bind(this);#R=this.#D.bind(this);#B=this.#x.bind(this);constructor(){super()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0||_===!1)this.removeAttribute("alpha");else this.setAttribute("alpha",String(_))}#M(){let _={};for(let{name:Z,value:$}of this.attributes)if(Z.startsWith("picker-")&&Z!=="picker-anchor"&&Z!=="picker-experimental"){let q=Z.slice(7);if(/^on/i.test(q))continue;_[q]=$}if(!_["dialog-position"])_["dialog-position"]="left";return _}#O(){let _=this.#M();return Object.entries(_).map(([Z,$])=>`${Z}="${$}"`).join(" ")}connectedCallback(){if(this.#Y()){this.#F();return}this.#A()}disconnectedCallback(){this.#V()}#Y(){return this.getAttribute("text")!=="false"?!!this.querySelector(":scope > .input-combo"):!!this.querySelector(":scope > fig-swatch")}#F(){if(this.#f(this.getAttribute("value")),this.#_=this.querySelector("fig-swatch"),this.#q=this.querySelector("fig-fill-picker"),this.#$=this.querySelector("fig-input-text:not([type=number])"),this.#J=this.querySelector("fig-input-number"),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J)this.#J.setAttribute("value",String(this.#Z));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",String(this.rgba.a));this.#g(),this.#I()}#V(){if(this.#_)this.#_.removeEventListener("pointerdown",this.#W,{capture:!0}),this.#_.removeEventListener("click",this.#N,{capture:!0}),this.#_.querySelector('input[type="color"]')?.removeEventListener("keydown",this.#X),this.#_.removeEventListener("input",this.#G);this.#$?.removeEventListener("input",this.#L),this.#$?.removeEventListener("change",this.#U),this.#J?.removeEventListener("input",this.#R),this.#J?.removeEventListener("change",this.#U),this.#q?.removeEventListener("input",this.#B),this.#q?.removeEventListener("change",this.#U)}#I(){if(this.#_){this.#_.disabled=F(this,"disabled");let _=this.#_.querySelector('input[type="color"]');if(this.#$||this.hasAttribute("swatch-disabled"))_?.setAttribute("tabindex","-1");if(this.hasAttribute("swatch-disabled")){if(_?.setAttribute("disabled",""),_)_.style.pointerEvents="none"}this.#_.addEventListener("pointerdown",this.#W,{capture:!0}),this.#_.addEventListener("click",this.#N,{capture:!0}),_?.addEventListener("keydown",this.#X),this.#_.addEventListener("input",this.#G)}if(this.#$)this.#$.addEventListener("input",this.#L),this.#$.addEventListener("change",this.#U);if(this.#J)this.#J.addEventListener("input",this.#R),this.#J.addEventListener("change",this.#U);if(this.#q)this.#q.addEventListener("input",this.#B),this.#q.addEventListener("change",this.#U)}#A(){this.#f(this.getAttribute("value"));let _=this.getAttribute("alpha")!=="false",Z=this.#p,$=this.getAttribute("text")!=="false",q=Y("fig-swatch",{background:this.hexOpaque,alpha:this.rgba.a,disabled:Z});if($){let J=Y("div",{className:"input-combo"},[q,Y("fig-input-text",{type:"text",placeholder:"000000",value:this.hexOpaque.slice(1).toUpperCase(),disabled:Z})]);if(_)J.appendChild(Y("fig-tooltip",{text:"Opacity"},Y("fig-input-number",{placeholder:"##",min:"0",max:"100",value:this.#Z,units:"%",disabled:Z})));this.replaceChildren(J)}else this.replaceChildren(q);if(this.#_=q,this.#q=this.querySelector("fig-fill-picker"),this.#$=this.querySelector("fig-input-text:not([type=number])"),this.#J=this.querySelector("fig-input-number"),this.#g(),this.#$){let J=this.rgbAlphaToHex(this.rgba,1);if(this.#$.value=J.slice(1).toUpperCase(),this.#_)this.#_.background=J}this.#I()}#H(){if(!this.#q)return;for(let[_,Z]of Object.entries(this.#M()))this.#q.setAttribute(_,Z);if(this.#q.setAttribute("mode","solid"),this.getAttribute("alpha")!=="false")this.#q.removeAttribute("alpha");else this.#q.setAttribute("alpha","false");if(F(this,"disabled"))this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");this.#q.anchorElement=this,this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}))}#T(){if(!l())return null;if(this.#q?.isConnected)return this.#H(),this.#q;let _=document.createElement("fig-fill-picker");return _.appendChild(Y("span",{hidden:!0})),_.addEventListener("input",this.#B),_.addEventListener("change",this.#U),this.appendChild(_),this.#q=_,this.#H(),_}#z(){if(F(this,"disabled")||F(this,"swatch-disabled"))return!1;let _=this.#T();if(!_)return!1;return requestAnimationFrame(()=>_.open?.()),!0}#C(_){_.preventDefault(),_.stopPropagation(),_.stopImmediatePropagation?.()}#k(_){if(!l())return;if(F(this,"disabled")||F(this,"swatch-disabled"))return;if(this.#K=!0,this.#j=!0,this.#Q)clearTimeout(this.#Q);this.#Q=setTimeout(()=>{this.#j=!1,this.#K=!1,this.#Q=null},500),this.#C(_)}#P(_){if(!this.#j)return;if(this.#j=!1,this.#Q)clearTimeout(this.#Q),this.#Q=null;if(this.#C(_),this.#K)this.#K=!1,this.#z()}#E(_){if(_.key!=="Enter"&&_.key!==" ")return;if(!l())return;if(!this.#z())return;this.#C(_)}#f(_){let Z=typeof _==="string"&&_.trim()?_.trim():"#D9D9D9",$=this.convertToRGBA(Z);if(!$||!Number.isFinite($.r)||!Number.isFinite($.g)||!Number.isFinite($.b)||!Number.isFinite($.a))Z="#D9D9D9",$={r:217,g:217,b:217,a:1};this.rgba=$,this.value=this.rgbAlphaToHex({r:isNaN(this.rgba.r)?0:this.rgba.r,g:isNaN(this.rgba.g)?0:this.rgba.g,b:isNaN(this.rgba.b)?0:this.rgba.b},this.rgba.a),this.hexWithAlpha=this.value.toUpperCase(),this.hexOpaque=this.hexWithAlpha.slice(0,7),this.#Z=Z.length>7?(this.rgba.a*100).toFixed(0):100,this.style.setProperty("--alpha",this.rgba.a)}#b(_){_.stopPropagation();let Z=_.target.value.replace(/#/g,"");if(this.#f("#"+Z),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J)this.#J.setAttribute("value",this.#Z);if(this.#_)this.#_.setAttribute("background",this.hexOpaque);this.#S()}#D(_){_.stopPropagation();let Z=Number(_.target.value)||0,q=Math.round(Z/100*255).toString(16).padStart(2,"0");if(this.#f(this.hexOpaque+q),this.#_)this.#_.setAttribute("alpha",this.rgba.a);if(this.#q)this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}));this.#S()}#h(_){_.stopPropagation(),this.#m()}focus(){if(this.#$){this.#$.focus();return}this.#_?.focus()}#y(){return this.getAttribute("aria-label")||"Color"}#g(){if(!this.hasAttribute("role"))this.setAttribute("role","group");if(this.#p)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");let _=this.getAttribute("aria-describedby"),Z=this.getAttribute("aria-invalid"),$=this.getAttribute("aria-required"),q=this.getAttribute("aria-labelledby"),J=this.#y();if(this.#$){if(this.#$.setAttribute("aria-label",`${J} hex color`),_)this.#$.setAttribute("aria-describedby",_);else this.#$.removeAttribute("aria-describedby");if(Z)this.#$.setAttribute("aria-invalid",Z);else this.#$.removeAttribute("aria-invalid");if($)this.#$.setAttribute("aria-required",$);else this.#$.removeAttribute("aria-required")}if(this.#J){if(this.#J.setAttribute("aria-label",`${J} opacity`),_)this.#J.setAttribute("aria-describedby",_);else this.#J.removeAttribute("aria-describedby");if(Z)this.#J.setAttribute("aria-invalid",Z);else this.#J.removeAttribute("aria-invalid");if($)this.#J.setAttribute("aria-required",$);else this.#J.removeAttribute("aria-required")}if(!this.#$){let Q=this.#_?.querySelector('input[type="color"]');if(!Q)return;if(q)Q.setAttribute("aria-labelledby",q),Q.removeAttribute("aria-label");else Q.setAttribute("aria-label",J),Q.removeAttribute("aria-labelledby");if(_)Q.setAttribute("aria-describedby",_);else Q.removeAttribute("aria-describedby")}}#w(_){if(_.stopPropagation(),this.#f(_.target.value),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());this.#S()}#x(_){_.stopPropagation();let Z=_.detail;if(Z&&Z.color){let $=Z.color;if(Z.alpha!==void 0){let q=Math.round(Z.alpha*255).toString(16).padStart(2,"0");$=Z.color+q}if(this.#f($),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#J&&Z.alpha!==void 0)this.#J.setAttribute("value",Math.round(Z.alpha*100));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);this.#S()}}#S(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:this.#v()}))}#m(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:this.#v()}))}#v(){return{value:this.value,hex:this.hex,rgba:this.rgba,...r(this.hexOpaque,this.rgba?.a,Math.round((this.rgba?.a??1)*100))}}static get observedAttributes(){return["value","style","mode","alpha","text","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"]}get mode(){return this.getAttribute("mode")}set mode(_){this.setAttribute("mode",_)}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":if(this.#f($),this.#$)this.#$.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);if(this.#q)this.#q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#Z}));if(this.#J)this.#J.setAttribute("value",this.#Z);break;case"mode":this.#H();break;case"alpha":case"text":if(this.isConnected)this.#A();break;case"disabled":this.#d();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#g();break}}get#p(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#d(){let _=this.#p;for(let Z of[this.#_,this.#$,this.#J]){if(!Z)continue;if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}if(this.#g(),this.#q)this.#H()}rgbAlphaToHex({r:_,g:Z,b:$},q=1){_=Math.max(0,Math.min(255,Math.round(_))),Z=Math.max(0,Math.min(255,Math.round(Z))),$=Math.max(0,Math.min(255,Math.round($))),q=Math.max(0,Math.min(1,q));let J=_.toString(16).padStart(2,"0"),Q=Z.toString(16).padStart(2,"0"),j=$.toString(16).padStart(2,"0");if(q===1)return`#${J}${Q}${j}`.toUpperCase();let K=Math.round(q*255).toString(16).padStart(2,"0");return`#${J}${Q}${j}${K}`.toUpperCase()}convertToRGBA(_){if(typeof _!=="string")return null;let Z,$,q,J=1;if(_.startsWith("#")){let Q=_.slice(1);if(Q.length===8)J=parseInt(Q.slice(6),16)/255,Q=Q.slice(0,6);Z=parseInt(Q.slice(0,2),16),$=parseInt(Q.slice(2,4),16),q=parseInt(Q.slice(4,6),16)}else if(_.startsWith("rgba")||_.startsWith("rgb")){let Q=_.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)/);if(Q)Z=parseInt(Q[1]),$=parseInt(Q[2]),q=parseInt(Q[3]),J=Q[4]?parseFloat(Q[4]):1}else if(_.startsWith("hsla")||_.startsWith("hsl")){let Q=_.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*(\d+(?:\.\d+)?))?\)/);if(Q){let j=parseInt(Q[1])/360,W=parseInt(Q[2])/100,K=parseInt(Q[3])/100;if(J=Q[4]?parseFloat(Q[4]):1,W===0)Z=$=q=K;else{let N=(X,R,B)=>{if(B<0)B+=1;if(B>1)B-=1;if(B<0.16666666666666666)return X+(R-X)*6*B;if(B<0.5)return R;if(B<0.6666666666666666)return X+(R-X)*(0.6666666666666666-B)*6;return X},L=K<0.5?K*(1+W):K+W-K*W,G=2*K-L;Z=N(G,L,j+0.3333333333333333),$=N(G,L,j),q=N(G,L,j-0.3333333333333333)}Z=Math.round(Z*255),$=Math.round($*255),q=Math.round(q*255)}}else return null;return{r:Z,g:$,b:q,a:J}}}A("fig-input-color",U_);var W1=["srgb","srgb-linear","display-p3","oklab","oklch","hsl"],K1=["shorter","longer","increasing","decreasing"],R_=new Set(["oklch","hsl"]);function J0(_){let Z={..._??{}},$=String(Z.interpolationSpace??"srgb").toLowerCase();if(!W1.includes($))$="srgb";Z.interpolationSpace=$;let q=String(Z.hueInterpolation??"shorter").toLowerCase();return Z.hueInterpolation=K1.includes(q)?q:"shorter",Z}function Y_(_){let Z=J0(_),$={...Z,interpolationSpace:Z.interpolationSpace};if(R_.has(Z.interpolationSpace))$.hueInterpolation=Z.hueInterpolation;else delete $.hueInterpolation;return $}function O_(_){let Z=J0(_);if(Z.interpolationSpace==="srgb")return"";if(R_.has(Z.interpolationSpace))return`in ${Z.interpolationSpace} ${Z.hueInterpolation} hue`;return`in ${Z.interpolationSpace}`}function M0(_){if(!_)return"";return`url("${String(_).replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}")`}function N1(_){let Z=String(_??"").trim();if(!Z||Z.startsWith("{")||Z.startsWith("#"))return!1;if(Z.startsWith("data:video/"))return!0;try{let $=new URL(Z,"https://fig.local").pathname;return/\.(mp4|webm|mov|m4v|ogv)$/i.test($)}catch{return/\.(mp4|webm|mov|m4v|ogv)(?:[?#]|$)/i.test(Z)}}function e(_){let Z=_.replace(/^#/,"");return{r:parseInt(Z.substring(0,2),16),g:parseInt(Z.substring(2,4),16),b:parseInt(Z.substring(4,6),16)}}function s(_){let Z=_/255;return Z<=0.04045?Z/12.92:Math.pow((Z+0.055)/1.055,2.4)}function t(_){let Z=_<=0.0031308?12.92*_:1.055*Math.pow(_,0.4166666666666667)-0.055;return Math.round(Math.max(0,Math.min(1,Z))*255)}function K0(_,Z,$){let q=s(_),J=s(Z),Q=s($),j=Math.cbrt(0.4122214708*q+0.5363325363*J+0.0514459929*Q),W=Math.cbrt(0.2119034982*q+0.6806995451*J+0.1073969566*Q),K=Math.cbrt(0.0883024619*q+0.2817188376*J+0.6299787005*Q);return{l:0.2104542553*j+0.793617785*W-0.0040720468*K,a:1.9779984951*j-2.428592205*W+0.4505937099*K,b:0.0259040371*j+0.7827717662*W-0.808675766*K}}function w0(_,Z,$){let q=_+0.3963377774*Z+0.2158037573*$,J=_-0.1055613458*Z-0.0638541728*$,Q=_-0.0894841775*Z-1.291485548*$,j=q*q*q,W=J*J*J,K=Q*Q*Q;return{r:t(4.0767416621*j-3.3077115913*W+0.2309699292*K),g:t(-1.2684380046*j+2.6097574011*W-0.3413193965*K),b:t(-0.0041960863*j-0.7034186147*W+1.707614701*K)}}function x0(_,Z,$){return{l:_,c:Math.sqrt(Z*Z+$*$),h:Math.atan2($,Z)*180/Math.PI}}function L1(_,Z,$){let q=$*Math.PI/180;return{l:_,a:Z*Math.cos(q),b:Z*Math.sin(q)}}function b0(_,Z,$,q){let J=(_%360+360)%360,j=(Z%360+360)%360-J;switch(q){case"longer":if(j>0&&j<180)j-=360;else if(j<0&&j>-180)j+=360;else if(j===0)j=0;break;case"increasing":if(j<0)j+=360;break;case"decreasing":if(j>0)j-=360;break;default:if(j>180)j-=360;else if(j<-180)j+=360;break}return((J+j*$)%360+360)%360}function G1(_,Z,$,q){let J=[..._].sort((T,I)=>T.position-I.position),Q=Z*100;if(J.length===0)return"#888888";if(Q<=J[0].position)return J[0].color;if(Q>=J[J.length-1].position)return J[J.length-1].color;let j=0;while(j<J.length-1&&J[j+1].position<Q)j++;let W=J[j],K=J[j+1],N=K.position-W.position,L=N>0?(Q-W.position)/N:0,G=e(W.color),X=e(K.color),R,B,M,z=$||"oklab";if(z==="srgb-linear"){let T=s(G.r),I=s(G.g),U=s(G.b),P=s(X.r),D=s(X.g),E=s(X.b);R=t(T+(P-T)*L),B=t(I+(D-I)*L),M=t(U+(E-U)*L)}else if(z==="oklch"){let T=K0(G.r,G.g,G.b),I=K0(X.r,X.g,X.b),U=x0(T.l,T.a,T.b),P=x0(I.l,I.a,I.b),D=U.l+(P.l-U.l)*L,E=U.c+(P.c-U.c)*L,f=b0(U.h,P.h,L,q||"shorter"),x=L1(D,E,f),S=w0(x.l,x.a,x.b);R=S.r,B=S.g,M=S.b}else if(z==="hsl"){let T=y0(G.r,G.g,G.b),I=y0(X.r,X.g,X.b),U=b0(T.h,I.h,L,q||"shorter"),P=T.s+(I.s-T.s)*L,D=T.l+(I.l-T.l)*L,E=X1(U,P,D);R=E[0],B=E[1],M=E[2]}else if(z==="srgb")R=Math.round(G.r+(X.r-G.r)*L),B=Math.round(G.g+(X.g-G.g)*L),M=Math.round(G.b+(X.b-G.b)*L);else{let T=K0(G.r,G.g,G.b),I=K0(X.r,X.g,X.b),U=T.l+(I.l-T.l)*L,P=T.a+(I.a-T.a)*L,D=T.b+(I.b-T.b)*L,E=w0(U,P,D);R=E.r,B=E.g,M=E.b}return`#${R.toString(16).padStart(2,"0")}${B.toString(16).padStart(2,"0")}${M.toString(16).padStart(2,"0")}`.toUpperCase()}function y0(_,Z,$){let q=_/255,J=Z/255,Q=$/255,j=Math.max(q,J,Q),W=Math.min(q,J,Q),K=(j+W)/2;if(j===W)return{h:0,s:0,l:K*100};let N=j-W,L=K>0.5?N/(2-j-W):N/(j+W),G;switch(j){case q:G=((J-Q)/N+(J<Q?6:0))/6;break;case J:G=((Q-q)/N+2)/6;break;default:G=((q-J)/N+4)/6;break}return{h:G*360,s:L*100,l:K*100}}function X1(_,Z,$){Z/=100,$/=100;let q=(1-Math.abs(2*$-1))*Z,J=q*(1-Math.abs(_/60%2-1)),Q=$-q/2,j,W,K;if(_<60)j=q,W=J,K=0;else if(_<120)j=J,W=q,K=0;else if(_<180)j=0,W=q,K=J;else if(_<240)j=0,W=J,K=q;else if(_<300)j=J,W=0,K=q;else j=q,W=0,K=J;return[Math.round((j+Q)*255),Math.round((W+Q)*255),Math.round((K+Q)*255)]}class B_ extends HTMLElement{#Z="solid";#_;#q;#$;#J={color:"#D9D9D9",alpha:1};#j={type:"linear",angle:180,interpolationSpace:"srgb",hueInterpolation:"shorter",opacity:1,stops:[{position:0,color:"#D9D9D9",opacity:100},{position:100,color:"#737373",opacity:100}]};#K={url:null,scaleMode:"fill",scale:50,opacity:1};#Q={url:null,poster:null,scaleMode:"fill",scale:50,opacity:1,missing:!0};#W={live:!0,snapshot:null,deviceId:null,scaleMode:"fill",scale:50,opacity:1};#N={};constructor(){super()}static get observedAttributes(){return["value","disabled","mode","alpha","webcam-mode","default-video","aria-label","aria-describedby","aria-invalid","aria-required"]}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#X(),this.#T()}disconnectedCallback(){this.#_=null,this.#q=null,this.#$=null}#X(){let _=this.getAttribute("value");if(!_)return;try{let Z=JSON.parse(_);if(Z.type)this.#Z=Z.type;switch(this.#Z){case"solid":if(Z.color)this.#J.color=Z.color;if(Z.alpha!==void 0)this.#J.alpha=Z.alpha;if(Z.opacity!==void 0)this.#J.alpha=Z.opacity/100;break;case"gradient":if(Z.gradient)this.#j=J0({...this.#j,...Z.gradient}),this.#j.opacity=this.#R(Z.gradient.opacity??Z.opacity??Z.alpha,this.#j.opacity??1);else if(Z.opacity!==void 0||Z.alpha!==void 0)this.#j.opacity=this.#R(Z.opacity??Z.alpha,this.#j.opacity??1);break;case"image":if(Z.image)this.#K={...this.#K,...Z.image};break;case"video":if(Z.video)this.#Q={...this.#Q,...Z.video},this.#Q.missing=!this.#Q.url;break;case"webcam":if(Z.webcam&&typeof Z.webcam==="object"){let{stream:$,snapshot:q,...J}=Z.webcam;if(this.#W={...this.#W,...J},typeof q==="string"&&q)this.#W.snapshot=q}else if(Z.image?.url){if(this.#W.snapshot=Z.image.url,Z.image.scaleMode)this.#W.scaleMode=Z.image.scaleMode;if(Z.image.scale!=null)this.#W.scale=Z.image.scale}if(Z.opacity!==void 0)this.#W.opacity=Z.opacity;break;default:{let{type:$,...q}=Z;this.#N=q;break}}}catch(Z){if(_.startsWith("#")){if(this.#Z="solid",this.#J.color=_.slice(0,7),_.length>7){let $=_.slice(7,9);this.#J.alpha=parseInt($,16)/255}return}if(N1(_))this.#Z="video",this.#Q.url=_.trim(),this.#Q.missing=!1}}#G(){let _={},Z=this.getAttribute("mode");if(Z)_.mode=Z;let $=this.getAttribute("alpha");if($)_.alpha=$;for(let{name:Q,value:j}of this.attributes)if(Q.startsWith("picker-")&&Q!=="picker-anchor"&&Q!=="picker-experimental"){let W=Q.slice(7);if(/^on/i.test(W))continue;_[W]=j}if(!_["dialog-position"])_["dialog-position"]="left";let q=this.getAttribute("webcam-mode");if(q&&!_["webcam-mode"])_["webcam-mode"]=q;let J=this.getAttribute("default-video");if(J&&!_["default-video"])_["default-video"]=J;return _}#L(){switch(this.#Z){case"solid":return this.#J.color;case"gradient":{let Z=[...this.#j.stops].sort((J,Q)=>J.position-Q.position).map((J)=>{let Q=(J.opacity??100)/100;if(Q>=1)return`${J.color} ${J.position}%`;let{r:j,g:W,b:K}=e(J.color);return`rgba(${j}, ${W}, ${K}, ${Q}) ${J.position}%`}).join(", "),$=O_(this.#j),q=$?` ${$}`:"";switch(this.#j.type){case"radial":return`radial-gradient(circle${q}, ${Z})`;case"angular":return`conic-gradient(from ${this.#j.angle}deg${q}, ${Z})`;default:return`linear-gradient(${this.#j.angle}deg${q}, ${Z})`}}case"image":return this.#K.url?M0(this.#K.url):"#D9D9D9";case"video":return this.#Q.poster?M0(this.#Q.poster):"#D9D9D9";case"webcam":{let _=this.#W.snapshot||this.#_?.value?.webcam?.snapshot;return _?M0(_):""}default:return this.#Y()}}#U(){return this.#L()}#R(_,Z=1){if(_===void 0||_===null||_==="")return Z;let $=Number(_);if(!Number.isFinite($))return Z;if($>1)return Math.max(0,Math.min(1,$/100));return Math.max(0,Math.min(1,$))}#B(){switch(this.#Z){case"solid":return this.#J.alpha;case"gradient":return this.#j.opacity??1;case"image":return this.#K.opacity??1;case"video":return this.#Q.opacity??1;case"webcam":return this.#W.opacity??1;default:return this.#R(this.#N.opacity??this.#N.alpha,1)}}#M(){return this.querySelector(`[slot="mode-${this.#Z}"]`)}#O(){let _=this.#M()?.getAttribute("label");if(_)return _;if(!this.#Z)return"Fill";return this.#Z.charAt(0).toUpperCase()+this.#Z.slice(1)}#Y(){return this.#N.swatchBackground||this.#N.background||this.#N.css||this.#M()?.getAttribute("swatch-background")||""}#F(){if(!this.#_)return;for(let _ of[...this.querySelectorAll(":scope > [slot^='mode-']")])this.#_.append(_)}#V(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.setAttribute("aria-disabled",_?"true":"false");for(let Z of[this.#_,this.#q,this.#$]){if(!Z)continue;if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}}#I(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#V();let _=this.getAttribute("aria-label")||"Fill",Z=this.getAttribute("aria-describedby"),$=this.getAttribute("aria-invalid"),q=this.getAttribute("aria-required"),J=(Q,j)=>{if(!Q)return;if(Q.setAttribute("aria-label",j),Z)Q.setAttribute("aria-describedby",Z);else Q.removeAttribute("aria-describedby");if($)Q.setAttribute("aria-invalid",$);else Q.removeAttribute("aria-invalid");if(q)Q.setAttribute("aria-required",q);else Q.removeAttribute("aria-required")};J(this.#_,`${_} picker`),J(this.#$,`${_} hex color`),J(this.#q,`${_} opacity`)}#A(_,Z){if(this.getAttribute("alpha")==="false")return null;return Y("fig-tooltip",{text:"Opacity"},Y("fig-input-number",{className:"fig-input-fill-opacity",placeholder:"##",min:"0",max:"100",value:_,units:"%",disabled:Z}))}#H(_){let Z=null,$=1;switch(this.#Z){case"solid":return[Y("fig-input-text",{type:"text",className:"fig-input-fill-hex",placeholder:"000000",value:this.#J.color.slice(1).toUpperCase(),disabled:_}),this.#A(Math.round(this.#J.alpha*100),_)].filter(Boolean);case"gradient":Z=this.#j.type.charAt(0).toUpperCase()+this.#j.type.slice(1),$=this.#j.opacity??1;break;case"image":Z="Image",$=this.#K.opacity??1;break;case"video":Z="Video",$=this.#Q.opacity??1;break;case"webcam":Z="Webcam",$=this.#W.opacity??1;break;default:Z=this.#O(),$=this.#R(this.#N.opacity??this.#N.alpha,1);break}return[Y("label",{className:"fig-input-fill-label"},Z),this.#A(Math.round($*100),_)].filter(Boolean)}#T(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=JSON.stringify(this.value),$=this.#G(),q=Y("fig-swatch",{background:this.#L(),alpha:this.#B(),disabled:_}),J=[...this.querySelectorAll("[slot^='mode-']")],Q=Y("fig-fill-picker",{value:Z,disabled:_,...$},[q,...J]),j=Y("div",{className:"input-combo"},[Q,this.#H(_)]);this.replaceChildren(j),this.#z(),queueMicrotask(()=>{this.#F(),this.#E(),this.#C()})}#z(){this.#_=this.querySelector("fig-fill-picker"),this.#q=this.querySelector(".fig-input-fill-opacity"),this.#$=this.querySelector(".fig-input-fill-hex");let _=this.querySelector(".fig-input-fill-label");if(this.#I(),_&&this.#_)_.addEventListener("click",()=>{let Z=this.#_.querySelector("fig-swatch");if(Z)Z.click()});if(this.#_){let Z=this.getAttribute("picker-anchor");if(!Z||Z==="self")this.#_.anchorElement=this;else{let $=null;try{$=document.querySelector(Z)}catch{}if($)this.#_.anchorElement=$}this.#_.addEventListener("input",($)=>{$.stopPropagation();let q=$.detail;if(!q)return;let J=q.type,Q=J!==this.#Z;switch(this.#Z=J,J){case"solid":this.#J.color=q.color,this.#J.alpha=q.alpha;break;case"gradient":if(q.gradient)this.#j=J0({...this.#j,...q.gradient});break;case"image":if(q.image)this.#K=q.image;break;case"video":if(q.video)this.#Q={...this.#Q,...q.video};break;case"webcam":if(q.webcam){let{stream:j,snapshot:W,...K}=q.webcam;if(this.#W={...this.#W,...K},typeof W==="string"&&W)this.#W.snapshot=W}else if(q.image?.url)this.#W.snapshot=q.image.url;if(!this.#W.snapshot){let j=this.#_?.value?.webcam?.snapshot;if(j)this.#W.snapshot=j}break;default:{let{type:j,colorSpace:W,...K}=q;this.#N=K;break}}if(Q)this.#k();else this.#C();this.#E(),this.#b()}),this.#_.addEventListener("change",($)=>{$.stopPropagation(),this.#D()}),this.#_.addEventListener("loaded",($)=>{$.stopPropagation(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,detail:$.detail}))}),this.#_.addEventListener("webcamstream",($)=>{this.dispatchEvent(new CustomEvent("webcamstream",{bubbles:!0,composed:!0,detail:$.detail}))})}if(this.#$)this.#$.addEventListener("input",(Z)=>{Z.stopPropagation();let $="#"+Z.target.value.replace("#","");this.#J.color=$,this.#P(),this.#b()}),this.#$.addEventListener("change",(Z)=>{Z.stopPropagation(),this.#D()});if(this.#q)this.#q.addEventListener("input",(Z)=>{Z.stopPropagation();let $=parseFloat(Z.target.value),J=(isNaN($)?100:$)/100;switch(this.#Z){case"solid":this.#J.alpha=J;break;case"gradient":this.#j.opacity=J;break;case"image":this.#K.opacity=J;break;case"video":this.#Q.opacity=J;break;case"webcam":this.#W.opacity=J;break;default:this.#N.opacity=J;break}this.#P(),this.#E(),this.#b()}),this.#q.addEventListener("change",(Z)=>{Z.stopPropagation(),this.#D()})}#C(){switch(this.#Z){case"solid":if(this.#$)this.#$.setAttribute("value",this.#J.color.slice(1).toUpperCase());if(this.#q)this.#q.setAttribute("value",Math.round(this.#J.alpha*100));break;case"gradient":{let _=this.querySelector(".fig-input-fill-label");if(_){let Z=this.#j.type.charAt(0).toUpperCase()+this.#j.type.slice(1);_.textContent=Z}if(this.#q)this.#q.setAttribute("value",Math.round((this.#j.opacity??1)*100));break}case"image":if(this.#q)this.#q.setAttribute("value",Math.round((this.#K.opacity??1)*100));break;case"video":if(this.#q)this.#q.setAttribute("value",Math.round((this.#Q.opacity??1)*100));break;case"webcam":if(this.#q)this.#q.setAttribute("value",Math.round((this.#W.opacity??1)*100));break;default:{let _=this.querySelector(".fig-input-fill-label");if(_)_.textContent=this.#O();if(this.#q)this.#q.setAttribute("value",Math.round(this.#R(this.#N.opacity??this.#N.alpha,1)*100));break}}}#k(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.querySelector(".input-combo");if(!Z)return;let $=Z.querySelector(".fig-input-fill-label"),q=Z.querySelector(".fig-input-fill-hex"),J=Z.querySelector(".fig-input-fill-opacity"),Q=Z.querySelectorAll("fig-tooltip");$?.remove(),q?.remove(),Q.forEach((W)=>W.remove()),Z.append(...this.#H(_)),this.#q=this.querySelector(".fig-input-fill-opacity"),this.#$=this.querySelector(".fig-input-fill-hex");let j=this.querySelector(".fig-input-fill-label");if(this.#I(),j&&this.#_)j.addEventListener("click",()=>{let W=this.#_.querySelector("fig-swatch");if(W)W.click()});if(this.#$)this.#$.addEventListener("input",(W)=>{W.stopPropagation();let K="#"+W.target.value.replace("#","");this.#J.color=K,this.#P(),this.#b()}),this.#$.addEventListener("change",(W)=>{W.stopPropagation(),this.#D()});if(this.#q)this.#q.addEventListener("input",(W)=>{W.stopPropagation();let K=parseFloat(W.target.value),L=(isNaN(K)?100:K)/100;switch(this.#Z){case"solid":this.#J.alpha=L;break;case"gradient":this.#j.opacity=L;break;case"image":this.#K.opacity=L;break;case"video":this.#Q.opacity=L;break;case"webcam":this.#W.opacity=L;break;default:this.#N.opacity=L;break}this.#P(),this.#f(L),this.#b()}),this.#q.addEventListener("change",(W)=>{W.stopPropagation(),this.#D()})}#P(){if(this.#_)this.#_.setAttribute("value",JSON.stringify(this.value));this.#E()}#E(){let _=this.#_?.querySelector("fig-swatch");if(!_)return;let Z=this.#L();if(this.#Z==="webcam"&&!Z){if((_.getAttribute("background")||"").startsWith("url(")){_.setAttribute("alpha",this.#B());return}}_.setAttribute("background",Z),_.setAttribute("alpha",this.#B())}#f(_){let Z=this.#_?.querySelector("fig-swatch");if(Z)Z.setAttribute("alpha",_)}#b(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#D(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get webcamStream(){return this.#_?.webcamStream??null}releaseWebcam(){this.#_?.releaseWebcam?.()}#h(){let _=this.#Q.url??null;return{url:_,poster:this.#Q.poster??null,scaleMode:this.#Q.scaleMode||"fill",scale:this.#Q.scale??50,opacity:this.#Q.opacity??1,..._?{}:{missing:!0}}}#y(){return{live:this.#W.live!==!1,snapshot:this.#W.snapshot??this.#_?.value?.webcam?.snapshot??null,deviceId:this.#W.deviceId??null,scaleMode:this.#W.scaleMode||"fill",scale:this.#W.scale??50,opacity:this.#W.opacity??1}}get value(){switch(this.#Z){case"solid":return{type:"solid",colorSpace:"srgb",color:this.#J.color,alpha:this.#J.alpha,opacity:Math.round(this.#J.alpha*100)};case"gradient":return{type:"gradient",colorSpace:"srgb",gradient:Y_(this.#j),css:this.#U()};case"image":return{type:"image",colorSpace:"srgb",image:{...this.#K}};case"video":return{type:"video",colorSpace:"srgb",video:this.#h()};case"webcam":return{type:"webcam",colorSpace:"srgb",webcam:this.#y()};default:return{type:this.#Z,...this.#N}}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":let q=this.#Z;if(this.#X(),this.#_)if(this.#Z!==q)this.#T();else this.#P(),this.#C();break;case"disabled":this.#V();break;case"mode":case"webcam-mode":case"default-video":if(this.#_)if($)this.#_.setAttribute(_,$);else this.#_.removeAttribute(_);break;case"alpha":if(this.isConnected)this.#T();break;case"aria-label":case"aria-describedby":case"aria-invalid":case"aria-required":this.#I();break}}}A("fig-input-fill",B_);class M_ extends HTMLElement{#Z=[];#_=[];#q=[];#$=null;#J=this.#N.bind(this);#j=()=>this.focus();static get observedAttributes(){return["value","disabled","min","max","open","fixed"]}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){let Z=this.open;if(_)this.setAttribute("open","");else this.removeAttribute("open");if(Z!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}get#K(){return this.hasAttribute("fixed")&&this.getAttribute("fixed")!=="false"}get#Q(){let _=parseInt(this.getAttribute("min"));return isNaN(_)?2:_}get#W(){let _=parseInt(this.getAttribute("max"));return isNaN(_)?8:_}connectedCallback(){if(this.setAttribute("tabindex","-1"),this.removeEventListener("focus",this.#j),this.addEventListener("focus",this.#j),this.removeEventListener("keydown",this.#J),this.addEventListener("keydown",this.#J),this.#$)cancelAnimationFrame(this.#$);this.#$=requestAnimationFrame(()=>{if(this.#$=null,!this.isConnected)return;this.#X(),this.#G()})}disconnectedCallback(){if(this.#$)cancelAnimationFrame(this.#$),this.#$=null;this.removeEventListener("keydown",this.#J),this.removeEventListener("focus",this.#j),this.#_=[],this.#q=[]}#N(_){if(_.key!=="Enter"&&_.key!==" ")return;if(_.target!==this.querySelector(".palette-colors-inline"))return;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;_.preventDefault(),_.stopPropagation(),this.open=!0,this.querySelector(".palette-colors-inline")?.setAttribute("aria-expanded","true")}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":this.#X(),this.#Y();break;case"disabled":this.#F();break;case"min":case"max":case"fixed":this.#G();break;case"open":this.#V();break}}#X(){let _=this.getAttribute("value");if(!_){this.#Z=[];return}let Z=_.trim();try{let $=JSON.parse(Z);if(Array.isArray($)){this.#Z=$.map((q)=>{if(typeof q==="string")return{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1};if(q&&typeof q==="object")return{color:q.color||"#D9D9D9",alpha:q.alpha!==void 0?q.alpha:q.opacity!==void 0?q.opacity/100:1};return{color:"#D9D9D9",alpha:1}});return}}catch($){}if(Z.includes(",")){this.#Z=Z.split(",").map(($)=>{let q=$.trim();return{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1}});return}if(Z.startsWith("#")){this.#Z=[{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1}];return}this.#Z=[]}get value(){return this.#Z.map((_)=>({..._}))}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}#G(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.replaceChildren(),this.#_=[],this.#q=[];let Z=document.createElement("div");Z.className="palette-colors-inline",Z.setAttribute("role","button"),Z.setAttribute("tabindex",_?"-1":"+0"),Z.setAttribute("aria-expanded",String(this.open)),Z.setAttribute("aria-label","Edit palette colors"),Z.addEventListener("blur",()=>{Z.style.removeProperty("outline"),Z.style.removeProperty("outline-offset")});let $=()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.open=!0,Z.setAttribute("aria-expanded","true")};Z.addEventListener("click",$);let q=document.createElement("div");if(q.className="palette-colors",this.#Z.forEach((Q,j)=>{q.appendChild(this.#L(Q,j,_,{inline:!0}))}),Z.appendChild(q),this.appendChild(Z),this.#V(),!this.#K)this.#B(_,this);let J=document.createElement("div");J.className="palette-colors-expanded",this.#Z.forEach((Q,j)=>{if(J.appendChild(this.#L(Q,j,_)),!this.#K)J.appendChild(this.#U(j,_))}),this.appendChild(J)}#L(_,Z,$,{inline:q=!1}={}){let J=_.alpha<1?_.color+Math.round(_.alpha*255).toString(16).padStart(2,"0"):_.color,Q=document.createElement("fig-input-color");if(Q.setAttribute("value",J),q)Q.setAttribute("text","false"),Q.setAttribute("alpha","true"),Q.setAttribute("swatch-disabled","");else Q.setAttribute("text","true"),Q.setAttribute("alpha","true"),Q.setAttribute("full","");if($)Q.setAttribute("disabled","");let j=q?this.#q:this.#_,W=(K)=>{K.stopPropagation();let N=K.currentTarget;this.#Z[Z]={color:N.hexOpaque||this.#Z[Z].color,alpha:N.rgba?N.rgba.a:this.#Z[Z].alpha};let L=j[Z];if(L){let G=this.#Z[Z],X=G.alpha<1?G.color+Math.round(G.alpha*255).toString(16).padStart(2,"0"):G.color;L.setAttribute("value",X)}};if(Q.addEventListener("input",(K)=>{W(K),this.#A()}),Q.addEventListener("change",(K)=>{W(K),this.#H()}),q)this.#_.push(Q);else this.#q.push(Q);return Q}#U(_,Z){let $=document.createElement("fig-button");if($.setAttribute("variant","ghost"),$.setAttribute("icon","true"),$.setAttribute("aria-label","Remove color"),$.className="palette-remove-btn",Z||this.#Z.length<=this.#Q)$.setAttribute("disabled","");$.appendChild(h("minus")),$.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.#R(_)});let q=document.createElement("fig-tooltip");return q.setAttribute("text","Remove color"),q.appendChild($),q}#R(_){if(this.#K)return;if(_<0||_>=this.#Z.length)return;if(this.#Z.length<=this.#Q)return;this.#Z.splice(_,1),this.#_=[],this.#q=[],this.#G(),this.#H()}#B(_,Z=this){let $=this.#Z.length>=this.#W,q=document.createElement("fig-button");if(q.setAttribute("variant","ghost"),q.setAttribute("icon","true"),q.setAttribute("aria-label","Add color"),q.className="palette-add-btn",_||$)q.setAttribute("disabled","");q.appendChild(h("add")),q.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#Z.length>=this.#W)return;this.open=!0,this.#M({color:"#D9D9D9",alpha:1})});let J=document.createElement("fig-tooltip");J.setAttribute("text","Add color"),J.appendChild(q),Z.appendChild(J)}#M(_){if(this.#K)return;this.#Z.push(_);let Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",$=this.#Z.length-1,q=this.#L(_,$,Z,{inline:!0}),J=this.querySelector(".palette-colors");if(J)J.appendChild(q);let Q=this.#L(_,$,Z),j=this.querySelector(".palette-colors-expanded");if(j)j.appendChild(Q),j.appendChild(this.#U($,Z));if(this.#Z.length>=this.#W){let W=this.querySelector(".palette-add-btn");if(W)W.setAttribute("disabled","")}this.#I(Z),this.#H()}#O(_){let Z=this.#Z[_];if(!Z)return;let $=Z.alpha<1?Z.color+Math.round(Z.alpha*255).toString(16).padStart(2,"0"):Z.color,q=this.#_[_];if(q)q.setAttribute("value",$);let J=this.#q[_];if(J)J.setAttribute("value",$)}#Y(){if(this.#_.length!==this.#Z.length){this.#G();return}this.#Z.forEach((_,Z)=>{this.#O(Z)})}#F(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";[...this.#_,...this.#q].forEach(($)=>{if(_)$.setAttribute("disabled","");else $.removeAttribute("disabled")});let Z=this.querySelector(".palette-add-btn");if(Z)if(_||this.#Z.length>=this.#W)Z.setAttribute("disabled","");else Z.removeAttribute("disabled");this.#I(_),this.#V()}#V(){let _=this.querySelector(".palette-colors-inline");if(!_)return;let Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";_.setAttribute("tabindex",Z?"-1":"+0"),_.setAttribute("aria-disabled",String(Z)),_.setAttribute("aria-expanded",String(this.open))}focus(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let _=this.querySelector(".palette-colors-inline");if(!_)return;_.style.outline="var(--figma-focus-outline)",_.style.outlineOffset="var(--figma-focus-outline-offset)",_.focus()}#I(_=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){let Z=_||this.#Z.length<=this.#Q;this.querySelectorAll(".palette-remove-btn").forEach(($)=>{if(Z)$.setAttribute("disabled","");else $.removeAttribute("disabled")})}#A(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#H(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}}A("fig-input-palette",M_);class q0 extends HTMLElement{static SHIFT_SNAP=5;#Z;#_;#q=!1;#$=null;#J=null;#j=null;#K=null;anchorElement=null;#Q={type:"linear",angle:90,interpolationSpace:"srgb",hueInterpolation:"shorter",stops:[{position:0,color:"#D9D9D9",opacity:100},{position:100,color:"#737373",opacity:100}]};constructor(){super()}static get observedAttributes(){return["value","disabled","edit","mode","size"]}get#W(){let _=this.getAttribute("edit");if(_==="false")return"false";if(_==="picker")return"picker";return"true"}get#N(){return this.#W==="true"}get#X(){return this.getAttribute("mode")==="tip"?"tip":"handle"}#G(){if(!this.#_)return null;return this.#_.querySelector("fig-handle:not(.fig-input-gradient-ghost):not([disabled])")}#L(){if(!this.#_)return null;let _=this.#_.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)");if(_)return _;let Z=document.activeElement;if(!(Z instanceof Element)||!this.#_.contains(Z))return null;return Z.closest("fig-handle:not(.fig-input-gradient-ghost)")}#U(_){if(!_||!this.#_)return;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z)=>{if(Z!==_)Z.deselect()}),_.select(),_.focus()}#R(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){this.setAttribute("tabindex","-1");return}this.setAttribute("tabindex",this.#N?"-1":"0")}#B(_){let Z=J0(_);return{...Z,type:["linear","radial","angular"].includes(Z.type)?Z.type:"linear",angle:Number.isFinite(Number(Z.angle))?Number(Z.angle):90,centerX:Number.isFinite(Number(Z.centerX))?Number(Z.centerX):50,centerY:Number.isFinite(Number(Z.centerY))?Number(Z.centerY):50}}connectedCallback(){if(this.#F(),this.#C(),this.#M(),this.removeEventListener("keydown",this.#Y),this.addEventListener("keydown",this.#Y),this.#N)document.addEventListener("keydown",this.#O)}#M(){if(this.#W!=="picker"||l())return;this.#K??=customElements.whenDefined("fig-fill-picker").then(()=>{if(!this.isConnected||this.#W!=="picker")return;this.#C()})}disconnectedCallback(){if(document.removeEventListener("keydown",this.#O),this.removeEventListener("keydown",this.#Y),this.#J)this.#J.disconnect(),this.#J=null;if(this.#j!==null)cancelAnimationFrame(this.#j),this.#j=null;clearTimeout(this.#$),this.removeEventListener("pointerenter",this.#D),this.removeEventListener("pointermove",this.#y),this.removeEventListener("pointerleave",this.#h),this.removeEventListener("click",this.#x),this.removeEventListener("dblclick",this.#w)}#O=(_)=>{let Z=document.activeElement,$=Z instanceof Node&&this.contains(Z),q=this.#_?.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)"),J=!Z||Z===document.body||Z===document.documentElement;if(!$&&!(q&&J))return;let Q=Z&&(Z.tagName==="INPUT"||Z.tagName==="TEXTAREA"||Z.isContentEditable);if(!this.#_)return;if(_.key==="Tab"&&!Q){let L=this.#L();if(!L)return;_.preventDefault();let G=[...this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")],X=G.indexOf(L),R=_.shiftKey?(X-1+G.length)%G.length:(X+1)%G.length;L.deselect(),this.#U(G[R]);return}if((_.key==="ArrowLeft"||_.key==="ArrowRight")&&!Q){let L=this.#L();if(!L)return;let G=parseInt(L.dataset.stopIndex,10);if(isNaN(G)||!this.#Q.stops[G])return;_.preventDefault();let X=(_.key==="ArrowRight"?1:-1)*(_.shiftKey?q0.SHIFT_SNAP:1),R=this.#Q.stops[G];R.position=Math.max(0,Math.min(100,R.position+X)),L.setAttribute("value",`${R.position}% 50%`);let B=L.closest("fig-tooltip");if(B)B.text=`${Math.round(R.position)}%`,B.setAttribute("show","true"),B.showPopup(),L.hideColorTip(),clearTimeout(this.#$),this.#$=setTimeout(()=>{B.removeAttribute("show"),L.showColorTip()},600);this.#c(),this.#o(),this.#s();return}if(_.key!=="Delete"&&_.key!=="Backspace")return;if(Q)return;if(this.#Q.stops.length<=2)return;let j=this.#L();if(!j)return;let W=parseInt(j.dataset.stopIndex,10);if(isNaN(W)||!this.#Q.stops[W])return;_.preventDefault(),this.#Q.stops.splice(W,1),this.#v(),this.#c(),this.#o(),this.#s();let K=Math.min(W,this.#Q.stops.length-1),N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[K];this.#U(N)};#Y=(_)=>{if(this.#W!=="picker")return;if(_.key!=="Enter"&&_.key!==" ")return;if(_.altKey||_.ctrlKey||_.metaKey)return;if(F(this,"disabled"))return;let Z=this.querySelector("fig-fill-picker");if(!Z||typeof Z.open!=="function")return;_.preventDefault(),Z.open()};#F(){let _=this.getAttribute("value");if(!_)return;try{let Z=JSON.parse(_);if(Z?.type==="gradient"&&Z.gradient){this.#Q=this.#B({...this.#Q,...Z.gradient});return}if(Z?.gradient)this.#Q=this.#B({...this.#Q,...Z.gradient})}catch(Z){}}#V(){let _=this.#B(this.#Q),$=[..._.stops].sort((Q,j)=>Q.position-j.position).map((Q)=>{let j=(Q.opacity??100)/100;if(j>=1)return`${Q.color} ${Q.position}%`;let{r:W,g:K,b:N}=e(Q.color);return`rgba(${W}, ${K}, ${N}, ${j}) ${Q.position}%`}).join(", "),q=O_(_),J=q?` ${q}`:"";if(this.#W==="picker")switch(_.type){case"radial":return`radial-gradient(circle at ${_.centerX}% ${_.centerY}%${J}, ${$})`;case"angular":return`conic-gradient(from ${_.angle}deg${J}, ${$})`;default:return`linear-gradient(${_.angle}deg${J}, ${$})`}return`linear-gradient(to right${J}, ${$})`}#I(_){let Z=(_.opacity??100)/100;if(Z>=1)return _.color;let{r:$,g:q,b:J}=e(_.color);return`rgba(${$}, ${q}, ${J}, ${Z})`}#A(){if(!this.#Z)return;let _=this.getAttribute("size");if(_)this.#Z.setAttribute("size",_);else this.#Z.removeAttribute("size")}#H(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";return this.#Q.stops.map((Z,$)=>Y("fig-tooltip",{action:"manual",text:`${Math.round(Z.position)}%`},Y("fig-handle",{drag:!0,"drag-axes":"x","drag-surface":".fig-input-gradient-track",type:"color",tip:this.#X==="tip"?"color":null,color:this.#I(Z),value:`${Z.position}% 50%`,"hit-area":"4","data-stop-index":$,disabled:_})))}#T=null;#z=!1;#C(){this.#J?.disconnect(),this.#J=null;let _=F(this,"disabled"),Z=this.#W,$=this.getAttribute("size"),q=Y("fig-swatch",{background:this.#V(),size:$||null,disabled:_});if(Z==="picker"&&l()){let j=JSON.stringify(this.value),W=Y("fig-fill-picker",{mode:"gradient",value:j,disabled:_},q);this.replaceChildren(W),this.#Z=q,this.#_=null,this.#k(),this.#R();return}let J=Z==="true"||Z==="picker",Q=J?Y("div",{className:"fig-input-gradient-track"},this.#H()):null;if(this.replaceChildren(...Q?[q,Q]:[q]),this.#Z=q,this.#_=Q,J)this.#E(),this.#i();this.#R()}#k(){let _=this.querySelector("fig-fill-picker");if(!_)return;_.anchorElement=this.anchorElement||this;let Z=($)=>{$.stopPropagation();let q=$.detail;if(!q?.gradient)return;if(this.#Q=this.#B({...this.#Q,...q.gradient}),this.#W==="picker"&&typeof q.css==="string"&&q.css){this.#Z?.setAttribute("background",q.css),this.#A();return}this.#c()};_.addEventListener("input",($)=>{Z($),this.#o()}),_.addEventListener("change",($)=>{Z($),this.#s()})}#P(_){return G1(this.#Q.stops,_,this.#Q.interpolationSpace,this.#Q.hueInterpolation)}#E(){if(!this.#_||this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let _=document.createElement("fig-handle");if(_.classList.add("fig-input-gradient-ghost"),_.setAttribute("type","color"),this.#X==="tip")_.setAttribute("tip","add");_.style.position="absolute",_.style.top="50%",_.style.transform="translate(-50%, -50%)",_.style.pointerEvents="none",_.style.opacity="0",_.style.transition="opacity 0.15s",this.#_.appendChild(_),this.#T=_,this.addEventListener("pointerenter",this.#D),this.addEventListener("pointermove",this.#y),this.addEventListener("pointerleave",this.#h),this.addEventListener("click",this.#x),this.addEventListener("dblclick",this.#w)}#f(){if(!this.#T)return;this.#T.style.opacity="1"}#b(){if(!this.#T)return;this.#T.style.opacity="0"}#D=()=>{if(this.#q)return;this.#f()};#h=()=>{this.#b()};#y=(_)=>{if(this.#q){this.#b();return}if(!this.#T||!this.#_)return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){this.#b();return}let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width));this.#T.style.left=`${$*100}%`;let q=this.#P($);this.#T.setAttribute("color",q),this.#f()};#g(){let _=this.#Q.stops.length;if(_<2)return;for(let Z=0;Z<_;Z++)this.#Q.stops[Z].position=Math.round(Z/(_-1)*100);this.#v(),this.#c(),this.#o(),this.#s()}#w=(_)=>{if(!this.#_)return;if(!_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;this.#g(),this.#_.querySelectorAll("fig-handle[selected]").forEach((Z)=>{Z.removeAttribute("selected")})};#x=(_)=>{if(!this.#_)return;if(this.#q)return;if(this.#z){this.#z=!1;return}if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){if(_.shiftKey){let j=_.target.closest("fig-handle"),W=parseInt(j?.dataset.stopIndex,10);if(this.#g(),!isNaN(W))this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((K)=>{if(parseInt(K.dataset.stopIndex,10)===W)K.select();else K.deselect()});_.stopPropagation()}return}let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width)),q=Math.round($*100),J=this.#P($);this.#Q.stops.push({position:q,color:J,opacity:100}),this.#Q.stops.sort((j,W)=>j.position-W.position);let Q=this.#Q.stops.findIndex((j)=>j.position===q&&j.color===J);this.#v(),this.#c(),this.#o(),this.#s(),requestAnimationFrame(()=>{let W=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[Q];if(W)this.#U(W)})};#S(){if(this.#j=null,!this.isConnected)return;if(!this.#_)return;let _=this.#Q.stops;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z,$)=>{if($>=_.length)return;Z.removeAttribute("value"),Z.setAttribute("value",`${_[$].position}% 50%`)})}refreshLayout(){this.#S()}#m(){if(this.#j!==null)return;this.#j=requestAnimationFrame(()=>this.#S())}#v(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),Z=this.#Q.stops;if(_.length!==Z.length){let $=this.#T;if(this.#_.replaceChildren(...this.#H()),$)this.#_.appendChild($);this.#p(),this.#d(),this.#m();return}for(let $=0;$<Z.length;$++){let q=_[$],J=Z[$];if(q.dataset.stopIndex=$,q.setAttribute("value",`${J.position}% 50%`),q.setAttribute("color",this.#I(J)),this.#X==="tip")q.setAttribute("tip","color");else q.removeAttribute("tip");let Q=q.closest("fig-tooltip");if(Q)Q.setAttribute("text",`${Math.round(J.position)}%`)}this.#p()}#p(){if(!this.#_)return;let _=this.#X==="tip";if(this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((Z)=>{if(_)Z.setAttribute("tip","color");else Z.removeAttribute("tip")}),this.#T)if(_)this.#T.setAttribute("tip","add");else this.#T.removeAttribute("tip")}#d(){if(!this.#J||!this.#_)return;this.#J.disconnect(),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#J.observe(_,{attributes:!0,attributeFilter:["color"]})})}#a(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),Z=this.#Q.stops,$=new Set;_.forEach((q)=>{let J=Math.round(parseFloat(q.getAttribute("value"))||0),Q=(q.getAttribute("color")||"").toUpperCase(),j=-1;for(let W=0;W<Z.length;W++){if($.has(W))continue;if(Z[W].position===J&&Z[W].color.toUpperCase()===Q){j=W;break}}if(j===-1){let W=1/0;for(let K=0;K<Z.length;K++){if($.has(K))continue;let N=Math.abs(Z[K].position-J);if(N<W)W=N,j=K}}if(j!==-1)$.add(j),q.dataset.stopIndex=j})}#c(){if(!this.#Z)return;this.#Z.setAttribute("background",this.#V()),this.#A()}#i(){if(!this.#_)return;this.#_.addEventListener("pointerdown",(_)=>{if(F(this,"disabled"))return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;if(_.button!==0)return;_.preventDefault(),_.stopPropagation();let Z=this.#_.getBoundingClientRect(),$=Math.max(0,Math.min(1,(_.clientX-Z.left)/Z.width)),q=Math.round($*100),J=this.#P($);this.#Q.stops.push({position:q,color:J,opacity:100}),this.#Q.stops.sort((K,N)=>K.position-N.position);let Q=this.#Q.stops.findIndex((K)=>K.position===q&&K.color===J);this.#z=!0,this.#v(),this.#c(),this.#o(),this.#b();let W=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[Q];if(W)this.#U(W),W.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,clientX:_.clientX,clientY:_.clientY,pointerId:_.pointerId,pointerType:_.pointerType,button:_.button,buttons:_.buttons}))}),this.#_.addEventListener("input",(_)=>{let Z=_.target.closest("fig-handle");if(!Z)return;if(_.stopPropagation(),_.detail?.color){let K=parseInt(Z.dataset.stopIndex,10);if(!isNaN(K)&&this.#Q.stops[K]){if(this.#Q.stops[K].color=_.detail.color,_.detail.opacity!==void 0)this.#Q.stops[K].opacity=_.detail.opacity;else if(_.detail.alpha!==void 0)this.#Q.stops[K].opacity=Math.round(_.detail.alpha*100);Z.setAttribute("color",this.#I(this.#Q.stops[K])),this.#c(),this.#o()}return}if(!this.#q)Z.style.zIndex="5";this.#q=!0;let $=parseInt(Z.dataset.stopIndex,10);if(isNaN($)||!this.#Q.stops[$])return;let q=_.detail?.px??0,J=Math.round(q*100),Q=J,j=this.#_.getBoundingClientRect().width;if(_.detail?.shiftKey)Q=Math.round(Q/q0.SHIFT_SNAP)*q0.SHIFT_SNAP;else{let K=j>0?5/j*100:0;for(let N=0;N<this.#Q.stops.length;N++){if(N===$)continue;if(Math.abs(this.#Q.stops[N].position-Q)<=K){Q=this.#Q.stops[N].position;break}}}if(this.#Q.stops[$].position=Q,Q!==J)Z.style.left=`${Q/100*j}px`;let W=Z.closest("fig-tooltip");if(W){if(W.text=`${Math.round(Q)}%`,!W.hasAttribute("show"))W.setAttribute("show","true"),Z.hideColorTip()}this.#c(),this.#o()}),this.#_.addEventListener("change",(_)=>{let Z=_.target.closest("fig-handle");if(!Z)return;if(_.stopPropagation(),_.detail?.color){let K=parseInt(Z.dataset.stopIndex,10);if(!isNaN(K)&&this.#Q.stops[K]){if(this.#Q.stops[K].color=_.detail.color,_.detail.opacity!==void 0)this.#Q.stops[K].opacity=_.detail.opacity;Z.setAttribute("color",this.#I(this.#Q.stops[K])),this.#c(),this.#s()}return}Z.style.zIndex="";let $=Z.closest("fig-tooltip");if($)$.removeAttribute("show");Z.showColorTip();let q=parseInt(Z.dataset.stopIndex,10);if(isNaN(q)||!this.#Q.stops[q])return;let J=_.detail?.px??0,Q=Math.round(J*100),j=this.#_.getBoundingClientRect().width,W=j>0?5/j*100:0;for(let K=0;K<this.#Q.stops.length;K++){if(K===q)continue;if(Math.abs(this.#Q.stops[K].position-Q)<=W){Q=this.#Q.stops[K].position;break}}this.#Q.stops[q].position=Q,Z.style.left=`${Q/100*j}px`,this.#Q.stops.sort((K,N)=>K.position-N.position),this.#a(),this.#c(),this.#s(),requestAnimationFrame(()=>{this.#q=!1})}),this.#J=new MutationObserver((_)=>{for(let Z of _){if(Z.attributeName!=="color")continue;let $=Z.target;if($.classList.contains("fig-input-gradient-ghost"))continue;let q=parseInt($.dataset.stopIndex,10);if(isNaN(q)||!this.#Q.stops[q])continue;let J=$.getAttribute("color");if(!J||!J.startsWith("#"))continue;if(J!==this.#Q.stops[q].color)this.#Q.stops[q].color=J,this.#c(),this.#o()}}),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#J.observe(_,{attributes:!0,attributeFilter:["color"]})})}#o(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#s(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){return{type:"gradient",gradient:Y_(this.#B(this.#Q))}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}focus(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#N){let Z=this.#G();if(Z){Z.focus(_);return}}HTMLElement.prototype.focus.call(this,_)}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"value":this.#F(),this.#c(),this.#v();break;case"disabled":this.#u();break;case"edit":if(this.#C(),this.#M(),this.#N)document.addEventListener("keydown",this.#O);else document.removeEventListener("keydown",this.#O);break;case"mode":this.#p();break;case"size":this.#A();break}}#u(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.#R(),this.#Z)if(_)this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled");if(this.#_)for(let Z of this.#_.querySelectorAll("fig-handle"))if(_)Z.setAttribute("disabled","");else Z.removeAttribute("disabled")}}A("fig-input-gradient",q0);class U0 extends HTMLElement{#Z=null;#_;#q;#$;#J=!1;constructor(){super();if(this.input=document.createElement("input"),this.name=this.getAttribute("name")||"",this.input.value=this.getAttribute("value")||"",this.input.setAttribute("id",p()),this.name)this.input.setAttribute("name",this.name);this.input.setAttribute("type","checkbox"),this.#_=this.handleInput.bind(this),this.#q=this.handleChange.bind(this),this.#$=(_)=>{if(_.target!==this||this.input.disabled)return;this.input.click()}}connectedCallback(){let _=this.querySelector(":scope > input");if(_)this.input=_;else if(!this.input.parentNode)this.append(this.input);this.input.removeEventListener("input",this.#_),this.input.addEventListener("input",this.#_),this.input.removeEventListener("change",this.#q),this.input.addEventListener("change",this.#q),this.removeEventListener("click",this.#$),this.addEventListener("click",this.#$),this.#W();let Z=this.querySelector(":scope > label");if(Z)this.#Z=Z,this.#J=!1,this.#Z.setAttribute("for",this.input.id);if(this.hasAttribute("label"))this.#j(),this.#Z.innerText=this.getAttribute("label");if(!this.hasAttribute("label")){let $=Array.from(this.childNodes).filter((q)=>q.nodeType===Node.TEXT_NODE).map((q)=>q.textContent||"").join(" ").trim();if($&&!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-label",$)}this.render()}static get observedAttributes(){return["disabled","label","checked","name","value","indeterminate"]}#j(){if(!this.#Z)this.#Z=document.createElement("label"),this.#J=!0,this.#Z.setAttribute("for",this.input.id);if(this.#Z&&!this.#Z.parentNode&&this.input.parentNode)this.input.after(this.#Z)}render(){}#K(_){return this.hasAttribute(_)&&this.getAttribute(_)!=="false"}#Q(){if(this.input.indeterminate)this.input.setAttribute("aria-checked","mixed");else this.input.setAttribute("aria-checked",this.input.checked?"true":"false")}#W(){let _=this.#K("checked"),Z=this.#K("indeterminate")&&!_,$=this.#K("disabled");this.input.checked=_,this.input.indeterminate=Z,this.input.disabled=$,this.input.value=this.getAttribute("value")||"";let q=this.getAttribute("name")||this.name;if(q)this.input.setAttribute("name",q);else this.input.removeAttribute("name");if(Z)this.input.setAttribute("indeterminate","true");else this.input.removeAttribute("indeterminate");this.#Q()}focus(){this.input.focus()}get value(){return this.input.value}set value(_){this.input.value=_,this.setAttribute("value",_)}get checked(){return this.input.checked}set checked(_){if(this.input.checked=_,_)this.setAttribute("checked","");else this.removeAttribute("checked")}disconnectedCallback(){this.input.removeEventListener("input",this.#_),this.input.removeEventListener("change",this.#q),this.removeEventListener("click",this.#$)}attributeChangedCallback(_,Z,$){switch(_){case"label":if($)this.#j(),this.#Z.innerText=$;else if(this.#Z&&this.#J)this.#Z.remove(),this.#Z=null,this.#J=!1;break;case"checked":if(this.#K("checked")&&this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");this.#W();break;case"indeterminate":this.#W();break;case"disabled":this.#W();break;case"name":if($)this.input.setAttribute("name",$);else this.input.removeAttribute("name");break;case"value":this.input.value=$||"";break;default:this.input[_]=$,this.input.setAttribute(_,$);break}}handleInput(_){if(_.stopPropagation(),this.input.indeterminate=!1,this.input.removeAttribute("indeterminate"),this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");if(this.#Q(),this.input.checked)this.setAttribute("checked","");else this.removeAttribute("checked");this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}handleChange(_){_.stopPropagation(),this.#Q(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}}A("fig-checkbox",U0);class A_ extends U0{constructor(){super();this.input.setAttribute("type","radio");let _=this.getAttribute("name");if(_)this.input.setAttribute("name",_);else this.input.removeAttribute("name")}}A("fig-radio",A_);class F_ extends U0{render(){this.input.setAttribute("class","switch"),this.input.setAttribute("role","switch")}}A("fig-switch",F_);class H_ extends HTMLElement{static observedAttributes=["options","placeholder","value","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#Z=!1;#_=null;#q=null;#$=null;#J=null;#j=!1;#K=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#Q=this.#M.bind(this);#W=this.#O.bind(this);#N=this.#F.bind(this);#X=this.#V.bind(this);get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}#G(){return!!this.querySelector(":scope > .input-combo")}#L(){if(this.#_=this.querySelector("fig-input-text"),this.#$=this.querySelector("fig-button"),this.#q=this.querySelector("fig-dropdown"),this.#_)this.#_.setAttribute("value",this.value),this.#_.setAttribute("placeholder",this.getAttribute("placeholder")||"");this.#C()}connectedCallback(){if(this.#J=Array.from(this.children).find((_)=>_.tagName==="FIG-DROPDOWN")||null,this.#Z=this.#J!==null,this.#J)this.#J.remove();if(this.#G())this.#L(),this.#R();else this.#U(),this.#R();this.#k(F(this,"disabled"))}disconnectedCallback(){this.#B()}#U(){let _=this.#H(),Z=this.getAttribute("placeholder")||"",$=this.value,q=this.#z(),J=Y("fig-input-text",{placeholder:Z,value:$}),Q=Y("fig-button",{type:"select",variant:"input",icon:!0});if(!this.#Z)Q.appendChild(Y("fig-dropdown",{type:"dropdown",label:q},_.map((j)=>Y("option",{},j.trim()))));if(this.replaceChildren(Y("div",{className:"input-combo"},[J,Q])),this.#_=J,this.#$=Q,this.#Z&&this.#J&&this.#$){if(!this.#J.hasAttribute("type"))this.#J.setAttribute("type","dropdown");if(!this.#J.hasAttribute("label"))this.#J.setAttribute("label",q);this.#$.append(this.#J)}this.#q=this.querySelector("fig-dropdown"),this.#C()}#R(){this.#B(),this.#q?.addEventListener("input",this.#Q),this.#q?.addEventListener("change",this.#W),this.#_?.addEventListener("input",this.#N),this.#_?.addEventListener("change",this.#X)}#B(){this.#q?.removeEventListener("input",this.#Q),this.#q?.removeEventListener("change",this.#W),this.#_?.removeEventListener("input",this.#N),this.#_?.removeEventListener("change",this.#X)}#M(_){_.stopPropagation(),this.#Y(_),this.#I()}#O(_){_.stopPropagation(),this.#Y(_),this.#A()}#Y(_){let Z=_.target.closest("fig-dropdown")?.value??"";if(this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#_)this.#_.setAttribute("value",Z)}#F(_){_.stopPropagation();let Z=_.target.value??"";this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#I()}#V(_){_.stopPropagation();let Z=_.target.value??"";this.#j=!0,this.setAttribute("value",Z),this.#j=!1,this.#A()}#I(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#A(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#H(){return(this.getAttribute("options")||"").split(",").map((_)=>_.trim()).filter(Boolean)}#T(){return(this.getAttribute("aria-label")||this.getAttribute("placeholder")||"Combo input").trim()}#z(){return`${this.#T()} options`}#C(){if(this.#_)this.#K.forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,Z)});if(this.#q&&!this.#q.hasAttribute("aria-label"))this.#q.setAttribute("label",this.#z())}#k(_){if(this.#_)if(_)this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled");if(this.#$)if(_)this.#$.setAttribute("disabled","");else this.#$.removeAttribute("disabled");if(this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}focus(){this.#_?.focus()}attributeChangedCallback(_,Z,$){if(Z===$)return;switch(_){case"options":if(this.#q&&!this.#Z){let q=this.#H();this.#q.replaceChildren(...q.map((J)=>{let Q=document.createElement("option");return Q.textContent=J,Q}))}break;case"placeholder":if(this.#_)this.#_.setAttribute("placeholder",$||"");this.#C();break;case"value":if(!this.#j&&this.#_)this.#_.setAttribute("value",$||"");break;case"disabled":this.#k($!==null&&$!=="false");break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#C();break}}}A("fig-combo-input",H_);class T0 extends HTMLElement{#Z="color";#_=null;#q=!1;constructor(){super();this.#_=this.#N.bind(this)}static get observedAttributes(){return["background","size","selected","disabled","alpha","aria-label","aria-labelledby","aria-describedby"]}connectedCallback(){this.#Q(),this.#$(),this.#W()}#$(){let _=this.getAttribute("alpha");if(_!==null)this.style.setProperty("--alpha",_);else this.style.removeProperty("--alpha")}#J(_){if(!_)return"color";let Z=_.toLowerCase();if(Z.includes("gradient"))return"gradient";if(Z.includes("url("))return"image";return"color"}#j(_){if(!_)return"#D9D9D9";if(_.startsWith("#"))return _.slice(0,7);try{let{ctx:Z}=H0(1,1);return Z.fillStyle=_,Z.fillStyle}catch{return"#D9D9D9"}}#K(_){if(!_||!_.includes("var("))return _;let Z=this.style.background;this.style.background=_;let $=getComputedStyle(this),q=$.backgroundImage,J=$.backgroundColor;if(this.style.background=Z,q&&q!=="none")return q;return J||_}#Q(){let _=this.getAttribute("background");if(this.hasAttribute("background")&&!_?.trim()){if(this.#Z!=="image"||this.input){if(this.#Z="image",this.setAttribute("data-type","image"),this.input)this.input.removeEventListener("input",this.#_);this.replaceChildren(document.createElement("div")),this.input=null,this.#W()}this.style.setProperty("--swatch-background","none");return}let $=_||"#D9D9D9",q=$.includes("var("),J=q?this.#K($):$,Q=this.#J(J);if(Q!==this.#Z||!this.input){if(this.#Z=Q,this.setAttribute("data-type",this.#Z),this.input)this.input.removeEventListener("input",this.#_);if(this.#Z==="color"){let W=this.#j(J),K=Y("input",{type:"color",value:W});if(this.replaceChildren(document.createElement("div"),K),this.input=K,!q)this.input.addEventListener("input",this.#_);this.#W()}else this.replaceChildren(document.createElement("div")),this.input=null,this.#W()}else if(this.#Z==="color"&&this.input){let W=this.#j(J);if(this.input.value!==W)this.input.value=W}let j=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test($);this.style.setProperty("--swatch-background",j?$:`linear-gradient(${$}, ${$})`)}#W(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-disabled",_?"true":"false"),this.input){this.input.disabled=_;let Z=this.getAttribute("aria-labelledby"),$=this.getAttribute("aria-label")||"Color swatch",q=this.getAttribute("aria-describedby");if(Z)this.input.setAttribute("aria-labelledby",Z),this.input.removeAttribute("aria-label");else this.input.setAttribute("aria-label",$),this.input.removeAttribute("aria-labelledby");if(q)this.input.setAttribute("aria-describedby",q);else this.input.removeAttribute("aria-describedby");this.removeAttribute("role"),this.removeAttribute("aria-hidden");return}if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-hidden","true");else this.setAttribute("role","img"),this.removeAttribute("aria-hidden")}#N(_){this.#q=!0,this.setAttribute("background",_.target.value),this.#q=!1}get background(){return this.getAttribute("background")}set background(_){this.setAttribute("background",_)}focus(){if(this.input?.isConnected){this.input.focus();return}HTMLElement.prototype.focus.call(this)}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="background"){if(this.#q){let q=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test($);this.style.setProperty("--swatch-background",q?$:`linear-gradient(${$}, ${$})`);return}this.#Q()}else if(_==="alpha")this.#$();else if(_==="disabled"||_==="aria-label"||_==="aria-labelledby"||_==="aria-describedby")this.#W()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0)this.removeAttribute("alpha");else this.setAttribute("alpha",_)}}A("fig-swatch",T0);class z_ extends T0{}A("fig-chit",z_);var T_=["load","error"],k_=["loadstart","progress","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","durationchange","timeupdate","ratechange","resize","volumechange"],U1=[...new Set([...T_,...k_])];class R0 extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=this.#s.bind(this);#W=this.#t.bind(this);#N=this.#n.bind(this);#X=this.#$0.bind(this);#G=this.#l.bind(this);#L=null;#U=null;#R=null;#B=void 0;#M=null;#O=null;#Y=null;#F=null;#V=null;#I=null;#A=null;static get observedAttributes(){return["src","type","alt","upload","loading-indicator","label","aspect-ratio","fit","checkerboard","caption","controls","autoplay","loop","muted","poster","aria-label","aria-labelledby","title"]}get mediaKind(){return(this.getAttribute("type")||"image").toLowerCase()==="video"?"video":"image"}get src(){return this.#Z}set src(_){if(this.#Z=_||"",_===null||_===void 0||_==="")this.removeAttribute("src");else this.setAttribute("src",_)}get file(){return this.#K}#H(){return this.#j||this.#Z||""}async getBase64(){if(this.mediaKind!=="image")return null;if(!this.#H())return null;if(!this.#_)return null;try{if(typeof this.#_.decode==="function")await this.#_.decode();else if(!this.#_.complete)await new Promise((q,J)=>{this.#_.addEventListener("load",q,{once:!0}),this.#_.addEventListener("error",J,{once:!0})})}catch{}let _=this.#_.naturalWidth,Z=this.#_.naturalHeight;if(!(_>0)||!(Z>0))return null;let $=document.createElement("canvas");return $.width=_,$.height=Z,$.getContext("2d").drawImage(this.#_,0,0),$.toDataURL()}connectedCallback(){this.#Z=this.getAttribute("src")||"";let _=this.getAttribute("aspect-ratio");if(_)this.style.setProperty("--fig-media-aspect-ratio",_);else this.style.setProperty("--fig-media-aspect-ratio","4/3");let Z=this.getAttribute("fit");if(Z)this.style.setProperty("--fig-media-fit",Z);if(this.querySelectorAll("fig-swatch[data-generated]").forEach((q)=>q.remove()),this.#E(),this.#b(),this.#z(),this.#x(),this.#k(),this.#D(),this.#g(),this.hasAttribute("upload")&&this.getAttribute("upload")!=="false"&&!this.querySelector("fig-input-file[data-generated]"))this.#i();this.#$=this.querySelector("fig-input-file[data-generated]"),this.#$?.removeEventListener("change",this.#Q),this.#$?.addEventListener("change",this.#Q)}disconnectedCallback(){if(this.#$?.removeEventListener("change",this.#Q),this.#P(),this.#T(),this.#c(),this.#J)URL.revokeObjectURL(this.#J),this.#J=null;this.#j=null}#T(){if(!this.#_)return;if(U1.forEach((_)=>{this.#_.removeEventListener(_,this.#G)}),this.#_.tagName==="VIDEO")this.#_.removeEventListener("play",this.#W),this.#_.removeEventListener("pause",this.#N),this.#_.removeEventListener("ended",this.#X)}#z(){if(this.#T(),!this.#_)return;if((this.#_.tagName==="VIDEO"?k_:T_).forEach((Z)=>{this.#_.addEventListener(Z,this.#G)}),this.#_.tagName!=="VIDEO")return;this.#_.addEventListener("play",this.#W),this.#_.addEventListener("pause",this.#N),this.#_.addEventListener("ended",this.#X)}#C(){return this.mediaKind==="image"&&this.getAttribute("loading-indicator")!=="false"&&this.#q?.hasAttribute("data-generated")&&this.#_?.hasAttribute("data-generated")}#k(){let _=this.#H();if(!_||!this.#C()){this.#P();return}if(this.#_?.tagName==="IMG"&&this.#_.complete&&this.#_.currentSrc){this.#P();return}if(this.#R===_)return;this.#P(),this.#R=_,this.#B=this.getAttribute("aria-busy"),this.setAttribute("aria-busy","true"),this.#U=setTimeout(()=>{if(this.#U=null,this.#R!==_||!this.isConnected||!this.#C())return;let Z=document.createElement("fig-spinner");Z.setAttribute("data-generated",""),Z.setAttribute("data-loading-indicator",""),Z.setAttribute("slot","overlay"),Z.setAttribute("size","small"),Z.setAttribute("aria-hidden","true"),this.append(Z),this.#L=Z},150)}#P(){if(this.#U!==null)clearTimeout(this.#U),this.#U=null;if(this.#L?.remove(),this.#L=null,this.#R=null,this.#B!==void 0){if(this.#B===null)this.removeAttribute("aria-busy");else this.setAttribute("aria-busy",this.#B);this.#B=void 0}}#E(){if(this.#q?.isConnected)return;let _=this.querySelector(":scope > fig-preview");if(_){this.#q=_;return}let Z=document.createElement("fig-preview");Z.setAttribute("data-generated",""),this.prepend(Z),this.#q=Z}#f(){let _=this.mediaKind==="video"?"video":"img";return this.querySelector(`${_}:not([data-generated])`)}#b(){let _=this.#f();if(_){if(this.#E(),this.#_&&this.#_!==_){if(this.#T(),this.#_.hasAttribute("data-generated"))this.#_.remove()}if(this.#_=_,this.#q&&_.parentElement!==this.#q)this.#q.append(_);this.#z(),this.#D();return}this.#E();let Z=this.mediaKind==="video"?"VIDEO":"IMG";if(this.#_&&this.#_.tagName!==Z){if(this.#T(),this.#_.hasAttribute("data-generated"))this.#_.remove();this.#_=null}if(this.#_)return;if(this.mediaKind==="video"){let $=document.createElement("video");$.setAttribute("data-generated",""),$.className="fig-media-element",$.setAttribute("playsinline",""),$.preload="auto",this.#q.append($),this.#_=$;let q=()=>{if(this.#_?.autoplay)return;try{this.#_.currentTime=0.001}catch{}};this.#_.addEventListener("loadedmetadata",q,{once:!0})}else{let $=document.createElement("img");$.setAttribute("data-generated",""),$.className="fig-media-element",$.loading="lazy",$.decoding="async",$.alt=this.getAttribute("alt")||"",this.#q.append($),this.#_=$}this.#z()}#D(){if(!this.#_)return;if(this.#_.tagName==="IMG"){if(this.hasAttribute("alt")||this.#_.hasAttribute("data-generated"))this.#_.alt=this.getAttribute("alt")||"";return}if(this.#_.tagName!=="VIDEO")return;["aria-label","aria-labelledby","title"].forEach((_)=>{let Z=this.getAttribute(_);if(Z===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,Z)})}#h(){return this.querySelector(":scope > figcaption:not([data-generated])")}#y(){return Array.from(this.querySelectorAll(":scope > figcaption[data-generated]"))}#g(){let _=this.#h(),Z=this.#y();if(_){Z.forEach((Q)=>Q.remove());return}let $=this.getAttribute("caption")||"";if(!$){Z.forEach((Q)=>Q.remove());return}let q=Z[0]||document.createElement("figcaption");if(Z.slice(1).forEach((Q)=>Q.remove()),!q.hasAttribute("data-generated"))q.setAttribute("data-generated","");if(q.textContent!==$)q.textContent=$;let J=this.querySelector(":scope > fig-media-controls");if(J)J.before(q);else if(this.#q?.isConnected)this.#q.after(q);else if(!q.isConnected)this.append(q)}#w(_,Z=!1){if(!this.hasAttribute(_))return Z;return this.getAttribute(_)!=="false"}#x(){if(!this.#_)return;if(!this.#_.hasAttribute("data-generated"))return;let _=this.#H();if(this.#_.getAttribute("src")!==_){if(_)this.#_.setAttribute("src",_);else if(this.#_.removeAttribute("src"),this.#_.tagName==="VIDEO")this.#_.load()}if(this.#_.tagName==="IMG"){this.#D(),this.#k();return}let Z=this.getAttribute("poster");if(Z)this.#_.setAttribute("poster",Z);else this.#_.removeAttribute("poster");this.#_.controls=!1,this.#_.removeAttribute("controls"),this.#_.autoplay=this.#w("autoplay",!1),this.#_.loop=this.#w("loop",!1),this.#_.muted=this.#w("muted",!1),this.#_.playsInline=!0,this.#D(),this.#v(),this.#m(),this.#k()}get mediaEl(){return this.#_}#S(){if(this.mediaKind!=="video")return!1;return Boolean(this.#H())}#m(){let _=this.#M||this.querySelector(":scope > fig-media-controls");if(!_)return;if(this.mediaKind!=="video")return;if(this.#S()){if(_.hasAttribute("data-fig-empty-disabled"))_.removeAttribute("disabled"),_.removeAttribute("data-fig-empty-disabled");return}_.setAttribute("disabled",""),_.setAttribute("data-fig-empty-disabled",""),_.playing=!1,_.time=0,_.duration=0}#v(){if(this.mediaKind!=="video"){this.#c();return}let _=this.querySelector(":scope > fig-media-controls:not([data-generated])");if(_){if(this.#M!==_)this.#c(),this.#M=_;this.#d(),this.#m();return}if(this.#w("controls",!1))this.#p();else this.#c()}#p(){let _=Array.from(this.querySelectorAll(":scope > fig-media-controls[data-generated]")),Z=_[0];if(_.slice(1).forEach((q)=>q.remove()),Z){this.#M=Z,this.#d(),this.#m();return}let $=document.createElement("fig-media-controls");$.setAttribute("data-generated",""),this.append($),this.#M=$,this.#d(),this.#m()}#d(){if(!this.#M||!this.#_)return;if(this.#O===this.#_&&this.#Y===this.#M){this.#m();return}this.#a();let _=this.#M,Z=this.#_;this.#O=Z,this.#Y=_;let $=null,q=()=>{if(this.#m(),!this.#S())return;if(_.playing=!Z.paused&&!Z.ended,Number.isFinite(Z.duration))_.duration=Z.duration;if($!==null)if(Math.abs(Z.currentTime-$)<0.25)$=null;else return;_.time=Z.currentTime||0},J=()=>{if(!this.#S())return;let W=Z.play?.();if(W&&typeof W.catch==="function")W.catch(()=>{})},Q=()=>Z.pause?.(),j=(W)=>{if(!this.#S())return;let K=Number(W?.detail?.time);if(!Number.isFinite(K))return;$=K;try{Z.currentTime=K}catch{}};this.#F=q,this.#V=J,this.#I=Q,this.#A=j,Z.addEventListener("play",q),Z.addEventListener("pause",q),Z.addEventListener("ended",q),Z.addEventListener("timeupdate",q),Z.addEventListener("loadedmetadata",q),Z.addEventListener("durationchange",q),Z.addEventListener("seeked",q),_.addEventListener("play",J),_.addEventListener("pause",Q),_.addEventListener("seek",j),q()}#a(){let _=this.#O,Z=this.#Y;if(_&&this.#F)_.removeEventListener("play",this.#F),_.removeEventListener("pause",this.#F),_.removeEventListener("ended",this.#F),_.removeEventListener("timeupdate",this.#F),_.removeEventListener("loadedmetadata",this.#F),_.removeEventListener("durationchange",this.#F),_.removeEventListener("seeked",this.#F);if(Z){if(this.#V)Z.removeEventListener("play",this.#V);if(this.#I)Z.removeEventListener("pause",this.#I);if(this.#A)Z.removeEventListener("seek",this.#A)}this.#O=null,this.#Y=null,this.#F=null,this.#V=null,this.#I=null,this.#A=null}#c(){this.#a(),this.querySelectorAll(":scope > fig-media-controls[data-generated]").forEach((_)=>{_.remove()}),this.#M=null}toggle(){if(!this.#_||this.mediaKind!=="video")return;if(this.#_.paused||this.#_.ended)this.play();else this.pause()}play(){if(this.mediaKind!=="video"||!this.#_)return;let _=this.#_.play();if(_&&typeof _.catch==="function")_.catch(()=>{})}pause(){if(this.mediaKind!=="video"||!this.#_)return;this.#_.pause()}#i(){let _=document.createElement("fig-input-file");_.setAttribute("data-generated",""),_.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*"),_.setAttribute("variant","overlay");let Z=this.getAttribute("label")||"Upload";if(_.setAttribute("label",this.#Z?"Replace":Z),this.#K?.name)_.setAttribute("filename",this.#K.name);else if(this.#Z)_.setAttribute("url",this.#Z);_.addEventListener("change",this.#Q),this.#E(),this.#q.append(_),this.#$=_}#o(){if(this.#$)this.#$.removeEventListener("change",this.#Q),this.#$.remove(),this.#$=null}#s(_){if(_.target!==this.#$)return;let Z=_.detail?.files?.[0],$=_.detail?.cleared===!0;if(!Z){if(this.#J)URL.revokeObjectURL(this.#J),this.#J=null;if(this.#K=null,this.#j=null,$)this.src="";if(this.#x(),this.#$){let q=this.getAttribute("label")||"Upload";if(this.#$.setAttribute("label",this.#Z?"Replace":q),this.#$.removeAttribute("filename"),this.#Z)this.#$.setAttribute("url",this.#Z);else this.#$.removeAttribute("url")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0}));return}if(this.#J)URL.revokeObjectURL(this.#J);if(this.#K=Z,this.#J=URL.createObjectURL(Z),this.#j=this.#J,this.#x(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,detail:{file:Z,src:this.#J}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0})),this.#$)this.#$.removeAttribute("url"),this.#$.setAttribute("filename",Z.name),this.#$.setAttribute("label","Replace")}#u(_){if(!this.#_)return;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!1,composed:!0,detail:{src:this.#Z||"",currentTime:this.#_.currentTime,duration:this.#_.duration}}))}#l(_){let Z=this.#_;if(!Z||_.currentTarget!==Z)return;if(Z.tagName==="IMG"&&(_.type==="load"||_.type==="error"))this.#P();let $={src:this.#H(),media:Z,originalEvent:_};if(Z.tagName==="VIDEO")$.currentTime=Z.currentTime,$.duration=Z.duration,$.readyState=Z.readyState,$.networkState=Z.networkState,$.error=Z.error;if(this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,cancelable:!1,composed:!0,detail:$})),Z.tagName==="IMG"&&_.type==="load"||Z.tagName==="VIDEO"&&_.type==="loadeddata")this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,composed:!0,detail:{src:$.src,file:this.#K,media:Z}}))}#t(){this.#u("play")}#n(){this.#u("pause")}#$0(){this.#u("ended")}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="src"){let q=$||"",J=q&&(q===this.#j||q===this.#J);if(this.#Z=q,this.#J&&!J)URL.revokeObjectURL(this.#J),this.#J=null,this.#j=null,this.#K=null;if(this.#x(),this.#$){let Q=this.getAttribute("label")||"Upload";if(this.#$.setAttribute("label",this.#Z?"Replace":Q),this.#Z)if(this.#K?.name)this.#$.removeAttribute("url"),this.#$.setAttribute("filename",this.#K.name);else this.#$.setAttribute("url",this.#Z),this.#$.removeAttribute("filename");else this.#$.removeAttribute("url"),this.#$.removeAttribute("filename")}}if(_==="type"){if(this.#b(),this.#x(),this.#$)this.#$.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*")}if(["alt","aria-label","aria-labelledby","title"].includes(_))this.#D();if(_==="upload"){let q=$!==null&&$!=="false";if(q&&!this.#$)this.#i();else if(!q)this.#o()}if(_==="loading-indicator")this.#k();if(_==="aspect-ratio")if($)this.style.setProperty("--fig-media-aspect-ratio",$);else this.style.removeProperty("--fig-media-aspect-ratio");if(_==="fit")if($)this.style.setProperty("--fig-media-fit",$);else this.style.removeProperty("--fig-media-fit");if(_==="label"&&this.#$){let q=this.getAttribute("label")||"Upload";this.#$.setAttribute("label",this.#Z?"Replace":q)}if(["controls","autoplay","loop","muted","poster"].includes(_))this.#x();if(_==="caption")this.#g()}}A("fig-media",R0);class I_ extends R0{get mediaKind(){return"image"}}A("fig-image",I_);class P_ extends R0{get mediaKind(){return"video"}}A("fig-video",P_);class D_ extends HTMLElement{static get observedAttributes(){return["src","alt","label","text","sublabel","selected","disabled","full","size","aspect-ratio","fit","label-line-clamp"]}#Z=null;#_=null;#q=null;#$=null;#J=!1;#j=new MutationObserver((_)=>{if(!_.some(($)=>[...$.addedNodes,...$.removedNodes].some((q)=>q instanceof Element&&(q.matches("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])")||q.querySelector("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])"))))||!this.isConnected)return;this.#L(),this.#R()});connectedCallback(){this.#j.observe(this,{childList:!0,subtree:!0}),this.#L(),this.#R()}disconnectedCallback(){this.#j.disconnect()}attributeChangedCallback(){if(!this.isConnected)return;this.#L(),this.#R()}#K(){return this.getAttribute("label")??this.getAttribute("text")??""}#Q(){return this.getAttribute("sublabel")??""}#W(){return this.getAttribute("label-line-clamp")==="2"?"2":"1"}#N(){return Boolean(this.getAttribute("src"))}#X(){return this.querySelector(":scope > fig-image:not([data-generated]), :scope > fig-media:not([data-generated]), :scope > fig-preview:not([data-generated])")}#G(){this.querySelectorAll(":scope > .fig-card-link").forEach((_)=>{_.querySelectorAll(":scope > .fig-card-media").forEach((Z)=>{while(Z.firstChild)_.insertBefore(Z.firstChild,Z);Z.remove()});while(_.firstChild)this.insertBefore(_.firstChild,_);_.remove()})}#L(){if(this.#G(),!this.#N()){this.#U();return}let _=this.#X();if(this.#J=Boolean(_),_)this.querySelectorAll(":scope > [data-generated]:not(fig-footer)").forEach(($)=>$.remove()),this.#_=null;if(!this.#J){if(this.#_=this.querySelector(":scope > fig-image[data-generated]")||null,!this.#_)this.querySelectorAll(":scope > fig-image, :scope > fig-media, :scope > fig-preview").forEach(($)=>{if($.hasAttribute("data-generated"))$.remove()}),this.#_=document.createElement("fig-image"),this.#_.setAttribute("data-generated",""),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto"),this.prepend(this.#_)}if(!Boolean(this.#K()||this.#Q())){this.querySelector(":scope > fig-footer[data-generated]")?.remove(),this.#Z=null,this.#q=null,this.#$=null;return}if(!this.#Z||!this.#Z.isConnected){if(this.#Z=this.querySelector(":scope > fig-footer[data-generated]"),!this.#Z)this.#Z=document.createElement("fig-footer"),this.#Z.setAttribute("data-generated",""),this.appendChild(this.#Z)}if(!this.#q||!this.#q.isConnected){if(this.#q=this.#Z.querySelector(":scope > .fig-card-label[data-generated]"),!this.#q)this.#q=document.createElement("label"),this.#q.className="fig-card-label",this.#q.setAttribute("data-generated",""),this.#Z.appendChild(this.#q)}if(!this.#$||!this.#$.isConnected){if(this.#$=this.#Z.querySelector(":scope > .fig-card-sublabel[data-generated]"),!this.#$)this.#$=document.createElement("label"),this.#$.className="fig-card-sublabel",this.#$.setAttribute("data-generated",""),this.#q.after(this.#$)}}#U(){if(this.#G(),this.querySelectorAll(":scope > [data-generated]").forEach((Z)=>Z.remove()),this.#_=null,this.#J=!0,this.#Z=null,this.#q=null,this.#$=null,!this.#K()&&!this.#Q())return;this.#Z=document.createElement("fig-footer"),this.#Z.setAttribute("data-generated",""),this.#q=document.createElement("label"),this.#q.className="fig-card-label",this.#q.setAttribute("data-generated",""),this.#Z.appendChild(this.#q);let _=this.#Q();if(this.#$=null,_)this.#$=document.createElement("label"),this.#$.className="fig-card-sublabel",this.#$.setAttribute("data-generated",""),this.#Z.appendChild(this.#$);this.appendChild(this.#Z)}#R(){if(!this.#N()){this.#B();return}let _=F(this,"disabled"),Z=this.#K(),$=this.#Q(),q=this.#W();this.style.setProperty("--fig-card-label-line-clamp",q),this.setAttribute("role","group");let J=[Z,$].filter(Boolean).join(", ");if(J)this.setAttribute("aria-label",J);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#_&&!this.#J){let Q=this.getAttribute("src"),j=this.getAttribute("alt"),W=this.getAttribute("aspect-ratio")||"1/1",K=this.getAttribute("fit")||"contain",N=j!=null?j:"";if(Q)this.#_.setAttribute("src",Q);else this.#_.removeAttribute("src");this.#_.setAttribute("alt",N),this.#_.setAttribute("aspect-ratio",W),this.#_.setAttribute("fit",K),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto")}if(this.#q)this.#q.textContent=Z,this.#q.hidden=!Z;if(this.#$)this.#$.textContent=$,this.#$.hidden=!$;if(this.#Z)this.#Z.hidden=!Z&&!$}#B(){let _=F(this,"disabled"),Z=this.#K(),$=this.#Q();this.style.setProperty("--fig-card-label-line-clamp",this.#W()),this.setAttribute("role","group");let q=[Z,$].filter(Boolean).join(", ");if(q)this.setAttribute("aria-label",q);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#q)this.#q.textContent=Z,this.#q.hidden=!Z;if(this.#$)this.#$.textContent=$}}A("fig-card",D_);class C_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=!1;#j=!1;static get observedAttributes(){return["playing","duration","time","disabled"]}connectedCallback(){this.#K(),this.#X(),this.#G(),this.#Q()}get playing(){return this.hasAttribute("playing")&&this.getAttribute("playing")!=="false"}set playing(_){if(_)this.setAttribute("playing","");else this.removeAttribute("playing")}get duration(){let _=Number(this.getAttribute("duration"));return Number.isFinite(_)&&_>=0?_:0}set duration(_){let Z=Number(_);if(!Number.isFinite(Z)||Z<0){this.removeAttribute("duration");return}this.setAttribute("duration",String(Z))}get time(){let _=Number(this.getAttribute("time"));return Number.isFinite(_)&&_>=0?_:0}set time(_){let Z=Number(_);if(!Number.isFinite(Z)||Z<0){this.removeAttribute("time");return}this.setAttribute("time",String(Z))}get disabled(){return F(this,"disabled")}set disabled(_){if(_)this.setAttribute("disabled","");else this.removeAttribute("disabled")}attributeChangedCallback(_){if(!this.#j)return;if(_==="playing")this.#X();if(_==="duration"||_==="time")this.#G();if(_==="disabled")this.#Q()}#K(){if(this.#j)return;if(this.#j=!0,!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-label","Media controls");let _=document.createElement("fig-tooltip");_.setAttribute("text","Play");let Z=document.createElement("fig-button");Z.setAttribute("variant","ghost"),Z.setAttribute("icon","true"),Z.setAttribute("aria-label","Play"),Z.append(h("play")),_.append(Z),Z.addEventListener("click",(Q)=>{Q.preventDefault(),Q.stopPropagation(),this.toggle()});let $=document.createElement("fig-slider");$.setAttribute("text","false"),$.setAttribute("min","0"),$.setAttribute("max",String(this.duration)),$.setAttribute("step","1"),$.setAttribute("value",String(this.time)),$.setAttribute("full",""),$.setAttribute("aria-label","Seek"),$.setAttribute("aria-valuetext",this.#N(this.time,this.duration));let q=document.createElement("span");q.className="fig-media-controls-time",q.textContent=this.#W(this.time);let J=(Q)=>{if(this.disabled){Q.preventDefault?.(),Q.stopPropagation();return}let j=Q.currentTarget,W=Number(j?.value);if(!Number.isFinite(W))return;this.#J=!0,this.setAttribute("time",String(W)),this.dispatchEvent(new CustomEvent("seek",{bubbles:!0,composed:!0,detail:{time:W}})),requestAnimationFrame(()=>{this.#J=!1})};$.addEventListener("input",J),$.addEventListener("change",J),this.append(_,$,q),this.#Z=Z,this.#_=_,this.#q=$,this.#$=q,this.#Q()}#Q(){let _=this.disabled;if(this.setAttribute("aria-disabled",_?"true":"false"),this.#Z)if(_)this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled");if(this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}#W(_){if(!Number.isFinite(_)||_<0)_=0;let Z=Math.floor(_),$=Math.floor(Z/60),q=Z%60;return`${String($).padStart(2,"0")}:${String(q).padStart(2,"0")}`}#N(_,Z=0){let $=this.#W(_);if(!Number.isFinite(Z)||Z<=0)return $;return`${$} of ${this.#W(Z)}`}#X(){if(!this.#Z)return;let _=this.playing;this.#Z.setAttribute("aria-label",_?"Pause":"Play"),this.#_?.setAttribute("text",_?"Pause":"Play");let Z=this.#Z.querySelector("fig-icon");if(Z)Z.setAttribute("name",_?"pause":"play")}#G(){if(!this.#q)return;let _=this.duration;if(Number(this.#q.getAttribute("max"))!==_)this.#q.setAttribute("max",String(_));let Z=this.time;if(!this.#J)this.#q.setAttribute("value",String(Z));if(this.#q.setAttribute("aria-valuetext",this.#N(Z,_)),this.#$)this.#$.textContent=this.#W(Z)}toggle(){if(this.disabled)return;let _=!this.playing;this.playing=_,this.dispatchEvent(new CustomEvent(_?"play":"pause",{bubbles:!0,composed:!0,detail:{playing:_}}))}play(){if(this.disabled||this.playing)return;this.toggle()}pause(){if(this.disabled||!this.playing)return;this.toggle()}}A("fig-media-controls",C_);class E_ extends HTMLElement{static observedAttributes=["accepts","label","disabled","multiple","variant","url","filename"];#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;get files(){return this.#j}get#K(){let _=this.getAttribute("filename");if(_)return _;let Z=this.getAttribute("url");if(!Z)return"";try{let q=new URL(Z,location.href).pathname.split("/").pop();return q?decodeURIComponent(q):Z}catch{return Z}}get value(){if(this.#j&&this.#j.length>0){if(this.#j.length===1)return this.#j[0].name;return`${this.#j.length} files`}return this.#K}connectedCallback(){this.#U(),this.addEventListener("dragover",this.#X),this.addEventListener("dragleave",this.#G),this.addEventListener("drop",this.#L)}disconnectedCallback(){this.#Z?.removeEventListener("change",this.#W),this.#q?.removeEventListener("click",this.#N),this.removeEventListener("dragover",this.#X),this.removeEventListener("dragleave",this.#G),this.removeEventListener("drop",this.#L)}attributeChangedCallback(_,Z,$){if(Z===$)return;this.#U()}clear(){if(this.#j=null,this.#Z)this.#Z.value="";this.removeAttribute("url"),this.removeAttribute("filename"),this.#U(),this.#Q({cleared:!0})}#Q(_={}){let Z={files:this.#j,..._};this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0}))}#W=()=>{if(this.#Z.files.length>0)this.#j=this.#Z.files,this.removeAttribute("url"),this.#U(),this.#Q()};#N=(_)=>{_.stopPropagation(),this.clear()};#X=(_)=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(_.preventDefault(),!this.hasAttribute("dragover")){if(this.setAttribute("dragover",""),this.#J)this.#J.dataset.prevText=this.#J.textContent,this.#J.textContent="Drop file"}};#G=()=>{if(this.removeAttribute("dragover"),this.#J&&this.#J.dataset.prevText!==void 0)this.#J.textContent=this.#J.dataset.prevText,delete this.#J.dataset.prevText};#L=(_)=>{if(_.preventDefault(),this.removeAttribute("dragover"),this.#J&&this.#J.dataset.prevText!==void 0)this.#J.textContent=this.#J.dataset.prevText,delete this.#J.dataset.prevText;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.getAttribute("accepts"),$=Array.from(_.dataTransfer.files);if(Z){let J=Z.split(",").map((Q)=>Q.trim().toLowerCase());$=$.filter((Q)=>{let j="."+Q.name.split(".").pop().toLowerCase(),W=Q.type.toLowerCase();return J.some((K)=>K===j||K===W||K.endsWith("/*")&&W.startsWith(K.slice(0,-1)))})}if(!this.hasAttribute("multiple")||this.getAttribute("multiple")==="false")$=$.slice(0,1);if($.length===0)return;let q=new DataTransfer;if($.forEach((J)=>q.items.add(J)),this.#j=q.files,this.#Z)this.#Z.files=q.files;this.removeAttribute("url"),this.#U(),this.#Q()};#U(){let _=this.getAttribute("accepts")||"",Z=this.getAttribute("label")||"Upload",$=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=this.hasAttribute("multiple")&&this.getAttribute("multiple")!=="false",J=this.getAttribute("variant")||"input",Q=this.#j&&this.#j.length>0||!!this.getAttribute("url")||!!this.getAttribute("filename");if(this.replaceChildren(),Q){let j=_?`Accepts ${_.split(",").map((G)=>G.trim()).join(", ")}`:"";if(this.#J=document.createElement("fig-button"),this.#J.setAttribute("variant",J),this.#J.setAttribute("type","upload"),this.#J.className="fig-input-file-filename",$)this.#J.setAttribute("disabled","");let W=document.createElement("fig-truncate");W.setAttribute("position","middle"),W.setAttribute("tooltip","");let K=this.value,N=K.lastIndexOf(".");if(N>0)W.setAttribute("tail",K.slice(N));if(W.textContent=K,this.#J.appendChild(W),this.#Z=document.createElement("input"),this.#Z.type="file",this.#Z.title="",this.#Z.disabled=$,_)this.#Z.setAttribute("accept",_);if(q)this.#Z.setAttribute("multiple","");if(this.#Z.addEventListener("change",this.#W),this.#J.appendChild(this.#Z),j)this.#$=document.createElement("fig-tooltip"),this.#$.setAttribute("text",j),this.#$.appendChild(this.#J),this.appendChild(this.#$);else this.appendChild(this.#J);let L=document.createElement("fig-tooltip");if(L.setAttribute("text","Remove"),this.#q=document.createElement("fig-button"),this.#q.setAttribute("variant",J==="overlay"?"overlay":"ghost"),this.#q.setAttribute("icon","true"),this.#q.setAttribute("aria-label","Remove"),this.#q.className="fig-input-file-clear",$)this.#q.setAttribute("disabled","");this.#q.replaceChildren(h("minus")),this.#q.addEventListener("click",this.#N),L.appendChild(this.#q),this.appendChild(L)}else{let j=_?`Accepts ${_.split(",").map((W)=>W.trim()).join(", ")}`:"";if(j)this.#$=document.createElement("fig-tooltip"),this.#$.setAttribute("text",j);if(this.#J=document.createElement("fig-button"),this.#J.setAttribute("variant",J),this.#J.setAttribute("type","upload"),this.#J.textContent=Z,$)this.#J.setAttribute("disabled","");if(this.#Z=document.createElement("input"),this.#Z.type="file",this.#Z.title="",this.#Z.disabled=$,_)this.#Z.setAttribute("accept",_);if(q)this.#Z.setAttribute("multiple","");if(this.#Z.addEventListener("change",this.#W),this.#J.appendChild(this.#Z),this.#$)this.#$.appendChild(this.#J),this.appendChild(this.#$);else this.appendChild(this.#J)}}}A("fig-input-file",E_);class y extends HTMLElement{#Z={x:0.42,y:0};#_={x:0.58,y:1};#q={stiffness:200,damping:15,mass:1,initialVelocity:0};#$="bezier";#J=2;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=null;#G=null;#L=null;#U=null;#R=null;#B=null;#M=0.8;#O=200;#Y=200;#F=null;#V=null;#I=null;#A=null;#H=5;#T=10;#z=10;#C=3;static PRESETS=[{group:null,name:"Linear",type:"bezier",value:[0,0,1,1]},{group:"Bezier",name:"Ease in",type:"bezier",value:[0.42,0,1,1]},{group:"Bezier",name:"Ease out",type:"bezier",value:[0,0,0.58,1]},{group:"Bezier",name:"Ease in and out",type:"bezier",value:[0.42,0,0.58,1]},{group:"Bezier",name:"Ease in back",type:"bezier",value:[0.6,-0.28,0.735,0.045]},{group:"Bezier",name:"Ease out back",type:"bezier",value:[0.175,0.885,0.32,1.275]},{group:"Bezier",name:"Ease in and out back",type:"bezier",value:[0.68,-0.55,0.265,1.55]},{group:"Bezier",name:"Custom bezier",type:"bezier",value:null},{group:"Spring",name:"Gentle",type:"spring",spring:{stiffness:120,damping:14,mass:1}},{group:"Spring",name:"Quick",type:"spring",spring:{stiffness:380,damping:20,mass:1}},{group:"Spring",name:"Bouncy",type:"spring",spring:{stiffness:250,damping:8,mass:1}},{group:"Spring",name:"Slow",type:"spring",spring:{stiffness:60,damping:11,mass:1}},{group:"Spring",name:"Custom spring",type:"spring",spring:null}];static get observedAttributes(){return["value","mode","precision","aspect-ratio","edit","presets","text"]}connectedCallback(){this.#J=parseInt(this.getAttribute("precision")||"2"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio"));let _=this.#k();if(_)this.#$=_;let Z=this.getAttribute("value");if(Z)this.#h(Z);this.#P(),this.#R=this.#y(),this.#i(),this.#J0()}disconnectedCallback(){if(this.#j=null,this.#A)this.#A.disconnect(),this.#A=null}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="aspect-ratio"){if(m(this,"--aspect-ratio",$),this.#K)this.#r(),this.#e();return}if(_==="edit"||_==="presets"||_==="text"){if(this.isConnected)this.#i();return}if(_==="mode"){this.#P();let q=this.getAttribute("value");if(q)this.#h(q);if(this.#P(),this.#R=this.#y(),this.isConnected)this.#i();return}if(_==="value"&&$){let q=this.#$;if(this.#h($),this.#R=this.#y(),q!==this.#$&&this.#d())this.#i();else{if(this.#K)this.#e();this.#G0(),this.#_0()}}if(_==="precision")this.#J=parseInt($||"2")}get value(){if(this.#$==="spring"){let{stiffness:Z,damping:$,mass:q,initialVelocity:J=0}=this.#q,Q=J?`, ${J}`:"";return`spring(${Z}, ${$}, ${q}${Q})`}let _=this.#J;return`${this.#Z.x.toFixed(_)}, ${this.#Z.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)}`}get cssValue(){if(this.#$==="spring"){let Z=this.#g(),$=20,q=Math.max(1,Math.floor(Z.length/20)),J=[];for(let Q=0;Q<Z.length;Q+=q)J.push(Z[Q].value.toFixed(3));if(Z.length>0)J.push(Z[Z.length-1].value.toFixed(3));return`linear(${J.join(", ")})`}let _=this.#J;return`cubic-bezier(${this.#Z.x.toFixed(_)}, ${this.#Z.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)})`}get preset(){return this.#R}set value(_){if(_&&typeof _==="object"){let Z=this.#f(_);if(!Z)throw TypeError("Invalid easing value or mode/type mismatch");let $=Z.type==="spring"?{type:"spring",...Z.spring}:{type:"bezier",x1:Z.bezier[0],y1:Z.bezier[1],x2:Z.bezier[2],y2:Z.bezier[3]};this.setAttribute("value",JSON.stringify($));return}this.setAttribute("value",_)}get spring(){if(this.#$!=="spring")return null;return{...this.#q,initialVelocity:this.#q.initialVelocity??0}}set spring(_){if(!_||typeof _!=="object")throw TypeError("spring must be an object");this.value={..._,type:"spring"}}#k(){let _=this.getAttribute("mode")?.trim().toLowerCase();return _==="bezier"||_==="spring"?_:null}#P(){let _=this.#k();if(_)this.#$=_}#E(_){let Z=this.#k();return!Z||_.type===Z}#f(_){if(!_||typeof _!=="object"||Array.isArray(_))return null;let Z=this.#k(),$=typeof _.type==="string"?_.type.trim().toLowerCase():null;if($&&$!=="bezier"&&$!=="spring")return null;if($&&Z&&$!==Z)return null;let q=$||Z;if(!q)return null;if(q==="spring"){let Q={mass:Number(_.mass),stiffness:Number(_.stiffness),damping:Number(_.damping),initialVelocity:_.initialVelocity===void 0?0:Number(_.initialVelocity)};if(!Number.isFinite(Q.mass)||Q.mass<=0||!Number.isFinite(Q.stiffness)||Q.stiffness<=0||!Number.isFinite(Q.damping)||Q.damping<0||!Number.isFinite(Q.initialVelocity))return null;return{type:q,spring:Q}}let J=[_.x1,_.y1,_.x2,_.y2].map(Number);if(J.some((Q)=>!Number.isFinite(Q))||J[0]<0||J[0]>1||J[2]<0||J[2]>1)return null;return{type:q,bezier:J}}#b(_){if(_.type==="spring")this.#$="spring",this.#q={..._.spring};else this.#$="bezier",[this.#Z.x,this.#Z.y,this.#_.x,this.#_.y]=_.bezier}#D(_){let Z=_.match(/^spring\(\s*(.*?)\s*\)$/i);if(!Z)return null;let $=Z[1].split(",").map((J)=>Number(J.trim()));if($.length!==3&&$.length!==4||$.some((J)=>!Number.isFinite(J)))return null;let q={stiffness:$[0],damping:$[1],mass:$[2],initialVelocity:$[3]??0};if(q.stiffness<=0||q.damping<0||q.mass<=0)return null;return q}#h(_){if(_&&typeof _==="object"){let J=this.#f(_);if(!J)return!1;return this.#b(J),!0}if(typeof _!=="string")return!1;let Z=_.trim();if(Z.startsWith("{"))try{return this.#h(JSON.parse(Z))}catch{return!1}let $=this.#D(Z);if($&&this.#k()!=="bezier")return this.#$="spring",this.#q=$,!0;let q=Z.split(",").map((J)=>parseFloat(J.trim()));if(q.length>=4&&q.every((J)=>!isNaN(J))&&this.#k()!=="spring")return this.#$="bezier",this.#Z.x=q[0],this.#Z.y=q[1],this.#_.x=q[2],this.#_.y=q[3],!0;return!1}#y(){if(this.#$==="bezier"){for(let Z of y.PRESETS){if(Z.type!=="bezier"||!Z.value)continue;if(Math.abs(this.#Z.x-Z.value[0])<0.001&&Math.abs(this.#Z.y-Z.value[1])<0.001&&Math.abs(this.#_.x-Z.value[2])<0.001&&Math.abs(this.#_.y-Z.value[3])<0.001)return Z.name}return"Custom bezier"}for(let Z of y.PRESETS){if(Z.type!=="spring"||!Z.spring)continue;if(Math.abs(this.#q.stiffness-Z.spring.stiffness)<0.001&&Math.abs(this.#q.damping-Z.spring.damping)<0.001&&Math.abs(this.#q.mass-Z.spring.mass)<0.001&&Math.abs(this.#q.initialVelocity??0)<0.001)return Z.name}return"Custom spring"}#g(){let{stiffness:_,damping:Z,mass:$,initialVelocity:q=0}=this.#q,J=0.004,Q=5,j=[],W=0,K=q;for(let N=0;N<=5;N+=0.004){let L=-_*(W-1)-Z*K;if(K+=L/$*0.004,W+=K*0.004,j.push({t:N,value:W}),N>0.1&&Math.abs(W-1)<0.0005&&Math.abs(K)<0.0005)break}return j}static#w(_,Z=24){let{stiffness:$,damping:q,mass:J,initialVelocity:Q=0}=_,j=0.004,W=5,K=[],N=0,L=Q;for(let U=0;U<=5;U+=0.004){let P=-$*(N-1)-q*L;if(L+=P/J*0.004,N+=L*0.004,K.push({t:U,value:N}),U>0.1&&Math.abs(N-1)<0.001&&Math.abs(L)<0.001)break}let G=K[K.length-1].t||1,X=1;for(let U of K)if(U.value>X)X=U.value;let R=0;for(let U of K)if(U.value<R)R=U.value;let B=Math.max(X-R,1),M=6,z=Z-M*2,T=Math.max(1,Math.floor(K.length/30)),I="";for(let U=0;U<K.length;U+=T){let P=M+K[U].t/G*z,D=M+(1-(K[U].value-R)/B)*z;I+=(U===0?"M":"L")+P.toFixed(1)+","+D.toFixed(1)}return y.#v(I,Z,y.#m(Z))}static#x(_,Z,$,q,J=24){let j=(J-11)/2,W=48,K=[],N=(U,P,D,E,f)=>{let x=1-f;return x*x*x*U+3*x*x*f*P+3*x*f*f*D+f*f*f*E};for(let U=0;U<=48;U++){let P=U/48;K.push({x:N(0,_,$,1,P),y:N(0,Z,q,1,P)})}let L=1/0,G=-1/0,X=1/0,R=-1/0;for(let U of K){if(U.x<L)L=U.x;if(U.x>G)G=U.x;if(U.y<X)X=U.y;if(U.y>R)R=U.y}let B=Math.max(G-L,0.000001),M=Math.max(R-X,0.000001),z=(U)=>j+(U-L)/B*11,T=(U)=>j+(1-(U-X)/M)*11,I="";for(let U=0;U<K.length;U++){let P=z(K[U].x),D=T(K[U].y);I+=`${U===0?"M":"L"}${P.toFixed(1)},${D.toFixed(1)}`}return I}static#S(_=24){let $=(_-11)/2,q=3.6666666666666665;return Array.from({length:16},(J,Q)=>({x:$+Q%4*3.6666666666666665,y:$+Math.floor(Q/4)*3.6666666666666665}))}static#m(_=24){return y.#S(_).map(({x:Z,y:$})=>V("circle",{cx:Z,cy:$,r:0.5,fill:"var(--figma-color-icon-tertiary)"}))}static#v(_,Z=24,$=[]){return V("svg",{width:Z,height:Z,viewBox:`0 0 ${Z} ${Z}`,fill:"none"},[...$,V("path",{d:_,stroke:"currentColor","stroke-width":"1","stroke-linecap":"round",fill:"none"})])}static#p(_,Z,$,q,J=24){return y.#v(y.#x(_,Z,$,q,J),J,y.#m(J))}static curveIcon(_,Z,$,q,J=24){let Q=y.#x(_,Z,$,q,J),j=y.#S(J).map(({x:W,y:K})=>`<circle cx="${W}" cy="${K}" r="0.5" fill="var(--figma-color-icon-tertiary)"></circle>`).join("");return`<svg width="${J}" height="${J}" viewBox="0 0 ${J} ${J}" fill="none">${j}<path d="${Q}" stroke="currentColor" stroke-width="1" stroke-linecap="round"/></svg>`}#d(){return this.getAttribute("edit")!=="false"}#a(){return this.getAttribute("presets")!=="false"}#c(){return this.getAttribute("text")!=="false"}#i(){if(this.classList.toggle("spring-mode",this.#$==="spring"),this.classList.toggle("bezier-mode",this.#$!=="spring"),this.#j0(),this.replaceChildren(...this.#K0()),this.#N0(),this.#K)this.#L0(),this.#r(),this.#e();this.#_0(),this.#y0()}#o(){return["fig-select","fig-select-options","fig-select-option"].every((_)=>{let Z=customElements.get(_);return typeof Z==="function"&&Z.prototype instanceof HTMLElement})}#s(){let _=Y("fig-dropdown",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#R,full:!0}),Z=void 0,$=_;for(let q of y.PRESETS){if(!this.#E(q))continue;if(!this.#d()&&!q.value&&!q.spring)continue;if(q.group!==Z){if(Z=q.group,$=Z?Y("optgroup",{label:Z}):_,$!==_)_.appendChild($)}$.appendChild(Y("option",{value:q.name},q.name))}return _}#u(){if(!this.#o())return this.#s();let _=document.createElement("fig-select-options"),Z=void 0;for(let $ of y.PRESETS){if(!this.#E($))continue;if(!this.#d()&&!$.value&&!$.spring)continue;if($.group!==Z){if($.group)_.appendChild(Y("fig-separator",{label:$.group}));Z=$.group}let q;if($.type==="spring"){let J=$.spring||this.#q;q=y.#w(J)}else{let J=$.value||[this.#Z.x,this.#Z.y,this.#_.x,this.#_.y];q=y.#p(...J)}_.appendChild(Y("fig-select-option",{value:$.name,label:$.name},[Y("span",{slot:"prepend"},q),Y("span",{},$.name)]))}return Y("fig-select",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#R,full:!0},_)}#l(_,Z,$){let q=Y("fig-handle",{size:"small",type:"minimal","aria-label":$});return V("foreignObject",{className:_,"data-handle":Z,width:"20",height:"20"},Y("fig-tooltip",{text:this.#n(Z)},q))}#t(_){if(!Number.isFinite(_))return"0";return String(Number(_.toFixed(this.#J)))}#n(_){if(this.#$==="spring"){if(_==="bounce")return`Bounce ${this.#t(this.#X0())}`;return`Duration ${Math.round(this.#M*100)}%`}let Z=_==="1"?this.#Z:this.#_;return`${_==="1"?"Start":"End"} ${this.#t(Z.x)}, ${this.#t(Z.y)}`}#$0(){for(let[_,Z]of[[this.#X,this.#$==="spring"?"bounce":"1"],[this.#G,this.#$==="spring"?"duration":"2"]]){let $=_?.querySelector("fig-tooltip");if($)$.text=this.#n(Z)}}#q0(_,Z){let $=_?.querySelector("fig-tooltip");if(!$)return;if(Z)$.setAttribute("show","true");else $.removeAttribute("show")}#K0(){let Z=this.#a()?this.#u():null;if(!this.#d())return Z?[Z]:[];let $=this.#c()?this.#$==="spring"?Y("fig-input-number",{className:"fig-easing-curve-value-input",value:this.#X0().toFixed(2),min:"0",max:"1",step:"0.01",precision:"2","aria-label":"Spring bounce",full:!0}):Y("fig-input-text",{className:"fig-easing-curve-value-input",value:this.value,full:!0}):null,q=[V("rect",{className:"fig-easing-curve-bounds",x:"0",y:"0",width:200,height:200})];if(this.#$==="spring")q.push(V("line",{className:"fig-easing-curve-target",x1:"0",y1:40,x2:200,y2:40}),V("path",{className:"fig-easing-curve-path"}),this.#l("fig-easing-curve-handle","bounce","Spring bounce handle"),this.#l("fig-easing-curve-handle fig-easing-curve-duration-bar","duration","Spring duration handle"));else q.push(V("line",{className:"fig-easing-curve-boundary","data-boundary":"top",x1:"0",y1:"0",x2:200,y2:"0"}),V("line",{className:"fig-easing-curve-boundary","data-boundary":"bottom",x1:"0",y1:200,x2:200,y2:200}),V("path",{className:"fig-easing-curve-path"}),V("line",{className:"fig-easing-curve-arm","data-arm":"1"}),V("line",{className:"fig-easing-curve-arm","data-arm":"2"}),this.#l("fig-easing-curve-handle","1","First easing control point"),this.#l("fig-easing-curve-handle","2","Second easing control point"));let J=V("svg",{viewBox:"0 0 200 200",className:"fig-easing-curve-svg"},q);return[...Z?[Z]:[],Y("div",{className:"fig-easing-curve-svg-container"},J),...$?[$]:[]]}#Q0(_,Z){let $=getComputedStyle(this).getPropertyValue(_).trim();if(!$)return Z;let q=Number.parseFloat($);return Number.isFinite(q)?q:Z}#j0(){this.#C=this.#Q0("--easing-duration-bar-radius",this.#C)}#N0(){this.#K=this.querySelector(".fig-easing-curve-svg"),this.#Q=this.querySelector(".fig-easing-curve-path"),this.#W=this.querySelector('[data-arm="1"]'),this.#N=this.querySelector('[data-arm="2"]'),this.#X=this.querySelector('[data-handle="1"]')||this.querySelector('[data-handle="bounce"]'),this.#G=this.querySelector('[data-handle="2"]')||this.querySelector('[data-handle="duration"]'),this.#L=this.querySelector(".fig-easing-curve-select"),this.#U=this.querySelector(".fig-easing-curve-value-input"),this.#B=this.querySelector(".fig-easing-curve-target"),this.#F=this.querySelector(".fig-easing-curve-bounds"),this.#V=this.querySelector('[data-boundary="top"]'),this.#I=this.querySelector('[data-boundary="bottom"]')}#L0(){let _=this.#X?.querySelector("fig-handle"),Z=this.#G?.querySelector("fig-handle");if(_){let $=_.offsetWidth||this.#H*2,q=_.offsetHeight||this.#H*2;this.#H=Math.max($,q)/2,this.#X.setAttribute("width",$),this.#X.setAttribute("height",q)}if(Z){let $=Z.offsetWidth||this.#T,q=Z.offsetHeight||this.#z;if(this.#$==="spring")this.#T=$,this.#z=q;this.#G.setAttribute("width",$),this.#G.setAttribute("height",q)}}#J0(){if(this.#A||!window.ResizeObserver)return;this.#A=new ResizeObserver(()=>{if(this.#r())this.#e()}),this.#A.observe(this)}#r(){if(!this.#K)return!1;let _=this.#K.getBoundingClientRect(),Z=Math.max(1,Math.round(_.width||200)),$=Math.max(1,Math.round(_.height||200)),q=Z!==this.#O||$!==this.#Y;return this.#O=Z,this.#Y=$,this.#K.setAttribute("viewBox",`0 0 ${Z} ${$}`),q}#M0(){let _=Math.min(0,this.#Z.y,this.#_.y),Z=Math.max(1,this.#Z.y,this.#_.y),$=Z-_||1,q=0;return{minVal:_,maxVal:Z,range:$,pad:0,draw:Math.max(1,this.#Y-0)}}#R0(_,Z){let{maxVal:$,range:q,pad:J,draw:Q}=this.#M0();return{x:_*this.#O,y:J+($-Z)/q*Q}}#P0(_,Z){let{maxVal:$,range:q,pad:J,draw:Q}=this.#M0();return{x:_/this.#O,y:$-(Z-J)/Q*q}}#A0={minVal:0,maxVal:1.2,totalTime:1};#W0(_,Z){let q=this.#Y-40,{minVal:J,maxVal:Q}=this.#A0,j=Q-J||1;return{x:_*this.#O,y:20+(1-(Z-J)/j)*q}}#e(){if(this.#r(),this.#$==="spring")this.#E0();else this.#D0();this.#$0()}#F0(){this.#W?.classList.toggle("is-active",this.#$==="bezier"&&this.#j===1),this.#N?.classList.toggle("is-active",this.#$==="bezier"&&this.#j===2)}#D0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#O),this.#F.setAttribute("height",this.#Y);let _=this.#R0(0,0),Z=this.#R0(this.#Z.x,this.#Z.y),$=this.#R0(this.#_.x,this.#_.y),q=this.#R0(1,1);for(let[Q,j]of[[this.#V,q.y],[this.#I,_.y]]){if(!Q)continue;Q.setAttribute("x1","0"),Q.setAttribute("y1",j),Q.setAttribute("x2",this.#O),Q.setAttribute("y2",j)}this.#Q.setAttribute("d",`M${_.x},${_.y} C${Z.x},${Z.y} ${$.x},${$.y} ${q.x},${q.y}`),this.#W.setAttribute("x1",_.x),this.#W.setAttribute("y1",_.y),this.#W.setAttribute("x2",Z.x),this.#W.setAttribute("y2",Z.y),this.#N.setAttribute("x1",q.x),this.#N.setAttribute("y1",q.y),this.#N.setAttribute("x2",$.x),this.#N.setAttribute("y2",$.y);let J=this.#H;this.#X.setAttribute("x",Z.x-J),this.#X.setAttribute("y",Z.y-J),this.#G.setAttribute("x",$.x-J),this.#G.setAttribute("y",$.y-J),this.#C0()}#C0(){if(!this.#K||!this.#X||!this.#G)return;let _=this.#Z.y>=this.#_.y?[this.#X,this.#G]:[this.#G,this.#X];for(let Z of _)this.#K.append(Z)}#E0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#O),this.#F.setAttribute("height",this.#Y);let _=this.#g();if(!_.length)return;let Z=_[_.length-1].t||1,$=0,q=1;for(let M of _){if(M.value<$)$=M.value;if(M.value>q)q=M.value}let J=Math.max(Math.abs($-1),Math.abs(q-1),0.01),Q=0;this.#A0={minVal:1-J-Q,maxVal:1+J+Q,totalTime:Z};let j=Math.max(0.05,Math.min(1,this.#M)),W="";for(let M=0;M<_.length;M++){let z=_[M].t/Z*j,T=this.#W0(z,_[M].value);W+=(M===0?"M":"L")+T.x.toFixed(1)+","+T.y.toFixed(1)}let K=this.#W0(j,1),N=this.#W0(1,1);if(W+=`L${K.x.toFixed(1)},${K.y.toFixed(1)} L${N.x.toFixed(1)},${N.y.toFixed(1)}`,this.#Q.setAttribute("d",W),this.#B){let M=this.#W0(0,1),z=this.#W0(1,1);this.#B.setAttribute("x1",M.x),this.#B.setAttribute("y1",M.y),this.#B.setAttribute("x2",z.x),this.#B.setAttribute("y2",z.y)}let L=this.#f0(_),G=L.t/Z*j,X=this.#W0(G,L.value),R=this.#H;this.#X.setAttribute("x",X.x-R),this.#X.setAttribute("y",X.y-R);let B=this.#W0(j,1);this.#G.setAttribute("x",B.x-this.#T/2),this.#G.setAttribute("y",B.y-this.#z/2)}#f0(_){let Z={t:0,value:1},$=!1;for(let q=1;q<_.length-1;q++){let J=_[q-1],Q=_[q],j=_[q+1];if(Q.value>=0.99)$=!0;if($&&Q.value>Z.value)Z={t:Q.t,value:Q.value};if($&&Q.value>1&&Q.value>=J.value&&Q.value>=j.value)return{t:Q.t,value:Q.value}}return Z}#G0(){if(!this.#L)return;this.#L.value=this.#R,this.#w0()}#_0(){if(!this.#U)return;let _=this.#$==="spring"?this.#X0().toFixed(2):this.value;this.#U.setAttribute("value",_)}#X0(){let{stiffness:_,damping:Z,mass:$}=this.#q,q=2*Math.sqrt(_*$);if(!Number.isFinite(q)||q<=0)return 0;return Math.max(0,Math.min(1,1-Z/q))}#U0(_){let Z=Math.max(0,Math.min(1,Number(_))),$=2*Math.sqrt(this.#q.stiffness*this.#q.mass);this.#q.damping=Number(($*(1-Z)).toFixed(4))}#H0(_,Z){let $=Number(_);if(!Number.isFinite($)){if(Z==="change")this.#_0();return}if(this.#U0($),this.#R=this.#y(),this.#e(),this.#G0(),Z==="change")this.#_0();this.#Z0(Z)}#V0(_){let Z=_.split(",").map(($)=>Number.parseFloat($.trim()));if(Z.length!==4||Z.some(($)=>!Number.isFinite($)))return null;if(Z[0]<0||Z[0]>1||Z[2]<0||Z[2]>1)return null;return Z}#S0(_){return this.#D(_)}#z0(_,Z){let $=this.#k(),q=$==="bezier"?null:this.#S0(_),J=$==="spring"?null:this.#V0(_);if(!q&&!J){if(Z==="change")this.#_0();return}let Q=this.#$;if(q)this.#$="spring",this.#q=q;else this.#$="bezier",this.#Z.x=J[0],this.#Z.y=J[1],this.#_.x=J[2],this.#_.y=J[3];if(this.#R=this.#y(),Q!==this.#$)this.#i();else if(this.#e(),this.#G0(),Z==="change")this.#_0();this.#Z0(Z)}#T0(_,Z){if(!this.#L)return;for(let $ of this.#L.querySelectorAll("fig-select-option"))if($.value===_){let q=$.querySelector(':scope > [slot="prepend"]');if(q)q.replaceChildren(Z.cloneNode(!0))}}#w0(){if(!this.#L)return;if(!this.#d())return;let _=y.#p(this.#Z.x,this.#Z.y,this.#_.x,this.#_.y),Z=y.#w(this.#q);this.#T0("Custom bezier",_),this.#T0("Custom spring",Z)}#k0(_){this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0(_)}#x0(_,Z){let $=_.shiftKey?0.1:0.01,q=Z===1?this.#Z:this.#_;switch(_.key){case"ArrowLeft":q.x-=$;break;case"ArrowRight":q.x+=$;break;case"ArrowUp":q.y+=$;break;case"ArrowDown":q.y-=$;break;case"Home":q.x=0,q.y=0;break;case"End":q.x=1,q.y=1;break;default:return!1}return q.x=Math.max(0,Math.min(1,Math.round(q.x*100)/100)),q.y=Math.round(q.y*100)/100,this.#k0("input"),this.#Z0("change"),!0}#b0(_,Z){let $=_.shiftKey?10:1;if(Z==="bounce"){let q=$/100;switch(_.key){case"ArrowUp":this.#U0(this.#X0()+q);break;case"ArrowDown":this.#U0(this.#X0()-q);break;case"Home":this.#U0(0);break;case"End":this.#U0(1);break;default:return!1}}else{let q=$*2;switch(_.key){case"ArrowLeft":this.#M=Math.max(0.05,this.#M-q/200),this.#q.stiffness=Math.max(10,Math.round(this.#q.stiffness+q*1.5));break;case"ArrowRight":this.#M=Math.min(1,this.#M+q/200),this.#q.stiffness=Math.max(10,Math.round(this.#q.stiffness-q*1.5));break;case"Home":this.#M=0.05;break;case"End":this.#M=1;break;default:return!1}}return this.#k0("input"),this.#Z0("change"),!0}#Y0(_,Z){let $=_?.querySelector("fig-handle");if(!$)return;$.addEventListener("pointerdown",(q)=>{if(q.preventDefault(),q.stopImmediatePropagation(),this.#$==="bezier")this.#O0(q,Number(Z));else this.#B0(q,Z)},{capture:!0}),$.addEventListener("keydown",(q)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(q.key))return;if(!(this.#$==="bezier"?this.#x0(q,Number(Z)):this.#b0(q,Z)))return;q.preventDefault(),q.stopImmediatePropagation()},{capture:!0})}#Z0(_){let Z=this.spring;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{mode:this.#$,value:this.value,cssValue:this.cssValue,preset:this.#R,...Z?{spring:Z}:{}}}))}#y0(){if(this.#K&&this.#$==="bezier"){this.#Y0(this.#X,"1"),this.#Y0(this.#G,"2"),this.#X.addEventListener("pointerdown",(Z)=>this.#O0(Z,1)),this.#G.addEventListener("pointerdown",(Z)=>this.#O0(Z,2));let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(Z)=>{if(Z.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#O0(Z,this.#h0(Z))})}else if(this.#K){this.#Y0(this.#X,"bounce"),this.#Y0(this.#G,"duration"),this.#X.addEventListener("pointerdown",(Z)=>{Z.stopPropagation(),this.#B0(Z,"bounce")}),this.#G.addEventListener("pointerdown",(Z)=>{Z.stopPropagation(),this.#B0(Z,"duration")});let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(Z)=>{if(Z.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#B0(Z,"duration")})}if(this.#L)this.#L.addEventListener("input",(_)=>{_.stopPropagation()}),this.#L.addEventListener("optionhover",(_)=>{_.stopPropagation()}),this.#L.addEventListener("change",(_)=>{_.stopPropagation();let Z=_.detail,$=y.PRESETS.find((q)=>q.name===Z);if(!$)return;if($.type==="bezier"){if($.value)this.#Z.x=$.value[0],this.#Z.y=$.value[1],this.#_.x=$.value[2],this.#_.y=$.value[3];if(this.#R=Z,this.#$!=="bezier")this.#$="bezier",this.#i();else if(this.#K)this.#e(),this.#_0()}else if($.type==="spring"){if($.spring)this.#q={...$.spring,initialVelocity:0};if(this.#R=Z,this.#$!=="spring")this.#$="spring",this.#i();else if(this.#K)this.#e(),this.#_0()}this.#Z0("input"),this.#Z0("change")});if(this.#U)this.#U.addEventListener("input",(_)=>{_.stopPropagation();let Z=_.detail??_.target?.value;if(this.#$==="spring")this.#H0(Z,"input");else if(typeof Z==="string")this.#z0(Z,"input")}),this.#U.addEventListener("change",(_)=>{_.stopPropagation();let Z=_.detail??_.target?.value;if(this.#$==="spring")this.#H0(Z,"change");else if(typeof Z==="string")this.#z0(Z,"change")})}#I0(_){let Z=this.#K.getScreenCTM();if(!Z)return{x:0,y:0};let $=Z.inverse();return{x:$.a*_.clientX+$.c*_.clientY+$.e,y:$.b*_.clientX+$.d*_.clientY+$.f}}#h0(_){return this.#I0(_).x<=this.#O/2?1:2}#O0(_,Z){_.preventDefault(),this.#j=Z,this.#F0();let $=Z===1?this.#X:this.#G;this.#q0($,!0);let q=this.#K.getBoundingClientRect(),J=_.clientX,Q=_.clientY,j=_.target?.closest?.(".fig-easing-curve-handle, fig-handle"),W=Z===1?this.#Z:this.#_,K=this.#I0(_),N=j?{...W}:this.#P0(K.x,K.y),{range:L,draw:G}=this.#M0(),X=L/Math.max(1,G/this.#Y*Math.max(1,q.height)),R=(M)=>{if(!this.#j)return;let z={x:N.x+(M.clientX-J)/Math.max(1,q.width),y:M.shiftKey?Z===1?0:1:N.y-(M.clientY-Q)*X};if(z.x=Math.round(z.x*100)/100,z.y=Math.round(z.y*100)/100,z.x=Math.max(0,Math.min(1,z.x)),this.#j===1)this.#Z.x=z.x,this.#Z.y=z.y;else this.#_.x=z.x,this.#_.y=z.y;this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0("input")},B=()=>{this.#j=null,this.#F0(),this.#q0($,!1),document.removeEventListener("pointermove",R),document.removeEventListener("pointerup",B),this.#Z0("change")};document.addEventListener("pointermove",R),document.addEventListener("pointerup",B)}#B0(_,Z){_.preventDefault(),this.#j=Z,this.classList.toggle("spring-bounce-dragging",Z==="bounce");let $=Z==="bounce"?this.#X:this.#G;this.#q0($,!0);let q=this.#X0(),J=this.#q.stiffness,Q=this.#M,j=_.clientY,W=_.clientX,K=(L)=>{if(!this.#j)return;if(Z==="bounce"){let G=L.clientY-j;this.#U0(q-G/200)}else{let G=L.clientX-W;this.#M=Math.max(0.05,Math.min(1,Q+G/200)),this.#q.stiffness=Math.max(10,Math.round(J-G*1.5))}this.#e(),this.#R=this.#y(),this.#G0(),this.#_0(),this.#Z0("input")},N=()=>{this.#j=null,this.classList.remove("spring-bounce-dragging"),this.#q0($,!1),document.removeEventListener("pointermove",K),document.removeEventListener("pointerup",N),this.#Z0("change")};document.addEventListener("pointermove",K),document.addEventListener("pointerup",N)}}A("fig-easing-curve",y);class a extends HTMLElement{#Z=0;#_=0;#q="deg";#$=null;#J=null;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=null;#G=null;#L=null;#U=null;#R=!1;#B=!1;#M=(_)=>this.#q0(_);#O=(_)=>this.#K0(_);#Y=(_)=>this.#Q0(_);#F=(_)=>this.#N0(_);#V=(_)=>this.#L0(_);#I=(_)=>this.#J0(_);#A=()=>this.#t();static#H(_,Z=12,$=12,q=7,J=3,Q=0){let j=Number(_),W=Number(Q),K=Number.isFinite(j)?j:0,N=Number.isFinite(W)?W:0,L=K-N,G=L<0?"counterclockwise":"clockwise",X=Math.abs(L);if(X<0.001)return{direction:G,arc:"",arrow:""};let R=(d)=>`${Number(d.x.toFixed(3))} ${Number(d.y.toFixed(3))}`,B=(d)=>{let _0=d*Math.PI/180;return{x:Z+Math.cos(_0)*q,y:$+Math.sin(_0)*q}},M=L>=0?1:-1,z=G==="clockwise"?1:0,T=[`M ${R(B(N))}`],I=N,U=Math.floor(X/360);for(let d=0;d<U;d++)I+=M*180,T.push(`A ${q} ${q} 0 0 ${z} ${R(B(I))}`),I+=M*180,T.push(`A ${q} ${q} 0 0 ${z} ${R(B(I))}`);let P=X-U*360;if(P>=0.001)I+=M*P,T.push(`A ${q} ${q} 0 ${P>180?1:0} ${z} ${R(B(I))}`);let D=B(K),E=K*Math.PI/180,f=L>=0?{x:-Math.sin(E),y:Math.cos(E)}:{x:Math.sin(E),y:-Math.cos(E)},x={x:-f.y,y:f.x},S=J/Math.SQRT2,c={x:D.x-f.x*S+x.x*S,y:D.y-f.y*S+x.y*S},i={x:D.x-f.x*S-x.x*S,y:D.y-f.y*S-x.y*S};return{direction:G,arc:T.join(" "),arrow:`M ${R(c)} L ${R(D)} L ${R(i)}`}}static#T(_=0,Z=0){let $=a.#H(_,50,50,47,4,Z);return V("svg",{class:"fig-angle-reference",x:"3%",y:"3%",width:"94%",height:"94%",viewBox:"3 3 94 94",fill:"none",overflow:"visible","aria-hidden":"true","data-direction":$.direction},V("path",{class:"fig-angle-reference-path",d:[$.arc,$.arrow].filter(Boolean).join(" "),hidden:!$.arc,fill:"none",stroke:"currentColor","stroke-width":"var(--stroke-width)","stroke-linecap":"round","stroke-linejoin":"round"}))}static rotationIcon(_=0,Z=48){let $=Number.isFinite(Number(Z))?Math.max(1,Number(Z)):48,q=a.#H(_),J=q.arc?`<path d="${q.arc} ${q.arrow}" fill="none" stroke="currentColor" stroke-width="var(--stroke-width, 1)" stroke-linecap="round" stroke-linejoin="round"></path>`:"";return`<svg width="${$}" height="${$}" viewBox="0 0 24 24" fill="none" data-direction="${q.direction}">${J}</svg>`}static get observedAttributes(){return["value","default","precision","dial","min","max","step","units","rotations","disabled","aria-label","name"]}connectedCallback(){this.#z(),this.#i()}disconnectedCallback(){this.#j0(),this.#s()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(this.#B)return;if(_==="value"){if(this.#R)return;let q=Number($);if(Number.isFinite(q))this.#u(q,{reflect:!1});return}if(_==="units"&&this.isConnected){let q=this.#x(this.#Z),J=this.#q;this.#q=this.#k($),this.#P(J,this.#q),this.#_=this.#C(),this.#u(this.#S(q)),this.#i();return}if(this.#z(),!this.isConnected)return;if(["dial","precision","min","max","step","units","rotations","disabled","aria-label","name"].includes(_)){this.#i();return}this.#u(this.#Z)}get value(){return this.#Z}set value(_){let Z=Number(_);if(!Number.isFinite(Z))return;this.#u(Z)}get defaultValue(){return this.#y()}set defaultValue(_){if(_===null||_===void 0||_===""){this.removeAttribute("default");return}let Z=Number(_);if(Number.isFinite(Z))this.setAttribute("default",String(Z))}get adjacent(){return Math.cos(this.#x(this.#Z)*Math.PI/180)}get opposite(){return Math.sin(this.#x(this.#Z)*Math.PI/180)}focus(_){this.#J?.focus(_)}#z(){this.#q=this.#k(this.getAttribute("units")),this.#_=this.#C();let _=this.getAttribute("value"),Z=_===null||_.trim()===""?this.#y():Number(_);if(Number.isFinite(Z))this.#Z=this.#h(Z)}#C(){if(!this.hasAttribute("precision")){if(this.#q==="turn")return 3;if(this.#q==="rad")return 2;return 0}let _=Number.parseInt(this.getAttribute("precision"),10);return Number.isFinite(_)?Math.max(0,_):0}#k(_){let Z=String(_||"deg").trim().toLowerCase();if(Z==="°")return"°";return["deg","rad","turn","grad"].includes(Z)?Z:"deg"}#P(_,Z){if(_===Z)return;this.#B=!0;for(let $ of["min","max","default","step"]){let q=this.getAttribute($);if(q===null||q.trim()==="")continue;let J=Number(q);if(!Number.isFinite(J))continue;let Q=this.#w(this.#g(J,_),Z);this.setAttribute($,String(Q))}this.#B=!1}#E(_,Z=!1){if(!this.hasAttribute(_))return Z;return this.getAttribute(_)?.toLowerCase()!=="false"}#f(){return F(this,"disabled")}#b(){let _=Number(this.getAttribute("min"));return this.hasAttribute("min")&&Number.isFinite(_)?_:null}#D(){let _=Number(this.getAttribute("max"));return this.hasAttribute("max")&&Number.isFinite(_)?_:null}#h(_){let Z=Number(_);if(!Number.isFinite(Z))return this.#Z;let $=this.#b(),q=this.#D();if($!==null)Z=Math.max($,Z);if(q!==null)Z=Math.min(q,Z);return Z}#y(_=this.getAttribute("default")){let Z=_===null||String(_).trim()===""?0:Number(_);return this.#h(Number.isFinite(Z)?Z:0)}#g(_,Z){switch(Z){case"rad":return _*180/Math.PI;case"turn":return _*360;case"grad":return _*0.9;default:return _}}#w(_,Z){switch(Z){case"rad":return _*Math.PI/180;case"turn":return _/360;case"grad":return _/0.9;default:return _}}#x(_){return this.#g(_,this.#q)}#S(_){return this.#w(_,this.#q)}#m(){return this.#q==="deg"?"°":this.#q}#v(){let _=this.#x(this.#Z),Z=_/360,$=Math.round(Z),q=Math.abs(Z-$)<0.0000000001?$:Math.trunc(Z),J=_-q*360;return{rotations:q,remainder:this.#S(Math.abs(J)<0.0000000001?0:J)}}#p(){return this.#E("rotations")?this.#v().remainder:this.#Z}#d(){switch(this.#q){case"rad":return 0.01;case"turn":return 0.001;case"grad":return 0.1;default:return 1}}#a(){let _=Number(this.getAttribute("step"));return this.hasAttribute("step")&&Number.isFinite(_)&&_>0?_:this.#d()}#c(){return this.getAttribute("aria-label")||this.getAttribute("name")||"Angle"}#i(){this.#j0(),this.#s();let _=[],Z=this.#E("rotations")?Y("span",{slot:"append",className:"fig-angle-rotations"},Y("span",{className:"fig-angle-rotation-value"})):null,$=this.#E("dial",!0),q=Y("fig-input-number",{className:"fig-angle-input",variant:$?"ghost":void 0,tabular:!0,name:"angle",value:this.#p(),min:this.#b(),max:this.#D(),step:this.#a(),precision:this.#_,units:this.#m(),disabled:this.#f(),"aria-label":this.#c()},Z);if($){let J=Y("fig-tooltip",{text:"Reset"},Y("fig-button",{variant:"ghost",icon:"true",className:"fig-angle-reset",disabled:this.#f(),"aria-label":"Reset to default"},h("reset",{size:"small"}))),Q=this.#b()??this.#S(0),j=this.#D()??this.#S(360),W=this.#f(),K=Array.from({length:24},(L,G)=>{let X=G*15,R=X*Math.PI/180,B=37,M=X%45===0?31:35;return V("line",{class:X%45===0?"fig-angle-tick fig-angle-tick-major":"fig-angle-tick",x1:50+Math.cos(R)*M,y1:50+Math.sin(R)*M,x2:50+Math.cos(R)*37,y2:50+Math.sin(R)*37})}),N=V("svg",{class:"fig-angle-svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid meet",role:"slider",tabindex:W?"-1":"0","aria-label":this.#c(),"aria-valuemin":Q,"aria-valuemax":j,"aria-disabled":W?"true":"false"},[V("rect",{class:"fig-angle-hit-area",x:"0",y:"0",width:"100",height:"100",fill:"transparent"}),V("circle",{class:"fig-angle-boundary",cx:"50",cy:"50",r:"47"}),...K,a.#T(this.#x(this.#Z),this.#x(this.#y())),V("line",{class:"fig-angle-indicator-halo",x1:"75",y1:"50",x2:"87",y2:"50"}),V("line",{class:"fig-angle-indicator",x1:"75",y1:"50",x2:"87",y2:"50"})]);_.push(Y("div",{className:"fig-angle-surface"},[N,q,J]))}else _.push(q);this.replaceChildren(..._),this.#$=this.querySelector(".fig-angle-surface"),this.#J=this.querySelector(".fig-angle-svg"),this.#j=this.querySelector(".fig-angle-indicator"),this.#K=this.querySelector(".fig-angle-indicator-halo"),this.#Q=this.querySelector(".fig-angle-reference"),this.#W=this.querySelector(".fig-angle-input"),this.#N=this.querySelector(".fig-angle-rotations"),this.#X=this.querySelector(".fig-angle-reset"),this.#o(),this.#l()}#o(){this.#G=new AbortController;let _=this.#G.signal;this.#J?.addEventListener("pointerdown",this.#M,{signal:_}),this.#J?.addEventListener("pointermove",this.#O,{signal:_}),this.#J?.addEventListener("pointerup",this.#Y,{signal:_}),this.#J?.addEventListener("pointercancel",this.#Y,{signal:_}),this.#J?.addEventListener("lostpointercapture",this.#Y,{signal:_}),this.#J?.addEventListener("keydown",this.#F,{signal:_}),this.#W?.addEventListener("input",this.#V,{signal:_}),this.#W?.addEventListener("change",this.#V,{signal:_}),this.#X?.addEventListener("click",this.#A,{signal:_}),this.addEventListener("change",this.#I,{capture:!0,signal:_})}#s(){this.#G?.abort(),this.#G=null}#u(_,{reflect:Z=!0}={}){let $=this.#h(_);if(this.#Z=$,Z){let q=String($);if(this.getAttribute("value")!==q)this.#R=!0,this.setAttribute("value",q),this.#R=!1}this.#l()}#l(){let _=this.#x(this.#Z),$=`rotate(${(_%360+360)%360} 50 50)`;this.#j?.setAttribute("transform",$),this.#K?.setAttribute("transform",$);let q=this.#x(this.#y()),J=a.#H(_,50,50,47,4,q);this.#Q?.setAttribute("data-direction",J.direction);let Q=this.#Q?.querySelector(".fig-angle-reference-path");if(Q?.setAttribute("d",[J.arc,J.arrow].filter(Boolean).join(" ")),Q?.toggleAttribute("hidden",!J.arc),this.#J){let j=this.#S(0),W=this.#S(360);this.#J.setAttribute("aria-valuemin",String(this.#b()??Math.min(j,this.#Z))),this.#J.setAttribute("aria-valuemax",String(this.#D()??Math.max(W,this.#Z))),this.#J.setAttribute("aria-valuenow",String(this.#Z)),this.#J.setAttribute("aria-valuetext",`${this.#Z.toFixed(this.#_)}${this.#m()}`)}if(this.#W){let j=this.#p().toFixed(this.#_);if(this.#W.getAttribute("value")!==j)this.#W.setAttribute("value",j)}if(this.#N){let{rotations:j}=this.#v(),W=this.#N.querySelector(".fig-angle-rotation-value");if(W)W.textContent=j?`×${j}`:"";this.#N.hidden=j===0}if(this.#X)this.#X.hidden=this.#Z===this.#y()}#t(){if(this.#f())return;this.#u(this.#y()),this.#r("input"),this.#r("change")}#n(_){let Z=this.#$.getBoundingClientRect(),$=Z.left+Z.width/2,q=Z.top+Z.height/2,J=_.clientX-$,Q=_.clientY-q;if(Math.hypot(J,Q)<Math.min(Z.width,Z.height)*0.08)return null;let j=Math.atan2(Q,J)*180/Math.PI;if(j=(j%360+360)%360,_.shiftKey)j=Math.round(j/15)*15;return j}#$0(_){let Z=this.#n(_);if(Z===null)return;let $=this.#x(this.#Z),q;if(this.#U===null){let J=($%360+360)%360;q=Z-J}else q=Z-this.#U;if(q>180)q-=360;if(q<-180)q+=360;this.#U=Z,this.#u(this.#S($+q)),this.#r("input")}#q0(_){if(this.#f()||_.button!==0)return;_.preventDefault(),this.#J?.focus({preventScroll:!0}),this.#L=_.pointerId,this.#U=null,this.#$.classList.add("dragging");try{this.#J.setPointerCapture?.(_.pointerId)}catch{}this.#$0(_)}#K0(_){if(_.pointerId!==this.#L)return;if(_.buttons===0){this.#Q0(_);return}this.#$0(_)}#Q0(_){if(_.pointerId!==this.#L)return;let Z=this.#L;if(this.#L=null,this.#U=null,this.#$?.classList.remove("dragging"),this.#J?.hasPointerCapture?.(Z))this.#J.releasePointerCapture(Z);this.#r("change")}#j0(){this.#L=null,this.#U=null,this.#$?.classList.remove("dragging")}#N0(_){if(this.#f())return;let Z=this.#Z,$=_.key==="ArrowLeft"||_.key==="ArrowDown"?-1:_.key==="ArrowRight"||_.key==="ArrowUp"?1:0;if($){let q=_.shiftKey?this.#S(15):this.#a();Z+=$*q}else if(_.key==="Home")Z=this.#b()??this.#S(0);else if(_.key==="End")Z=this.#D()??this.#S(360);else return;_.preventDefault(),_.stopPropagation(),this.#u(Z),this.#r("input"),this.#r("change")}#L0(_){if(_.stopPropagation(),this.#f())return;let Z=Number(_.currentTarget.value);if(!Number.isFinite(Z))return;if(this.#E("rotations")){let{rotations:$}=this.#v();this.#u(this.#S($*360+this.#x(Z)))}else this.#u(Z);this.#r(_.type)}#J0(_){if(!_.target?.matches?.("input"))return;let Z=String(_.target.value).match(/^(-?\d*\.?\d+)\s*(deg|°|rad|turn|grad)$/i);if(!Z)return;let $=Number(Z[1]),q=this.#k(Z[2]),J=$;if(q==="rad")J=$*180/Math.PI;else if(q==="turn")J=$*360;else if(q==="grad")J=$*0.9;_.target.value=String(this.#S(J))}#r(_){let Z=Number(this.value.toFixed(this.#_));this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!0,detail:{value:Z,angle:Z,units:this.#q}}))}}A("fig-angle",a);class f_ extends HTMLElement{#Z=0;#_=0;#q=0;#$=1;#J=!1;#j=!1;#K=null;#Q=null;#W=null;#N=null;#X=(_)=>this.#f(_);#G=null;#L=[];#U={};#R={};static get observedAttributes(){return["value","precision","aspect-ratio","fields","perspective","perspective-origin","transform-origin","selected","drag"]}connectedCallback(){this.#$=parseInt(this.getAttribute("precision")||"1"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),m(this,"--perspective",this.getAttribute("perspective")),m(this,"--perspective-origin",this.getAttribute("perspective-origin")),this.#O(this.getAttribute("transform-origin")),this.#V(this.getAttribute("fields"));let _=this.getAttribute("value");if(_)this.#I(_);if(this.querySelector(".fig-3d-rotate-container"))this.#B();else this.#A();this.#F(this.getAttribute("selected")),this.#Y()}disconnectedCallback(){this.#J=!1,this.#M()}#B(){this.#Q=this.querySelector(".fig-3d-rotate-container"),this.#K=this.querySelector(".fig-3d-rotate-cube"),this.#H(),this.#z(),this.#P()}#M(){if(this.#G?.abort(),this.#G=null,this.#W)window.removeEventListener("keydown",this.#W),window.removeEventListener("keyup",this.#N),this.#W=null,this.#N=null}#O(_){if(!_||!_.trim()){this.style.removeProperty("--transform-origin");return}let Z=_.trim().split(/\s+/);if(Z.length===2)this.style.setProperty("--transform-origin",`${Z[0]} ${Z[1]} -50cqi`);else this.style.setProperty("--transform-origin",_.trim())}#Y(){if(!this.#Q)return;this.#Q.style.cursor=this.#E?"":"default"}#F(_){if(!this.#K)return;let Z=this.#K.querySelectorAll(".fig-3d-rotate-face"),$=_?_.trim().toLowerCase():"";for(let q of Z)q.classList.toggle("selected",$!==""&&q.classList.contains($))}#V(_){if(!_||!_.trim()){this.#L=[];return}let Z=["rotateX","rotateY","rotateZ"];this.#L=_.split(",").map(($)=>$.trim()).filter(($)=>Z.includes($))}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="perspective"){m(this,"--perspective",$);return}if(_==="perspective-origin"){m(this,"--perspective-origin",$);return}if(_==="transform-origin"){this.#O($);return}if(_==="selected"){this.#F($);return}if(_==="drag"){this.#Y();return}if(_==="fields"){if(this.#V($),this.#K)this.#A();return}if(!this.#K)return;if(_==="value"&&$){if(this.#J)return;this.#I($),this.#z(),this.#T()}if(_==="precision")this.#$=parseInt($||"1")}get value(){let _=this.#$;return`rotateX(${this.#Z.toFixed(_)}deg) rotateY(${this.#_.toFixed(_)}deg) rotateZ(${this.#q.toFixed(_)}deg)`}set value(_){this.setAttribute("value",_)}get rotateX(){return this.#Z}get rotateY(){return this.#_}get rotateZ(){return this.#q}#I(_){let Z=_.match(/rotateX\(\s*(-?[\d.]+)\s*deg\s*\)/),$=_.match(/rotateY\(\s*(-?[\d.]+)\s*deg\s*\)/),q=_.match(/rotateZ\(\s*(-?[\d.]+)\s*deg\s*\)/);if(Z)this.#Z=parseFloat(Z[1]);if($)this.#_=parseFloat($[1]);if(q)this.#q=parseFloat(q[1])}#A(){let _={rotateX:"X",rotateY:"Y",rotateZ:"Z"},Z={rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q},$=Y("div",{className:"fig-3d-rotate-cube"},["front","back","right","left","top","bottom"].map((Q)=>Y("div",{className:`fig-3d-rotate-face ${Q}`}))),q=Y("div",{className:"fig-3d-rotate-container",tabindex:"0"},Y("div",{className:"fig-3d-rotate-scene"},$)),J=this.#L.map((Q)=>Y("fig-input-number",{name:Q,step:"1",precision:"1",value:Z[Q],units:"°"},Y("span",{slot:"prepend"},_[Q])));this.replaceChildren(q,...J),this.#Q=q,this.#K=$,this.#H(),this.#z(),this.#P()}#H(){this.#U={};for(let _ of this.#L){let Z=this.querySelector(`fig-input-number[name="${_}"]`);if(!Z)continue;if(this.#U[_]=Z,!this.#R[_])this.#R[_]=(q)=>{q.stopPropagation();let J=parseFloat(q.target.value);if(isNaN(J))return;if(_==="rotateX")this.#Z=J;else if(_==="rotateY")this.#_=J;else if(_==="rotateZ")this.#q=J;this.#z(),this.#C(q.type)};let $=this.#R[_];Z.removeEventListener("input",$),Z.removeEventListener("change",$),Z.addEventListener("input",$),Z.addEventListener("change",$)}}#T(){let _={rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q};for(let Z of this.#L){let $=this.#U[Z];if($)$.setAttribute("value",_[Z].toFixed(this.#$))}}#z(){if(!this.#K)return;this.#K.style.transform=`rotateX(${this.#Z}deg) rotateY(${this.#_}deg) rotateZ(${this.#q}deg)`}#C(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,rotateX:this.#Z,rotateY:this.#_,rotateZ:this.#q}}))}#k(_){if(!this.#j)return _;return Math.round(_/15)*15}#P(){if(this.#M(),!this.#Q)return;this.#G=new AbortController,this.#Q.addEventListener("pointerdown",this.#X,{signal:this.#G.signal}),this.#W=(_)=>{if(_.key==="Shift")this.#j=!0},this.#N=(_)=>{if(_.key==="Shift")this.#j=!1},window.addEventListener("keydown",this.#W),window.addEventListener("keyup",this.#N)}get#E(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}#f(_){if(!this.#E)return;_.preventDefault(),this.#J=!0,this.#Q.classList.add("dragging"),this.#Q.setPointerCapture(_.pointerId);let{clientX:Z,clientY:$}=_,q=this.#Z,J=this.#_,Q=(W)=>{if(!this.#J)return;if(W.buttons===0){j();return}let K=W.clientX-Z,N=W.clientY-$;this.#_=this.#k(J+K*0.5),this.#Z=this.#k(q-N*0.5),this.#z(),this.#T(),this.setAttribute("value",this.value),this.#C("input")},j=()=>{if(!this.#J)return;this.setAttribute("value",this.value),this.#J=!1,this.#Q.classList.remove("dragging"),this.#Q.removeEventListener("pointermove",Q),this.#Q.removeEventListener("pointerup",j),this.#Q.removeEventListener("pointercancel",j),this.#Q.removeEventListener("lostpointercapture",j),this.#C("change")};this.#Q.addEventListener("pointermove",Q),this.#Q.addEventListener("pointerup",j),this.#Q.addEventListener("pointercancel",j),this.#Q.addEventListener("lostpointercapture",j)}}A("fig-3d-rotate",f_);class k0 extends HTMLElement{#Z=50;#_=50;#q=0;#$=null;#J=[];#j=null;#K=null;#Q=null;#W=!1;#N=!1;#X=null;#G=null;#L=null;static SNAP_POINTS=[0,16.6667,33.3333,50,66.6667,83.3333,100];static get observedAttributes(){return["value","precision","aspect-ratio","drag","fields"]}#U(){this.#$=this.querySelector(".origin-grid"),this.#J=Array.from(this.querySelectorAll(".origin-grid-cell")),this.#j=this.querySelector("fig-handle"),this.#K=this.querySelector('fig-input-number[name="x"]'),this.#Q=this.querySelector('fig-input-number[name="y"]'),this.#z(),this.#C(),this.#A(),this.#v()}connectedCallback(){if(this.#q=parseInt(this.getAttribute("precision")||"0"),m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),this.#V(this.getAttribute("value")),this.querySelector(".fig-origin-grid-surface"))this.#U();else this.#I();this.#M(),this.#H()}disconnectedCallback(){this.#W=!1,this.#w(),this.#m()}get value(){let _=this.#q;return`${this.#Z.toFixed(_)}% ${this.#_.toFixed(_)}%`}set value(_){this.setAttribute("value",_)}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="drag"){this.#M();return}if(_==="fields"){this.#I(),this.#M(),this.#H();return}if(_==="precision"){this.#q=parseInt($||"0"),this.#A(),this.#H();return}if(_==="value"){if(this.#N||this.#W)return;this.#V($),this.#z(),this.#C(),this.#A()}}get#R(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}get#B(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#M(){if(!this.#$)return;this.#$.classList.toggle("drag-disabled",!this.#R)}#O(_){return Math.max(0,Math.min(100,_))}#Y(_,Z){let $=(_||"").trim().toLowerCase();if(!$)return Z==="x"?this.#Z:this.#_;let q=Z==="x"?{left:0,center:50,right:100}:{top:0,center:50,bottom:100};if($ in q)return q[$];let J=Number.parseFloat($.replace("%",""));if(Number.isFinite(J))return J;return Z==="x"?this.#Z:this.#_}#F(_){let Z=_.trim().replace(/,/g," ").split(/\s+/).filter(Boolean);if(Z.length<1)return;if(Z.length===1){let $=this.#Y(Z[0],"x");this.#Z=$,this.#_=$;return}this.#Z=this.#Y(Z[0],"x"),this.#_=this.#Y(Z[1],"y")}#V(_){let Z=typeof _==="string"?_.trim():"";if(!Z){this.#Z=50,this.#_=50;return}this.#F(Z)}#I(){let _=Array.from({length:9},(W,K)=>{let N=K%3,L=Math.floor(K/3);return Y("span",{className:"origin-grid-cell","data-col":N,"data-row":L},Y("span",{className:"origin-grid-dot"}))}),Z=this.#Z.toFixed(this.#q),$=this.#_.toFixed(this.#q),q=document.createElement("fig-handle"),J=Y("div",{className:"origin-grid","aria-label":"Transform origin grid"},[Y("div",{className:"origin-grid-cells"},_),q]),j=[Y("div",{className:"fig-origin-grid-surface"},J)];if(this.#B){let W=(K,N)=>Y("fig-input-number",{name:K,value:N,step:"1",units:"%"},Y("span",{slot:"prepend"},K.toUpperCase()));j.push(Y("div",{className:"origin-values"},[W("x",Z),W("y",$)]))}this.replaceChildren(...j),this.#$=J,this.#J=_,this.#j=q,this.#K=this.querySelector('fig-input-number[name="x"]'),this.#Q=this.querySelector('fig-input-number[name="y"]'),this.#z(),this.#C(),this.#A(),this.#v()}#A(){let _=this.#Z.toFixed(this.#q),Z=this.#_.toFixed(this.#q);if(this.#K)this.#K.setAttribute("value",_);if(this.#Q)this.#Q.setAttribute("value",Z)}#H(){let _=this.value;if(this.getAttribute("value")===_)return;this.#N=!0,this.setAttribute("value",_),this.#N=!1}#T(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,x:this.#Z,y:this.#_}}))}#z(){if(!this.#j)return;let _=(Z)=>16.6667+this.#O(Z)/100*66.6667;this.#j.style.left=`${_(this.#Z)}%`,this.#j.style.top=`${_(this.#_)}%`}#C(){if(!this.#j)return;let _=this.#Z<0||this.#Z>100,Z=this.#_<0||this.#_>100,$=this.#Z<0,q=this.#Z>100,J=this.#_<0,Q=this.#_>100;this.#j.classList.toggle("beyond-bounds-x",_),this.#j.classList.toggle("beyond-bounds-y",Z),this.#j.classList.toggle("overflow-left",$),this.#j.classList.toggle("overflow-right",q),this.#j.classList.toggle("overflow-up",J),this.#j.classList.toggle("overflow-down",Q)}#k(_,Z){if(!this.#$)return null;let $=this.#$.getBoundingClientRect(),q=(_-$.left)/Math.max($.width,1),J=(Z-$.top)/Math.max($.height,1);if(q<0||q>1||J<0||J>1)return null;let Q=Math.max(0,Math.min(2,Math.floor(q*3))),j=Math.max(0,Math.min(2,Math.floor(J*3)));return this.#J.find((W)=>Number(W.getAttribute("data-col"))===Q&&Number(W.getAttribute("data-row"))===j)}#P(){for(let _ of this.#J)_.classList.remove("is-hovered")}#E(_){if(this.#P(),_)_.classList.add("is-hovered")}#f(_,Z,$){let q=Number(_),J=Number(Z);if(!Number.isFinite(q)||!Number.isFinite(J))return;if(q===this.#Z&&J===this.#_&&$==="input")return;this.#Z=q,this.#_=J,this.#z(),this.#C(),this.#A(),this.#H(),this.#T($)}#b(_,Z){if(!this.#$)return{x:this.#Z,y:this.#_};let $=this.#$.getBoundingClientRect(),q=$.width/6,J=$.height/6,Q=Math.max(1,$.width-q*2),j=Math.max(1,$.height-J*2),W=(_-($.left+q))/Q,K=(Z-($.top+J))/j;return{x:W*100,y:K*100}}#D(_,Z){if(!this.#$)return{x:50,y:50};let $=this.#$.getBoundingClientRect(),q=(_-$.left)/Math.max($.width,1)*3,J=(Z-$.top)/Math.max($.height,1)*3,Q=Math.max(0,Math.min(2,Math.floor(q))),j=Math.max(0,Math.min(2,Math.floor(J)));return{x:Q*50,y:j*50}}#h(_){let $=_,q=1/0;for(let J of k0.SNAP_POINTS){let Q=Math.abs(_-J);if(Q<q)q=Q,$=J}return q<=2.5?$:_}#y(_,Z){if(!Z)return _;return{x:this.#h(_.x),y:this.#h(_.y)}}#g(_){if(!this.#R)return!1;let Z=_.shiftKey?10:1,$=this.#Z,q=this.#_;switch(_.key){case"ArrowLeft":$-=Z;break;case"ArrowRight":$+=Z;break;case"ArrowUp":q-=Z;break;case"ArrowDown":q+=Z;break;case"Home":$=0,q=0;break;case"End":$=100,q=100;break;default:return!1}return this.#f(this.#O($),this.#O(q),"input"),this.#T("change"),!0}#w(){if(!this.#$||!this.#G||!this.#L)return;this.#$.removeEventListener("pointermove",this.#G),this.#$.removeEventListener("pointerup",this.#L),this.#$.removeEventListener("pointercancel",this.#L),this.#$.removeEventListener("lostpointercapture",this.#L),this.#G=null,this.#L=null}#x(_){if(!this.#$||!this.#R)return;_.preventDefault(),this.#W=!0,this.#X=_.pointerId;let{clientX:Z,clientY:$}=_,q=3,J=!1;this.#$.setPointerCapture(_.pointerId),this.#G=(Q)=>{if(!this.#W||Q.pointerId!==this.#X)return;let j=Q.clientX-Z,W=Q.clientY-$,K=Math.hypot(j,W);if(!J&&K<q)return;if(!J)J=!0,this.#$.classList.add("is-dragging"),this.#P();let N=this.#y(this.#b(Q.clientX,Q.clientY),Q.shiftKey);this.#f(N.x,N.y,"input")},this.#L=(Q)=>{if(!this.#W||Q.pointerId!==this.#X)return;if(this.#W=!1,this.#X=null,this.#$.classList.remove("is-dragging"),this.#P(),this.#w(),!J){let j=this.#D(Z,$);this.#f(j.x,j.y,"input")}this.#T("change")},this.#$.addEventListener("pointermove",this.#G),this.#$.addEventListener("pointerup",this.#L),this.#$.addEventListener("pointercancel",this.#L),this.#$.addEventListener("lostpointercapture",this.#L)}#S=null;#m(){this.#S?.abort(),this.#S=null}#v(){if(this.#m(),!this.#$||!this.#j)return;this.#S=new AbortController;let{signal:_}=this.#S;this.#$.addEventListener("pointerdown",($)=>{let q=this.#k($.clientX,$.clientY);if(this.#E(q),this.#R){this.#x($);return}let J=this.#D($.clientX,$.clientY);this.#f(J.x,J.y,"input"),this.#T("change")},{signal:_}),this.#$.addEventListener("pointermove",($)=>{if(this.#W)return;let q=this.#k($.clientX,$.clientY);this.#E(q)},{signal:_}),this.#$.addEventListener("pointerleave",()=>{this.#P()},{signal:_}),this.#j.addEventListener("keydown",($)=>{if(!this.#g($))return;$.preventDefault(),$.stopPropagation()},{signal:_});let Z=($,q)=>{if(!$)return;let J=(Q)=>{let j=Number.parseFloat(Q.target.value);if(!Number.isFinite(j))return;if(q==="x")this.#f(j,this.#_,"input");else this.#f(this.#Z,j,"input")};$.addEventListener("input",J,{signal:_}),$.addEventListener("change",J,{signal:_}),$.addEventListener("focusout",()=>{this.#T("change")},{signal:_})};Z(this.#K,"x"),Z(this.#Q,"y")}}A("fig-origin-grid",k0);class V_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=null;#W=!1;#N={x:0.5,y:0.5};#X=!1;constructor(){super();this.position={x:0.5,y:0.5},this.isDragging=!1,this.plane=null,this.cursor=null,this.xInput=null,this.yInput=null,this.coordinates="screen",this.#Z=(_)=>this.#A(_),this.#_=()=>{this.isDragging=!0,this.plane?.classList.add("dragging")},this.#q=(_)=>this.#H(_),this.#$=()=>this.#T(),this.#J=(_)=>this.#Y(_),this.#j=(_)=>this.#F(_),this.#K=()=>this.#V(),this.#Q=()=>this.#V()}#G(){this.#M(),this.#k(),this.#E(),this.#f(),this.#X=!0}connectedCallback(){u(this,()=>{if(this.precision=this.getAttribute("precision")||3,this.precision=parseInt(this.precision),this.transform=this.getAttribute("transform")||1,this.transform=Number(this.transform),this.coordinates=this.getAttribute("coordinates")||"screen",m(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),!this.hasAttribute("value"))this.setAttribute("value","50% 50%");if(this.querySelector(".fig-input-joystick-plane")){this.#G();return}this.#R(),this.#M(),this.#k(),this.#E(),this.#f(),this.#X=!0})}#L(_){return this.coordinates==="math"?1-_:_}disconnectedCallback(){this.#O()}get#U(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#R(){let _=this.#B(),Z=Y("div",{className:"fig-input-joystick-plane-container"}),$=(j,W)=>W?Y("label",{className:["fig-joystick-axis-label",j].join(" "),"aria-hidden":"true"},W):null;Z.append(...[$("left",_.left),$("right",_.right),$("top",_.top),$("bottom",_.bottom)].filter(Boolean));let q=Y("div",{className:"fig-input-joystick-plane"},[Y("div",{className:"fig-input-joystick-guides"}),Y("fig-handle",{drag:!0,"drag-surface":".fig-input-joystick-plane","drag-axes":"x,y","drag-snapping":"modifier"})]),J=Y("fig-tooltip",{text:"Reset"},Y("fig-button",{variant:"ghost",icon:"true",className:"fig-joystick-reset","aria-label":"Reset to default"},h("reset",{size:"small"})));Z.append(q,J);let Q=[Z];if(this.#U){let j=(W,K)=>Y("fig-input-number",{name:W,step:"1",value:K,min:"0",max:"100",units:"%"},Y("span",{slot:"prepend"},W.toUpperCase()));Q.push(Y("div",{className:"joystick-values"},[j("x",(this.position.x*100).toFixed(this.precision)),j("y",(this.position.y*100).toFixed(this.precision))]))}this.replaceChildren(...Q)}#B(){let _=(this.getAttribute("axis-labels")||"").trim();if(!_)return{left:"",right:"",top:"",bottom:""};let Z=_.split(/[\s,]+/).filter(Boolean);if(Z.length===1)return{left:"",right:"",top:Z[0],bottom:""};if(Z.length===2){let[$,q]=Z;return{left:$,right:"",top:"",bottom:q}}if(Z.length===4){let[$,q,J,Q]=Z;return{left:$,right:q,top:J,bottom:Q}}return{left:"",right:"",top:"",bottom:""}}#M(){this.plane=this.querySelector(".fig-input-joystick-plane"),this.cursor=this.querySelector("fig-handle"),this.xInput=this.querySelector("fig-input-number[name='x']"),this.yInput=this.querySelector("fig-input-number[name='y']"),this.plane?.addEventListener("pointerdown",this.#Z),this.cursor?.addEventListener("pointerdown",this.#_),this.cursor?.addEventListener("input",this.#q),this.cursor?.addEventListener("change",this.#$);let _=this.querySelector(".fig-joystick-reset");if(_)_.addEventListener("click",()=>this.#b());if(this.#U&&this.xInput&&this.yInput)this.xInput.addEventListener("input",this.#J),this.xInput.addEventListener("change",this.#J),this.xInput.addEventListener("focusout",this.#K),this.yInput.addEventListener("input",this.#j),this.yInput.addEventListener("change",this.#j),this.yInput.addEventListener("focusout",this.#Q)}#O(){if(this.plane?.removeEventListener("pointerdown",this.#Z),this.cursor?.removeEventListener("pointerdown",this.#_),this.cursor?.removeEventListener("input",this.#q),this.cursor?.removeEventListener("change",this.#$),this.plane?.classList.remove("dragging"),this.isDragging=!1,this.#U&&this.xInput&&this.yInput)this.xInput.removeEventListener("input",this.#J),this.xInput.removeEventListener("change",this.#J),this.xInput.removeEventListener("focusout",this.#K),this.yInput.removeEventListener("input",this.#j),this.yInput.removeEventListener("change",this.#j),this.yInput.removeEventListener("focusout",this.#Q)}#Y(_){let Z=Number.parseFloat(_.target.value);if(!Number.isFinite(Z))return;this.position.x=Math.max(0,Math.min(1,Z/100)),this.#k(),this.#E(),this.#z()}#F(_){let Z=Number.parseFloat(_.target.value);if(!Number.isFinite(Z))return;this.position.y=Math.max(0,Math.min(1,Z/100)),this.#k(),this.#E(),this.#z()}#V(){this.#E(),this.#C()}#I(_,Z,{syncHandle:$=!0}={}){let q=Math.max(0,Math.min(1,_)),J=Math.max(0,Math.min(1,Z)),Q=this.coordinates==="math"?1-J:J;if(this.position={x:q,y:Q},$)this.#k();this.#P(),this.#E()}#A(_){if(!this.plane||!this.cursor)return;if(_.target?.closest?.(".fig-joystick-reset, fig-tooltip, fig-handle"))return;let Z=this.plane.getBoundingClientRect(),$=Z.width>0?(_.clientX-Z.left)/Z.width:0.5,q=Z.height>0?(_.clientY-Z.top)/Z.height:0.5;this.cursor.value=`${Math.round($*100)}% ${Math.round(q*100)}%`,this.#I($,q,{syncHandle:!1}),this.#z(),this.#C()}#H(_){let Z=_.detail??{};if(typeof Z.px!=="number"||typeof Z.py!=="number")return;this.#I(Z.px,Z.py,{syncHandle:!1}),this.#z()}#T(){this.isDragging=!1,this.plane?.classList.remove("dragging"),this.#E(),this.#C()}#z(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value,x:this.position.x,y:this.position.y}}))}#C(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value,x:this.position.x,y:this.position.y}}))}#k(){let _=this.#L(this.position.y);if(this.cursor)this.cursor.value=`${this.position.x*100}% ${_*100}%`;this.#P()}#P(){if(this.#U&&this.xInput&&this.yInput)this.xInput.setAttribute("value",Math.round(this.position.x*100)),this.yInput.setAttribute("value",Math.round(this.position.y*100))}#E(){let _=this.value;if(this.getAttribute("value")!==_)this.#W=!0,this.setAttribute("value",_),this.#W=!1;this.#f()}#f(){let _=this.#N,Z=Math.round(this.position.x*100)===Math.round(_.x*100)&&Math.round(this.position.y*100)===Math.round(_.y*100);this.toggleAttribute("default",Z),this.style.setProperty("--is-not-default",Z?"0":"1")}#b(){this.position={...this.#N},this.#k(),this.#E(),this.#z(),this.#C()}focus(){this.cursor?.focus()}static get observedAttributes(){return["value","precision","transform","fields","coordinates","aspect-ratio","axis-labels"]}get value(){return`${Math.round(this.position.x*100)}% ${Math.round(this.position.y*100)}%`}set value(_){let Z=_==null?"":String(_).trim();if(!Z)this.position={x:0.5,y:0.5};else{let $=Z.split(/[\s,]+/).filter(Boolean),q=(j)=>{if(!j)return 0.5;let W=j.includes("%"),K=Number.parseFloat(j.replace(/%/g,"").trim());if(!Number.isFinite(K))return 0.5;let N=W||Math.abs(K)>1?K/100:K;return Math.max(0,Math.min(1,N))},J=q($[0]),Q=q($[1]??$[0]);this.position={x:J,y:Q}}if(this.#X)this.#k(),this.#f()}attributeChangedCallback(_,Z,$){if(_==="aspect-ratio"){m(this,"--aspect-ratio",$);return}if(_==="value"){if(this.#W||this.isDragging)return;this.value=$}if(_==="precision")this.precision=parseInt($);if(_==="transform")this.transform=Number($);if(_==="fields"&&$!==Z)this.#O(),this.#R(),this.#M(),this.#k();if(_==="axis-labels"&&$!==Z)this.#O(),this.#R(),this.#M(),this.#k();if(_==="coordinates")this.coordinates=$||"screen",this.#k()}}A("fig-joystick",V_);class I0 extends HTMLElement{get durationPropertyName(){return this.localName==="fig-skeleton"?"--fig-skeleton-duration":"--fig-shimmer-duration"}connectedCallback(){let _=this.getAttribute("duration");if(_)this.style.setProperty(this.durationPropertyName,_);this.#Z()}static get observedAttributes(){return["duration","playing","aria-label","aria-labelledby"]}get playing(){return this.getAttribute("playing")!=="false"}set playing(_){if(_)this.removeAttribute("playing");else this.setAttribute("playing","false")}attributeChangedCallback(_,Z,$){if(_==="duration")this.style.setProperty(this.durationPropertyName,$||"1.5s");if(_==="playing"||_==="aria-label"||_==="aria-labelledby")this.#Z()}#Z(){let _=this.playing;if(this.setAttribute("aria-busy",_?"true":"false"),this.hasAttribute("aria-label")||this.hasAttribute("aria-labelledby")){if(!this.hasAttribute("role"))this.setAttribute("role","status");this.removeAttribute("aria-hidden")}else this.removeAttribute("role"),this.setAttribute("aria-hidden","true")}}A("fig-shimmer",I0);class S_ extends I0{connectedCallback(){super.connectedCallback(),this.inert=!0,this.setAttribute("inert","")}}A("fig-skeleton",S_);class w_ extends HTMLElement{static observedAttributes=["name","collapsible","open","compact","chevron"];#Z=null;#_=null;#q=null;#$=null;#J=null;connectedCallback(){this.#G()}disconnectedCallback(){this.#j()}#j(){if(this.#_?.removeEventListener("click",this.#N),this.#q?.removeEventListener("click",this.#N),this.#q?.removeEventListener("keydown",this.#X),this.#Z)this.#Z.removeEventListener("click",this.#N),this.#Z.removeEventListener("keydown",this.#X)}attributeChangedCallback(_,Z,$){if(Z===$)return;if(!this.isConnected)return;if(_==="open"){this.#K();return}this.#G()}get open(){let _=this.getAttribute("open");return _!==null&&_!=="false"}set open(_){let Z=this.open;if(_)this.setAttribute("open","true");else this.setAttribute("open","false");if(this.#K(),Z!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}#K(){if(this.hasAttribute("collapsible"))this.#q?.setAttribute("aria-expanded",String(this.open));else this.#q?.removeAttribute("aria-expanded")}#Q(){if(!this.#$)return;if(this.#J===null)this.#$.removeAttribute("compact");else this.#$.setAttribute("compact",this.#J);this.#$=null,this.#J=null}#W(){if(!(this.hasAttribute("compact")&&this.getAttribute("compact")!=="false")){this.#Q();return}if(this.#$!==this.#Z)this.#Q(),this.#$=this.#Z,this.#J=this.#Z?.getAttribute("compact")??null;this.#Z?.setAttribute("compact","")}#N=(_)=>{_.stopPropagation(),this.open=!this.open};#X=(_)=>{if(_.key!=="Enter"&&_.key!==" ")return;_.preventDefault(),_.stopPropagation(),this.open=!this.open};#G(){this.#j();let _=this.hasAttribute("collapsible"),$=this.getAttribute("name")||(_?"Group":null),q=this.querySelector(":scope > fig-header:not([data-generated])");if(!$&&!_&&!q){if(this.#Z&&this.#Z.dataset.generated)this.#Q(),this.#Z.remove(),this.#Z=null,this.#_=null,this.#q=null;return}if(q)this.querySelectorAll(":scope > fig-header[data-generated]").forEach((Q)=>Q.remove()),this.#Z=q;else if(!this.#Z||!this.#Z.dataset.generated)this.#Z=document.createElement("fig-header"),this.#Z.setAttribute("borderless",""),this.#Z.dataset.generated="true",this.prepend(this.#Z);this.#W();let J=this.#Z.querySelector("h3");if(!J)J=document.createElement("h3"),this.#Z.prepend(J);if(this.#q=J,!J.id)J.id=p();if(this.#Z.dataset.generated)J.textContent=$;if(!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-labelledby",J.id);if(_){let Q=this.#Z.querySelector(".fig-group-chevron");if(!Q)Q=h("chevron",{size:"small",className:"fig-group-chevron"});let j=this.getAttribute("chevron")==="end";if(Q.setAttribute("size",j?"medium":"small"),j){if(J.nextSibling!==Q)this.#Z.insertBefore(Q,J.nextSibling)}else if(J.previousSibling!==Q)this.#Z.insertBefore(Q,J);if(this.#_=Q,this.#Z.removeAttribute("role"),this.#Z.removeAttribute("tabindex"),this.#Z.removeAttribute("aria-expanded"),J.setAttribute("role","button"),J.setAttribute("tabindex","0"),J.setAttribute("aria-expanded",String(this.open)),J.addEventListener("click",this.#N),J.addEventListener("keydown",this.#X),Q.addEventListener("click",this.#N),!this.hasAttribute("open"))this.setAttribute("open","false"),J.setAttribute("aria-expanded","false")}else{if(J.removeAttribute("role"),J.removeAttribute("tabindex"),J.removeAttribute("aria-expanded"),this.#Z.removeAttribute("role"),this.#Z.removeAttribute("tabindex"),this.#Z.removeAttribute("aria-expanded"),this.#_)this.#_.remove(),this.#_=null;this.removeAttribute("open")}}}A("fig-group",w_);class x_ extends HTMLElement{}A("fig-header",x_);class b_ extends HTMLElement{}A("fig-footer",b_);class y_ extends HTMLElement{connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","status");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-label","Loading")}}A("fig-spinner",y_);class h_ extends HTMLElement{static get observedAttributes(){return["fit","aspect-ratio"]}connectedCallback(){this.#Z(),this.#_()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="fit")this.#Z();if(_==="aspect-ratio")this.#_()}#Z(){let _=this.getAttribute("fit");if(_)this.style.setProperty("--fig-preview-fit",_);else this.style.removeProperty("--fig-preview-fit")}#_(){let _=this.getAttribute("aspect-ratio");if(_)this.style.setProperty("--fig-preview-aspect-ratio",_);else this.style.removeProperty("--fig-preview-aspect-ratio")}}A("fig-preview",h_);var R1={chevron:{medium:"--icon-24-chevron",small:"--icon-16-chevron"},checkmark:{medium:"--icon-24-checkmark",small:"--icon-16-checkmark"},reset:{medium:"--icon-24-reset",small:"--icon-16-reset"},"arrow-left":{medium:"--icon-24-arrow-left",small:"--icon-16-arrow-left"},steppers:"--icon-24-steppers",eyedropper:"--icon-24-eyedropper",add:"--icon-24-add",send:{medium:"--icon-24-send",small:"--icon-16-send"},adjust:{medium:"--icon-24-adjust",small:"--icon-16-adjust"},minus:"--icon-24-minus",back:"--icon-24-back",forward:"--icon-24-forward",close:{medium:"--icon-24-close",small:"--icon-16-close"},rotate:"--icon-24-rotate",swap:"--icon-24-swap",play:"--icon-24-play",pause:"--icon-24-pause",search:"--icon-24-search",download:"--icon-24-download",upload:"--icon-24-upload",sun:"--icon-24-sun",moon:"--icon-24-moon",edit:{medium:"--icon-24-edit",small:"--icon-16-edit"},settings:{medium:"--icon-24-settings",small:"--icon-16-settings"},more:{medium:"--icon-24-more",small:"--icon-16-more"},visible:{medium:"--icon-24-visible",small:"--icon-16-visible"},hidden:{medium:"--icon-24-hidden",small:"--icon-16-hidden"},globe:{medium:"--icon-24-globe",small:"--icon-16-globe"},warning:{medium:"--icon-24-warning",small:"--icon-16-warning"},copy:{medium:"--icon-24-copy",small:"--icon-16-copy"},trash:{medium:"--icon-24-trash",small:"--icon-16-trash"}};function Y1(_,Z="medium"){let $=_&&R1[_];if(!$)return"";let q=typeof $==="string"?$:$[Z==="small"?"small":"medium"];return q?`var(${q})`:""}var O1={primary:"--figma-color-icon",secondary:"--figma-color-icon-secondary",tertiary:"--figma-color-icon-tertiary",disabled:"--figma-color-icon-disabled",brand:"--figma-color-icon-brand",component:"--figma-color-icon-component",danger:"--figma-color-icon-danger",success:"--figma-color-icon-success",warning:"--figma-color-icon-warning",selected:"--figma-color-icon-selected",hover:"--figma-color-icon-hover",pressed:"--figma-color-icon-pressed",onbrand:"--figma-color-icon-onbrand",oncomponent:"--figma-color-icon-oncomponent",ondanger:"--figma-color-icon-ondanger",ondisabled:"--figma-color-icon-ondisabled",oninverse:"--figma-color-icon-oninverse",onselected:"--figma-color-icon-onselected",onsuccess:"--figma-color-icon-onsuccess",onwarning:"--figma-color-icon-onwarning"};function B1(_){if(!_)return"";if(_.startsWith("var("))return _;let Z=O1[_.toLowerCase()];return Z?`var(${Z})`:_}class v_ extends HTMLElement{static get observedAttributes(){return["name","size","color"]}connectedCallback(){this.#Z()}attributeChangedCallback(_,Z,$){if(Z!==$)this.#Z()}#Z(){let _=this.getAttribute("name"),Z=this.getAttribute("size")||"medium",$=Y1(_,Z);if($)this.style.setProperty("--icon",$);else this.style.removeProperty("--icon");if(Z==="small")this.style.setProperty("--size","var(--spacer-3)");else this.style.removeProperty("--size");let q=B1(this.getAttribute("color"));if(q)this.style.backgroundColor=q,this.style.setProperty("--icon-color",q);else this.style.removeProperty("background-color"),this.style.removeProperty("--icon-color");if(!this.hasAttribute("aria-hidden"))this.setAttribute("aria-hidden","true")}}A("fig-icon",v_);class g_ extends HTMLElement{}A("fig-content",g_);class m_ extends HTMLElement{}A("fig-tab-content",m_);class u_ extends HTMLElement{}A("fig-button-combo",u_);class p_ extends HTMLElement{}A("fig-input-combo",p_);class c_ extends HTMLElement{static get observedAttributes(){return["gap","columns","min-width"]}connectedCallback(){this.#Z()}attributeChangedCallback(){this.#Z()}#Z(){let _=this.getAttribute("gap")?.trim();this.#_("--fig-stack-gap",_&&/^(\d+(-5)?|half)$/.test(_)?`var(--spacer-${_})`:_);let Z=this.getAttribute("columns")?.trim();this.#_("--fig-stack-columns",Z&&/^\d+$/.test(Z)?`repeat(${Z}, minmax(0, 1fr))`:Z),this.#_("--fig-stack-min-width",this.getAttribute("min-width")?.trim())}#_(_,Z){if(Z)this.style.setProperty(_,Z);else this.style.removeProperty(_)}}A("fig-stack",c_);class d_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=this.#O.bind(this);#J=this.#Y.bind(this);static get observedAttributes(){return["value","selected","disabled","alpha","control","aria-label","aria-labelledby","aria-describedby"]}get#j(){return this.getAttribute("control")||"color"}connectedCallback(){this.#N(),this.#R()}disconnectedCallback(){this.#K(),this.removeEventListener("click",this.#X)}#K(){if(this.#Z)this.#Z.removeEventListener("input",this.#$),this.#Z.removeEventListener("change",this.#J);if(this.#_)this.#_.removeEventListener("input",this.#$),this.#_.removeEventListener("change",this.#J);if(this.#q)this.#q.disconnect(),this.#q=null}#Q(){if(this.#q)this.#q.disconnect(),this.#q=null;if(!this.#_)return;this.#q=new MutationObserver(()=>{if(this.#_?.hasAttribute("selected")&&this.#_.getAttribute("selected")!=="false"){if(!this.hasAttribute("selected"))this.setAttribute("selected","")}else if(this.hasAttribute("selected"))this.removeAttribute("selected")}),this.#q.observe(this.#_,{attributes:!0,attributeFilter:["selected"]})}get#W(){let _=this.getAttribute("alpha");return _===null||_!=="false"}#N(){this.#K();let _=this.#j;if(_==="add"||_==="remove"){let W=_==="add"?"add":"minus",K=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");this.replaceChildren(Y("fig-button",{icon:!0,variant:"ghost","aria-label":K},h(W))),this.#Z=null,this.#_=null,this.addEventListener("click",this.#X),this.#B();return}this.removeEventListener("click",this.#X);let Z=(this.getAttribute("value")||"").trim(),$=this.#U(Z),q=this.#L(Z),J=q<1?JSON.stringify({type:"solid",color:$,opacity:Math.round(q*100)}):JSON.stringify({type:"solid",color:$}),Q=Y("fig-swatch",{background:$,alpha:q<1?q:null}),j=null;if(l())j=Y("fig-fill-picker",{mode:"solid",alpha:this.#W?null:"false",value:J},Q),this.replaceChildren(j);else this.replaceChildren(Q);if(this.#Z=j,this.#_=Q,this.#Z?.addEventListener("input",this.#$),this.#Z?.addEventListener("change",this.#J),!this.#Z)this.#_?.addEventListener("input",this.#$),this.#_?.addEventListener("change",this.#J);this.#Q(),this.#B()}#X=()=>{let _=this.#j;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,composed:!0}))};#G(_){if(!_)return"#D9D9D9";let Z=_.replace("#","").trim();if(Z.length===3||Z.length===4){let[$,q,J]=Z;return`#${$}${$}${q}${q}${J}${J}`.toUpperCase()}if(Z.length===6||Z.length===8)return`#${Z.slice(0,6)}`.toUpperCase();return"#D9D9D9"}#L(_){if(!_)return 1;let Z=String(_).trim(),$=Z.replace(/^#/,"");if(/^[0-9a-f]{4}$/i.test($)){let J=$[3];return parseInt(`${J}${J}`,16)/255}if(/^[0-9a-f]{8}$/i.test($))return parseInt($.slice(6,8),16)/255;let q=Z.match(/rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*([\d.]+)\s*\)/i);if(q)return parseFloat(q[1]);return 1}#U(_){if(!_)return"#D9D9D9";let Z=String(_).trim();if(Z.startsWith("{"))try{let $=JSON.parse(Z);if($?.color)return this.#U($.color)}catch{}if(Z.startsWith("#"))return this.#G(Z);if(/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(Z))return this.#G(Z);try{let{ctx:$}=H0(1,1);$.fillStyle="#000000",$.fillStyle=Z;let q=$.fillStyle;if(q.startsWith("#"))return this.#G(q);let J=q.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(J){let Q=(j)=>Math.max(0,Math.min(255,Number(j))).toString(16).padStart(2,"0");return`#${Q(J[1])}${Q(J[2])}${Q(J[3])}`.toUpperCase()}}catch{}return"#D9D9D9"}#R(){let _=this.getAttribute("value"),Z=this.#U(_),$=this.#L(_);if(_!==Z&&$>=1){this.setAttribute("value",Z);return}if(this.#Z){this.#B();let q=$<1?{type:"solid",color:Z,opacity:Math.round($*100)}:{type:"solid",color:Z};if(this.#Z.setAttribute("value",JSON.stringify(q)),this.#W)this.#Z.removeAttribute("alpha");else this.#Z.setAttribute("alpha","false");if(F(this,"disabled"))this.#Z.setAttribute("disabled","");else this.#Z.removeAttribute("disabled")}if(this.#_){if(this.#B(),this.#_.setAttribute("background",Z),$<1)this.#_.setAttribute("alpha",String($));else this.#_.removeAttribute("alpha");if(F(this,"disabled"))this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled")}}#B(){let _=this.#j,Z=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",$=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(this.setAttribute("aria-disabled",Z?"true":"false"),this.setAttribute("aria-pressed",$?"true":"false"),_==="add"||_==="remove"){let W=this.querySelector("fig-button"),K=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");if(W?.setAttribute("aria-label",K),Z)W?.setAttribute("disabled","");else W?.removeAttribute("disabled");return}let q=this.#Z||this.#_;if(!q)return;let J=this.getAttribute("aria-label")||"Color stop",Q=this.getAttribute("aria-labelledby"),j=this.getAttribute("aria-describedby");if(Q)q.setAttribute("aria-labelledby",Q),q.removeAttribute("aria-label");else q.setAttribute("aria-label",J),q.removeAttribute("aria-labelledby");if(j)q.setAttribute("aria-describedby",j);else q.removeAttribute("aria-describedby")}#M(_,Z){let $=this.#U(_?.color),q=this.#U(this.getAttribute("value"));if($!==q)this.setAttribute("value",$);else this.#R();let J={color:this.value};if(this.#W){if(_?.opacity!==void 0)J.opacity=_.opacity;else if(_?.alpha!==void 0)J.opacity=Math.round(_.alpha*100)}Object.assign(J,r(J.color,this.#W?_?.alpha:1,J.opacity)),this.dispatchEvent(new CustomEvent(Z,{bubbles:!0,cancelable:!0,composed:!0,detail:J}))}#O(_){_.stopPropagation(),this.#M(_.detail||{color:_.target?.value},"input")}#Y(_){_.stopPropagation(),this.#M(_.detail||{color:_.target?.value},"change")}attributeChangedCallback(_,Z,$){if(Z===$)return;if(!this.isConnected)return;switch(_){case"control":this.#N();break;case"value":case"selected":case"disabled":case"aria-label":case"aria-labelledby":case"aria-describedby":this.#R(),this.#B();break}}get value(){return this.#U(this.getAttribute("value"))}set value(_){if(_===null||_===void 0||_===""){this.removeAttribute("value");return}this.setAttribute("value",this.#U(_))}get selected(){return F(this,"selected")}set selected(_){this.toggleAttribute("selected",Boolean(_))}get disabled(){return F(this,"disabled")}set disabled(_){this.toggleAttribute("disabled",Boolean(_))}}A("fig-color-tip",d_);class s_ extends HTMLElement{static get observedAttributes(){return["selected","disabled"]}connectedCallback(){if(this.setAttribute("role","option"),!this.hasAttribute("tabindex"))this.setAttribute("tabindex","0");if(this.setAttribute("aria-selected",F(this,"selected")?"true":"false"),F(this,"disabled"))this.setAttribute("aria-disabled","true")}attributeChangedCallback(_){if(_==="selected")this.setAttribute("aria-selected",F(this,"selected")?"true":"false");if(_==="disabled")if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex","0")}}A("fig-choice",s_);class o_ extends HTMLElement{#Z=null;#_=this.#F.bind(this);#q=this.#V.bind(this);#$=this.#A.bind(this);#J=null;#j=null;#K=null;#Q=null;#W=null;#N=!1;constructor(){super()}static get observedAttributes(){return["value","disabled","choice-element","columns","drag","layout","overflow","loop","auto-scroll"]}get#X(){return this.getAttribute("overflow")==="scrollbar"?"scrollbar":"buttons"}get#G(){let _=this.getAttribute("drag");return _===null||_!=="false"}get autoScroll(){let _=this.getAttribute("auto-scroll");return _===null||_!=="false"}set autoScroll(_){if(_===!1||_==="false"||_===null)this.setAttribute("auto-scroll","false");else this.removeAttribute("auto-scroll")}get scrollBehavior(){return this.getAttribute("scroll-behavior")==="auto"?"auto":"smooth"}set scrollBehavior(_){if(_==="auto"||_==="smooth")this.setAttribute("scroll-behavior",_);else this.removeAttribute("scroll-behavior")}get#L(){return this.getAttribute("choice-element")||"fig-choice"}#U(){let _=this.getAttribute("columns"),Z=_===null?NaN:Number(_),$=Number.isInteger(Z)&&Z>0,q=$?Z:2;if($)this.style.setProperty("--fig-chooser-grid-columns",String(q));else this.style.removeProperty("--fig-chooser-grid-columns");let J=this.getAttribute("layout")==="grid";this.choices.forEach((Q,j)=>{Q.toggleAttribute("data-fig-chooser-first-row",J&&j<q)})}get choices(){return Array.from(this.querySelectorAll(`:scope > ${this.#L}`))}get selectedChoice(){return this.#Z}set selectedChoice(_){if(_&&!this.contains(_))return;let Z=this.choices;for(let q of Z){let J=q===_,Q=F(q,"selected");if(J&&!Q)q.setAttribute("selected","");else if(!J&&Q)q.removeAttribute("selected")}this.#Z=_??null;let $=_?.getAttribute("value")??"";if(this.getAttribute("value")!==$)this.setAttribute("value",$);if(this.autoScroll)this.#h(_)}get value(){return this.#Z?.getAttribute("value")??""}set value(_){if(_===null||_===void 0||_===""){this.setAttribute("value","");return}this.setAttribute("value",String(_))}scrollSelectionIntoView(_={}){if(!this.#Z)return;this.#h(this.#Z,_)}connectedCallback(){if(this.setAttribute("role","listbox"),this.shadowRoot)this.shadowRoot.replaceChildren();this.#U(),this.#C(),this.addEventListener("click",this.#_),this.addEventListener("keydown",this.#q),this.addEventListener("scroll",this.#$),this.#k(),this.#T(),this.#g(),this.#H(),this.#M(),u(this,()=>{this.#B(),this.#A(),this.#R()})}#R(){let _=()=>{if(!this.isConnected||!this.autoScroll)return;if(this.#Z)this.#h(this.#Z)},Z=()=>{let $=this.querySelectorAll("img, video");for(let q of $){if(q.tagName==="IMG"?q.complete:q.readyState>=1)continue;let J=()=>{q.removeEventListener("load",J),q.removeEventListener("loadedmetadata",J),q.removeEventListener("error",J),_()};q.addEventListener("load",J),q.addEventListener("loadedmetadata",J),q.addEventListener("error",J)}};requestAnimationFrame(()=>{Z(),_()})}disconnectedCallback(){this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#q),this.removeEventListener("scroll",this.#$),this.#z(),this.#J?.disconnect(),this.#J=null,this.#j?.disconnect(),this.#j=null,this.#P()}attributeChangedCallback(_,Z,$){if(_==="value"&&$!==Z)if($==="")this.selectedChoice=null;else if($==null)this.#B();else this.#O($);if(_==="disabled")this.#M();if(_==="choice-element")requestAnimationFrame(()=>{this.#U(),this.#B()});if(_==="columns")this.#U(),this.#D();if(_==="drag")if(this.#G)this.#T();else this.#z();if(_==="overflow")this.#k(),requestAnimationFrame(()=>this.#A());if(_==="layout"){if(this.#U(),this.#k(),$==="horizontal")this.scrollTop=0;else this.scrollLeft=0;this.#D()}if(_==="auto-scroll"&&this.autoScroll)this.#D()}#B(){let _=this.choices;if(!_.length){this.#Z=null;return}let Z=this.hasAttribute("value"),$=this.getAttribute("value");if(Z&&$===""){this.selectedChoice=null;return}if($&&this.#O($))return;let q=_.find((J)=>F(J,"selected"));if(q){this.selectedChoice=q;return}this.selectedChoice=_[0]}#M(){let _=F(this,"disabled");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");for(let Z of this.choices)if(_||F(Z,"disabled"))Z.setAttribute("aria-disabled","true"),Z.setAttribute("tabindex","-1");else Z.removeAttribute("aria-disabled"),Z.setAttribute("tabindex","0")}#O(_){let Z=this.choices;for(let $ of Z)if($.getAttribute("value")===_)return this.selectedChoice=$,!0;return!1}#Y(_){let Z=this.#L,$=_;while($&&$!==this){if($.matches(Z))return $;$=$.parentElement}return null}#F(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.#Y(_.target);if(!Z)return;if(Z.hasAttribute("disabled")&&Z.getAttribute("disabled")!=="false")return;this.selectedChoice=Z,this.#I()}#V(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let Z=this.choices.filter((Q)=>!Q.hasAttribute("disabled")||Q.getAttribute("disabled")==="false");if(!Z.length)return;let $=Z.indexOf(this.#Z),q=$,J=this.hasAttribute("loop");switch(_.key){case"ArrowDown":case"ArrowRight":if(_.preventDefault(),$<Z.length-1)q=$+1;else if(J)q=0;break;case"ArrowUp":case"ArrowLeft":if(_.preventDefault(),$>0)q=$-1;else if(J)q=Z.length-1;break;case"Home":_.preventDefault(),q=0;break;case"End":_.preventDefault(),q=Z.length-1;break;case"Enter":case" ":if(_.preventDefault(),document.activeElement?.matches(this.#L)){let Q=this.#Y(document.activeElement);if(Q&&Q!==this.#Z)this.selectedChoice=Q,this.#I()}return;default:return}if(q!==$&&Z[q])this.selectedChoice=Z[q],Z[q].focus({preventScroll:!this.autoScroll}),this.#I()}#I(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#A(){if(this.#X==="scrollbar")return;let _=this.getAttribute("layout")==="horizontal";X0(this,this,_?"x":"y")}#H(){this.#j?.disconnect(),this.#j=new ResizeObserver(()=>{this.#A(),this.#D()}),this.#j.observe(this)}#T(){if(this.#W?.bound)return;if(!this.#G)return;let _=(j)=>{if(j.button!==0)return;if(j.target.closest("[data-fig-chooser-nav]"))return;if(!(this.getAttribute("layout")==="horizontal"?this.scrollWidth>this.clientWidth:this.scrollHeight>this.clientHeight))return;this.#W.active=!0,this.#W.didDrag=!1,this.#W.startX=j.clientX,this.#W.startY=j.clientY,this.#W.scrollLeft=this.scrollLeft,this.#W.scrollTop=this.scrollTop,this.style.cursor="grab",this.style.userSelect="none"},Z=(j)=>{if(!this.#W.active)return;let W=this.getAttribute("layout")==="horizontal",K=j.clientX-this.#W.startX,N=j.clientY-this.#W.startY;if(!this.#W.didDrag&&Math.abs(W?K:N)>3)this.#W.didDrag=!0,this.style.cursor="grabbing",this.setPointerCapture(j.pointerId);if(!this.#W.didDrag)return;if(W)this.scrollLeft=this.#W.scrollLeft-K;else this.scrollTop=this.#W.scrollTop-N},$=(j)=>{if(!this.#W.active)return;let W=this.#W.didDrag;if(this.#W.active=!1,this.#W.didDrag=!1,this.style.cursor="",this.style.userSelect="",j.pointerId!==void 0)try{this.releasePointerCapture(j.pointerId)}catch{}if(W)j.preventDefault(),j.stopPropagation()},q=(j)=>{if(this.#W?.suppressClick)j.stopPropagation(),j.preventDefault(),this.#W.suppressClick=!1},J=(j)=>{if(this.#W?.didDrag)this.#W.suppressClick=!0,setTimeout(()=>{if(this.#W)this.#W.suppressClick=!1},0)},Q=(j)=>{if(this.#W?.active)j.preventDefault()};this.#W={active:!1,didDrag:!1,suppressClick:!1,startX:0,startY:0,scrollLeft:0,scrollTop:0,bound:!0,onPointerDown:_,onPointerMove:Z,onPointerUp:$,onClick:q,onPointerUpCapture:J,onDragStart:Q},this.addEventListener("pointerdown",_),window.addEventListener("pointermove",Z),window.addEventListener("pointerup",$),this.addEventListener("pointerup",J,!0),this.addEventListener("click",q,!0),this.addEventListener("dragstart",Q)}#z(){if(!this.#W?.bound)return;this.removeEventListener("pointerdown",this.#W.onPointerDown),window.removeEventListener("pointermove",this.#W.onPointerMove),window.removeEventListener("pointerup",this.#W.onPointerUp),this.removeEventListener("pointerup",this.#W.onPointerUpCapture,!0),this.removeEventListener("click",this.#W.onClick,!0),this.removeEventListener("dragstart",this.#W.onDragStart),this.style.cursor="",this.style.userSelect="",this.#W=null}#C(){if(this.#N)return;let _=this.querySelector(":scope > [data-fig-chooser-scroll]");if(!_)return;this.#N=!0;try{let Z=Array.from(_.childNodes);_.replaceWith(...Z)}finally{this.#N=!1}}#k(){if(this.#X==="scrollbar")this.#P(),this.classList.add("fig-overflow-fade"),this.classList.toggle("fig-overflow-fade-horizontal",this.getAttribute("layout")==="horizontal");else this.#E(),this.classList.remove("fig-overflow-fade","fig-overflow-fade-horizontal")}#P(){this.#K?.remove(),this.#Q?.remove(),this.#K=null,this.#Q=null,this.classList.remove("overflow-start","overflow-end")}#E(){if(this.#K&&this.#Q&&this.contains(this.#K)&&this.contains(this.#Q)){this.#f();return}this.#K?.remove(),this.#Q?.remove(),this.#K=null,this.#Q=null;let _=G0({owner:"chooser",startClass:"fig-chooser-nav-start",endClass:"fig-chooser-nav-end",chevronClass:"fig-chooser-nav-chevron",onStart:()=>this.#b(-1),onEnd:()=>this.#b(1)});this.#K=_.start,this.#Q=_.end,this.#f()}#f(){if(this.firstElementChild!==this.#K)this.prepend(this.#K);if(this.lastElementChild!==this.#Q)this.append(this.#Q)}#b(_){let Z=this.getAttribute("layout")==="horizontal";n(this,Z?"x":"y",_,"auto")}#D(){if(!this.autoScroll||!this.#Z)return;this.#h(this.#Z)}#h(_,Z={}){if(!_)return;let $=typeof Z==="object"&&Z!==null?Z:{},q=$.behavior==="smooth"||$.behavior==="instant"?$.behavior:"auto",J=$.block||"center",Q=$.inline||"center";requestAnimationFrame(()=>{if(!_.isConnected)return;let j=this.scrollHeight>this.clientHeight,W=this.scrollWidth>this.clientWidth;if(!W&&!j)return;let K=_.getBoundingClientRect(),N=this.getBoundingClientRect(),L={behavior:q},G=!1;if(j){let X=K.top-N.top+this.scrollTop,R=this.scrollHeight-this.clientHeight;L.top=this.#y(X,K.height,this.clientHeight,this.scrollTop,R,J),G=!0}if(W){let X=K.left-N.left+this.scrollLeft,R=this.scrollWidth-this.clientWidth;L.left=this.#y(X,K.width,this.clientWidth,this.scrollLeft,R,Q),G=!0}if(G)this.scrollTo(L);this.#A()})}#y(_,Z,$,q,J,Q){let j;if(Q==="start")j=_;else if(Q==="end")j=_+Z-$;else if(Q==="nearest"){let W=q,K=q+$,N=_+Z;if(_>=W&&N<=K)j=q;else if(_<W)j=_;else j=N-$}else j=_+Z/2-$/2;return Math.max(0,Math.min(j,J))}#g(){this.#J?.disconnect(),this.#J=new MutationObserver(()=>{if(this.#N)return;this.#C(),this.#U(),this.#k(),this.#M();let _=this.choices;if(this.#Z&&!_.includes(this.#Z))this.#Z=null,this.#B();else if(!this.#Z&&_.length)this.#B();requestAnimationFrame(()=>this.#A())}),this.#J.observe(this,{childList:!0,subtree:!1})}}A("fig-chooser",o_);class i_ extends HTMLElement{static observedAttributes=["color","selected","disabled","drag","drag-surface","drag-axes","drag-snapping","value","precision","type","tip","hit-area","hit-area-mode","aria-label","aria-labelledby"];#Z=!1;#_=!1;#q=null;#$=null;#J=!1;#j=null;#K=null;#Q=null;#W=null;get#N(){let _=(this.getAttribute("tip")||"").trim().toLowerCase();return _==="color"||_==="add"||_==="remove"?_:null}get#X(){return!this.hasAttribute("data-no-color-picker")}get#G(){let _=this.getAttribute("drag");return _!==null&&_!=="false"}get#L(){let _=(this.getAttribute("drag-axes")||"x,y").toLowerCase();return{x:_.includes("x"),y:_.includes("y")}}get#U(){let _=this.getAttribute("drag-snapping");if(_===null)return"false";let Z=_.trim().toLowerCase();if(Z==="modifier")return"modifier";if(Z===""||Z==="true")return"true";return"false"}#R(_){let Z=this.#U;if(Z==="true")return!0;if(Z==="modifier")return!!_;return!1}#B(_){if(_<0.1)return 0;if(_>0.9)return 1;if(_>0.4&&_<0.6)return 0.5;return _}#M(_,Z){if(Math.abs(_-Z)<0.1){let q=(_+Z)/2;return{x:q,y:q}}if(Math.abs(1-_-Z)<0.1)return{x:_,y:1-_};return{x:_,y:Z}}#O(){let _=this.getAttribute("drag-surface");if(!_||_==="parent")return this.parentElement;return this.closest(_)}get value(){let _=this.#O();if(!_)return"0% 0%";let{px:Z,py:$}=this.#r(_.getBoundingClientRect());return`${(Z*100).toFixed(this.precision)}% ${($*100).toFixed(this.precision)}%`}set value(_){this.setAttribute("value",_??"0% 0%")}get precision(){let _=Number(this.getAttribute("precision")??2);if(!Number.isFinite(_))return 2;return Math.max(0,Math.min(10,Math.trunc(_)))}set precision(_){if(_===null||_===void 0||_==="")this.removeAttribute("precision");else{let Z=Number(_),$=Number.isFinite(Z)?Math.max(0,Math.min(10,Math.trunc(Z))):2;this.setAttribute("precision",String($))}}#Y(_){let Z=10**this.precision,$=Math.round(_*Z)/Z;return Object.is($,-0)?0:$}#F(_){let Z=_==null?"":String(_).trim();if(!Z)return{xPct:0,yPct:0};let $=Z.split(/[\s,]+/).filter(Boolean),q=(j)=>{if(!j)return 0;let W=j.includes("px"),K=j.includes("%"),N=parseFloat(j.replace(/[%px]/g,""));if(!Number.isFinite(N))return 0;if(W)return{px:N};if(K||Math.abs(N)>1)return Math.max(0,Math.min(100,N));return Math.max(0,Math.min(100,N*100))},J=q($[0]),Q=q($[1]??$[0]);return{xToken:J,yToken:Q}}#V(_){let Z=this.#O();if(!Z)return;let{xToken:$,yToken:q}=this.#F(_),J=Z.getBoundingClientRect(),Q=(K,N)=>{if(K&&typeof K==="object"&&"px"in K)return Math.max(0,Math.min(N,K.px));return null},j=(K)=>{let N=typeof K==="number"?K:0;return`${this.#Y(N)}%`},W=this.#L;if(this.#I(W),W.x){let K=Q($,J.width);this.style.left=K===null?j($):`${this.#Y(K)}px`}if(W.y){let K=Q(q,J.height);this.style.top=K===null?j(q):`${this.#Y(K)}px`}}#I(_=this.#L){this.style.setProperty("--fig-handle-position-translate",`${_.x?"-50%":"0"} ${_.y?"-50%":"0"}`)}#A(){this.#J=!0,this.setAttribute("value",this.value),this.#J=!1}get#H(){return this.getAttribute("hit-area-mode")||"handle"}#T(){let _=this.getAttribute("hit-area");if(!_)return null;let Z=_.trim().split(/\s+/),$=0,q=0,J=!1,Q=[];for(let j of Z){if(j==="circle"){J=!0;continue}let W=parseFloat(j);if(Number.isFinite(W))Q.push(W)}if(Q.length>=2)$=Q[0],q=Q[1];else if(Q.length===1)$=Q[0],q=Q[0];else return null;return{vPad:$,hPad:q,circle:J}}#z(){let _=this.#T();if(!_){if(this.#W)this.#W.remove(),this.#W=null;this.style.removeProperty("--fig-handle-hit-area-size");return}if(!this.#W){let Z=document.createElement("div");Z.classList.add("fig-handle-hit-area"),Z.addEventListener("pointerdown",($)=>this.#C($)),this.prepend(Z),this.#W=Z}if(this.style.setProperty("--fig-handle-hit-area-size",String(_.hPad*2)),_.circle)this.#W.style.borderRadius="50%";else this.#W.style.borderRadius="inherit"}#C(_){if(F(this,"disabled"))return;if(_.target!==this.#W)return;if(this.#H==="delegate")_.preventDefault(),_.stopPropagation(),this.dispatchEvent(new CustomEvent("hitareadown",{bubbles:!0,detail:{originalEvent:_}}));else this.#g(_)}connectedCallback(){this.#h(),this.#D(),this.#z(),this.addEventListener("click",this.#k),this.addEventListener("blur",this.#E),document.addEventListener("pointerdown",this.#P),document.addEventListener("keydown",this.#f);let _=this.getAttribute("value");if(_)this.#V(_);if(this.#N)this.#o()}disconnectedCallback(){if(this.#y(),this.#s(),this.#p(),this.#c(),this.#W)this.#W.remove(),this.#W=null;this.removeEventListener("click",this.#k),this.removeEventListener("blur",this.#E),document.removeEventListener("pointerdown",this.#P),document.removeEventListener("keydown",this.#f)}select(){if(F(this,"disabled"))return;this.setAttribute("selected","")}deselect(){this.removeAttribute("selected")}#k=(_)=>{if(this.#_){this.#_=!1;return}if(this.select(),this.getAttribute("type")==="color"&&this.#X&&!this.#N)this.#v()};#P=(_)=>{if(this.contains(_.target))return;if((this.#j||this.#K)&&_.target.closest?.("dialog, [popover]"))return;this.deselect()};#E=()=>{this.removeAttribute("data-fig-pointer-focus")};#f=(_)=>{if(this.removeAttribute("data-fig-pointer-focus"),_.defaultPrevented)return;if(_.target===this&&this.#G&&["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(_.key)){if(this.#b(_)){if(_.preventDefault(),!F(this,"selected"))this.select()}return}if(_.key!=="Enter"&&_.key!==" ")return;if(_.target===this&&!F(this,"selected")){if(_.preventDefault(),this.getAttribute("type")==="color"&&this.#X&&!this.#N)this.#v();else this.select();return}if(!F(this,"selected"))return;if(this.getAttribute("type")!=="color")return;if(!this.#X)return;if(_.preventDefault(),!this.#N)this.#v()};#b(_){if(F(this,"disabled"))return!1;let Z=this.#O();if(!Z)return!1;let $=Z.getBoundingClientRect();if($.width<=0||$.height<=0)return!1;let q=this.#L,J=this.#r($),Q=_.shiftKey?0.1:0.01,j=J.px,W=J.py;switch(_.key){case"ArrowLeft":if(!q.x)return!1;j-=Q;break;case"ArrowRight":if(!q.x)return!1;j+=Q;break;case"ArrowUp":if(!q.y)return!1;W-=Q;break;case"ArrowDown":if(!q.y)return!1;W+=Q;break;case"Home":if(q.x)j=0;if(q.y)W=0;break;case"End":if(q.x)j=1;if(q.y)W=1;break;default:return!1}if(j=Math.max(0,Math.min(1,j)),W=Math.max(0,Math.min(1,W)),this.#I(q),q.x)this.style.left=`${this.#Y(j*$.width)}px`;if(q.y)this.style.top=`${this.#Y(W*$.height)}px`;this.#A();let K={...this.#r($),shiftKey:_.shiftKey,keyboard:!0};return this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:K})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:K})),!0}attributeChangedCallback(_,Z,$){if(_==="color"){if(!$||$==="false"||$==="true")this.style.removeProperty("--fill");else this.style.setProperty("--fill",$);if(this.#j&&this.#N==="color"&&$)this.#j.setAttribute("value",$);this.#S()}if(_==="drag")this.#D();if(_==="hit-area")this.#z();if(_==="selected")this.#u();if(_==="selected"||_==="disabled"||_==="type"||_==="tip"||_==="aria-label"||_==="aria-labelledby")this.#h();if(_==="value"&&!this.#J&&!this.#Z)this.#V($);if(_==="precision"&&this.isConnected&&!this.#Z&&this.hasAttribute("value"))this.#V(this.getAttribute("value")),this.#A();if(_==="tip"){if(this.#s(),this.#N)this.#p(),this.#o()}}#D(){if(this.#G&&!this.#q)this.#q=(_)=>this.#g(_),this.addEventListener("pointerdown",this.#q);else if(!this.#G&&this.#q)this.#y()}#h(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(!this.hasAttribute("role"))this.setAttribute("role","button");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex",_?"-1":"0");else if(_)this.setAttribute("tabindex","-1");if(this.setAttribute("aria-disabled",_?"true":"false"),this.setAttribute("aria-pressed",Z?"true":"false"),!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")){let $=this.#N||this.getAttribute("type")||"handle";this.setAttribute("aria-label",$==="color"?"Color handle":$==="add"?"Add handle":$==="remove"?"Remove handle":"Handle")}}#y(){if(this.#$?.(),this.#$=null,this.#q)this.removeEventListener("pointerdown",this.#q),this.#q=null;this.#Z=!1,this.#_=!1}#g(_){if(!this.#G||F(this,"disabled"))return;_.preventDefault(),this.setAttribute("data-fig-pointer-focus",""),this.focus(),this.select();let Z=this.#O();if(!Z)return;this.#$?.(),this.#Z=!0;let $=this.#L,q=null,J=this.getBoundingClientRect(),Q=J.left+J.width/2,j=J.top+J.height/2,W=_.clientX-Q,K=_.clientY-j,N=_.clientX,L=_.clientY,G=3,X=(z,T,I=!1)=>{let U=Z.getBoundingClientRect();q=U;let P=this.#r(U),D=z-W-U.left,E=T-K-U.top,f=Math.max(0,Math.min(U.width,D)),x=Math.max(0,Math.min(U.height,E)),S=U.width>0?$.x?f/U.width:P.px:0.5,c=U.height>0?$.y?x/U.height:P.py:0.5;if(this.#R(I)){if($.x)S=this.#B(S);if($.y)c=this.#B(c);if($.x&&$.y){let i=this.#M(S,c);S=i.x,c=i.y}}if(this.#I($),$.x)this.style.left=`${this.#Y(Math.max(0,Math.min(U.width,S*U.width)))}px`;if($.y)this.style.top=`${this.#Y(Math.max(0,Math.min(U.height,c*U.height)))}px`},R=(z)=>{if(!this.#Z)return;if(!this.#_){let T=z.clientX-N,I=z.clientY-L;if(T*T+I*I<G*G)return;if(this.#i(),this.classList.add("dragging"),this.style.cursor="grabbing",!F(this,"selected"))this.select()}this.#_=!0,X(z.clientX,z.clientY,z.shiftKey),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{...this.#r(q),shiftKey:z.shiftKey}}))},B=(z)=>{if(M(),this.#_){X(z.clientX,z.clientY,z.shiftKey),this.#A(),this.#V(this.getAttribute("value")),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.#r(q)}));let T=(I)=>{I.stopPropagation(),I.preventDefault()};this.addEventListener("click",T,{capture:!0,once:!0})}else this.#A();this.#_=!1},M=()=>{if(window.removeEventListener("pointermove",R),window.removeEventListener("pointerup",B),this.#Z=!1,this.style.cursor="",this.classList.remove("dragging"),this.#$===M)this.#$=null};this.#$=M,window.addEventListener("pointermove",R),window.addEventListener("pointerup",B)}showColorTip(){if(!this.#N)return;if(this.#j){this.#j.style.display="";return}this.#o()}hideColorTip(){if(!this.#j)return;this.#j.style.display="none"}#w(_=this.getAttribute("color")){let Z={color:"#D9D9D9",opacity:100},$=String(_||"").trim();if(!$)return Z;let q=(Q)=>{let j=Q.replace("#","").trim();if(j.length===3||j.length===4){let[W,K,N,L]=j;return{color:`#${W}${W}${K}${K}${N}${N}`.toUpperCase(),opacity:L?Math.round(parseInt(`${L}${L}`,16)/255*100):100}}if(j.length===6||j.length===8)return{color:`#${j.slice(0,6)}`.toUpperCase(),opacity:j.length===8?Math.round(parseInt(j.slice(6,8),16)/255*100):100};return Z},J=(Q,j,W)=>{let K=(N)=>Math.max(0,Math.min(255,Math.round(Number(N)))).toString(16).padStart(2,"0");return`#${K(Q)}${K(j)}${K(W)}`.toUpperCase()};if($.startsWith("#"))return q($);try{let{ctx:Q}=H0(1,1);Q.fillStyle="#000000",Q.fillStyle=$;let j=Q.fillStyle;if(j.startsWith("#"))return q(j);let W=j.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*([\d.]+))?/i);if(W)return{color:J(W[1],W[2],W[3]),opacity:W[4]!==void 0?Math.round(parseFloat(W[4])*100):100}}catch{}return Z}#x(){let{color:_,opacity:Z}=this.#w();return JSON.stringify(Z<100?{type:"solid",color:_,opacity:Z}:{type:"solid",color:_})}#S(){if(!this.#K)return;this.#K.setAttribute("value",this.#x())}#m(){if(!l())return null;if(this.#K)return this.#K;let _=document.createElement("fig-fill-picker");_.setAttribute("mode","solid"),_.setAttribute("alpha","true"),_.setAttribute("dialog-offset","8 8"),_.setAttribute("value",this.#x()),_.anchorElement=this;let Z=document.createElement("span");return Z.hidden=!0,_.appendChild(Z),_.addEventListener("input",this.#n),_.addEventListener("change",this.#$0),_.addEventListener("close",this.#j0),this.appendChild(_),this.#K=_,_}#v(){if(F(this,"disabled"))return;let _=this.#m();if(!_){this.#a();return}this.setAttribute("selected",""),this.#S(),_.open()}#p(){if(!this.#K)return;this.#K.removeEventListener("input",this.#n),this.#K.removeEventListener("change",this.#$0),this.#K.removeEventListener("close",this.#j0),this.#K.close(),this.#K.remove(),this.#K=null,this.removeAttribute("selected")}#d(){if(this.#Q)return this.#Q;let _=document.createElement("input");return _.type="color",_.tabIndex=-1,_.setAttribute("aria-hidden","true"),_.style.position="fixed",_.style.inlineSize="1px",_.style.blockSize="1px",_.style.opacity="0",_.style.pointerEvents="none",_.addEventListener("input",this.#K0),_.addEventListener("change",this.#Q0),this.appendChild(_),this.#Q=_,_}#a(){let _=this.#d(),{color:Z}=this.#w();_.value=Z,this.setAttribute("selected",""),_.click()}#c(){if(!this.#Q)return;this.#Q.removeEventListener("input",this.#K0),this.#Q.removeEventListener("change",this.#Q0),this.#Q.remove(),this.#Q=null}#i(){if(this.getAttribute("type")!=="color")return;this.#K?.close()}#o(){let _=this.#N;if(!_)return;if(this.#j)return;let Z=document.createElement("fig-color-tip");if(_==="add"||_==="remove")Z.setAttribute("control",_);else Z.setAttribute("value",this.getAttribute("color")||"#D9D9D9"),Z.setAttribute("alpha","true");Z.addEventListener("input",this.#N0),Z.addEventListener("change",this.#L0),Z.addEventListener("add",this.#J0),Z.addEventListener("remove",this.#J0),this.appendChild(Z),this.#j=Z,this.#u()}#s(){if(!this.#j)return;this.#j.removeEventListener("input",this.#N0),this.#j.removeEventListener("change",this.#L0),this.#j.removeEventListener("add",this.#J0),this.#j.removeEventListener("remove",this.#J0),this.#j.remove(),this.#j=null}#u(){if(!this.#j||this.#N!=="color")return;let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";this.#j.toggleAttribute("selected",_)}#l(_,Z){if(Z===void 0||Z>=100)return _;let{r:$,g:q,b:J}=e(_);return`rgba(${$}, ${q}, ${J}, ${Z/100})`}#t(_){if(!_?.color)return null;let Z=_.opacity!==void 0?_.opacity:_.alpha!==void 0?Math.round(_.alpha*100):void 0;return{color:_.color,opacity:Z,...r(_.color,_.alpha,Z)}}#n=(_)=>{_.stopPropagation();let Z=this.#t(_.detail);if(!Z)return;this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))};#$0=(_)=>{_.stopPropagation();let Z=this.#t(_.detail);if(!Z)return;this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z}))};#q0(_){let{opacity:Z}=this.#w();return{...Z<100?{color:_,opacity:Z}:{color:_},...r(_,void 0,Z)}}#K0=(_)=>{_.stopPropagation();let Z=this.#q0(_.target.value);this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))};#Q0=(_)=>{_.stopPropagation();let Z=this.#q0(_.target.value);if(this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z})),this.isConnected)this.focus()};#j0=()=>{if(!this.isConnected)return;this.setAttribute("selected",""),this.focus()};#N0=(_)=>{if(_.stopPropagation(),_.detail?.color){let Z={color:_.detail.color,opacity:_.detail.opacity,...r(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:Z}))}};#L0=(_)=>{if(_.stopPropagation(),_.detail?.color){let Z={color:_.detail.color,opacity:_.detail.opacity,...r(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#l(Z.color,Z.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:Z}))}};#J0=(_)=>{_.stopPropagation(),this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,composed:!0}))};#r(_){let Z=_||this.#O()?.getBoundingClientRect();if(!Z)return{x:0,y:0,px:0,py:0};let $=this.getBoundingClientRect(),q=this.offsetWidth/2,J=this.offsetHeight/2,Q=$.left-Z.left,j=$.top-Z.top,W=Q+q,K=j+J,N=Z.width>0?W/Z.width:0,L=Z.height>0?K/Z.height:0;return{x:this.#Y(Q),y:this.#Y(j),px:N,py:L}}}A("fig-handle",i_);class l_ extends HTMLElement{static get observedAttributes(){return["value","disabled"]}get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","menuitem");if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");this.#Z()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="disabled")this.#Z()}#Z(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else if(this.removeAttribute("aria-disabled"),!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1")}}A("fig-menu-item",l_);class P0 extends HTMLElement{#Z=null;#_=null;#q=this.#Q.bind(this);static get observedAttributes(){return["label","direction","sticky"]}get label(){return this.getAttribute("label")??""}set label(_){if(_==null||_==="")this.removeAttribute("label");else this.setAttribute("label",String(_))}connectedCallback(){this.#$(),this.#j()}disconnectedCallback(){this.#K()}attributeChangedCallback(_,Z,$){if(Z===$)return;if(this.#$(),_==="sticky")this.#j()}#$(){if(!this.hasAttribute("role"))this.setAttribute("role","separator");if(this.getAttribute("direction")==="vertical")this.setAttribute("aria-orientation","vertical");else if(!this.hasAttribute("aria-orientation"))this.setAttribute("aria-orientation","horizontal");let Z=this.label.trim();if(Z)this.setAttribute("aria-label",Z);else this.removeAttribute("aria-label")}#J(){return this.hasAttribute("sticky")&&this.getAttribute("sticky")!=="false"}#j(){if(this.#K(),!this.isConnected||!this.#J()){this.removeAttribute("stuck");return}let _=M1(this);if(this.#Z=_,_?.addEventListener("scroll",this.#q,{passive:!0}),this.#_=new ResizeObserver(this.#q),this.#_.observe(this),_ instanceof Element)this.#_.observe(_);requestAnimationFrame(this.#q)}#K(){this.#Z?.removeEventListener?.("scroll",this.#q),this.#Z=null,this.#_?.disconnect(),this.#_=null}#Q(){if(!this.#J()||!this.#Z){this.removeAttribute("stuck");return}let _=parseFloat(getComputedStyle(this).top)||0,Z=this.#Z,$=Z===document.scrollingElement||Z===document.documentElement?{top:0}:Z.getBoundingClientRect(),q=Z instanceof Element?parseFloat(getComputedStyle(Z).paddingTop)||0:0,J=$.top+q+_;this.toggleAttribute("stuck",this.getBoundingClientRect().top<=J+1)}}A("fig-separator",P0);function M1(_){let Z=_.parentElement;while(Z){let $=getComputedStyle(Z),q=$.overflowY||$.overflow;if(q&&q!=="visible"&&q!=="clip")return Z;Z=Z.parentElement}return document.scrollingElement}class r_ extends P0{}A("fig-menu-separator",r_);var A1=new Set(["FIG-MENU-ITEM","FIG-SEPARATOR","FIG-MENU-SEPARATOR"]),$0="trigger";function h0(_){return _?.nodeType===1&&A1.has(_.tagName)}function F1(_,Z){if(!_||!Z)return null;let $=Z;while($.parentElement&&$.parentElement!==_)$=$.parentElement;return $.parentElement===_?$:null}class a_ extends HTMLElement{#Z=null;#_=null;#q=null;#$=null;#J=null;#j=null;#K=null;#Q=null;#W=null;#N=null;#X=!1;#G;#L;#U;#R;#B;#M;#O=this.#D.bind(this);#Y=-1;static get observedAttributes(){return["position","offset","closedby","disabled","open","trigger"]}constructor(){super();this.#G=this.#p.bind(this),this.#L=this.#d.bind(this),this.#U=this.#c.bind(this),this.#R=this.#i.bind(this),this.#B=this.#o.bind(this),this.#M=this.#D.bind(this),this.#F()}get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}get open(){return this.hasAttribute("open")&&this.getAttribute("open")!=="false"}set open(_){if(_){if(this.#v())return;this.setAttribute("open","")}else this.removeAttribute("open")}connectedCallback(){if(this.#I(),this.#C(),this.#E(),this.#P(),this.#m(),this.open)this.#u()}disconnectedCallback(){if(this.#k(),this.#f(),document.removeEventListener("keydown",this.#R,!0),this.#K)this.#K.disconnect(),this.#K=null}attributeChangedCallback(_,Z,$){if(Z===$)return;if(_==="open"){if($===null||$==="false")this.#l();else{if(this.#v()){this.removeAttribute("open");return}this.#u()}return}if(_==="disabled"){this.#m();return}if(this.#Z&&(_==="position"||_==="offset"||_==="closedby"))if($!==null)this.#Z.setAttribute(_,$);else this.#Z.removeAttribute(_)}#F(){if(this.#X)return;this.#X=!0;let _=this.attachShadow({mode:"open"});s0(_,{icons:!0});let Z=document.createElement("style");Z.textContent=`
175
175
  :host {
176
176
  display: contents;
177
177
  }