@rogieking/figui3 8.4.0 → 8.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/fig.js +1 -1
  2. package/fig.js +9 -1
  3. package/package.json +1 -1
package/dist/fig.js CHANGED
@@ -31,4 +31,4 @@ var g_=(_,q)=>()=>(_&&(q=_(_=0)),q);var m_={};var D0=g_(()=>{/*! Vendored from @
31
31
  }
32
32
  `;let $=X(Q,{className:"fig-button-control",type:q?null:"button"},document.createElement("slot"));this.shadowRoot.replaceChildren(Z,$),this.button=$,this.button.addEventListener("click",this.#$),this.button.addEventListener("focus",this.#W),this.button.addEventListener("blur",this.#j)}let _=this.shadowRoot.querySelector("slot");_?.removeEventListener("slotchange",this.#J),_?.addEventListener("slotchange",this.#J),this.removeEventListener("keydown",this.#Z),this.addEventListener("keydown",this.#Z),this.#q=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false",this.#A()}get type(){return this.getAttribute("type")||"button"}set type(_){this.setAttribute("type",_)}get selected(){return this.#q}set selected(_){this.setAttribute("selected",_)}#N(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#U(){if(this.#N())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"),q=this.getAttribute("target");if(_)if(q)window.open(_,q);else window.location.href=_}}#L(){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.#L();if(_ instanceof HTMLSelectElement)return _;if(_?.tagName==="FIG-DROPDOWN")return _.select||_.querySelector?.("select")||null;return null}#K(_){if(this.type!=="select")return;if(_.key!=="Enter")return;if(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)return;let q=this.#G();if(!q||q.disabled||q.multiple)return;if(typeof q.showPicker!=="function")return;_.preventDefault();try{q.showPicker()}catch{}}#R(){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")}#X(){if(!this.button)return;if(!(this.button instanceof HTMLButtonElement))return;this.#Q.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.button.removeAttribute(_);else this.button.setAttribute(_,q)})}#A(){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.#B(),this.#X(),this.#R()}#B(){let _=this.#L();if(!_)return;if(this.#N()){if(!this.#_.has(_))this.#_.set(_,_.hasAttribute("disabled")&&_.getAttribute("disabled")!=="false");_.setAttribute("disabled","")}else if(this.#_.has(_)){let Q=this.#_.get(_);if(this.#_.delete(_),Q)_.setAttribute("disabled","");else _.removeAttribute("disabled")}}static get observedAttributes(){return["disabled","selected","type","aria-label","aria-labelledby","aria-describedby","title"]}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"type":{let Z=($)=>$==="select"||$==="upload";if(Z(q||"button")!==Z(Q||"button")){this.button=null,this.connectedCallback();break}this.#A();break}case"disabled":this.#A();break;case"selected":this.#q=Q!==null&&Q!=="false",this.#R();break;default:this.#X();break}}disconnectedCallback(){this.removeEventListener("keydown",this.#Z),this.shadowRoot?.querySelector("slot")?.removeEventListener("slotchange",this.#J)}}M("fig-button",v0);class g0 extends HTMLElement{#q="Menu";#_=null;#Q;#Z;#$;get label(){return this.#q}set label(_){this.#q=_}#J;constructor(){super();this.select=document.createElement("select"),this.optionsSlot=document.createElement("slot"),this.attachShadow({mode:"open"}),this.#Q=this.#U.bind(this),this.#Z=this.#L.bind(this),this.#$=this.#G.bind(this),this.#J=this.slotChange.bind(this)}#W(){this.select.addEventListener("input",this.#Q),this.select.addEventListener("change",this.#Z),this.select.addEventListener("keydown",this.#$)}#j(_){if(!_||!(_ instanceof Element))return!1;return!!_.querySelector('fig-checkbox, fig-switch, input[type="checkbox"]')}#N(){if(typeof this.select.showPicker==="function")requestAnimationFrame(()=>{try{this.select.showPicker()}catch{}})}connectedCallback(){if(this.type=this.getAttribute("type")||"select",this.#q=this.getAttribute("label")||this.#q,this.select.setAttribute("aria-label",this.#q),this.#K(),!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.#Z),this.select.removeEventListener("keydown",this.#$),this.#W()}slotChange(){let _=this.hasAttribute("value"),q=this.select.options.length>0&&this.select.selectedIndex>=0,Q=_?this.getAttribute("value"):this.type==="dropdown"?this.#_:q?this.select.value:null;while(this.select.firstChild)this.select.firstChild.remove();if(this.type==="dropdown"){let Z=document.createElement("option");Z.setAttribute("hidden","true"),Z.setAttribute("selected","true"),Z.selected=!0,this.select.appendChild(Z)}if(this.optionsSlot.assignedNodes().forEach((Z)=>{if(Z.nodeName==="OPTION"||Z.nodeName==="OPTGROUP")this.select.appendChild(Z.cloneNode(!0))}),Q!==null)this.#R(Q);if(this.type==="dropdown")this.select.selectedIndex=-1}#U(_){_.stopPropagation();let q=_.target.selectedOptions?.[0];if(this.#j(q)){if(this.type==="dropdown")this.select.selectedIndex=-1;this.#N();return}let Q=_.target.value;if(this.type==="dropdown")this.#_=Q;this.setAttribute("value",Q),this.dispatchEvent(new CustomEvent("input",{detail:Q,bubbles:!0,composed:!0}))}#L(_){_.stopPropagation();let q=_.target.selectedOptions?.[0];if(this.#j(q)){if(this.type==="dropdown")this.select.selectedIndex=-1;this.#N();return}let Q=this.type==="dropdown"?this.#_:this.select.value;if(this.type==="dropdown")this.select.selectedIndex=-1;this.dispatchEvent(new CustomEvent("change",{detail:Q,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"]}#K(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.select.disabled=_}#R(_){if(this.type==="dropdown")return;if(this.select)this.select.value=_??""}attributeChangedCallback(_,q,Q){if(_==="value")this.#R(Q);if(_==="type"){if(this.type=Q||"select",this.isConnected)this.slotChange()}if(_==="label")this.#q=Q||"Menu",this.select.setAttribute("aria-label",this.#q);if(_==="disabled")this.#K()}disconnectedCallback(){this.optionsSlot.removeEventListener("slotchange",this.#J),this.select.removeEventListener("input",this.#Q),this.select.removeEventListener("change",this.#Z),this.select.removeEventListener("keydown",this.#$)}}M("fig-dropdown",g0);class z extends HTMLElement{static#q=0;static#_=0;static#Q=1000;static#Z=null;static#$=!1;static#J=new Set;#W;#j;#N;#U;#L;#G;#K;#R;#X;#A;#B;#Y;#O=null;#F=null;#P=null;#k=!1;#z;#H=!1;constructor(){super();this.action=this.getAttribute("action")||"hover";let _=parseInt(this.getAttribute("delay"));this.delay=!isNaN(_)?_:500,this.#W=this.#V.bind(this),this.#j=this.hidePopupOutsideClick.bind(this),this.#N=this.showDelayedPopup.bind(this),this.#U=this.#E.bind(this),this.#L=()=>{if(!this.#k)this.showDelayedPopup()},this.#G=()=>{this.#k=!1,this.hidePopup()},this.#K=this.#y.bind(this),this.#R=this.#g.bind(this),this.#X=this.#v.bind(this),this.#A=this.#x.bind(this),this.#Y=this.#w.bind(this),this.#B=()=>{clearTimeout(this.timeout),this.destroy(),this.isOpen=!1}}connectedCallback(){if(z.#b(),this.setup(),this.#C(),this.setupEventListeners(),this.#O=this.closest("dialog"),this.#O)this.#O.addEventListener("close",this.#B)}disconnectedCallback(){if(clearTimeout(this.timeout),this.destroy(),this.#I(),this.#D(),document.removeEventListener("mousedown",this.#W,!0),document.removeEventListener("keydown",this.#Y,!0),this.#O)this.#O.removeEventListener("close",this.#B),this.#O=null;if(this.action==="click")document.body.removeEventListener("click",this.#j);if(clearTimeout(this.#z),z.#Z===this)z.#Z=null}#M(){return this.firstElementChild}#D(){this.#P?.disconnect(),this.#P=null}#C(){if(this.#I(),this.action==="manual")return;let _=this.#M();if(!_){if(!this.#P&&typeof MutationObserver<"u")this.#P=new MutationObserver(()=>{if(this.#M())this.#D(),this.#C()}),this.#P.observe(this,{childList:!0});return}if(this.#F=_,this.action==="hover"){if(!this.isTouchDevice())_.addEventListener("pointerenter",this.#N),_.addEventListener("pointerleave",this.#U);_.addEventListener("touchstart",this.#K,{passive:!0}),_.addEventListener("touchmove",this.#R,{passive:!0}),_.addEventListener("touchend",this.#X,{passive:!0}),_.addEventListener("touchcancel",this.#A,{passive:!0}),_.addEventListener("focus",this.#L),_.addEventListener("blur",this.#G)}else if(this.action==="click")_.addEventListener("click",this.#N),_.addEventListener("touchstart",this.#N,{passive:!0})}#I(){let _=this.#F;if(!_)return;if(this.action==="hover")_.removeEventListener("pointerenter",this.#N),_.removeEventListener("pointerleave",this.#U),_.removeEventListener("touchstart",this.#K),_.removeEventListener("touchmove",this.#R),_.removeEventListener("touchend",this.#X),_.removeEventListener("touchcancel",this.#A),_.removeEventListener("focus",this.#L),_.removeEventListener("blur",this.#G);else if(this.action==="click")_.removeEventListener("click",this.#N),_.removeEventListener("touchstart",this.#N);this.#F=null}setup(){this.style.display="contents"}render(){this.destroy();let _=typeof HTMLElement<"u"&&"popover"in HTMLElement.prototype,q=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 Q=m();this.popup.setAttribute("id",Q);let Z=this.getAttribute("theme");if(Z)this.popup.setAttribute("theme",Z);let $=this.getAttribute("pointer");if($!==null)this.popup.setAttribute("pointer",$);if(this.popup.append(q),q.innerText=this.getAttribute("text")??"",this.firstElementChild){let J=new Set((this.firstElementChild.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean));J.add(Q),this.firstElementChild.setAttribute("aria-describedby",[...J].join(" "))}if(_)($0()??document.body).append(this.popup);else{let J=this.closest("dialog");if(J&&J.open)J.append(this.popup);else($0()??document.body).append(this.popup)}this.popup.anchor=this.firstElementChild}destroy(){if(this.popup)this.#T(this.popup.id),this.popup.hidePopup?.(),this.popup.remove(),this.popup=null}#T(_){let q=this.firstElementChild;if(!q||!_)return;let Q=q.getAttribute("aria-describedby");if(!Q)return;let Z=Q.split(/\s+/).filter(($)=>$&&$!==_).join(" ");if(Z)q.setAttribute("aria-describedby",Z);else q.removeAttribute("aria-describedby")}isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}setupEventListeners(){if(this.action==="click")document.body.addEventListener("click",this.#j);document.addEventListener("mousedown",this.#W,!0),document.addEventListener("keydown",this.#Y,!0)}get#S(){return this.hasAttribute("show")&&this.getAttribute("show")!=="false"}#f(){let _=Date.now(),q=z.#Q;if(this.action==="hover"&&z.#Z)return!0;if(z.#q&&_-z.#q<q)return!0;if(z.#_&&_-z.#_<q)return!0;return!1}showDelayedPopup(_){if(this.#S)return;if(clearTimeout(this.timeout),_?.type==="pointerenter"){let q=this.#F;if(q?.matches?.("fig-select[open]")||q?.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.#O&&!this.#O.open)return;if(!this.firstElementChild)return;if(this.action==="hover"&&z.#Z&&z.#Z!==this)z.#Z.hidePopup();if(!this.popup)this.render();if(this.popup.anchor=this.firstElementChild,this.popup.open=!0,this.isOpen=!0,this.action==="hover")z.#Z=this;z.#q=Date.now()}hidePopup(){if(this.#S)return;clearTimeout(this.timeout),clearTimeout(this.#z);let _=this.isOpen;if(this.popup)this.destroy();if(this.isOpen=!1,z.#Z===this)z.#Z=null;if(_)z.#_=Date.now()}hidePopupOutsideClick(_){if(this.isOpen&&!this.popup.contains(_.target))this.hidePopup()}#E(_){if(!this.#H)this.hidePopup()}#y(_){if(this.action==="hover")this.#H=!0,clearTimeout(this.#z),this.showDelayedPopup()}#g(_){if(this.action==="hover"&&this.#H)clearTimeout(this.#z),this.#z=setTimeout(()=>{this.#H=!1,this.hidePopup()},150)}#v(_){if(this.action==="hover"&&this.#H)clearTimeout(this.#z),this.#z=setTimeout(()=>{this.#H=!1,this.hidePopup()},300)}#x(_){if(this.action==="hover"&&this.#H)this.#H=!1,clearTimeout(this.#z),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",_)}#h(_){if(!this.popup)return;let q=this.popup.firstElementChild??this.popup.firstChild;if(!q)return;q.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(_,q,Q){if(_==="action"){if(this.#I(),q==="click")document.body?.removeEventListener("click",this.#j);if(this.action=Q||"hover",this.isConnected){if(this.#C(),this.action==="click")document.body?.addEventListener("click",this.#j)}}if(_==="delay"){let Z=parseInt(Q);this.delay=!isNaN(Z)?Z:500}if(_==="open")if(Q!==null&&Q!=="false")requestAnimationFrame(()=>{this.showDelayedPopup()});else requestAnimationFrame(()=>{this.hidePopup()});if(_==="show")if(Q!==null&&Q!=="false")this.showPopup();else this.hidePopup();if(_==="text")this.#h(Q??"");if(_==="pointer"){if(this.popup)if(Q!==null)this.popup.setAttribute("pointer",Q);else this.popup.removeAttribute("pointer")}if(_==="theme"){if(this.popup)if(Q)this.popup.setAttribute("theme",Q);else this.popup.removeAttribute("theme")}}#V(_){if(!this.isOpen)return;let q=_.target;if(this.popup&&this.popup.contains(q))return;if(q.tagName==="SELECT"||q.hasAttribute("popover")||q.closest("dialog"))this.hidePopup()}static#b(){if(z.#$)return;z.#$=!0;let _=()=>{z.dismissHoverTooltips()},q=()=>{z.#s()};document.documentElement.addEventListener("mouseleave",_),document.addEventListener("mouseout",(Q)=>{if(Q.relatedTarget)return;_()}),document.addEventListener("scroll",q,{capture:!0,passive:!0}),window.addEventListener("scroll",q,{passive:!0}),window.visualViewport?.addEventListener("scroll",q,{passive:!0}),window.visualViewport?.addEventListener("resize",q,{passive:!0});try{let Q=window.frameElement;if(Q)Q.addEventListener("mouseleave",_)}catch{}window.addEventListener("message",(Q)=>{if(Q?.data?.type!=="figui:dismiss-tooltips")return;if(window.parent!==window&&Q.source!==window.parent)return;_()})}static dismissHoverTooltips(){for(let _ of document.querySelectorAll("fig-tooltip")){if(!(_ instanceof z))continue;if(_.action!=="hover")continue;if(_.#S)continue;if(_.#k=!0,setTimeout(()=>{let q=_.#F;if(q!==document.activeElement&&!q?.matches?.(":focus, :focus-within"))_.#k=!1},0),_.isOpen||_.timeout)_.hidePopup()}for(let _ of Array.from(z.#J))z.hide(_)}static#m=new WeakMap;static#s(){for(let _ of document.querySelectorAll("fig-tooltip")){if(!(_ instanceof z))continue;if(_.#S)continue;if(_.isOpen||_.timeout)_.hidePopup()}for(let _ of Array.from(z.#J))z.hide(_)}static show(_,q,Q={}){z.#b(),z.hide(_);let Z=Q.delay??500,J=Date.now()-z.#q<z.#Q?0:Z,j={timeout:null,popup:null};z.#m.set(_,j),z.#J.add(_),j.timeout=setTimeout(()=>{let N=typeof HTMLElement<"u"&&"popover"in HTMLElement.prototype,W=document.createElement("dialog",{is:"fig-popup"});if(W.setAttribute("is","fig-popup"),W.setAttribute("variant","tooltip"),W.setAttribute("data-tooltip-managed",""),W.setAttribute("role","tooltip"),W.setAttribute("closedby","closerequest"),N)W.setAttribute("popover","manual");let G=document.createElement("span");if(G.innerText=q,W.append(G),N)($0()??document.body).append(W);else{let K=_.closest?.("dialog");if(K&&K.open)K.append(W);else($0()??document.body).append(W)}W.anchor=_,W.open=!0,j.popup=W,z.#q=Date.now()},J)}static hide(_){let q=z.#m.get(_);if(!q)return;if(clearTimeout(q.timeout),q.popup)q.popup.remove(),z.#_=Date.now();z.#m.delete(_),z.#J.delete(_)}}M("fig-tooltip",z);class m0 extends HTMLElement{static observedAttributes=["position","tail"];#q=null;#_=null;#Q=null;connectedCallback(){this.#q=this.textContent,c(this,()=>{this.#Z(),this.#$()})}disconnectedCallback(){this.#J()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(this.#q===null)return;this.#Z()}#Z(){let _=this.getAttribute("position")||"right",q=this.#q||"";if(_==="middle"){let Q=this.getAttribute("tail"),Z;if(Q){let j=q.lastIndexOf(Q);Z=j>0?j:Math.ceil(q.length/2)}else Z=Math.ceil(q.length/2);this.replaceChildren();let $=document.createElement("span");$.className="start",$.textContent=q.slice(0,Z);let J=document.createElement("span");J.className="end",J.textContent=q.slice(Z),this.appendChild($),this.appendChild(J)}else this.textContent=q}#$(){if(!this.hasAttribute("tooltip")||this.getAttribute("tooltip")==="false")return;this.#_=()=>{if(this.scrollWidth<=this.clientWidth)return;z.show(this,this.#q)},this.#Q=()=>{z.hide(this)},this.addEventListener("pointerenter",this.#_),this.addEventListener("pointerleave",this.#Q)}#J(){if(this.#_)this.removeEventListener("pointerenter",this.#_);if(this.#Q)this.removeEventListener("pointerleave",this.#Q);z.hide(this)}}M("fig-truncate",m0);class u0 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();c(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 q=document.activeElement;if(q&&q!==document.body&&!this.contains(q))return;requestAnimationFrame(()=>_.focus?.())}_assignStackingOrder(){this.style.zIndex=String(b0()+1)}_clearStackingOrder(){this.style.zIndex=""}show(){return this._captureFocusBeforeOpen(),this._assignStackingOrder(),this.addEventListener("close",this._boundRestoreFocus,{once:!0}),z.dismissHoverTooltips(),super.show()}showModal(){return this._captureFocusBeforeOpen(),this._clearStackingOrder(),this.addEventListener("close",this._boundRestoreFocus,{once:!0}),z.dismissHoverTooltips(),super.showModal()}close(..._){let q=super.close(..._);return this._clearStackingOrder(),q}_handleIframeMouseLeave(_){let q=_?.currentTarget;if(!(q instanceof HTMLIFrameElement))return;try{q.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 q=_?.data;if(!q||q.type!=="figui:iframe-resize")return;let Q=_.source;if(!Q)return;let Z=Array.from(this.querySelectorAll("iframe")).find(($)=>$.contentWindow===Q);if(!Z)return;this._resizeForIframe(Z,q)}_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 q of _)q.addedNodes?.forEach((Q)=>{if(Q instanceof Element&&Q.parentElement===this)try{this._resizeObserver?.observe(Q)}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 q=window.getComputedStyle(this),Q=parseFloat(q.paddingTop||"0")+parseFloat(q.paddingBottom||"0")+parseFloat(q.borderTopWidth||"0")+parseFloat(q.borderBottomWidth||"0"),Z=0,$=parseFloat(q.rowGap||q.gap||"0")||0,J=0;for(let j of this.children){let N=j.getBoundingClientRect();if(N.height===0)continue;if(J+=1,j===_)continue;let W=window.getComputedStyle(j),G=parseFloat(W.marginTop||"0")+parseFloat(W.marginBottom||"0");Z+=N.height+G}if($&&J>1)Z+=$*(J-1);return Q+Z}_resizeForIframe(_,q){if(typeof q.height!=="number"||!(q.height>0))return;let Q=this._computeChrome(_);this.style.height=`${Math.ceil(q.height+Q)}px`}_resizeToContent(){if(this.style.height)this.style.height=""}_ensureHeader(){if(this.querySelector("fig-header[dialog-header]"))return;let _=document.createElement("fig-header");_.setAttribute("dialog-header",""),_.setAttribute("data-auto","");let q=document.createElement("h3");q.textContent=this.getAttribute("title")||"Dialog";let Q=document.createElement("fig-tooltip");Q.setAttribute("text","Close");let Z=document.createElement("fig-button");Z.setAttribute("variant","ghost"),Z.setAttribute("icon",""),Z.setAttribute("aria-label","Close dialog"),Z.setAttribute("close-dialog",""),Z.appendChild(b("close")),Q.appendChild(Z),_.appendChild(q),_.appendChild(Q),this.prepend(_)}_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 q=_.getAttribute("id")||m();_.setAttribute("id",q),this.setAttribute("aria-labelledby",q)}}}_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 q=_.includes("top"),Q=_.includes("bottom"),Z=_.includes("left"),$=_.includes("right"),J=_.includes("center")&&!q&&!Q,j=_.includes("center")&&!Z&&!$;if(q)this.style.top=`${this._offset}px`;else if(Q)this.style.bottom=`${this._offset}px`;else if(J)this.style.top="0",this.style.bottom="0";if(Z)this.style.left=`${this._offset}px`;else if($)this.style.right=`${this._offset}px`;else if(j)this.style.left="0",this.style.right="0";if(J&&j)this.style.margin="auto";else if(J)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"),q=_?this.querySelector(_):this.querySelector("fig-header, header");if(q)q.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 q=["input","button","select","textarea","a","label","details","summary",'[contenteditable="true"]',"[tabindex]"],Q=["FIG-HEADER","FIG-DIALOG","FIG-FIELD","FIG-TOOLTIP","FIG-CONTENT","FIG-TABS","FIG-TAB","FIG-POPOVER","FIG-SHIMMER","FIG-LAYER","FIG-FILL-PICKER"],Z=(J)=>q.some((j)=>J.matches?.(j))||J.tagName?.startsWith("FIG-")&&!Q.includes(J.tagName);if(Z(_))return!0;let $=_.parentElement;while($&&$!==this){if(Z($))return!0;$=$.parentElement}return!1}_handlePointerDown(_){if(!this.drag)return;if(this._isInteractiveElement(_.target))return;let q=this.getAttribute("handle");if(q&&q.trim()){let Z=this.querySelector(q);if(!Z||!Z.contains(_.target))return}this._dragPending=!0,this._dragStartPos.x=_.clientX,this._dragStartPos.y=_.clientY;let Q=this.getBoundingClientRect();this._dragOffset.x=_.clientX-Q.left,this._dragOffset.y=_.clientY-Q.top,document.addEventListener("pointermove",this._boundPointerMove),document.addEventListener("pointerup",this._boundPointerUp),document.addEventListener("pointercancel",this._boundPointerUp)}_handlePointerMove(_){if(this._dragPending&&!this._isDragging){let q=Math.abs(_.clientX-this._dragStartPos.x),Q=Math.abs(_.clientY-this._dragStartPos.y);if(q>this._dragThreshold||Q>this._dragThreshold){this._isDragging=!0,this._dragPending=!1,this.setPointerCapture(_.pointerId),this.style.cursor="grabbing";let Z=this.getBoundingClientRect();this.style.top=`${Z.top}px`,this.style.left=`${Z.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(_,q,Q){if(this._figInit(),_==="autoresize"&&this.isConnected)this._syncAutoResize();if(_==="drag")if(this.drag=Q!==null&&Q!=="false",this.drag)this._setupDragListeners();else{this._removeDragListeners();let Z=this.querySelector("fig-header, header");if(Z)Z.style.cursor=""}if(_==="position"&&this._positionInitialized)this._applyPosition();if(_==="modal"){let Z=this.modal;if(this.modal=Q!==null&&Q!=="false",this.open&&Z!==this.modal)if(this.close(),this.modal)this.showModal();else this.show()}if(_==="closedby")this.closedby=Q||"any";if(_==="title"){let Z=this.querySelector("fig-header[data-auto] h3");if(Z)Z.textContent=Q||"Dialog";this._syncA11y()}if(_==="aria-label"||_==="aria-labelledby")this._syncA11y()}}Y0("fig-dialog",u0,{extends:"dialog"});class c0 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._boundHandleClose=this.handleClose.bind(this)}connectedCallback(){if(this._figInit(),!this.hasAttribute("theme"))this.setAttribute("theme","dark");if(this.syncLiveRegion(),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")),q=Number.isFinite(_)?_:this._defaultOffset;this.style.bottom=`${q}px`,this.style.left="50%",this.style.right="auto",this.style.transform="translateX(-50%)"}syncLiveRegion(){let _=this.getAttribute("live")==="assertive"||this.getAttribute("theme")==="danger",q=_?"alert":"status",Q=_?"assertive":"polite";if(!this.hasAttribute("role")||this.getAttribute("role")===this._managedRole)this.setAttribute("role",q),this._managedRole=q;if(!this.hasAttribute("aria-live")||this.getAttribute("aria-live")===this._managedLive)this.setAttribute("aria-live",Q),this._managedLive=Q;if(!this.hasAttribute("aria-atomic"))this.setAttribute("aria-atomic","true")}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._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"]}attributeChangedCallback(_,q,Q){if(this._figInit(),q===Q)return;if(!this.isConnected)return;if(this._syncingOpen)return;if(_==="offset")this.applyPosition();if(_==="open")if(Q!==null&&Q!=="false")this.showToast();else this.hideToast();if(_==="duration"&&this._toastVisible)this.startAutoClose();if(_==="theme")if(Q==="auto")this._resolveAutoTheme();else this.style.removeProperty("color-scheme");if(_==="theme"||_==="live")this.syncLiveRegion()}}Y0("fig-toast",c0,{extends:"dialog"});class p0 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 q=_.target;if(this.open&&(!(q instanceof Node)||!this.contains(q))&&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)}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 q=_.target;if(this.open&&(!(q instanceof Node)||!this.contains(q))&&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)}static get observedAttributes(){return["open","anchor","position","offset","variant","theme","drag","handle","autoresize","viewport-margin"]}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.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(_,q,Q){if(this.ensureInitialized(),q===Q)return;if(_==="open"){if(Q==="false"){this.open=!1;return}if(Q===null){this.hidePopup();return}this.showPopup();return}if(_==="drag"){if(this.drag=Q!==null&&Q!=="false",this.drag)this.setupDragListeners();else this.removeDragListeners();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(b0()+1),this.captureFocusBeforeOpen();let _=this.hasAttribute("popover")&&typeof this.showPopover==="function"&&!this.matches?.(":popover-open"),q=this.shouldAutoReposition();if(q)this.style.visibility="hidden";if(_)try{this.showPopover()}catch(Z){_=!1}if(!_&&!super.open)try{this.show()}catch(Z){}if(q&&(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 Q=this.resolveAnchor();if(Q?.classList)Q.classList.add("has-popup-open");if(this.getAttribute("variant")!=="tooltip")z.dismissHoverTooltips()}hidePopup(){let _=this._isPopupActive||this.matches?.(":open")||this.matches?.(":popover-open"),q=this.resolveAnchor();if(q?.classList)q.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(Q){}if(this.matches?.(":open"))try{this.close()}catch(Q){}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(),q=this._previousFocus?.isConnected?this._previousFocus:_ instanceof HTMLElement?_:null;if(this._previousFocus=null,!q?.isConnected)return;let Q=document.activeElement;if(Q&&Q!==document.body&&!this.contains(Q))return;requestAnimationFrame(()=>q.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 q=_.getBoundingClientRect();return{x:q.x,y:q.y,width:q.width,height:q.height}}hasRectChanged(_,q,Q=0.25){if(!_&&!q)return!1;if(!_||!q)return!0;return Math.abs(_.x-q.x)>Q||Math.abs(_.y-q.y)>Q||Math.abs(_.width-q.width)>Q||Math.abs(_.height-q.height)>Q}startAnchorTracking(){if(this.stopAnchorTracking(),!this.open)return;let _=()=>{if(!this.open){this._anchorTrackRAF=null;return}let q=this.resolveAnchor(),Q=this.readRectSnapshot(q),Z=this.shouldAutoReposition();if(Z&&this.hasRectChanged(this._lastAnchorRect,Q))this._lastAnchorRect=Q,this.queueReposition();else if(!Z)this._lastAnchorRect=Q;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}handleOutsidePointerDown(_){if(!this.open||!(this.matches?.(":open")||this.matches?.(":popover-open")))return;let q=this.getAttribute("closedby");if(q==="none"||q==="closerequest")return;let Q=_.target;if(!(Q instanceof Node))return;let Z=typeof _.composedPath==="function"?_.composedPath():[];if(Z.includes(this))return;if(this.contains(Q))return;let $=this.resolveAnchor();if($&&(Z.includes($)||$.contains?.(Q)))return;if(this.isInsideDescendantPopup(Q))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 Z=Array.from(document.querySelectorAll('dialog[is="fig-popup"][open]')).filter(($)=>$.open).map(($)=>({popup:$,z:Number.parseInt(getComputedStyle($).zIndex||"0",10)||0})).sort(($,J)=>$.z-J.z).at(-1)?.popup;if(Z&&Z!==this)return;_.preventDefault(),this.open=!1}isInsideDescendantPopup(_){let q=_.closest?.('dialog[is="fig-popup"]');if(!q||q===this)return!1;let Q=q,Z=new Set;while(Q&&!Z.has(Q)){Z.add(Q);let $=Q.anchor;if(!($ instanceof Element))break;if(this.contains($))return!0;Q=$.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 q=["input","button","select","textarea","a","label","details","summary",'[contenteditable="true"]',"[tabindex]"],Q=["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"],Z=(J)=>q.some((j)=>J.matches?.(j))||J.tagName?.startsWith("FIG-")&&!Q.includes(J.tagName);if(Z(_))return!0;let $=_.parentElement;while($&&$!==this){if(Z($))return!0;$=$.parentElement}return!1}handlePointerDown(_){if(!this.drag)return;if(this.isInteractiveElement(_.target))return;let q=this.getAttribute("handle");if(q&&q.trim()){let Z=this.querySelector(q);if(!Z||!Z.contains(_.target))return}this._dragPending=!0,this._dragStartPos.x=_.clientX,this._dragStartPos.y=_.clientY;let Q=this.getBoundingClientRect();this._dragOffset.x=_.clientX-Q.left,this._dragOffset.y=_.clientY-Q.top,document.addEventListener("pointermove",this._boundPointerMove),document.addEventListener("pointerup",this._boundPointerUp),document.addEventListener("pointercancel",this._boundPointerUp)}handlePointerMove(_){if(this._dragPending&&!this._isDragging){let q=Math.abs(_.clientX-this._dragStartPos.x),Q=Math.abs(_.clientY-this._dragStartPos.y);if(q>this._dragThreshold||Q>this._dragThreshold){this._isDragging=!0,this._dragPending=!1,this._wasDragged=!0,this.setPointerCapture(_.pointerId),this.style.cursor="grabbing";let Z=this.getBoundingClientRect();this.style.top=`${Z.top}px`,this.style.left=`${Z.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 q=this.parentElement;try{if(q?.querySelector){let Q=q.querySelector(_);if(Q&&!this.contains(Q))return Q}return document.querySelector(_)}catch{return null}}parsePosition(){let q=(this.getAttribute("position")||"top center").trim().toLowerCase().split(/\s+/).filter(Boolean),Q=new Set(["top","center","bottom"]),Z=new Set(["left","center","right"]),$="top",J="center",j=null;if(q.length>=2){if(Q.has(q[0]))$=q[0];if(Z.has(q[1]))J=q[1];return{vertical:$,horizontal:J,shorthand:j}}if(q.length===1){let N=q[0];if(N==="top"||N==="bottom")$=N,j=N;else if(N==="left"||N==="right")J=N,j=N;else if(N==="center")$="center",J="center"}return{vertical:$,horizontal:J,shorthand:j}}normalizeOffsetToken(_,q="0px"){if(!_)return q;let Q=_.trim();if(!Q)return q;if(/^-?\d+(\.\d+)?$/.test(Q))return`${Q}px`;return Q}measureLengthPx(_,q="x"){if(!_)return 0;let Q=this.normalizeOffsetToken(_,"0px");if(Q.endsWith("px")){let J=parseFloat(Q);return Number.isFinite(J)?J:0}let Z=document.createElement("div");if(Z.style.position="fixed",Z.style.visibility="hidden",Z.style.pointerEvents="none",Z.style.left="0",Z.style.top="0",Z.style.margin="0",Z.style.padding="0",Z.style.border="0",q==="x")Z.style.width=Q,Z.style.height="0";else Z.style.height=Q,Z.style.width="0";document.body.appendChild(Z);let $=Z.getBoundingClientRect();return Z.remove(),q==="x"?$.width:$.height}parseOffset(){let q=(this.getAttribute("offset")||"0 0").trim().split(/\s+/).filter(Boolean),Q=this.normalizeOffsetToken(q[0],"0px"),Z=this.normalizeOffsetToken(q[1],"0px");return{xToken:Q,yToken:Z,xPx:this.measureLengthPx(Q,"x"),yPx:this.measureLengthPx(Z,"y")}}parseViewportMargins(){let q=(this.getAttribute("viewport-margin")||"8").trim().split(/\s+/).map(Number).filter((Z)=>!Number.isNaN(Z)),Q=8;if(q.length===0)return{top:8,right:8,bottom:8,left:8};if(q.length===1)return{top:q[0],right:q[0],bottom:q[0],left:q[0]};if(q.length===2)return{top:q[0],right:q[1],bottom:q[0],left:q[1]};if(q.length===3)return{top:q[0],right:q[1],bottom:q[2],left:q[1]};return{top:q[0],right:q[1],bottom:q[2],left:q[3]}}getPlacementCandidates(_,q,Q){let Z={top:"bottom",bottom:"top",left:"right",right:"left",center:"center"};if(Q){let J=Q==="left"||Q==="right"?["top","bottom"]:["left","right"];return[{v:_,h:q,s:Q},{v:_,h:q,s:Z[Q]},{v:_,h:q,s:J[0]},{v:_,h:q,s:J[1]}]}if(_==="center")return[{v:"center",h:q,s:null},{v:"center",h:Z[q],s:null},{v:"top",h:q,s:null},{v:"bottom",h:q,s:null},{v:"top",h:Z[q],s:null},{v:"bottom",h:Z[q],s:null}];if(q==="center")return[{v:_,h:"center",s:null},{v:Z[_],h:"center",s:null},{v:_,h:"left",s:null},{v:_,h:"right",s:null},{v:Z[_],h:"left",s:null},{v:Z[_],h:"right",s:null}];return[{v:_,h:q,s:null},{v:Z[_],h:q,s:null},{v:_,h:Z[q],s:null},{v:Z[_],h:Z[q],s:null}]}computeCoords(_,q,Q,Z,$,J){let j,N;if(J==="left"||J==="right")return N=J==="left"?_.left-q.width-$.xPx:_.right+$.xPx,j=_.top,{top:j,left:N};if(J==="top"||J==="bottom")return j=J==="top"?_.top-q.height-$.yPx:_.bottom+$.yPx,N=_.left,{top:j,left:N};if(Q==="top")j=_.top-q.height-$.yPx;else if(Q==="bottom")j=_.bottom+$.yPx;else j=_.top+(_.height-q.height)/2;if(Q==="center")if(Z==="left")N=_.left-q.width-$.xPx;else if(Z==="right")N=_.right+$.xPx;else N=_.left+(_.width-q.width)/2;else if(Z==="left")N=_.left+$.xPx;else if(Z==="right")N=_.right-q.width-$.xPx;else N=_.left+(_.width-q.width)/2;return{top:j,left:N}}oppositeSide(_){return{top:"bottom",bottom:"top",left:"right",right:"left"}[_]||"bottom"}getPlacementSide(_,q,Q){if(Q==="top")return"top";if(Q==="bottom")return"bottom";if(Q==="left")return"left";if(Q==="right")return"right";if(_!=="center")return _;if(q!=="center")return q;return"top"}lengthToPx(_,q=0){let Q=getComputedStyle(this),Z=String(_||"").trim(),$=parseFloat(Z);if(!Number.isFinite($))return q;if(Z.endsWith("rem"))return $*parseFloat(getComputedStyle(document.documentElement).fontSize);if(Z.endsWith("em"))return $*parseFloat(Q.fontSize);return $}radiusForSide(_){let q=getComputedStyle(this),Q=(Z)=>this.lengthToPx(Z,0);if(_==="top")return Math.max(Q(q.borderTopLeftRadius),Q(q.borderTopRightRadius));if(_==="bottom")return Math.max(Q(q.borderBottomLeftRadius),Q(q.borderBottomRightRadius));if(_==="left")return Math.max(Q(q.borderTopLeftRadius),Q(q.borderBottomLeftRadius));if(_==="right")return Math.max(Q(q.borderTopRightRadius),Q(q.borderBottomRightRadius));return 0}getBeakEdgeInset(_){let q=this.lengthToPx(getComputedStyle(this).getPropertyValue("--fig-popup-beak-width"),16);return Math.max(10,this.radiusForSide(_)+q/2)}tracksAnchorBeak(){let _=this.getAttribute("variant");return _==="popover"||_==="tooltip"}getViewportBounds(_){let q=window.visualViewport,Q=q?.width??window.innerWidth,Z=q?.height??window.innerHeight,$=q?.offsetLeft??0,J=q?.offsetTop??0;return{minLeft:$+_.left,minTop:J+_.top,maxRight:$+Q-_.right,maxBottom:J+Z-_.bottom}}clampToViewport(_,q,Q){let Z=this.getViewportBounds(Q),$=Z.maxRight-q.width,J=Z.maxBottom-q.height;return{left:Math.min($,Math.max(Z.minLeft,_.left)),top:Math.min(J,Math.max(Z.minTop,_.top))}}resolveCoordsAtViewport(_,q,Q,Z,$){let{left:J,top:j}=this.clampToViewport(Q,q,$);if(!_||!this.tracksAnchorBeak())return{left:J,top:j};let N=this.oppositeSide(Z),W=this.getViewportBounds($),G=W.maxRight-q.width,K=W.minLeft,U=W.maxBottom-q.height,L=W.minTop;if(N==="top"||N==="bottom"){let A=this.getBeakEdgeInset(N),Y=_.left+_.width/2,O=Y-J;if(O<A)J=Y-A;else if(O>q.width-A)J=Y-(q.width-A);J=Math.min(G,Math.max(K,J))}else if(N==="left"||N==="right"){let A=this.getBeakEdgeInset(N),Y=_.top+_.height/2,O=Y-j;if(O<A)j=Y-A;else if(O>q.height-A)j=Y-(q.height-A);j=Math.min(U,Math.max(L,j))}return{left:J,top:j}}canPointAtAnchor(_,q,Q,Z,$){if(!_||!this.tracksAnchorBeak())return!0;let J=this.oppositeSide($),j=this.getBeakEdgeInset(J);if(J==="top"||J==="bottom"){let W=_.left+_.width/2-Q;return W>=j-0.5&&W<=q.width-j+0.5}let N=_.top+_.height/2-Z;return N>=j-0.5&&N<=q.height-j+0.5}updatePopoverBeak(_,q,Q,Z,$){if(!this.tracksAnchorBeak()||!_){this.style.removeProperty("--fig-popup-beak-offset"),this.removeAttribute("data-beak-side");return}let J=this.oppositeSide($);this.setAttribute("data-beak-side",J);let j=_.left+_.width/2,N=_.top+_.height/2,W=this.getBoundingClientRect(),G=W.width>0&&W.height>0?W:q,K=G.left,U=G.top,L=this.getBeakEdgeInset(J),A;if(J==="top"||J==="bottom"){A=j-K;let Y=L,O=Math.max(Y,G.width-L);A=Math.min(O,Math.max(Y,A))}else{A=N-U;let Y=L,O=Math.max(Y,G.height-L);A=Math.min(O,Math.max(Y,A))}this.style.setProperty("--fig-popup-beak-offset",`${A}px`)}overflowScore(_,q,Q){let Z=this.getViewportBounds(Q),$=_.left+q.width,J=_.top+q.height,j=Math.max(0,Z.minLeft-_.left),N=Math.max(0,Z.minTop-_.top),W=Math.max(0,$-Z.maxRight),G=Math.max(0,J-Z.maxBottom);return j+N+W+G}fits(_,q,Q){return this.overflowScore(_,q,Q)===0}clamp(_,q,Q,Z=null,$="top"){if(Z)return this.resolveCoordsAtViewport(Z,q,_,$,Q);return this.clampToViewport(_,q,Q)}primaryAxisOverflowPenalty(_,q,Q,Z){let $=this.getViewportBounds(Q),J=0;if(Z==="top")J=Math.max(0,$.minTop-_.top);else if(Z==="bottom")J=Math.max(0,_.top+q.height-$.maxBottom);else if(Z==="left")J=Math.max(0,$.minLeft-_.left);else if(Z==="right")J=Math.max(0,_.left+q.width-$.maxRight);return J>0?1000+J:0}placementScore(_,q,Q,Z,$){let J=this.resolveCoordsAtViewport(_,q,Q,Z,$),j=this.overflowScore(J,q,$);if(j+=this.primaryAxisOverflowPenalty(Q,q,$,Z),_&&!this.canPointAtAnchor(_,q,J.left,J.top,Z))j+=1e4;return{score:j,resolved:J}}applyPopupPosition(_,q,Q,Z,$){let J=this.resolveCoordsAtViewport(_,q,Q,Z,$);this.style.left=`${J.left}px`,this.style.top=`${J.top}px`,this.updatePopoverBeak(_,q,J.left,J.top,Z)}positionPopup(){if(!this.open)return;let _=this.getBoundingClientRect(),q=this.parseOffset(),{vertical:Q,horizontal:Z,shorthand:$}=this.parsePosition(),J=this.resolveAnchor(),j=this.parseViewportMargins();if(!J){this.updatePopoverBeak(null,_,0,0,"top");let L=this.getViewportBounds(j),A={left:L.minLeft+(L.maxRight-L.minLeft-_.width)/2,top:L.minTop+(L.maxBottom-L.minTop-_.height)/2},Y=this.clampToViewport(A,_,j);this.style.left=`${Y.left}px`,this.style.top=`${Y.top}px`;return}let N=J.getBoundingClientRect(),W=this.getPlacementCandidates(Q,Z,$),G=null,K="top",U=Number.POSITIVE_INFINITY;for(let{v:L,h:A,s:Y}of W){let O=this.computeCoords(N,_,L,A,q,Y),D=this.getPlacementSide(L,A,Y),{score:H,resolved:F}=this.placementScore(N,_,O,D,j);if(Y){let B=this.getViewportBounds(j);if((Y==="left"||Y==="right"?O.left>=B.minLeft&&O.left+_.width<=B.maxRight:O.top>=B.minTop&&O.top+_.height<=B.maxBottom)&&H<1e4){this.applyPopupPosition(N,_,O,D,j);return}}else if(H===0){this.applyPopupPosition(N,_,O,D,j);return}if(H<U)U=H,G=F,K=D}this.applyPopupPosition(N,_,G||{left:0,top:0},K,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"))}}Y0("fig-popup",p0,{extends:"dialog"});class d0 extends HTMLElement{#q;#_;constructor(){super();this.content=null,this.#q=!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.#_),c(this,()=>{if(typeof this.getAttribute("content")==="string"){if(this.content=document.querySelector(this.getAttribute("content")),this.content){let _=this.getAttribute("id")||m(),q=this.content.getAttribute("id")||m();if(this.setAttribute("id",_),this.content.setAttribute("id",q),this.setAttribute("aria-controls",q),this.content.setAttribute("role","tabpanel"),this.content.setAttribute("aria-labelledby",_),this.#q)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.#q}set selected(_){this.setAttribute("selected",_?"true":"false")}disconnectedCallback(){this.removeEventListener("click",this.#_)}handleClick(){if(k(this,"disabled"))return;if(this.selected=!0,this.content)this.content.style.display="block"}static get observedAttributes(){return["selected","disabled"]}attributeChangedCallback(_,q,Q){if(_==="selected"){if(this.#q=Q!==null&&Q!=="false",this.setAttribute("aria-selected",this.#q?"true":"false"),this.setAttribute("tabindex",this.#q?"0":"-1"),this?.content)this.content.style.display=this.#q?"block":"none"}if(_==="disabled")if(Q!==null&&Q!=="false")this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex",this.#q?"0":"-1")}}M("fig-tab",d0);class s0 extends HTMLElement{#q;#_;#Q=this.#X.bind(this);#Z=null;#$=null;#J=null;#W=null;#j=!1;#N=new WeakSet;constructor(){super();this.#q=this.handleClick.bind(this),this.#_=this.#F.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.#R(),this.addEventListener("click",this.#q),this.addEventListener("keydown",this.#_),this.addEventListener("scroll",this.#Q),this.#O(),this.#B(),this.#A(),c(this,()=>{let _=this.getAttribute("value");if(_)this.#z(_);if(k(this,"disabled"))this.#U(!0);this.#G(),this.#X(),this.#K(void 0,"auto")})}#U(_){this.querySelectorAll("fig-tab").forEach((Q)=>{if(_){if(!(Q.hasAttribute("disabled")&&Q.getAttribute("disabled")!=="false"))this.#N.add(Q),Q.setAttribute("disabled","");Q.setAttribute("aria-disabled","true"),Q.setAttribute("tabindex","-1")}else if(this.#N.has(Q))this.#N.delete(Q),Q.removeAttribute("disabled"),Q.removeAttribute("aria-disabled")}),this.#G()}#L(){return Array.from(this.querySelectorAll("fig-tab")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#G(){let _=Array.from(this.querySelectorAll("fig-tab")),q=_.find((Q)=>Q.hasAttribute("selected")&&Q.getAttribute("selected")!=="false")||this.#L()[0];_.forEach((Q)=>{let Z=Q.hasAttribute("disabled")&&Q.getAttribute("disabled")!=="false";Q.setAttribute("tabindex",!Z&&Q===q?"0":"-1")})}#K(_=this.selectedTab,q="smooth"){let Q=_||this.querySelector('fig-tab[selected]:not([selected="false"])')||this.#L()[0];if(!Q)return;requestAnimationFrame(()=>{if(!this.isConnected||!Q.isConnected)return;if(!(this.scrollWidth>this.clientWidth))return;let $=this.getBoundingClientRect(),J=Q.getBoundingClientRect(),j=J.left-$.left+this.scrollLeft+J.width/2;this.scrollTo({left:j-this.clientWidth/2,behavior:q}),this.#X()})}disconnectedCallback(){this.removeEventListener("click",this.#q),this.removeEventListener("keydown",this.#_),this.removeEventListener("scroll",this.#Q),this.#Z?.disconnect(),this.#Z=null,this.#$?.disconnect(),this.#$=null,this.#Y()}#R(){if(this.#j)return;let _=this.querySelector(":scope > [data-fig-tabs-scroll]");if(!_)return;this.#j=!0;try{let q=Array.from(_.childNodes);_.replaceWith(...q)}finally{this.#j=!1}}#X(){e(this,this,"x")}#A(){this.#$?.disconnect(),this.#$=new ResizeObserver(()=>this.#X()),this.#$.observe(this)}#B(){this.#Z?.disconnect(),this.#Z=new MutationObserver(()=>{if(this.#j)return;this.#R(),this.#O(),this.#G(),requestAnimationFrame(()=>{this.#X(),this.#K()})}),this.#Z.observe(this,{childList:!0,subtree:!1})}#Y(){this.#J?.remove(),this.#W?.remove(),this.#J=null,this.#W=null,this.classList.remove("overflow-start","overflow-end")}#O(){if(this.#J&&this.#W&&this.contains(this.#J)&&this.contains(this.#W))return;this.#J?.remove(),this.#W?.remove();let _=X0({owner:"tabs",onStart:()=>_0(this,"x",-1),onEnd:()=>_0(this,"x",1)});this.#J=_.start,this.#W=_.end,this.prepend(this.#J),this.append(this.#W)}#F(_){let q=this.#L();if(!q.length)return;let Q=q.findIndex(($)=>k($,"selected")),Z=Q>=0?Q:0;switch(_.key){case"ArrowLeft":case"ArrowUp":_.preventDefault(),Z=Q>0?Q-1:q.length-1;break;case"ArrowRight":case"ArrowDown":_.preventDefault(),Z=Q<q.length-1?Q+1:0;break;case"Home":_.preventDefault(),Z=0;break;case"End":_.preventDefault(),Z=q.length-1;break;default:return}if(Z!==Q&&q[Z]){this.querySelectorAll("fig-tab").forEach((J)=>J.removeAttribute("selected")),this.selectedTab=q[Z],q[Z].setAttribute("selected","true");let $=this.#k(q[Z]);if($)this.setAttribute("value",$);else this.removeAttribute("value");q[Z].focus(),this.#G(),this.#K(q[Z]),this.#P()}}get value(){return this.#k(this.selectedTab)}set value(_){this.setAttribute("value",_)}#P(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#k(_){if(!_)return"";let q=_.getAttribute("value");if(q!==null)return q;return _.textContent?.trim()||""}#z(_){let q=this.querySelectorAll("fig-tab");for(let Q of q)if(this.#k(Q)===_)this.selectedTab=Q,Q.setAttribute("selected","true");else Q.removeAttribute("selected");this.#G(),this.#K(this.selectedTab)}attributeChangedCallback(_,q,Q){switch(_){case"value":if(Q!==q)this.#z(Q);break;case"disabled":this.#U(Q!==null&&Q!=="false");break}}handleClick(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=_.target.closest("fig-tab");if(!q||!this.contains(q))return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;let Q=this.selectedTab,Z=this.value,$=this.querySelectorAll("fig-tab");for(let j of $)if(j===q)this.selectedTab=j,j.setAttribute("selected","true");else j.removeAttribute("selected");let J=this.#k(q);if(J)this.setAttribute("value",J);else this.removeAttribute("value");if(this.#G(),this.#K(q),Q!==q||Z!==this.value)this.#P()}}M("fig-tabs",s0);class o0 extends HTMLElement{#q;#_;#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.#Z(),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.#q}set value(_){this.#q=_,this.setAttribute("value",_)}get selected(){return this.#_}set selected(_){this.#_=_,this.setAttribute("selected",_)}static get observedAttributes(){return["selected","value","disabled"]}#Z(){let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false",q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-checked",_?"true":"false"),q)this.setAttribute("aria-disabled","true"),this.setAttribute("tabindex","-1");else this.removeAttribute("aria-disabled"),this.setAttribute("tabindex",_?"0":"-1")}attributeChangedCallback(_,q,Q){switch(_){case"value":this.#q=Q;break;case"selected":this.#_=Q,this.#Z();break;case"disabled":this.#Z();break}}}M("fig-segment",o0);class i0 extends HTMLElement{#q=null;#_=this.handleClick.bind(this);#Q=this.#A.bind(this);#Z=null;#$=null;#J=0;#W=!1;#j=!1;#N=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.#M(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"),this.#H(),this.#P(),c(this,()=>{this.#z({enforceFallback:!0}),this.#k(),this.#O({forceInstant:!0})})}disconnectedCallback(){if(this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#Q),this.#Z?.disconnect(),this.#Z=null,this.#$?.disconnect(),this.#$=null,this.#J)cancelAnimationFrame(this.#J),this.#J=0;this.#W=!1,this.#j=!1}get selectedSegment(){return this.#q}set selectedSegment(_){let q=this.querySelectorAll("fig-segment");for(let Q of q){let Z=Q===_,$=k(Q,"selected");if(Z&&!$)Q.setAttribute("selected","true");else if(!Z&&$)Q.removeAttribute("selected")}this.#q=_ instanceof HTMLElement&&this.contains(_)?_:null,this.#R(),this.#O()}get value(){return this.getAttribute("value")||""}set value(_){if(_===null||_===void 0){this.removeAttribute("value");return}this.setAttribute("value",String(_))}#U(_){this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#L(_){let q=_.getAttribute("value");if(q!==null){let Q=q.trim();if(Q.length>0)return Q}return _.textContent?.trim()||""}#G(){let _=this.querySelectorAll("fig-segment");for(let q of _)if(q.hasAttribute("selected")&&q.getAttribute("selected")!=="false")return q;return null}#K(){return Array.from(this.querySelectorAll("fig-segment")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#R(){let _=Array.from(this.querySelectorAll("fig-segment")),q=_.find((Q)=>Q.hasAttribute("selected")&&Q.getAttribute("selected")!=="false");_.forEach((Q)=>{let Z=Q.hasAttribute("disabled")&&Q.getAttribute("disabled")!=="false",$=Q===q;Q.setAttribute("aria-checked",$?"true":"false"),Q.setAttribute("tabindex",!Z&&$?"0":"-1")})}#X(_){if(!_)return;let q=this.selectedSegment,Q=this.value;this.selectedSegment=_;let Z=this.#L(_);if(Z)this.setAttribute("value",Z);else this.removeAttribute("value");let $=this.value;if(q!==_||Q!==$)this.#U($)}#A(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.#K();if(!q.length)return;let Q=q.findIndex((J)=>k(J,"selected")),Z=Q>=0?Q:0;switch(_.key){case"ArrowLeft":case"ArrowUp":_.preventDefault(),Z=Z>0?Z-1:q.length-1;break;case"ArrowRight":case"ArrowDown":_.preventDefault(),Z=Z<q.length-1?Z+1:0;break;case"Home":_.preventDefault(),Z=0;break;case"End":_.preventDefault(),Z=q.length-1;break;case" ":case"Enter":{let J=_.target.closest("fig-segment");if(J&&this.contains(J))_.preventDefault(),this.#X(J);return}default:return}let $=q[Z];this.#X($),$.focus(),requestAnimationFrame(()=>{if(this.contains($))$.focus()})}#B(_){let q=String(_??"").trim();if(!q)return!1;let Q=this.querySelectorAll("fig-segment");for(let Z of Q){let $=this.#L(Z);if(!$)continue;if($===q)return this.selectedSegment=Z,!0}return!1}#Y(){let _=this.getAttribute("animated");if(_===null)return!1;if(_==="")return!0;return _.trim().toLowerCase()==="true"}#O({forceInstant:_=!1}={}){if(this.#W=this.#W||_,this.#J)return;this.#J=requestAnimationFrame(()=>{this.#J=0;let q=this.#W;this.#W=!1,this.#F({forceInstant:q})})}#F({forceInstant:_=!1}={}){let q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Q=this.#Y(),Z=this.#q&&this.contains(this.#q)?this.#q:this.#G();if(q||!Q){if(this.style.setProperty("--seg-indicator-opacity","0"),this.style.setProperty("--seg-indicator-transition-duration","0ms"),this.removeAttribute("data-indicator-ready"),!Q||q)this.#j=!1;return}if(!Z){if(this.#j)return;this.style.setProperty("--seg-indicator-opacity","0"),this.style.setProperty("--seg-indicator-transition-duration","0ms"),this.removeAttribute("data-indicator-ready");return}let $=this.getBoundingClientRect(),J=Z.getBoundingClientRect();if($.width<=0||J.width<=0){if(this.#j)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,J.left-$.left);this.style.setProperty("--seg-indicator-x",`${j}px`),this.style.setProperty("--seg-indicator-w",`${J.width}px`),this.style.setProperty("--seg-indicator-opacity","1"),this.style.setProperty("--seg-indicator-transition-duration",!this.#j||_?"0ms":"150ms"),this.setAttribute("data-indicator-ready","true"),this.#j=!0}#P(){this.#$?.disconnect(),this.#$=new ResizeObserver(()=>{this.#O()}),this.#k()}#k(){if(!this.#$)return;this.#$.disconnect(),this.#$.observe(this),this.querySelectorAll("fig-segment").forEach((_)=>{this.#$?.observe(_)})}#z({enforceFallback:_=!1}={}){if(this.querySelectorAll("fig-segment").length===0){this.#q=null,this.#O({forceInstant:!0});return}let Q=this.getAttribute("value"),Z=Q?.trim()??"";if(Q!==null){if(Z!==Q){this.setAttribute("value",Z);return}if(Z&&this.#B(Z))return}let $=this.#G();if($){this.selectedSegment=$;return}if(_)this.selectedSegment=this.#K()[0]||null}#H(){this.#Z?.disconnect(),this.#Z=new MutationObserver((_)=>{let q=!1;for(let Q of _){if(Q.type==="childList"){q=!0;break}if(Q.type==="attributes"&&Q.target instanceof HTMLElement&&Q.target.tagName.toLowerCase()==="fig-segment"&&(Q.attributeName==="value"||Q.attributeName==="selected")){q=!0;break}if(Q.type==="characterData"){q=!0;break}}if(q)this.#M(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"),this.#k(),this.#z({enforceFallback:!0}),this.#R()}),this.#Z.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["value","selected"]})}handleClick(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=_.target.closest("fig-segment");if(!q||!this.contains(q))return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;this.#X(q)}#M(_){this.setAttribute("aria-disabled",_?"true":"false"),this.querySelectorAll("fig-segment").forEach((q)=>{if(_){if(!(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false"))this.#N.add(q),q.setAttribute("disabled","");q.setAttribute("aria-disabled","true")}else if(this.#N.has(q))this.#N.delete(q),q.removeAttribute("disabled"),q.removeAttribute("aria-disabled")}),this.#R()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="disabled"){this.#M(Q!==null&&Q!=="false"),this.#O({forceInstant:!0});return}if(_==="value"){this.#z({enforceFallback:!1});return}if(_==="animated"){if(!this.#Y())this.#j=!1;this.#O({forceInstant:!0});return}if(_==="sizing")this.#O({forceInstant:!0})}}M("fig-segmented-control",i0);class r0 extends HTMLElement{static get observedAttributes(){return["options","value","disabled","full","sizing"]}#q="segments";#_=0;#Q=null;#Z=[];#$=null;#J=!1;#W(_){let q=_?.detail;if(typeof q==="string")return q;let Q=_?.currentTarget?.value??_?.target?.value??this.getAttribute("value");if(Q===null||Q===void 0)return null;return String(Q)}#j(){if(this.#Z.length===0)return!1;let _=this.querySelector(":scope > fig-segmented-control");if(_){let Q=_.querySelectorAll("fig-segment");if(Q.length!==this.#Z.length)return!1;return Array.from(Q).every((Z,$)=>Z.getAttribute("value")===this.#Z[$])}let q=this.querySelector(":scope > fig-dropdown");if(q){let Q=q.querySelectorAll("option");return Q.length===this.#Z.length&&Array.from(Q).every((Z,$)=>Z.textContent?.trim()===this.#Z[$])}return!1}#N(){let _=this.querySelector(":scope > fig-segmented-control");if(_)this.#$=_,this.#q="segments";else this.#$=this.querySelector(":scope > fig-dropdown"),this.#q="dropdown";this.#R()}connectedCallback(){if(this.#U(),this.#j()){this.#N(),this.#A(),c(this,()=>c(this,()=>this.#O()));return}this.#L(),this.#A(),c(this,()=>c(this,()=>this.#O()))}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.#Z.slice()}set options(_){if(Array.isArray(_)){let Q=_.some((Z)=>String(Z).includes(","))?JSON.stringify(_):_.join(",");this.setAttribute("options",Q)}else this.setAttribute("options",String(_||""))}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="options"){this.#U(),this.#K();return}if(_==="value"){this.#R();return}if(_==="disabled"){this.#X("disabled");return}if(_==="full"){this.#X("full");return}if(_==="sizing")this.#X("sizing"),this.#K()}#U(){let _=this.getAttribute("options")||"";if(_.startsWith("["))try{this.#Z=JSON.parse(_);return}catch{}let q=_.includes(`
33
33
  `)?`
34
- `:",";this.#Z=_.split(q).map((Q)=>Q.trim()).filter(Boolean)}#L(){if(this.replaceChildren(),this.#Z.length===0)return;let _=document.createElement("fig-segmented-control");if(_.setAttribute("sizing",this.getAttribute("sizing")||"equal"),k(this,"disabled"))_.setAttribute("disabled","");if(k(this,"full"))_.setAttribute("full","");let q=this.getAttribute("value");for(let Q of this.#Z){let Z=document.createElement("fig-segment");if(Z.setAttribute("value",Q),Z.textContent=Q,q===Q)Z.setAttribute("selected","true");_.appendChild(Z)}if(q)_.setAttribute("value",q);_.addEventListener("input",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(Z===null)return;this.#J=!0,this.setAttribute("value",Z),this.#J=!1,this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0,composed:!0}))}),_.addEventListener("change",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(Z===null)return;this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#$=_,this.#q="segments"}#G(){if(this.replaceChildren(),this.#Z.length===0)return;let _=document.createElement("fig-dropdown");if(k(this,"disabled"))_.setAttribute("disabled","");let q=this.getAttribute("value");for(let Q of this.#Z){let Z=document.createElement("option");if(Z.value=Q,Z.textContent=Q,q===Q)Z.selected=!0;_.appendChild(Z)}if(q)_.setAttribute("value",q);_.addEventListener("input",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(!Z)return;this.#J=!0,this.setAttribute("value",Z),this.#J=!1,this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0,composed:!0}))}),_.addEventListener("change",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(!Z)return;this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#$=_,this.#q="dropdown"}#K(){if(this.#q==="segments")this.#L(),requestAnimationFrame(()=>{requestAnimationFrame(()=>this.#O())});else this.#G()}#R(){if(!this.#$||this.#J)return;let _=this.getAttribute("value")||"";this.#$.value=_}#X(_){if(!this.#$)return;if(this.hasAttribute(_))this.#$.setAttribute(_,this.getAttribute(_)||"");else this.#$.removeAttribute(_)}#A(){this.#Q?.disconnect(),this.#Q=new ResizeObserver(()=>{this.#O()}),this.#Q.observe(this)}#B(_){let q=document.createRange();q.selectNodeContents(_);let Q=q.getBoundingClientRect().width,$=_.getBoundingClientRect().width,J=getComputedStyle(_),j=parseFloat(J.paddingLeft)||0,N=parseFloat(J.paddingRight)||0,W=$-j-N;return Q>W+0.5}#Y(){let _=this.querySelectorAll("fig-segment");for(let q of _)if(this.#B(q))return!0;return!1}#O(){if(this.#Z.length<=1)return;if(this.#q==="segments"){let _=this.#$;if(_&&_.scrollWidth>_.clientWidth+1||this.#Y())this.#_=this.clientWidth,this.#G()}else if(this.#_>0&&this.clientWidth>=this.#_)this.#L(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let _=this.#$;if(_&&_.scrollWidth>_.clientWidth+1||this.#Y())this.#G()})})}}M("fig-options",r0);class l0 extends HTMLElement{#q=!1;#_=!1;#Q=!1;#Z="";#$=["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"}};#W;#j;#N;#U;#L;#G;#K;#R=null;#X=null;#A=null;#B=null;constructor(){super();this.initialChildren=null,this.#W=(_)=>{_.stopPropagation(),this.#g()},this.#j=(_)=>{_.stopPropagation(),this.#v()},this.#L=(_)=>{this.#x(_)},this.#N=(_)=>{_.stopPropagation(),this.#z()},this.#U=(_)=>{_.stopPropagation(),this.#w()},this.#G=()=>{this.#q=!0},this.#K=()=>{if(this.#q=!1,this.#_&&this.isConnected)this.#_=!1,this.#k()}}#Y(){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 q=this.#J[this.type]||this.#J.range,Q=(Z,$)=>{let J=this.getAttribute(Z),j=J===null||J.trim()===""?$:Number(J);return Number.isFinite(j)?j:$};if(this.min=Q("min",q.min),this.max=Q("max",q.max),this.step=Q("step",q.step),!(this.step>0))this.step=q.step>0?q.step:1;this.color=this.getAttribute("color")||q?.color,this.default=this.hasAttribute("default")?this.getAttribute("default"):this.type==="delta"?0:this.min,this.value=this.#T(_)}#O(){if(!this.querySelector("[type=range]"))return!1;return this.getAttribute("text")!=="false"===!!this.querySelector("fig-input-number")}#F(){if(this.#Y(),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)}}#P(){if(this.#E(),this.input.removeEventListener("input",this.#W),this.input.addEventListener("input",this.#W),this.input.removeEventListener("change",this.#j),this.input.addEventListener("change",this.#j),this.input.removeEventListener("keydown",this.#L),this.input.addEventListener("keydown",this.#L),this.input.removeEventListener("pointerdown",this.#G),this.input.addEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#K),this.input.addEventListener("pointerup",this.#K),this.input.removeEventListener("pointercancel",this.#K),this.input.addEventListener("pointercancel",this.#K),this.default)this.style.setProperty("--default",this.#H(this.default));if(this.figInputNumber)this.#y(),this.figInputNumber.removeEventListener("input",this.#N),this.figInputNumber.addEventListener("input",this.#N),this.figInputNumber.removeEventListener("change",this.#U),this.figInputNumber.addEventListener("change",this.#U)}#k(){if(this.#Y(),this.color)this.style.setProperty("--color",this.color);let _=X("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}),q=X("div",{className:"fig-slider-input-container",role:"group"},_);for(let Z of this.initialChildren??[])q.appendChild(Z);let Q=[q];if(this.text)Q.push(X("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(...Q),this.input=_,this.inputContainer=q,this.figInputNumber=this.querySelector("fig-input-number"),this.#P(),this.datalist=this.querySelector("datalist"),this.datalist)this.inputContainer.append(this.datalist),this.datalist.setAttribute("id",this.datalist.getAttribute("id")||m()),this.input.setAttribute("list",this.datalist.getAttribute("id"));else if(this.type==="stepper"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("id",m());let Z=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1));for(let $=0;$<Z;$++){let J=document.createElement("option");J.setAttribute("value",this.min+$*this.step),this.datalist.append(J)}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("id",m());let Z=document.createElement("option");Z.setAttribute("value",this.default),this.datalist.append(Z),this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}if(this.datalist){let Z=[...this.datalist.querySelectorAll("option")].find(($)=>$.value===String(this.default));if(Z)Z.setAttribute("default","true")}this.#f()}connectedCallback(){if(this.initialChildren===null)this.initialChildren=Array.from(this.childNodes);if(this.#O()){this.#F(),this.#P(),this.#f();return}this.#k()}get value(){if(this.#Z!=="")return this.#Z;let _=this.getAttribute("value");if(_!==null)return String(this.#T(_));return""}set value(_){let q=_===null||_===void 0?"":String(_),Z=this.min!==void 0||this.max!==void 0?String(this.#T(q)):q;if(this.#Z=Z,this.getAttribute("value")!==Z)this.#Q=!0,this.setAttribute("value",Z),this.#Q=!1;if(this.input&&this.input.value!==Z)this.input.value=Z,this.input.setAttribute("aria-valuenow",Z);if(this.figInputNumber)this.figInputNumber.setAttribute("value",Z);if(this.input)this.#S()}disconnectedCallback(){if(this.#_=!1,this.input)this.input.removeEventListener("input",this.#W),this.input.removeEventListener("change",this.#j),this.input.removeEventListener("keydown",this.#L),this.input.removeEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#K),this.input.removeEventListener("pointercancel",this.#K);if(this.figInputNumber)this.figInputNumber.removeEventListener("input",this.#N),this.figInputNumber.removeEventListener("change",this.#U)}#z(){if(this.figInputNumber){let _=this.figInputNumber.value,q=this.#T(_);this.value=q,this.input.value=String(q),this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}}#H(_){let{min:q,max:Q}=this.#D(),Z=Q-q;if(Z===0)return 0;return(Number(_)-q)/Z}#M(_){if(_===null||_===void 0)return null;if(typeof _==="string"&&_.trim()==="")return null;let q=Number(_);return Number.isFinite(q)?q:null}#D(){let _=this.#M(this.min),q=this.#M(this.max);if(_===null)_=0;if(q===null)q=_;if(_>q)[_,q]=[q,_];return{min:_,max:q}}#C(_){let{min:q,max:Q}=this.#D();return Math.min(Q,Math.max(q,_))}#I(){if(this.type==="delta"){let q=this.#M(this.default);if(q!==null)return this.#C(q);return this.#C(0)}if(this.type==="range"){let{min:q,max:Q}=this.#D();return this.#C(q+(Q-q)/2)}let{min:_}=this.#D();return _}#T(_){let q=this.#M(_);if(q===null)return this.#I();return this.#C(q)}#S(){let _=this.#H(this.value),q=this.#H(this.default),Q=_<q?-1:1,Z=_===q?1:0;if(this.#R!==_)this.style.setProperty("--slider-complete",_),this.#R=_;if(this.#X!==q)this.style.setProperty("--default",q),this.#X=q;if(this.#A!==Q)this.style.setProperty("--slider-delta-direction",Q),this.#A=Q;if(this.#B!==Z)this.style.setProperty("--unchanged",Z),this.#B=Z}#f(){let _=this.input.value;if(this.value=_,this.#S(),this.input.setAttribute("aria-valuenow",_),this.figInputNumber)this.figInputNumber.setAttribute("value",_)}#E(){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.#$.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#y(){if(!this.figInputNumber)return;["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"].forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.figInputNumber.removeAttribute(_);else this.figInputNumber.setAttribute(_,q)})}#g(){this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#v(){this.#q=!1,this.#f(),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 q=_.key==="ArrowRight"||_.key==="ArrowUp"?1:-1,Q=this.#M(this.input.value)??this.#I(),Z=this.#M(this.step)??1,$=this.#T(Q+Z*10*q);this.value=$,this.input.value=String($),this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#w(){if(this.figInputNumber){let _=this.figInputNumber.value,q=this.#T(_);this.value=q,this.input.value=String(q),this.#f(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}}#h(_,q){if(!this.input)return;let Q=this.#J[this.type]||this.#J.range,Z=q===null||String(q).trim()===""?Q[_]:Number(q),$=Number.isFinite(Z)?Z:Q[_];if(_==="step"&&!($>0))$=Q.step>0?Q.step:1;if(this[_]===$&&this.input[_]===String($))return;if(this[_]=$,this.input[_]=String($),_==="min")this.input.setAttribute("aria-valuemin",String($));else if(_==="max")this.input.setAttribute("aria-valuemax",String($));if(this.figInputNumber)this.figInputNumber.setAttribute(_,String($));if(!this.hasAttribute("default")&&this.type!=="delta")this.default=this.min;this.value=this.#T(this.value),this.#S(),this.#V()}#V(){if(this.type!=="stepper"||!this.datalist)return;let _=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1)),q=document.createDocumentFragment();for(let Q=0;Q<_;Q++){let Z=document.createElement("option");Z.setAttribute("value",this.min+Q*this.step),q.append(Z)}this.datalist.replaceChildren(q),this.input.setAttribute("list",this.datalist.id)}#b(){if(this.#q){this.#_=!0;return}this.#_=!1,this.#k()}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(_,q,Q){if(q===Q)return;if(_==="value"&&this.#Q)return;if(this.input)switch(_){case"color":this.color=Q,this.style.setProperty("--color",this.color);break;case"disabled":if(this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.figInputNumber)this.figInputNumber.disabled=this.disabled,this.figInputNumber.setAttribute("disabled",this.disabled);break;case"value":if(this.#q)break;this.value=Q,this.#f();break;case"transform":if(this.transform=Number(Q)||1,this.figInputNumber)this.figInputNumber.setAttribute("transform",this.transform);break;case"precision":if(this.precision=Q!==null?Number(Q):null,this.figInputNumber)if(this.precision!==null)this.figInputNumber.setAttribute("precision",this.precision);else this.figInputNumber.removeAttribute("precision");break;case"placeholder":if(this.placeholder=Q!==null?Q:"##",this.figInputNumber)this.figInputNumber.setAttribute("placeholder",this.placeholder);break;case"default":this.default=Q!==null?Q:this.type==="delta"?0:this.min,this.#S();break;case"min":case"max":case"step":this.#h(_,Q);break;case"units":if(this.units=Q||"",this.figInputNumber)if(this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");break;case"type":case"variant":if(!this.#q)this[_]=Q;this.#b();break;case"text":if(!this.#q)this.text=Q!=="false";this.#b();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":case"aria-valuetext":this.#E();break;default:this[_]=this.input[_]=Q,this.#f();break}}}M("fig-slider",l0);class t0 extends HTMLElement{#q=!1;#_=!1;#Q="";#Z=!1;#$;#J;#W;#j;#N;#U;#L;#G;#K=null;#R=0;#X="";#A="";#B=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];constructor(){super();this.#$=this.#E.bind(this),this.#J=this.#g.bind(this),this.#W=this.#g.bind(this),this.#j=this.#y.bind(this),this.#N=(_)=>{_.stopPropagation(),this.#f(_)},this.#U=(_)=>{_.stopPropagation();let q=_.target.value;if(this.type==="number")q=Number(q)/(this.transform||1);this.value=q,this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))},this.#L=()=>{if(!this.disabled)this.focus()},this.#G=this.#O.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.#Y(),this.input.readOnly=this.readonly,this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.input.disabled=this.disabled,this.#z(),this.#H(),this.#M(),this.#D(),this.#C(),this.#T(),j0(this),this.#F(),this.type==="number"){if(this.getAttribute("min"))this.input.setAttribute("min",this.#S(this.min));if(this.getAttribute("max"))this.input.setAttribute("max",this.#S(this.max));if(this.getAttribute("step"))this.input.setAttribute("step",this.#S(this.step));this.addEventListener("pointerdown",this.#j)}this.removeEventListener("click",this.#G),this.addEventListener("click",this.#G),this.input.removeEventListener("change",this.#N),this.input.addEventListener("change",this.#N),this.input.removeEventListener("input",this.#U),this.input.addEventListener("input",this.#U)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#N),this.input.removeEventListener("input",this.#U);if(this.removeEventListener("click",this.#G),this.removeEventListener("pointerdown",this.#j),window.removeEventListener("pointermove",this.#$),window.removeEventListener("pointerup",this.#J),window.removeEventListener("blur",this.#W),this.#K?.disconnect(),this.#K=null,this.#R)cancelAnimationFrame(this.#R),this.#R=0}focus(){this.input.focus()}#Y(){let _=this.multiline,q=this.querySelector("input,textarea");if(q){if(_?q.tagName==="TEXTAREA":q.tagName==="INPUT")return q;q.remove()}let Q;if(_)Q=document.createElement("textarea"),Q.value=this.value;else Q=document.createElement("input"),Q.type=this.type,Q.value=this.type==="number"?this.#S(this.value):this.value;if(Q.setAttribute("data-generated","input-control"),this.name)Q.name=this.name;return Q.placeholder=this.placeholder,this.insertBefore(Q,this.querySelector('[slot="append"]')),Q}#O(_){let q=_.target?.closest?.("[slot]");if(!q||q.parentElement!==this)return;if(this.disabled)return;this.focus()}#F(){this.#K?.disconnect(),this.#K=new MutationObserver(()=>this.#P()),this.#K.observe(this,{childList:!0,characterData:!0,subtree:!0})}#P(){if(this.#R)return;this.#R=requestAnimationFrame(()=>{if(this.#R=0,!this.isConnected)return;this.#k()})}#k(){if(!this.input||!this.contains(this.input))this.input=this.#Y(),this.input.readOnly=this.readonly,this.input.addEventListener("change",this.#N),this.input.addEventListener("input",this.#U);this.#z(),this.#H(),this.#M(),this.#D(),this.#C(),this.#T(),j0(this)}#z(){if(!this.input)return;this.#B.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#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 Z=_.querySelector("fig-icon");if(Z&&Z.getAttribute("name")!=="search")Z.setAttribute("name","search");return}let Q=b("search");Q.setAttribute("slot","prepend"),Q.setAttribute("data-generated","search-prefix"),Q.setAttribute("color","var(--figma-color-icon)"),Q.addEventListener("click",this.#L),this.prepend(Q)}#M(){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 Q=document.createElement("span");Q.setAttribute("slot","append"),Q.setAttribute("data-generated","search-clear");let Z=document.createElement("fig-tooltip");Z.setAttribute("text","Clear search");let $=document.createElement("fig-button");$.setAttribute("variant","ghost"),$.setAttribute("icon",""),$.setAttribute("aria-label","Clear search");let J=b("close",{size:"small"});J.setAttribute("color","var(--figma-color-icon-secondary)"),$.append(J),Z.append($),Q.append(Z),this.append(Q),$.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.#D(),this.focus()})}#D(){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.#I(_);return}let Q=document.createElement("span");Q.setAttribute("slot","append"),Q.setAttribute("data-generated","password-toggle");let Z=document.createElement("fig-tooltip"),$=document.createElement("fig-button");$.setAttribute("variant","ghost"),$.setAttribute("icon","");let J=b("visible",{size:"small"});J.setAttribute("color","var(--figma-color-icon-secondary)"),$.append(J),Z.append($),Q.append(Z),this.append(Q),this.#I(Q),$.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(this.#_=!this.#_,this.input)this.input.type=this.#_?"text":"password";this.#I(Q),this.focus()})}#I(_){let q=_.querySelector("fig-tooltip"),Q=_.querySelector("fig-button"),Z=_.querySelector("fig-icon"),$=this.#_?"Hide password":"Show password";q?.setAttribute("text",$),Q?.setAttribute("aria-label",$),Z?.setAttribute("name",this.#_?"visible":"hidden")}#T(){this.querySelectorAll('[data-generated="search-clear"] fig-button, [data-generated="password-toggle"] fig-button').forEach((_)=>{if(this.disabled)_.setAttribute("disabled","");else _.removeAttribute("disabled")})}#S(_){if(_==="")return"";let q=Number(_)*(this.transform||1);return q=this.#x(q),q}#f(_){_.stopPropagation();let q=_.target.value,Q=q;if(this.type==="number")q=q/(this.transform||1),q=this.#v(q,!1),Q=q*(this.transform||1);this.value=q,this.input.value=Q,this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#E(_){if(this.type!=="number")return;if(_.buttons===0){this.#g();return}let q=(this.step||1)*_.movementX,Q=Number(this.input.value);Q=Q/(this.transform||1)+q,Q=this.#v(Q,!1);let Z=Q*(this.transform||1);Q=this.#x(Q),Z=this.#x(Z),this.value=Q,this.input.value=Z,this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#y(_){if(this.type!=="number")return;if(_.altKey||_.target.closest("[slot]"))this.#q=!0,this.#X=this.style.userSelect,this.#A=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.#$),window.addEventListener("pointerup",this.#J),window.addEventListener("pointercancel",this.#J),window.addEventListener("blur",this.#W)}#g(_){if(this.type!=="number")return;let q=this.#q;if(this.#q=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#A,this.style.userSelect=this.#X,window.removeEventListener("pointermove",this.#$),window.removeEventListener("pointerup",this.#J),window.removeEventListener("pointercancel",this.#J),window.removeEventListener("blur",this.#W),q)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#v(_,q=!0){let Q=_;if(this.type==="number"){if(Q=Number(Q),typeof this.min==="number")Q=Math.max(q?this.#S(this.min):this.min,Q);if(typeof this.max==="number")Q=Math.min(q?this.#S(this.max):this.max,Q);Q=this.#x(Q)}return Q}#x(_,q=2){let Q=Math.round(_*100)/100;return Number.isInteger(Q)?Q:Q.toFixed(q)}get value(){return this.#Q}set value(_){let q=_??"";this.#Q=q;let Q=String(q);if(this.getAttribute("value")!==Q)this.#Z=!0,this.setAttribute("value",Q),this.#Z=!1;this.#w(q)}#w(_){if(!this.input||this.#q)return;let q=this.type==="number"?String(this.#S(_)):String(_??"");if(this.input.value!==q)this.input.value=q;this.#D()}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(_,q,Q){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.#T();break;case"readonly":this.readonly=Q!==null&&Q!=="false",this.input.readOnly=this.readonly;break;case"transform":if(this.type==="number")this.transform=Number(Q)||1,this.input.value=this.#S(this.value);break;case"value":if(this.#q)break;let Z=Q;if(this.type==="number")Z=this.#v(Z,!1);if(this.#Q=Z??"",!this.#Z)this.#w(this.#Q);break;case"min":case"max":case"step":if(Q===null||Q==="")this[_]=void 0,this.input.removeAttribute(_);else this[_]=this.input[_]=Number(Q),this.input.setAttribute(_,Q);break;case"name":if(this[_]=this.input[_]=Q||"",Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=Q??"",this.input.placeholder=this.placeholder;break;case"type":if(this.type=Q||"text",this.input.type=this.type,this.removeEventListener("pointerdown",this.#j),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.#j);this.#H(),this.#M(),this.#D(),this.#C(),this.#T();break;case"multiline":{let $=Q!==null&&Q!=="false";if($!==this.multiline){this.multiline=$;let J=this.input;J.removeEventListener("change",this.#N),J.removeEventListener("input",this.#U),J.remove(),this.input=this.#Y(),this.input.readOnly=this.readonly,this.input.disabled=Boolean(this.disabled),this.input.addEventListener("change",this.#N),this.input.addEventListener("input",this.#U),this.#z()}break}case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#z();break;default:this[_]=this.input[_]=Q;break}}}M("fig-input-text",t0);class N0 extends HTMLElement{#q;#_;#Q;#Z;#$;#J;#W;#j;#N;#U;#L;#G;#K;#R;#X;#A;#B=!1;#Y=null;#O=null;#F=0;#P="";#k="";#z=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];static#H="px";#M(_){return(_||"").split(",").map((q)=>q.trim().toLowerCase()).filter(Boolean)}#D(_){let q=(_||"").trim();if(!q)return"";return(this.#R??[]).includes(q.toLowerCase())?"":q}#C(){this.#G=this.#D(this.#K)}#I(_){if(_&&!this.#Y)this.#Y=document.createElement("span"),this.#Y.className="fig-steppers",this.#Y.append(X("button",{className:"fig-stepper-up",tabindex:"-1","aria-label":"Increase"}),X("button",{className:"fig-stepper-down",tabindex:"-1","aria-label":"Decrease"})),this.#Y.addEventListener("pointerdown",(q)=>{q.preventDefault(),q.stopPropagation();let Q=q.target.closest("button");if(!Q||this.disabled||Q.disabled)return;let Z=Q.classList.contains("fig-stepper-up")?1:-1;this.#S(Z),this.input.focus()}),this.append(this.#Y);else if(!_&&this.#Y)this.#Y.remove(),this.#Y=null;this.#T()}#T(){if(!this.#Y)return;let _=this.#Y.querySelector(".fig-stepper-up"),q=this.#Y.querySelector(".fig-stepper-down");if(!_||!q)return;let Q=this.input?this.#h(this.input.value):this.value,Z=Q!==""&&Q!==null&&Q!==void 0?Number(Q)/(this.transform||1):Number(this.value),$=Number.isFinite(Z),J=Boolean(this.disabled),j=$&&typeof this.min==="number"&&Z<=this.min,N=$&&typeof this.max==="number"&&Z>=this.max;_.disabled=J||N,q.disabled=J||j}#S(_){let q=this.step||1,Q=this.#h(this.input.value),Z=(Q!==""?Number(Q)/(this.transform||1):0)+q*_;Z=this.#d(Z,!1),this.value=Z,this.input.value=this.#V(this.value),this.#T(),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.#q=this.#t.bind(this),this.#_=this.#c.bind(this),this.#Q=this.#c.bind(this),this.#Z=this.#p.bind(this),this.#$=(_)=>{_.stopPropagation(),this.#u(_)},this.#J=(_)=>{_.stopPropagation(),this.#a(_)},this.#W=(_)=>{this.#m(_)},this.#j=(_)=>{this.#s(_)},this.#N=(_)=>{this.#i(_)},this.#U=this.focus.bind(this),this.#L=this.#E.bind(this)}connectedCallback(){let _=this.getAttribute("value");this.value=_!==null&&_!==""?Number(_):"",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.#K=this.getAttribute("units")||"";let q=this.getAttribute("units-disallow");if(this.#R=this.#M(q===null?N0.#H:q),this.#C(),this.#X=this.getAttribute("unit-position")||"suffix",this.#A=this.#e(this.hasAttribute("precision")?this.getAttribute("precision"):2),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 Q=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.input=this.#f(),this.#x(),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.#I(Q),this.hasAttribute("disabled")){let Z=this.getAttribute("disabled");this.disabled=this.input.disabled=Z!=="false"}this.#T(),this.#w(),j0(this),this.addEventListener("pointerdown",this.#Z),this.removeEventListener("click",this.#L),this.addEventListener("click",this.#L),this.#y(),this.input.removeEventListener("change",this.#$),this.input.addEventListener("change",this.#$),this.input.removeEventListener("input",this.#J),this.input.addEventListener("input",this.#J),this.input.removeEventListener("focus",this.#W),this.input.addEventListener("focus",this.#W),this.input.removeEventListener("blur",this.#j),this.input.addEventListener("blur",this.#j),this.input.removeEventListener("keydown",this.#N),this.input.addEventListener("keydown",this.#N)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#$),this.input.removeEventListener("input",this.#J),this.input.removeEventListener("focus",this.#W),this.input.removeEventListener("blur",this.#j),this.input.removeEventListener("keydown",this.#N);if(this.removeEventListener("click",this.#L),this.removeEventListener("pointerdown",this.#Z),window.removeEventListener("pointermove",this.#q),window.removeEventListener("pointerup",this.#_),window.removeEventListener("blur",this.#Q),this.#O?.disconnect(),this.#O=null,this.#F)cancelAnimationFrame(this.#F),this.#F=0}focus(){this.input.focus()}#f(){let _=this.querySelector("input");if(_)return _;let q=document.createElement("input");if(q.type="text",q.inputMode="decimal",q.setAttribute("data-generated","input-control"),this.name)q.name=this.name;return q.placeholder=this.placeholder,q.value=this.#V(this.value),this.insertBefore(q,this.querySelector('[slot="append"]')),q}#E(_){let q=_.target?.closest?.("[slot]");if(!q||q.parentElement!==this)return;this.focus()}#y(){this.#O?.disconnect(),this.#O=new MutationObserver(()=>this.#g()),this.#O.observe(this,{childList:!0,characterData:!0,subtree:!0})}#g(){if(this.#F)return;this.#F=requestAnimationFrame(()=>{if(this.#F=0,!this.isConnected)return;this.#v()})}#v(){if(!this.input||!this.contains(this.input))this.input=this.#f(),this.input.addEventListener("change",this.#$),this.input.addEventListener("input",this.#J),this.input.addEventListener("focus",this.#W),this.input.addEventListener("blur",this.#j),this.input.addEventListener("keydown",this.#N);let _=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.#Y&&!this.contains(this.#Y))this.#Y=null;this.#I(_),this.#x(),this.#w(),j0(this)}#x(){if(!this.input)return;this.#z.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#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.#V(this.value));else this.input.removeAttribute("aria-valuenow"),this.input.removeAttribute("aria-valuetext")}#h(_){if(!_)return"";if(!this.#G){let Z=_.replace(/[^\d.-]/g,""),$=Z.split(".");if($.length>2)Z=$[0]+"."+$.slice(1).join("");return Z}let q=_.replace(this.#G,"").trim();q=q.replace(/[^\d.-]/g,"");let Q=q.split(".");if(Q.length>2)q=Q[0]+"."+Q.slice(1).join("");return q}#V(_){if(_===""||_===null||_===void 0)return"";let q=Number(_)*(this.transform||1);if(isNaN(q))return"";if(q=this.#n(q),!this.#G)return q.toString();if(this.#X==="prefix")return this.#G+q;else return q+this.#G}#b(_){if(_===""||_===null||_===void 0)return"";let q=Number(_)*(this.transform||1);return q=this.#n(q),q.toString()}#m(_){this.#B=!0,setTimeout(()=>{let q=_.target.value;if(q&&this.#G)if(this.#X==="prefix")_.target.setSelectionRange(this.#G.length,q.length);else{let Q=q.indexOf(this.#G);if(Q>-1)_.target.setSelectionRange(0,Q)}},0)}#s(_){this.#B=!1;let q=this.#h(_.target.value);if(q!==""){let Q=Number(q)/(this.transform||1);Q=this.#d(Q,!1),this.value=Q,_.target.value=this.#V(this.value)}else this.value="",_.target.value="";this.#T(),this.#w()}#i(_){if(this.disabled)return;if(_.key!=="ArrowUp"&&_.key!=="ArrowDown")return;_.preventDefault();let q=this.step||1,Q=_.shiftKey?10:1,Z=q*Q*(_.key==="ArrowUp"?1:-1),$=this.#h(this.input.value),J=($!==""?Number($)/(this.transform||1):0)+Z;J=this.#d(J,!1),this.value=J,this.input.value=this.#V(this.value),this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#a(_){let q=this.#h(_.target.value);if(q!=="")this.value=Number(q)/(this.transform||1);else this.value="";this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#u(_){_.stopPropagation();let q=this.#h(_.target.value);if(q!==""){let Q=Number(q)/(this.transform||1);Q=this.#d(Q,!1),this.value=Q,_.target.value=this.#V(this.value)}else this.value="",_.target.value="";this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#t(_){if(this.disabled)return;if(_.buttons===0){this.#c();return}let q=(this.step||1)*_.movementX,Q=this.#h(this.input.value),Z=Number(Q)/(this.transform||1)+q;Z=this.#d(Z,!1),this.value=Z,this.input.value=this.#V(this.value),this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#p(_){if(this.disabled)return;if(_.altKey||_.target.closest("[slot]"))this.#B=!0,this.#P=this.style.userSelect,this.#k=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.#q),window.addEventListener("pointerup",this.#_),window.addEventListener("pointercancel",this.#_),window.addEventListener("blur",this.#Q)}#c(_){let q=this.#B;if(this.#B=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#k,this.style.userSelect=this.#P,window.removeEventListener("pointermove",this.#q),window.removeEventListener("pointerup",this.#_),window.removeEventListener("pointercancel",this.#_),window.removeEventListener("blur",this.#Q),q)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#d(_,q=!0){let Q=Number(_);if(isNaN(Q))return"";if(typeof this.min==="number")Q=Math.max(this.min,Q);if(typeof this.max==="number")Q=Math.min(this.max,Q);return Q=this.#n(Q),Q}#n(_){let q=this.#A??2,Q=Math.pow(10,q),Z=Math.round(_*Q)/Q;return Number.isInteger(Z)?Z:parseFloat(Z.toFixed(q))}#e(_){let q=Number(_);if(!Number.isFinite(q))return 2;return Math.max(0,Math.min(100,Math.trunc(q)))}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(_,q,Q){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.#T();break;case"units":this.#K=Q||"",this.#C(),this.input.value=this.#V(this.value),this.#w();break;case"units-disallow":this.#R=this.#M(Q===null?N0.#H:Q),this.#C(),this.input.value=this.#V(this.value),this.#w();break;case"unit-position":this.#X=Q||"suffix",this.input.value=this.#V(this.value),this.#w();break;case"transform":this.transform=Number(Q)||1,this.input.value=this.#V(this.value),this.#w();break;case"value":if(this.#B)break;let Z=Q!==null&&Q!==""?Number(Q):"";if(Z!=="")Z=this.#d(Z,!1);this.value=Z,this.input.value=this.#V(this.value),this.#T(),this.#w();break;case"min":case"max":case"step":if(Q===null||Q===""){this[_]=void 0,this.#T(),this.#w();break}this[_]=Number(Q),this.#T(),this.#w();break;case"steppers":{let $=Q!==null&&Q!=="false";this.#I($);break}case"precision":this.#A=this.#e(Q!==null?Q:2),this.input.value=this.#V(this.value),this.#w();break;case"name":if(this[_]=this.input[_]=Q||"",Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=Q??"",this.input.placeholder=this.placeholder;break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#x();break;default:this[_]=this.input[_]=Q;break}}}M("fig-input-number",N0);class a0 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 q=this.querySelector(":scope > img")||document.createElement("img");if(q.src=_,q.alt=this.name||"",!q.isConnected)this.replaceChildren(q);this.img=q}getInitials(_){return _?_.split(" ").map((q)=>q[0]).join(""):""}static get observedAttributes(){return["src","href","name"]}attributeChangedCallback(_,q,Q){if(this[_]=Q,_==="name"){if(this.img)this.img.alt=Q||"";this.name=Q,this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials)}else if(_==="src")this.src=Q,this.setSrc(this.src)}}M("fig-avatar",a0);class n0 extends HTMLElement{#q=!1;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;constructor(){super();this.#Q=this.#U.bind(this),this.#Z=this.focus.bind(this),this.#$=this.#L.bind(this),this.#J=this.#G.bind(this)}static get observedAttributes(){return["label"]}connectedCallback(){queueMicrotask(()=>{if(!this.isConnected)return;this.#N(),this.#j()})}#j(){if(this.#W||typeof MutationObserver>"u")return;this.#W=new MutationObserver(()=>{this.#N()}),this.#W.observe(this,{childList:!0})}#N(){let _=this.label,q=this.#_;_?.removeEventListener("click",this.#Q),_?.removeEventListener("click",this.#Z),_?.removeEventListener("pointerenter",this.#$),_?.removeEventListener("pointerleave",this.#J),q?.removeEventListener("click",this.#Q),this.label=this.querySelector(":scope>label"),this.input=Array.from(this.childNodes).find(($)=>$.nodeType===Node.ELEMENT_NODE&&$.nodeName.toLowerCase().startsWith("fig-")&&!($ instanceof Element&&$.classList.contains("fig-field-chevron")));let Q=this.input?.localName??"",Z=Q==="fig-select"||Q==="fig-menu"||Q==="fig-dropdown"||Q==="fig-tooltip"||this.input instanceof HTMLDialogElement;if(this.#q=!!(this.input&&("open"in this.input)&&!Z),this.#q&&this.label){if(!this.#_||!this.#_.isConnected)this.#_=b("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.#Z)}}if(this.input&&this.label&&!this.#q)this.#K();if(this.label)this.label.removeEventListener("pointerenter",this.#$),this.label.addEventListener("pointerenter",this.#$),this.label.removeEventListener("pointerleave",this.#J),this.label.addEventListener("pointerleave",this.#J)}disconnectedCallback(){if(this.#W?.disconnect(),this.#W=null,this.label)z.hide(this.label);if(this.label&&this.#Q)this.label.removeEventListener("click",this.#Q);if(this.label&&this.#Z)this.label.removeEventListener("click",this.#Z);if(this.label&&this.#$)this.label.removeEventListener("pointerenter",this.#$);if(this.label&&this.#J)this.label.removeEventListener("pointerleave",this.#J);if(this.#_&&this.#Q)this.#_.removeEventListener("click",this.#Q)}#U(_){if(_.preventDefault(),_.stopPropagation(),this.input&&typeof this.input.open<"u")this.input.open=!this.input.open}#L(){if(!this.label||this.label.scrollWidth<=this.label.clientWidth)return;z.show(this.label,this.label.textContent.trim())}#G(){if(this.label)z.hide(this.label)}#K(){if(!this.input||!this.label)return;let _=this.label.getAttribute("id")||m();this.label.setAttribute("id",_);let q=this.input.querySelectorAll("input, select, textarea");if(q.length===1){let Q=q[0],Z=Q.getAttribute("id")||m();if(Q.setAttribute("id",Z),this.label.setAttribute("for",Z),this.input.getAttribute("aria-labelledby")===_)this.input.removeAttribute("aria-labelledby");if(!Q.hasAttribute("aria-labelledby"))Q.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(_,q,Q){switch(_){case"label":if(this.label)this.label.textContent=Q,this.#K();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()}}M("fig-field",n0);class e0 extends HTMLElement{rgba;hex;#q=100;#_;#Q;#Z;#$;#J=!1;#W=!1;#j=null;#N=this.#I.bind(this);#U=this.#T.bind(this);#L=this.#S.bind(this);#G=this.#w.bind(this);#K=this.#E.bind(this);#R=this.#g.bind(this);#X=this.#y.bind(this);#A=this.#h.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(_))}#B(){let _={};for(let{name:q,value:Q}of this.attributes)if(q.startsWith("picker-")&&q!=="picker-anchor"&&q!=="picker-experimental"){let Z=q.slice(7);if(/^on/i.test(Z))continue;_[Z]=Q}if(!_["dialog-position"])_["dialog-position"]="left";return _}#Y(){let _=this.#B();return Object.entries(_).map(([q,Q])=>`${q}="${Q}"`).join(" ")}connectedCallback(){if(this.#O()){this.#F();return}this.#z()}disconnectedCallback(){this.#P()}#O(){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.#Z=this.querySelector("fig-input-text:not([type=number])"),this.#$=this.querySelector("fig-input-number"),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$)this.#$.setAttribute("value",String(this.#q));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",String(this.rgba.a));this.#x(),this.#k()}#P(){if(this.#_)this.#_.removeEventListener("pointerdown",this.#N,{capture:!0}),this.#_.removeEventListener("click",this.#U,{capture:!0}),this.#_.querySelector('input[type="color"]')?.removeEventListener("keydown",this.#L),this.#_.removeEventListener("input",this.#G);this.#Z?.removeEventListener("input",this.#K),this.#Z?.removeEventListener("change",this.#R),this.#$?.removeEventListener("input",this.#X),this.#$?.removeEventListener("change",this.#R),this.#Q?.removeEventListener("input",this.#A),this.#Q?.removeEventListener("change",this.#R)}#k(){if(this.#_){this.#_.disabled=k(this,"disabled");let _=this.#_.querySelector('input[type="color"]');if(this.#Z||this.hasAttribute("swatch-disabled"))_?.setAttribute("tabindex","-1");if(this.hasAttribute("swatch-disabled")){if(_?.setAttribute("disabled",""),_)_.style.pointerEvents="none"}this.#_.addEventListener("pointerdown",this.#N,{capture:!0}),this.#_.addEventListener("click",this.#U,{capture:!0}),_?.addEventListener("keydown",this.#L),this.#_.addEventListener("input",this.#G)}if(this.#Z)this.#Z.addEventListener("input",this.#K),this.#Z.addEventListener("change",this.#R);if(this.#$)this.#$.addEventListener("input",this.#X),this.#$.addEventListener("change",this.#R);if(this.#Q)this.#Q.addEventListener("input",this.#A),this.#Q.addEventListener("change",this.#R)}#z(){this.#f(this.getAttribute("value"));let _=this.getAttribute("alpha")!=="false",q=this.#s,Q=this.getAttribute("text")!=="false",Z=X("fig-swatch",{background:this.hexOpaque,alpha:this.rgba.a,disabled:q});if(Q){let $=X("div",{className:"input-combo"},[Z,X("fig-input-text",{type:"text",placeholder:"000000",value:this.hexOpaque.slice(1).toUpperCase(),disabled:q})]);if(_)$.appendChild(X("fig-tooltip",{text:"Opacity"},X("fig-input-number",{placeholder:"##",min:"0",max:"100",value:this.#q,units:"%",disabled:q})));this.replaceChildren($)}else this.replaceChildren(Z);if(this.#_=Z,this.#Q=this.querySelector("fig-fill-picker"),this.#Z=this.querySelector("fig-input-text:not([type=number])"),this.#$=this.querySelector("fig-input-number"),this.#x(),this.#Z){let $=this.rgbAlphaToHex(this.rgba,1);if(this.#Z.value=$.slice(1).toUpperCase(),this.#_)this.#_.background=$}this.#k()}#H(){if(!this.#Q)return;for(let[_,q]of Object.entries(this.#B()))this.#Q.setAttribute(_,q);if(this.#Q.setAttribute("mode","solid"),this.getAttribute("alpha")!=="false")this.#Q.removeAttribute("alpha");else this.#Q.setAttribute("alpha","false");if(k(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.#q}))}#M(){if(!o())return null;if(this.#Q?.isConnected)return this.#H(),this.#Q;let _=document.createElement("fig-fill-picker");return _.appendChild(X("span",{hidden:!0})),_.addEventListener("input",this.#A),_.addEventListener("change",this.#R),this.appendChild(_),this.#Q=_,this.#H(),_}#D(){if(k(this,"disabled")||k(this,"swatch-disabled"))return!1;let _=this.#M();if(!_)return!1;return requestAnimationFrame(()=>_.open?.()),!0}#C(_){_.preventDefault(),_.stopPropagation(),_.stopImmediatePropagation?.()}#I(_){if(!o())return;if(k(this,"disabled")||k(this,"swatch-disabled"))return;if(this.#W=!0,this.#J=!0,this.#j)clearTimeout(this.#j);this.#j=setTimeout(()=>{this.#J=!1,this.#W=!1,this.#j=null},500),this.#C(_)}#T(_){if(!this.#J)return;if(this.#J=!1,this.#j)clearTimeout(this.#j),this.#j=null;if(this.#C(_),this.#W)this.#W=!1,this.#D()}#S(_){if(_.key!=="Enter"&&_.key!==" ")return;if(!o())return;if(!this.#D())return;this.#C(_)}#f(_){let q=typeof _==="string"&&_.trim()?_.trim():"#D9D9D9",Q=this.convertToRGBA(q);if(!Q||!Number.isFinite(Q.r)||!Number.isFinite(Q.g)||!Number.isFinite(Q.b)||!Number.isFinite(Q.a))q="#D9D9D9",Q={r:217,g:217,b:217,a:1};this.rgba=Q,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.#q=q.length>7?(this.rgba.a*100).toFixed(0):100,this.style.setProperty("--alpha",this.rgba.a)}#E(_){_.stopPropagation();let q=_.target.value.replace(/#/g,"");if(this.#f("#"+q),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$)this.#$.setAttribute("value",this.#q);if(this.#_)this.#_.setAttribute("background",this.hexOpaque);this.#V()}#y(_){_.stopPropagation();let q=Number(_.target.value)||0,Z=Math.round(q/100*255).toString(16).padStart(2,"0");if(this.#f(this.hexOpaque+Z),this.#_)this.#_.setAttribute("alpha",this.rgba.a);if(this.#Q)this.#Q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#q}));this.#V()}#g(_){_.stopPropagation(),this.#b()}focus(){if(this.#Z){this.#Z.focus();return}this.#_?.focus()}#v(){return this.getAttribute("aria-label")||"Color"}#x(){if(!this.hasAttribute("role"))this.setAttribute("role","group");if(this.#s)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");let _=this.getAttribute("aria-describedby"),q=this.getAttribute("aria-invalid"),Q=this.getAttribute("aria-required"),Z=this.getAttribute("aria-labelledby"),$=this.#v();if(this.#Z){if(this.#Z.setAttribute("aria-label",`${$} hex color`),_)this.#Z.setAttribute("aria-describedby",_);else this.#Z.removeAttribute("aria-describedby");if(q)this.#Z.setAttribute("aria-invalid",q);else this.#Z.removeAttribute("aria-invalid");if(Q)this.#Z.setAttribute("aria-required",Q);else this.#Z.removeAttribute("aria-required")}if(this.#$){if(this.#$.setAttribute("aria-label",`${$} opacity`),_)this.#$.setAttribute("aria-describedby",_);else this.#$.removeAttribute("aria-describedby");if(q)this.#$.setAttribute("aria-invalid",q);else this.#$.removeAttribute("aria-invalid");if(Q)this.#$.setAttribute("aria-required",Q);else this.#$.removeAttribute("aria-required")}if(!this.#Z){let J=this.#_?.querySelector('input[type="color"]');if(!J)return;if(Z)J.setAttribute("aria-labelledby",Z),J.removeAttribute("aria-label");else J.setAttribute("aria-label",$),J.removeAttribute("aria-labelledby");if(_)J.setAttribute("aria-describedby",_);else J.removeAttribute("aria-describedby")}}#w(_){if(_.stopPropagation(),this.#f(_.target.value),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());this.#V()}#h(_){_.stopPropagation();let q=_.detail;if(q&&q.color){let Q=q.color;if(q.alpha!==void 0){let Z=Math.round(q.alpha*255).toString(16).padStart(2,"0");Q=q.color+Z}if(this.#f(Q),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$&&q.alpha!==void 0)this.#$.setAttribute("value",Math.round(q.alpha*100));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);this.#V()}}#V(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:this.#m()}))}#b(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:this.#m()}))}#m(){return{value:this.value,hex:this.hex,rgba:this.rgba,...i(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(_,q,Q){if(q===Q)return;switch(_){case"value":if(this.#f(Q),this.#Z)this.#Z.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.#q}));if(this.#$)this.#$.setAttribute("value",this.#q);break;case"mode":this.#H();break;case"alpha":case"text":if(this.isConnected)this.#z();break;case"disabled":this.#i();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#x();break}}get#s(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#i(){let _=this.#s;for(let q of[this.#_,this.#Z,this.#$]){if(!q)continue;if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}if(this.#x(),this.#Q)this.#H()}rgbAlphaToHex({r:_,g:q,b:Q},Z=1){_=Math.max(0,Math.min(255,Math.round(_))),q=Math.max(0,Math.min(255,Math.round(q))),Q=Math.max(0,Math.min(255,Math.round(Q))),Z=Math.max(0,Math.min(1,Z));let $=_.toString(16).padStart(2,"0"),J=q.toString(16).padStart(2,"0"),j=Q.toString(16).padStart(2,"0");if(Z===1)return`#${$}${J}${j}`.toUpperCase();let W=Math.round(Z*255).toString(16).padStart(2,"0");return`#${$}${J}${j}${W}`.toUpperCase()}convertToRGBA(_){if(typeof _!=="string")return null;let q,Q,Z,$=1;if(_.startsWith("#")){let J=_.slice(1);if(J.length===8)$=parseInt(J.slice(6),16)/255,J=J.slice(0,6);q=parseInt(J.slice(0,2),16),Q=parseInt(J.slice(2,4),16),Z=parseInt(J.slice(4,6),16)}else if(_.startsWith("rgba")||_.startsWith("rgb")){let J=_.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)/);if(J)q=parseInt(J[1]),Q=parseInt(J[2]),Z=parseInt(J[3]),$=J[4]?parseFloat(J[4]):1}else if(_.startsWith("hsla")||_.startsWith("hsl")){let J=_.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*(\d+(?:\.\d+)?))?\)/);if(J){let j=parseInt(J[1])/360,N=parseInt(J[2])/100,W=parseInt(J[3])/100;if($=J[4]?parseFloat(J[4]):1,N===0)q=Q=Z=W;else{let G=(L,A,Y)=>{if(Y<0)Y+=1;if(Y>1)Y-=1;if(Y<0.16666666666666666)return L+(A-L)*6*Y;if(Y<0.5)return A;if(Y<0.6666666666666666)return L+(A-L)*(0.6666666666666666-Y)*6;return L},K=W<0.5?W*(1+N):W+N-W*N,U=2*W-K;q=G(U,K,j+0.3333333333333333),Q=G(U,K,j),Z=G(U,K,j-0.3333333333333333)}q=Math.round(q*255),Q=Math.round(Q*255),Z=Math.round(Z*255)}}else return null;return{r:q,g:Q,b:Z,a:$}}}M("fig-input-color",e0);var i_=["srgb","srgb-linear","display-p3","oklab","oklch","hsl"],r_=["shorter","longer","increasing","decreasing"],__=new Set(["oklch","hsl"]);function q0(_){let q={..._??{}},Q=String(q.interpolationSpace??"srgb").toLowerCase();if(!i_.includes(Q))Q="srgb";q.interpolationSpace=Q;let Z=String(q.hueInterpolation??"shorter").toLowerCase();return q.hueInterpolation=r_.includes(Z)?Z:"shorter",q}function q_(_){let q=q0(_),Q={...q,interpolationSpace:q.interpolationSpace};if(__.has(q.interpolationSpace))Q.hueInterpolation=q.hueInterpolation;else delete Q.hueInterpolation;return Q}function Q_(_){let q=q0(_);if(q.interpolationSpace==="srgb")return"";if(__.has(q.interpolationSpace))return`in ${q.interpolationSpace} ${q.hueInterpolation} hue`;return`in ${q.interpolationSpace}`}function l(_){let q=_.replace(/^#/,"");return{r:parseInt(q.substring(0,2),16),g:parseInt(q.substring(2,4),16),b:parseInt(q.substring(4,6),16)}}function p(_){let q=_/255;return q<=0.04045?q/12.92:Math.pow((q+0.055)/1.055,2.4)}function r(_){let q=_<=0.0031308?12.92*_:1.055*Math.pow(_,0.4166666666666667)-0.055;return Math.round(Math.max(0,Math.min(1,q))*255)}function J0(_,q,Q){let Z=p(_),$=p(q),J=p(Q),j=Math.cbrt(0.4122214708*Z+0.5363325363*$+0.0514459929*J),N=Math.cbrt(0.2119034982*Z+0.6806995451*$+0.1073969566*J),W=Math.cbrt(0.0883024619*Z+0.2817188376*$+0.6299787005*J);return{l:0.2104542553*j+0.793617785*N-0.0040720468*W,a:1.9779984951*j-2.428592205*N+0.4505937099*W,b:0.0259040371*j+0.7827717662*N-0.808675766*W}}function f0(_,q,Q){let Z=_+0.3963377774*q+0.2158037573*Q,$=_-0.1055613458*q-0.0638541728*Q,J=_-0.0894841775*q-1.291485548*Q,j=Z*Z*Z,N=$*$*$,W=J*J*J;return{r:r(4.0767416621*j-3.3077115913*N+0.2309699292*W),g:r(-1.2684380046*j+2.6097574011*N-0.3413193965*W),b:r(-0.0041960863*j-0.7034186147*N+1.707614701*W)}}function I0(_,q,Q){return{l:_,c:Math.sqrt(q*q+Q*Q),h:Math.atan2(Q,q)*180/Math.PI}}function l_(_,q,Q){let Z=Q*Math.PI/180;return{l:_,a:q*Math.cos(Z),b:q*Math.sin(Z)}}function C0(_,q,Q,Z){let $=(_%360+360)%360,j=(q%360+360)%360-$;switch(Z){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*Q)%360+360)%360}function t_(_,q,Q,Z){let $=[..._].sort((H,F)=>H.position-F.position),J=q*100;if($.length===0)return"#888888";if(J<=$[0].position)return $[0].color;if(J>=$[$.length-1].position)return $[$.length-1].color;let j=0;while(j<$.length-1&&$[j+1].position<J)j++;let N=$[j],W=$[j+1],G=W.position-N.position,K=G>0?(J-N.position)/G:0,U=l(N.color),L=l(W.color),A,Y,O,D=Q||"oklab";if(D==="srgb-linear"){let H=p(U.r),F=p(U.g),B=p(U.b),S=p(L.r),f=p(L.g),I=p(L.b);A=r(H+(S-H)*K),Y=r(F+(f-F)*K),O=r(B+(I-B)*K)}else if(D==="oklch"){let H=J0(U.r,U.g,U.b),F=J0(L.r,L.g,L.b),B=I0(H.l,H.a,H.b),S=I0(F.l,F.a,F.b),f=B.l+(S.l-B.l)*K,I=B.c+(S.c-B.c)*K,x=C0(B.h,S.h,K,Z||"shorter"),y=l_(f,I,x),u=f0(y.l,y.a,y.b);A=u.r,Y=u.g,O=u.b}else if(D==="hsl"){let H=V0(U.r,U.g,U.b),F=V0(L.r,L.g,L.b),B=C0(H.h,F.h,K,Z||"shorter"),S=H.s+(F.s-H.s)*K,f=H.l+(F.l-H.l)*K,I=a_(B,S,f);A=I[0],Y=I[1],O=I[2]}else if(D==="srgb")A=Math.round(U.r+(L.r-U.r)*K),Y=Math.round(U.g+(L.g-U.g)*K),O=Math.round(U.b+(L.b-U.b)*K);else{let H=J0(U.r,U.g,U.b),F=J0(L.r,L.g,L.b),B=H.l+(F.l-H.l)*K,S=H.a+(F.a-H.a)*K,f=H.b+(F.b-H.b)*K,I=f0(B,S,f);A=I.r,Y=I.g,O=I.b}return`#${A.toString(16).padStart(2,"0")}${Y.toString(16).padStart(2,"0")}${O.toString(16).padStart(2,"0")}`.toUpperCase()}function V0(_,q,Q){let Z=_/255,$=q/255,J=Q/255,j=Math.max(Z,$,J),N=Math.min(Z,$,J),W=(j+N)/2;if(j===N)return{h:0,s:0,l:W*100};let G=j-N,K=W>0.5?G/(2-j-N):G/(j+N),U;switch(j){case Z:U=(($-J)/G+($<J?6:0))/6;break;case $:U=((J-Z)/G+2)/6;break;default:U=((Z-$)/G+4)/6;break}return{h:U*360,s:K*100,l:W*100}}function a_(_,q,Q){q/=100,Q/=100;let Z=(1-Math.abs(2*Q-1))*q,$=Z*(1-Math.abs(_/60%2-1)),J=Q-Z/2,j,N,W;if(_<60)j=Z,N=$,W=0;else if(_<120)j=$,N=Z,W=0;else if(_<180)j=0,N=Z,W=$;else if(_<240)j=0,N=$,W=Z;else if(_<300)j=$,N=0,W=Z;else j=Z,N=0,W=$;return[Math.round((j+J)*255),Math.round((N+J)*255),Math.round((W+J)*255)]}class Z_ extends HTMLElement{#q="solid";#_;#Q;#Z;#$={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}]};#W={url:null,scaleMode:"fill",scale:50,opacity:1};#j={url:null,scaleMode:"fill",opacity:1};#N={snapshot:null,opacity:1};constructor(){super()}static get observedAttributes(){return["value","disabled","mode","alpha","aria-label","aria-describedby","aria-invalid","aria-required"]}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#U(),this.#O()}disconnectedCallback(){this.#_=null,this.#Q=null,this.#Z=null}#U(){let _=this.getAttribute("value");if(!_)return;try{let q=JSON.parse(_);if(q.type)this.#q=q.type;switch(this.#q){case"solid":if(q.color)this.#$.color=q.color;if(q.alpha!==void 0)this.#$.alpha=q.alpha;if(q.opacity!==void 0)this.#$.alpha=q.opacity/100;break;case"gradient":if(q.gradient)this.#J=q0({...this.#J,...q.gradient}),this.#J.opacity=this.#K(q.gradient.opacity??q.opacity??q.alpha,this.#J.opacity??1);else if(q.opacity!==void 0||q.alpha!==void 0)this.#J.opacity=this.#K(q.opacity??q.alpha,this.#J.opacity??1);break;case"image":if(q.image)this.#W={...this.#W,...q.image};break;case"video":if(q.video)this.#j={...this.#j,...q.video};break;case"webcam":if(q.webcam)this.#N={...this.#N,...q.webcam};if(q.opacity!==void 0)this.#N.opacity=q.opacity;break}}catch(q){if(_.startsWith("#")){if(this.#q="solid",this.#$.color=_.slice(0,7),_.length>7){let Q=_.slice(7,9);this.#$.alpha=parseInt(Q,16)/255}}}}#L(){let _={},q=this.getAttribute("mode");if(q)_.mode=q;let Q=this.getAttribute("alpha");if(Q)_.alpha=Q;for(let{name:Z,value:$}of this.attributes)if(Z.startsWith("picker-")&&Z!=="picker-anchor"&&Z!=="picker-experimental"){let J=Z.slice(7);if(/^on/i.test(J))continue;_[J]=$}if(!_["dialog-position"])_["dialog-position"]="left";return _}#G(){switch(this.#q){case"solid":return this.#$.color;case"gradient":{let q=[...this.#J.stops].sort((Z,$)=>Z.position-$.position).map((Z)=>{let $=(Z.opacity??100)/100;if($>=1)return`${Z.color} ${Z.position}%`;let{r:J,g:j,b:N}=l(Z.color);return`rgba(${J}, ${j}, ${N}, ${$}) ${Z.position}%`}).join(", "),Q=Q_(this.#J);return`linear-gradient(${this.#J.angle}deg${Q?` ${Q}`:""}, ${q})`}case"image":return this.#W.url?`url(${this.#W.url})`:"#D9D9D9";case"webcam":return this.#N.snapshot?`url(${this.#N.snapshot})`:"#D9D9D9";default:return"#D9D9D9"}}#K(_,q=1){if(_===void 0||_===null||_==="")return q;let Q=Number(_);if(!Number.isFinite(Q))return q;if(Q>1)return Math.max(0,Math.min(1,Q/100));return Math.max(0,Math.min(1,Q))}#R(){switch(this.#q){case"solid":return this.#$.alpha;case"gradient":return this.#J.opacity??1;case"image":return this.#W.opacity??1;case"video":return this.#j.opacity??1;case"webcam":return this.#N.opacity??1;default:return 1}}#X(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.setAttribute("aria-disabled",_?"true":"false");for(let q of[this.#_,this.#Q,this.#Z]){if(!q)continue;if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}}#A(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#X();let _=this.getAttribute("aria-label")||"Fill",q=this.getAttribute("aria-describedby"),Q=this.getAttribute("aria-invalid"),Z=this.getAttribute("aria-required"),$=(J,j)=>{if(!J)return;if(J.setAttribute("aria-label",j),q)J.setAttribute("aria-describedby",q);else J.removeAttribute("aria-describedby");if(Q)J.setAttribute("aria-invalid",Q);else J.removeAttribute("aria-invalid");if(Z)J.setAttribute("aria-required",Z);else J.removeAttribute("aria-required")};$(this.#_,`${_} picker`),$(this.#Z,`${_} hex color`),$(this.#Q,`${_} opacity`)}#B(_,q){if(this.getAttribute("alpha")==="false")return null;return X("fig-tooltip",{text:"Opacity"},X("fig-input-number",{className:"fig-input-fill-opacity",placeholder:"##",min:"0",max:"100",value:_,units:"%",disabled:q}))}#Y(_){let q=null,Q=1;switch(this.#q){case"solid":return[X("fig-input-text",{type:"text",className:"fig-input-fill-hex",placeholder:"000000",value:this.#$.color.slice(1).toUpperCase(),disabled:_}),this.#B(Math.round(this.#$.alpha*100),_)].filter(Boolean);case"gradient":q=this.#J.type.charAt(0).toUpperCase()+this.#J.type.slice(1),Q=this.#J.opacity??1;break;case"image":q="Image",Q=this.#W.opacity??1;break;case"video":q="Video",Q=this.#j.opacity??1;break;case"webcam":q="Webcam",Q=this.#N.opacity??1;break}return[X("label",{className:"fig-input-fill-label"},q),this.#B(Math.round(Q*100),_)].filter(Boolean)}#O(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=JSON.stringify(this.value),Q=this.#L(),Z=X("fig-swatch",{background:this.#G(),alpha:this.#R(),disabled:_}),$=X("fig-fill-picker",{value:q,disabled:_,...Q},Z),J=X("div",{className:"input-combo"},[$,this.#Y(_)]);this.replaceChildren(J),this.#F()}#F(){this.#_=this.querySelector("fig-fill-picker"),this.#Q=this.querySelector(".fig-input-fill-opacity"),this.#Z=this.querySelector(".fig-input-fill-hex");let _=this.querySelector(".fig-input-fill-label");if(this.#A(),_&&this.#_)_.addEventListener("click",()=>{let q=this.#_.querySelector("fig-swatch");if(q)q.click()});if(this.#_){let q=this.getAttribute("picker-anchor");if(!q||q==="self")this.#_.anchorElement=this;else{let Q=null;try{Q=document.querySelector(q)}catch{}if(Q)this.#_.anchorElement=Q}this.#_.addEventListener("input",(Q)=>{Q.stopPropagation();let Z=Q.detail;if(!Z)return;let $=Z.type,J=$!==this.#q;switch(this.#q=$,$){case"solid":this.#$.color=Z.color,this.#$.alpha=Z.alpha;break;case"gradient":if(Z.gradient)this.#J=q0({...this.#J,...Z.gradient});break;case"image":if(Z.image)this.#W=Z.image;break;case"video":if(Z.video)this.#j=Z.video;break;case"webcam":if(Z.image?.url)this.#N.snapshot=Z.image.url;break}if(J)this.#k();else this.#P();this.#M()}),this.#_.addEventListener("change",(Q)=>{Q.stopPropagation(),this.#D()})}if(this.#Z)this.#Z.addEventListener("input",(q)=>{q.stopPropagation();let Q="#"+q.target.value.replace("#","");this.#$.color=Q,this.#z(),this.#M()}),this.#Z.addEventListener("change",(q)=>{q.stopPropagation(),this.#D()});if(this.#Q)this.#Q.addEventListener("input",(q)=>{q.stopPropagation();let Q=parseFloat(q.target.value),$=(isNaN(Q)?100:Q)/100;switch(this.#q){case"solid":this.#$.alpha=$;break;case"gradient":this.#J.opacity=$;break;case"image":this.#W.opacity=$;break;case"video":this.#j.opacity=$;break;case"webcam":this.#N.opacity=$;break}this.#z(),this.#H($),this.#M()}),this.#Q.addEventListener("change",(q)=>{q.stopPropagation(),this.#D()})}#P(){switch(this.#q){case"solid":if(this.#Z)this.#Z.setAttribute("value",this.#$.color.slice(1).toUpperCase());if(this.#Q)this.#Q.setAttribute("value",Math.round(this.#$.alpha*100));break;case"gradient":{let _=this.querySelector(".fig-input-fill-label");if(_){let q=this.#J.type.charAt(0).toUpperCase()+this.#J.type.slice(1);_.textContent=q}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.#W.opacity??1)*100));break;case"video":if(this.#Q)this.#Q.setAttribute("value",Math.round((this.#j.opacity??1)*100));break;case"webcam":if(this.#Q)this.#Q.setAttribute("value",Math.round((this.#N.opacity??1)*100));break}}#k(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=this.querySelector(".input-combo");if(!q)return;let Q=q.querySelector(".fig-input-fill-label"),Z=q.querySelector(".fig-input-fill-hex"),$=q.querySelector(".fig-input-fill-opacity"),J=q.querySelectorAll("fig-tooltip");Q?.remove(),Z?.remove(),J.forEach((N)=>N.remove()),q.append(...this.#Y(_)),this.#Q=this.querySelector(".fig-input-fill-opacity"),this.#Z=this.querySelector(".fig-input-fill-hex");let j=this.querySelector(".fig-input-fill-label");if(this.#A(),j&&this.#_)j.addEventListener("click",()=>{let N=this.#_.querySelector("fig-swatch");if(N)N.click()});if(this.#Z)this.#Z.addEventListener("input",(N)=>{N.stopPropagation();let W="#"+N.target.value.replace("#","");this.#$.color=W,this.#z(),this.#M()}),this.#Z.addEventListener("change",(N)=>{N.stopPropagation(),this.#D()});if(this.#Q)this.#Q.addEventListener("input",(N)=>{N.stopPropagation();let W=parseFloat(N.target.value),K=(isNaN(W)?100:W)/100;switch(this.#q){case"solid":this.#$.alpha=K;break;case"gradient":this.#J.opacity=K;break;case"image":this.#W.opacity=K;break;case"video":this.#j.opacity=K;break;case"webcam":this.#N.opacity=K;break}this.#z(),this.#H(K),this.#M()}),this.#Q.addEventListener("change",(N)=>{N.stopPropagation(),this.#D()})}#z(){if(this.#_)this.#_.setAttribute("value",JSON.stringify(this.value))}#H(_){if(this.#_){let q=this.#_.querySelector("fig-swatch");if(q)q.setAttribute("alpha",_)}}#M(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#D(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){switch(this.#q){case"solid":return{type:"solid",color:this.#$.color,alpha:this.#$.alpha,opacity:Math.round(this.#$.alpha*100)};case"gradient":return{type:"gradient",gradient:q_(this.#J)};case"image":return{type:"image",image:{...this.#W}};case"video":return{type:"video",video:{...this.#j}};case"webcam":return{type:"webcam",webcam:{...this.#N}};default:return{type:this.#q}}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"value":let Z=this.#q;if(this.#U(),this.#_)if(this.#q!==Z)this.#O();else this.#z(),this.#P();break;case"disabled":this.#X();break;case"mode":if(this.#_)if(Q)this.#_.setAttribute(_,Q);else this.#_.removeAttribute(_);break;case"alpha":if(this.isConnected)this.#O();break;case"aria-label":case"aria-describedby":case"aria-invalid":case"aria-required":this.#A();break}}}M("fig-input-fill",Z_);class $_ extends HTMLElement{#q=[];#_=[];#Q=[];#Z=null;#$=this.#U.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 q=this.open;if(_)this.setAttribute("open","");else this.removeAttribute("open");if(q!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}get#W(){return this.hasAttribute("fixed")&&this.getAttribute("fixed")!=="false"}get#j(){let _=parseInt(this.getAttribute("min"));return isNaN(_)?2:_}get#N(){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.#$),this.addEventListener("keydown",this.#$),this.#Z)cancelAnimationFrame(this.#Z);this.#Z=requestAnimationFrame(()=>{if(this.#Z=null,!this.isConnected)return;this.#L(),this.#G()})}disconnectedCallback(){if(this.#Z)cancelAnimationFrame(this.#Z),this.#Z=null;this.removeEventListener("keydown",this.#$),this.removeEventListener("focus",this.#J),this.#_=[],this.#Q=[]}#U(_){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(_,q,Q){if(q===Q)return;switch(_){case"value":this.#L(),this.#O();break;case"disabled":this.#F();break;case"min":case"max":case"fixed":this.#G();break;case"open":this.#P();break}}#L(){let _=this.getAttribute("value");if(!_){this.#q=[];return}let q=_.trim();try{let Q=JSON.parse(q);if(Array.isArray(Q)){this.#q=Q.map((Z)=>{if(typeof Z==="string")return{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1};if(Z&&typeof Z==="object")return{color:Z.color||"#D9D9D9",alpha:Z.alpha!==void 0?Z.alpha:Z.opacity!==void 0?Z.opacity/100:1};return{color:"#D9D9D9",alpha:1}});return}}catch(Q){}if(q.includes(",")){this.#q=q.split(",").map((Q)=>{let Z=Q.trim();return{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1}});return}if(q.startsWith("#")){this.#q=[{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1}];return}this.#q=[]}get value(){return this.#q.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 q=document.createElement("div");q.className="palette-colors-inline",q.setAttribute("role","button"),q.setAttribute("tabindex",_?"-1":"+0"),q.setAttribute("aria-expanded",String(this.open)),q.setAttribute("aria-label","Edit palette colors"),q.addEventListener("blur",()=>{q.style.removeProperty("outline"),q.style.removeProperty("outline-offset")});let Q=()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.open=!0,q.setAttribute("aria-expanded","true")};q.addEventListener("click",Q);let Z=document.createElement("div");if(Z.className="palette-colors",this.#q.forEach((J,j)=>{Z.appendChild(this.#K(J,j,_,{inline:!0}))}),q.appendChild(Z),this.appendChild(q),this.#P(),!this.#W)this.#A(_,this);let $=document.createElement("div");$.className="palette-colors-expanded",this.#q.forEach((J,j)=>{if($.appendChild(this.#K(J,j,_)),!this.#W)$.appendChild(this.#R(j,_))}),this.appendChild($)}#K(_,q,Q,{inline:Z=!1}={}){let $=_.alpha<1?_.color+Math.round(_.alpha*255).toString(16).padStart(2,"0"):_.color,J=document.createElement("fig-input-color");if(J.setAttribute("value",$),Z)J.setAttribute("text","false"),J.setAttribute("alpha","true"),J.setAttribute("swatch-disabled","");else J.setAttribute("text","true"),J.setAttribute("alpha","true"),J.setAttribute("full","");if(Q)J.setAttribute("disabled","");let j=Z?this.#Q:this.#_,N=(W)=>{W.stopPropagation();let G=W.currentTarget;this.#q[q]={color:G.hexOpaque||this.#q[q].color,alpha:G.rgba?G.rgba.a:this.#q[q].alpha};let K=j[q];if(K){let U=this.#q[q],L=U.alpha<1?U.color+Math.round(U.alpha*255).toString(16).padStart(2,"0"):U.color;K.setAttribute("value",L)}};if(J.addEventListener("input",(W)=>{N(W),this.#z()}),J.addEventListener("change",(W)=>{N(W),this.#H()}),Z)this.#_.push(J);else this.#Q.push(J);return J}#R(_,q){let Q=document.createElement("fig-button");if(Q.setAttribute("variant","ghost"),Q.setAttribute("icon","true"),Q.setAttribute("aria-label","Remove color"),Q.className="palette-remove-btn",q||this.#q.length<=this.#j)Q.setAttribute("disabled","");Q.appendChild(b("minus")),Q.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.#X(_)});let Z=document.createElement("fig-tooltip");return Z.setAttribute("text","Remove color"),Z.appendChild(Q),Z}#X(_){if(this.#W)return;if(_<0||_>=this.#q.length)return;if(this.#q.length<=this.#j)return;this.#q.splice(_,1),this.#_=[],this.#Q=[],this.#G(),this.#H()}#A(_,q=this){let Q=this.#q.length>=this.#N,Z=document.createElement("fig-button");if(Z.setAttribute("variant","ghost"),Z.setAttribute("icon","true"),Z.setAttribute("aria-label","Add color"),Z.className="palette-add-btn",_||Q)Z.setAttribute("disabled","");Z.appendChild(b("add")),Z.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#q.length>=this.#N)return;this.open=!0,this.#B({color:"#D9D9D9",alpha:1})});let $=document.createElement("fig-tooltip");$.setAttribute("text","Add color"),$.appendChild(Z),q.appendChild($)}#B(_){if(this.#W)return;this.#q.push(_);let q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Q=this.#q.length-1,Z=this.#K(_,Q,q,{inline:!0}),$=this.querySelector(".palette-colors");if($)$.appendChild(Z);let J=this.#K(_,Q,q),j=this.querySelector(".palette-colors-expanded");if(j)j.appendChild(J),j.appendChild(this.#R(Q,q));if(this.#q.length>=this.#N){let N=this.querySelector(".palette-add-btn");if(N)N.setAttribute("disabled","")}this.#k(q),this.#H()}#Y(_){let q=this.#q[_];if(!q)return;let Q=q.alpha<1?q.color+Math.round(q.alpha*255).toString(16).padStart(2,"0"):q.color,Z=this.#_[_];if(Z)Z.setAttribute("value",Q);let $=this.#Q[_];if($)$.setAttribute("value",Q)}#O(){if(this.#_.length!==this.#q.length){this.#G();return}this.#q.forEach((_,q)=>{this.#Y(q)})}#F(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";[...this.#_,...this.#Q].forEach((Q)=>{if(_)Q.setAttribute("disabled","");else Q.removeAttribute("disabled")});let q=this.querySelector(".palette-add-btn");if(q)if(_||this.#q.length>=this.#N)q.setAttribute("disabled","");else q.removeAttribute("disabled");this.#k(_),this.#P()}#P(){let _=this.querySelector(".palette-colors-inline");if(!_)return;let q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";_.setAttribute("tabindex",q?"-1":"+0"),_.setAttribute("aria-disabled",String(q)),_.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()}#k(_=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){let q=_||this.#q.length<=this.#j;this.querySelectorAll(".palette-remove-btn").forEach((Q)=>{if(q)Q.setAttribute("disabled","");else Q.removeAttribute("disabled")})}#z(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#H(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}}M("fig-input-palette",$_);class n extends HTMLElement{static SHIFT_SNAP=5;#q;#_;#Q=!1;#Z=null;#$=null;#J=null;#W=null;#j={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#N(){let _=this.getAttribute("edit");if(_==="false")return"false";if(_==="picker")return"picker";return"true"}get#U(){return this.#N==="true"}get#L(){return this.getAttribute("mode")==="tip"?"tip":"handle"}#G(){if(!this.#_)return null;return this.#_.querySelector("fig-handle:not(.fig-input-gradient-ghost):not([disabled])")}#K(){if(!this.#_)return null;let _=this.#_.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)");if(_)return _;let q=document.activeElement;if(!(q instanceof Element)||!this.#_.contains(q))return null;return q.closest("fig-handle:not(.fig-input-gradient-ghost)")}#R(_){if(!_||!this.#_)return;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q)=>{if(q!==_)q.deselect()}),_.select(),_.focus()}#X(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){this.setAttribute("tabindex","-1");return}this.setAttribute("tabindex",this.#U?"-1":"0")}#A(_){let q=q0(_);return{...q,type:["linear","radial","angular"].includes(q.type)?q.type:"linear",angle:Number.isFinite(Number(q.angle))?Number(q.angle):90,centerX:Number.isFinite(Number(q.centerX))?Number(q.centerX):50,centerY:Number.isFinite(Number(q.centerY))?Number(q.centerY):50}}connectedCallback(){if(this.#F(),this.#C(),this.#B(),this.removeEventListener("keydown",this.#O),this.addEventListener("keydown",this.#O),this.#U)document.addEventListener("keydown",this.#Y)}#B(){if(this.#N!=="picker"||o())return;this.#W??=customElements.whenDefined("fig-fill-picker").then(()=>{if(!this.isConnected||this.#N!=="picker")return;this.#C()})}disconnectedCallback(){if(document.removeEventListener("keydown",this.#Y),this.removeEventListener("keydown",this.#O),this.#$)this.#$.disconnect(),this.#$=null;if(this.#J!==null)cancelAnimationFrame(this.#J),this.#J=null;clearTimeout(this.#Z),this.removeEventListener("pointerenter",this.#y),this.removeEventListener("pointermove",this.#v),this.removeEventListener("pointerleave",this.#g),this.removeEventListener("click",this.#h),this.removeEventListener("dblclick",this.#w)}#Y=(_)=>{let q=document.activeElement,Q=q instanceof Node&&this.contains(q),Z=this.#_?.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)"),$=!q||q===document.body||q===document.documentElement;if(!Q&&!(Z&&$))return;let J=q&&(q.tagName==="INPUT"||q.tagName==="TEXTAREA"||q.isContentEditable);if(!this.#_)return;if(_.key==="Tab"&&!J){let K=this.#K();if(!K)return;_.preventDefault();let U=[...this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")],L=U.indexOf(K),A=_.shiftKey?(L-1+U.length)%U.length:(L+1)%U.length;K.deselect(),this.#R(U[A]);return}if((_.key==="ArrowLeft"||_.key==="ArrowRight")&&!J){let K=this.#K();if(!K)return;let U=parseInt(K.dataset.stopIndex,10);if(isNaN(U)||!this.#j.stops[U])return;_.preventDefault();let L=(_.key==="ArrowRight"?1:-1)*(_.shiftKey?n.SHIFT_SNAP:1),A=this.#j.stops[U];A.position=Math.max(0,Math.min(100,A.position+L)),K.setAttribute("value",`${A.position}% 50%`);let Y=K.closest("fig-tooltip");if(Y)Y.text=`${Math.round(A.position)}%`,Y.setAttribute("show","true"),Y.showPopup(),K.hideColorTip(),clearTimeout(this.#Z),this.#Z=setTimeout(()=>{Y.removeAttribute("show"),K.showColorTip()},600);this.#u(),this.#p(),this.#c();return}if(_.key!=="Delete"&&_.key!=="Backspace")return;if(J)return;if(this.#j.stops.length<=2)return;let j=this.#K();if(!j)return;let N=parseInt(j.dataset.stopIndex,10);if(isNaN(N)||!this.#j.stops[N])return;_.preventDefault(),this.#j.stops.splice(N,1),this.#m(),this.#u(),this.#p(),this.#c();let W=Math.min(N,this.#j.stops.length-1),G=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[W];this.#R(G)};#O=(_)=>{if(this.#N!=="picker")return;if(_.key!=="Enter"&&_.key!==" ")return;if(_.altKey||_.ctrlKey||_.metaKey)return;if(k(this,"disabled"))return;let q=this.querySelector("fig-fill-picker");if(!q||typeof q.open!=="function")return;_.preventDefault(),q.open()};#F(){let _=this.getAttribute("value");if(!_)return;try{let q=JSON.parse(_);if(q?.type==="gradient"&&q.gradient){this.#j=this.#A({...this.#j,...q.gradient});return}if(q?.gradient)this.#j=this.#A({...this.#j,...q.gradient})}catch(q){}}#P(){let _=this.#A(this.#j),Q=[..._.stops].sort((J,j)=>J.position-j.position).map((J)=>{let j=(J.opacity??100)/100;if(j>=1)return`${J.color} ${J.position}%`;let{r:N,g:W,b:G}=l(J.color);return`rgba(${N}, ${W}, ${G}, ${j}) ${J.position}%`}).join(", "),Z=Q_(_);return`linear-gradient(to right${Z?` ${Z}`:""}, ${Q})`}#k(_){let q=(_.opacity??100)/100;if(q>=1)return _.color;let{r:Q,g:Z,b:$}=l(_.color);return`rgba(${Q}, ${Z}, ${$}, ${q})`}#z(){if(!this.#q)return;let _=this.getAttribute("size");if(_)this.#q.setAttribute("size",_);else this.#q.removeAttribute("size")}#H(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";return this.#j.stops.map((q,Q)=>X("fig-tooltip",{action:"manual",text:`${Math.round(q.position)}%`},X("fig-handle",{drag:!0,"drag-axes":"x","drag-surface":".fig-input-gradient-track",type:"color",tip:this.#L==="tip"?"color":null,color:this.#k(q),value:`${q.position}% 50%`,"hit-area":"4","data-stop-index":Q,disabled:_})))}#M=null;#D=!1;#C(){this.#$?.disconnect(),this.#$=null;let _=k(this,"disabled"),q=this.#N,Q=this.getAttribute("size"),Z=X("fig-swatch",{background:this.#P(),size:Q||null,disabled:_});if(q==="picker"&&o()){let j=JSON.stringify(this.value),N=X("fig-fill-picker",{mode:"gradient",value:j,disabled:_},Z);this.replaceChildren(N),this.#q=Z,this.#_=null,this.#I(),this.#X();return}let $=q==="true"||q==="picker",J=$?X("div",{className:"fig-input-gradient-track"},this.#H()):null;if(this.replaceChildren(...J?[Z,J]:[Z]),this.#q=Z,this.#_=J,$)this.#S(),this.#t();this.#X()}#I(){let _=this.querySelector("fig-fill-picker");if(!_)return;_.anchorElement=this;let q=(Q)=>{Q.stopPropagation();let Z=Q.detail;if(!Z?.gradient)return;this.#j=this.#A({...this.#j,...Z.gradient}),this.#u()};_.addEventListener("input",(Q)=>{q(Q),this.#p()}),_.addEventListener("change",(Q)=>{q(Q),this.#c()})}#T(_){return t_(this.#j.stops,_,this.#j.interpolationSpace,this.#j.hueInterpolation)}#S(){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.#L==="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.#M=_,this.addEventListener("pointerenter",this.#y),this.addEventListener("pointermove",this.#v),this.addEventListener("pointerleave",this.#g),this.addEventListener("click",this.#h),this.addEventListener("dblclick",this.#w)}#f(){if(!this.#M)return;this.#M.style.opacity="1"}#E(){if(!this.#M)return;this.#M.style.opacity="0"}#y=()=>{if(this.#Q)return;this.#f()};#g=()=>{this.#E()};#v=(_)=>{if(this.#Q){this.#E();return}if(!this.#M||!this.#_)return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){this.#E();return}let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width));this.#M.style.left=`${Q*100}%`;let Z=this.#T(Q);this.#M.setAttribute("color",Z),this.#f()};#x(){let _=this.#j.stops.length;if(_<2)return;for(let q=0;q<_;q++)this.#j.stops[q].position=Math.round(q/(_-1)*100);this.#m(),this.#u(),this.#p(),this.#c()}#w=(_)=>{if(!this.#_)return;if(!_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;this.#x(),this.#_.querySelectorAll("fig-handle[selected]").forEach((q)=>{q.removeAttribute("selected")})};#h=(_)=>{if(!this.#_)return;if(this.#Q)return;if(this.#D){this.#D=!1;return}if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){if(_.shiftKey){let j=_.target.closest("fig-handle"),N=parseInt(j?.dataset.stopIndex,10);if(this.#x(),!isNaN(N))this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((W)=>{if(parseInt(W.dataset.stopIndex,10)===N)W.select();else W.deselect()});_.stopPropagation()}return}let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width)),Z=Math.round(Q*100),$=this.#T(Q);this.#j.stops.push({position:Z,color:$,opacity:100}),this.#j.stops.sort((j,N)=>j.position-N.position);let J=this.#j.stops.findIndex((j)=>j.position===Z&&j.color===$);this.#m(),this.#u(),this.#p(),this.#c(),requestAnimationFrame(()=>{let N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[J];if(N)this.#R(N)})};#V(){if(this.#J=null,!this.isConnected)return;if(!this.#_)return;let _=this.#j.stops;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q,Q)=>{if(Q>=_.length)return;q.removeAttribute("value"),q.setAttribute("value",`${_[Q].position}% 50%`)})}refreshLayout(){this.#V()}#b(){if(this.#J!==null)return;this.#J=requestAnimationFrame(()=>this.#V())}#m(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),q=this.#j.stops;if(_.length!==q.length){let Q=this.#M;if(this.#_.replaceChildren(...this.#H()),Q)this.#_.appendChild(Q);this.#s(),this.#i(),this.#b();return}for(let Q=0;Q<q.length;Q++){let Z=_[Q],$=q[Q];if(Z.dataset.stopIndex=Q,Z.setAttribute("value",`${$.position}% 50%`),Z.setAttribute("color",this.#k($)),this.#L==="tip")Z.setAttribute("tip","color");else Z.removeAttribute("tip");let J=Z.closest("fig-tooltip");if(J)J.setAttribute("text",`${Math.round($.position)}%`)}this.#s()}#s(){if(!this.#_)return;let _=this.#L==="tip";if(this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q)=>{if(_)q.setAttribute("tip","color");else q.removeAttribute("tip")}),this.#M)if(_)this.#M.setAttribute("tip","add");else this.#M.removeAttribute("tip")}#i(){if(!this.#$||!this.#_)return;this.#$.disconnect(),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#$.observe(_,{attributes:!0,attributeFilter:["color"]})})}#a(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),q=this.#j.stops,Q=new Set;_.forEach((Z)=>{let $=Math.round(parseFloat(Z.getAttribute("value"))||0),J=(Z.getAttribute("color")||"").toUpperCase(),j=-1;for(let N=0;N<q.length;N++){if(Q.has(N))continue;if(q[N].position===$&&q[N].color.toUpperCase()===J){j=N;break}}if(j===-1){let N=1/0;for(let W=0;W<q.length;W++){if(Q.has(W))continue;let G=Math.abs(q[W].position-$);if(G<N)N=G,j=W}}if(j!==-1)Q.add(j),Z.dataset.stopIndex=j})}#u(){if(!this.#q)return;this.#q.setAttribute("background",this.#P()),this.#z()}#t(){if(!this.#_)return;this.#_.addEventListener("pointerdown",(_)=>{if(k(this,"disabled"))return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;if(_.button!==0)return;_.preventDefault(),_.stopPropagation();let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width)),Z=Math.round(Q*100),$=this.#T(Q);this.#j.stops.push({position:Z,color:$,opacity:100}),this.#j.stops.sort((W,G)=>W.position-G.position);let J=this.#j.stops.findIndex((W)=>W.position===Z&&W.color===$);this.#D=!0,this.#m(),this.#u(),this.#p(),this.#E();let N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[J];if(N)this.#R(N),N.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,clientX:_.clientX,clientY:_.clientY,pointerId:_.pointerId,pointerType:_.pointerType,button:_.button,buttons:_.buttons}))}),this.#_.addEventListener("input",(_)=>{let q=_.target.closest("fig-handle");if(!q)return;if(_.stopPropagation(),_.detail?.color){let W=parseInt(q.dataset.stopIndex,10);if(!isNaN(W)&&this.#j.stops[W]){if(this.#j.stops[W].color=_.detail.color,_.detail.opacity!==void 0)this.#j.stops[W].opacity=_.detail.opacity;else if(_.detail.alpha!==void 0)this.#j.stops[W].opacity=Math.round(_.detail.alpha*100);q.setAttribute("color",this.#k(this.#j.stops[W])),this.#u(),this.#p()}return}if(!this.#Q)q.style.zIndex="5";this.#Q=!0;let Q=parseInt(q.dataset.stopIndex,10);if(isNaN(Q)||!this.#j.stops[Q])return;let Z=_.detail?.px??0,$=Math.round(Z*100),J=$,j=this.#_.getBoundingClientRect().width;if(_.detail?.shiftKey)J=Math.round(J/n.SHIFT_SNAP)*n.SHIFT_SNAP;else{let W=j>0?5/j*100:0;for(let G=0;G<this.#j.stops.length;G++){if(G===Q)continue;if(Math.abs(this.#j.stops[G].position-J)<=W){J=this.#j.stops[G].position;break}}}if(this.#j.stops[Q].position=J,J!==$)q.style.left=`${J/100*j}px`;let N=q.closest("fig-tooltip");if(N){if(N.text=`${Math.round(J)}%`,!N.hasAttribute("show"))N.setAttribute("show","true"),q.hideColorTip()}this.#u(),this.#p()}),this.#_.addEventListener("change",(_)=>{let q=_.target.closest("fig-handle");if(!q)return;if(_.stopPropagation(),_.detail?.color){let W=parseInt(q.dataset.stopIndex,10);if(!isNaN(W)&&this.#j.stops[W]){if(this.#j.stops[W].color=_.detail.color,_.detail.opacity!==void 0)this.#j.stops[W].opacity=_.detail.opacity;q.setAttribute("color",this.#k(this.#j.stops[W])),this.#u(),this.#c()}return}q.style.zIndex="";let Q=q.closest("fig-tooltip");if(Q)Q.removeAttribute("show");q.showColorTip();let Z=parseInt(q.dataset.stopIndex,10);if(isNaN(Z)||!this.#j.stops[Z])return;let $=_.detail?.px??0,J=Math.round($*100),j=this.#_.getBoundingClientRect().width,N=j>0?5/j*100:0;for(let W=0;W<this.#j.stops.length;W++){if(W===Z)continue;if(Math.abs(this.#j.stops[W].position-J)<=N){J=this.#j.stops[W].position;break}}this.#j.stops[Z].position=J,q.style.left=`${J/100*j}px`,this.#j.stops.sort((W,G)=>W.position-G.position),this.#a(),this.#u(),this.#c(),requestAnimationFrame(()=>{this.#Q=!1})}),this.#$=new MutationObserver((_)=>{for(let q of _){if(q.attributeName!=="color")continue;let Q=q.target;if(Q.classList.contains("fig-input-gradient-ghost"))continue;let Z=parseInt(Q.dataset.stopIndex,10);if(isNaN(Z)||!this.#j.stops[Z])continue;let $=Q.getAttribute("color");if(!$||!$.startsWith("#"))continue;if($!==this.#j.stops[Z].color)this.#j.stops[Z].color=$,this.#u(),this.#p()}}),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#$.observe(_,{attributes:!0,attributeFilter:["color"]})})}#p(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#c(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){return{type:"gradient",gradient:q_(this.#A(this.#j))}}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.#U){let q=this.#G();if(q){q.focus(_);return}}HTMLElement.prototype.focus.call(this,_)}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"value":this.#F(),this.#u(),this.#m();break;case"disabled":this.#d();break;case"edit":if(this.#C(),this.#B(),this.#U)document.addEventListener("keydown",this.#Y);else document.removeEventListener("keydown",this.#Y);break;case"mode":this.#s();break;case"size":this.#z();break}}#d(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.#X(),this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");if(this.#_)for(let q of this.#_.querySelectorAll("fig-handle"))if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}}M("fig-input-gradient",n);class W0 extends HTMLElement{#q=null;#_;#Q;#Z;#$=!1;constructor(){super();if(this.input=document.createElement("input"),this.name=this.getAttribute("name")||"",this.input.value=this.getAttribute("value")||"",this.input.setAttribute("id",m()),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.#Z=(_)=>{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.#Z),this.addEventListener("click",this.#Z),this.#N();let q=this.querySelector(":scope > label");if(q)this.#q=q,this.#$=!1,this.#q.setAttribute("for",this.input.id);if(this.hasAttribute("label"))this.#J(),this.#q.innerText=this.getAttribute("label");if(!this.hasAttribute("label")){let Q=Array.from(this.childNodes).filter((Z)=>Z.nodeType===Node.TEXT_NODE).map((Z)=>Z.textContent||"").join(" ").trim();if(Q&&!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-label",Q)}this.render()}static get observedAttributes(){return["disabled","label","checked","name","value","indeterminate"]}#J(){if(!this.#q)this.#q=document.createElement("label"),this.#$=!0,this.#q.setAttribute("for",this.input.id);if(this.#q&&!this.#q.parentNode&&this.input.parentNode)this.input.after(this.#q)}render(){}#W(_){return this.hasAttribute(_)&&this.getAttribute(_)!=="false"}#j(){if(this.input.indeterminate)this.input.setAttribute("aria-checked","mixed");else this.input.setAttribute("aria-checked",this.input.checked?"true":"false")}#N(){let _=this.#W("checked"),q=this.#W("indeterminate")&&!_,Q=this.#W("disabled");this.input.checked=_,this.input.indeterminate=q,this.input.disabled=Q,this.input.value=this.getAttribute("value")||"";let Z=this.getAttribute("name")||this.name;if(Z)this.input.setAttribute("name",Z);else this.input.removeAttribute("name");if(q)this.input.setAttribute("indeterminate","true");else this.input.removeAttribute("indeterminate");this.#j()}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.#Z)}attributeChangedCallback(_,q,Q){switch(_){case"label":if(Q)this.#J(),this.#q.innerText=Q;else if(this.#q&&this.#$)this.#q.remove(),this.#q=null,this.#$=!1;break;case"checked":if(this.#W("checked")&&this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");this.#N();break;case"indeterminate":this.#N();break;case"disabled":this.#N();break;case"name":if(Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"value":this.input.value=Q||"";break;default:this.input[_]=Q,this.input.setAttribute(_,Q);break}}handleInput(_){if(_.stopPropagation(),this.input.indeterminate=!1,this.input.removeAttribute("indeterminate"),this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");if(this.#j(),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.#j(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}}M("fig-checkbox",W0);class J_ extends W0{constructor(){super();this.input.setAttribute("type","radio");let _=this.getAttribute("name");if(_)this.input.setAttribute("name",_);else this.input.removeAttribute("name")}}M("fig-radio",J_);class j_ extends W0{render(){this.input.setAttribute("class","switch"),this.input.setAttribute("role","switch")}}M("fig-switch",j_);class N_ extends HTMLElement{static observedAttributes=["options","placeholder","value","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#q=!1;#_=null;#Q=null;#Z=null;#$=null;#J=!1;#W=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#j=this.#A.bind(this);#N=this.#B.bind(this);#U=this.#Y.bind(this);get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}#L(){return!!this.querySelector(":scope > .input-combo")}#G(){if(this.#_=this.querySelector("fig-input-text"),this.#Z=this.querySelector("fig-button"),this.#Q=this.querySelector("fig-dropdown"),this.#_)this.#_.setAttribute("value",this.value),this.#_.setAttribute("placeholder",this.getAttribute("placeholder")||"");this.#H()}connectedCallback(){if(this.#$=Array.from(this.children).find((_)=>_.tagName==="FIG-DROPDOWN")||null,this.#q=this.#$!==null,this.#$)this.#$.remove();if(this.#L())this.#G(),this.#R();else this.#K(),this.#R();this.#M(k(this,"disabled"))}disconnectedCallback(){this.#X()}#K(){let _=this.#P(),q=this.getAttribute("placeholder")||"",Q=this.value,Z=this.#z(),$=X("fig-input-text",{placeholder:q,value:Q}),J=h("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},h("path",{d:"M5.87868 7.12132L8 9.24264L10.1213 7.12132",stroke:"currentColor","stroke-opacity":"0.9","stroke-linecap":"round"})),j=X("fig-button",{type:"select",variant:"input",icon:!0},J);if(!this.#q)j.appendChild(X("fig-dropdown",{type:"dropdown",label:Z},_.map((N)=>X("option",{},N.trim()))));if(this.replaceChildren(X("div",{className:"input-combo"},[$,j])),this.#_=$,this.#Z=j,this.#q&&this.#$&&this.#Z){if(!this.#$.hasAttribute("type"))this.#$.setAttribute("type","dropdown");if(!this.#$.hasAttribute("label"))this.#$.setAttribute("label",Z);this.#Z.append(this.#$)}this.#Q=this.querySelector("fig-dropdown"),this.#H()}#R(){this.#X(),this.#Q?.addEventListener("input",this.#j),this.#_?.addEventListener("input",this.#N),this.#_?.addEventListener("change",this.#U)}#X(){this.#Q?.removeEventListener("input",this.#j),this.#_?.removeEventListener("input",this.#N),this.#_?.removeEventListener("change",this.#U)}#A(_){_.stopPropagation();let q=_.target.closest("fig-dropdown")?.value??"";if(this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#_)this.#_.setAttribute("value",q);this.#O(),this.#F()}#B(_){_.stopPropagation();let q=_.target.value??"";this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#O()}#Y(_){_.stopPropagation();let q=_.target.value??"";this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#F()}#O(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#F(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#P(){return(this.getAttribute("options")||"").split(",").map((_)=>_.trim()).filter(Boolean)}#k(){return(this.getAttribute("aria-label")||this.getAttribute("placeholder")||"Combo input").trim()}#z(){return`${this.#k()} options`}#H(){if(this.#_)this.#W.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,q)});if(this.#Q&&!this.#Q.hasAttribute("aria-label"))this.#Q.setAttribute("label",this.#z())}#M(_){if(this.#_)if(_)this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled");if(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")}focus(){this.#_?.focus()}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"options":if(this.#Q&&!this.#q){let Z=this.#P();this.#Q.replaceChildren(...Z.map(($)=>{let J=document.createElement("option");return J.textContent=$,J}))}break;case"placeholder":if(this.#_)this.#_.setAttribute("placeholder",Q||"");this.#H();break;case"value":if(!this.#J&&this.#_)this.#_.setAttribute("value",Q||"");break;case"disabled":this.#M(Q!==null&&Q!=="false");break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#H();break}}}M("fig-combo-input",N_);class O0 extends HTMLElement{#q="color";#_=null;#Q=!1;constructor(){super();this.#_=this.#U.bind(this)}static get observedAttributes(){return["background","size","selected","disabled","alpha","aria-label","aria-labelledby","aria-describedby"]}connectedCallback(){this.#j(),this.#Z(),this.#N()}#Z(){let _=this.getAttribute("alpha");if(_!==null)this.style.setProperty("--alpha",_);else this.style.removeProperty("--alpha")}#$(_){if(!_)return"color";let q=_.toLowerCase();if(q.includes("gradient"))return"gradient";if(q.includes("url("))return"image";return"color"}#J(_){if(!_)return"#D9D9D9";if(_.startsWith("#"))return _.slice(0,7);try{let{ctx:q}=B0(1,1);return q.fillStyle=_,q.fillStyle}catch{return"#D9D9D9"}}#W(_){if(!_||!_.includes("var("))return _;let q=this.style.background;this.style.background=_;let Q=getComputedStyle(this),Z=Q.backgroundImage,$=Q.backgroundColor;if(this.style.background=q,Z&&Z!=="none")return Z;return $||_}#j(){let _=this.getAttribute("background")||"#D9D9D9",q=_.includes("var("),Q=q?this.#W(_):_,Z=this.#$(Q);if(Z!==this.#q||!this.input){if(this.#q=Z,this.setAttribute("data-type",this.#q),this.input)this.input.removeEventListener("input",this.#_);if(this.#q==="color"){let J=this.#J(Q),j=X("input",{type:"color",value:J});if(this.replaceChildren(document.createElement("div"),j),this.input=j,!q)this.input.addEventListener("input",this.#_);this.#N()}else this.replaceChildren(document.createElement("div")),this.input=null,this.#N()}else if(this.#q==="color"&&this.input){let J=this.#J(Q);if(this.input.value!==J)this.input.value=J}let $=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test(_);this.style.setProperty("--swatch-background",$?_:`linear-gradient(${_}, ${_})`)}#N(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-disabled",_?"true":"false"),this.input){this.input.disabled=_;let q=this.getAttribute("aria-labelledby"),Q=this.getAttribute("aria-label")||"Color swatch",Z=this.getAttribute("aria-describedby");if(q)this.input.setAttribute("aria-labelledby",q),this.input.removeAttribute("aria-label");else this.input.setAttribute("aria-label",Q),this.input.removeAttribute("aria-labelledby");if(Z)this.input.setAttribute("aria-describedby",Z);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")}#U(_){this.#Q=!0,this.setAttribute("background",_.target.value),this.#Q=!1}get background(){return this.getAttribute("background")}set background(_){this.setAttribute("background",_)}focus(){this.input?.focus()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="background"){if(this.#Q){let Z=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test(Q);this.style.setProperty("--swatch-background",Z?Q:`linear-gradient(${Q}, ${Q})`);return}this.#j()}else if(_==="alpha")this.#Z();else if(_==="disabled"||_==="aria-label"||_==="aria-labelledby"||_==="aria-describedby")this.#N()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0)this.removeAttribute("alpha");else this.setAttribute("alpha",_)}}M("fig-swatch",O0);class W_ extends O0{}M("fig-chit",W_);var G_=["load","error"],K_=["loadstart","progress","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","durationchange","timeupdate","ratechange","resize","volumechange"],n_=[...new Set([...G_,...K_])];class G0 extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=this.#c.bind(this);#N=this.#e.bind(this);#U=this.#r.bind(this);#L=this.#o.bind(this);#G=this.#n.bind(this);#K=null;#R=null;#X=null;#A=void 0;#B=null;#Y=null;#O=null;#F=null;#P=null;#k=null;#z=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.#q}set src(_){if(this.#q=_||"",_===null||_===void 0||_==="")this.removeAttribute("src");else this.setAttribute("src",_)}get file(){return this.#W}#H(){return this.#J||this.#q||""}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((Z,$)=>{this.#_.addEventListener("load",Z,{once:!0}),this.#_.addEventListener("error",$,{once:!0})})}catch{}let _=this.#_.naturalWidth,q=this.#_.naturalHeight;if(!(_>0)||!(q>0))return null;let Q=document.createElement("canvas");return Q.width=_,Q.height=q,Q.getContext("2d").drawImage(this.#_,0,0),Q.toDataURL()}connectedCallback(){this.#q=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 q=this.getAttribute("fit");if(q)this.style.setProperty("--fig-media-fit",q);if(this.querySelectorAll("fig-swatch[data-generated]").forEach((Z)=>Z.remove()),this.#S(),this.#E(),this.#D(),this.#h(),this.#I(),this.#y(),this.#x(),this.hasAttribute("upload")&&this.getAttribute("upload")!=="false"&&!this.querySelector("fig-input-file[data-generated]"))this.#t();this.#Z=this.querySelector("fig-input-file[data-generated]"),this.#Z?.removeEventListener("change",this.#j),this.#Z?.addEventListener("change",this.#j)}disconnectedCallback(){if(this.#Z?.removeEventListener("change",this.#j),this.#T(),this.#M(),this.#u(),this.#$)URL.revokeObjectURL(this.#$),this.#$=null;this.#J=null}#M(){if(!this.#_)return;if(n_.forEach((_)=>{this.#_.removeEventListener(_,this.#G)}),this.#_.tagName==="VIDEO")this.#_.removeEventListener("play",this.#N),this.#_.removeEventListener("pause",this.#U),this.#_.removeEventListener("ended",this.#L)}#D(){if(this.#M(),!this.#_)return;if((this.#_.tagName==="VIDEO"?K_:G_).forEach((q)=>{this.#_.addEventListener(q,this.#G)}),this.#_.tagName!=="VIDEO")return;this.#_.addEventListener("play",this.#N),this.#_.addEventListener("pause",this.#U),this.#_.addEventListener("ended",this.#L)}#C(){return this.mediaKind==="image"&&this.getAttribute("loading-indicator")!=="false"&&this.#Q?.hasAttribute("data-generated")&&this.#_?.hasAttribute("data-generated")}#I(){let _=this.#H();if(!_||!this.#C()){this.#T();return}if(this.#_?.tagName==="IMG"&&this.#_.complete&&this.#_.currentSrc){this.#T();return}if(this.#X===_)return;this.#T(),this.#X=_,this.#A=this.getAttribute("aria-busy"),this.setAttribute("aria-busy","true"),this.#R=setTimeout(()=>{if(this.#R=null,this.#X!==_||!this.isConnected||!this.#C())return;let q=document.createElement("fig-spinner");q.setAttribute("data-generated",""),q.setAttribute("data-loading-indicator",""),q.setAttribute("slot","overlay"),q.setAttribute("size","small"),q.setAttribute("aria-hidden","true"),this.append(q),this.#K=q},150)}#T(){if(this.#R!==null)clearTimeout(this.#R),this.#R=null;if(this.#K?.remove(),this.#K=null,this.#X=null,this.#A!==void 0){if(this.#A===null)this.removeAttribute("aria-busy");else this.setAttribute("aria-busy",this.#A);this.#A=void 0}}#S(){if(this.#Q?.isConnected)return;let _=this.querySelector(":scope > fig-preview");if(_){this.#Q=_;return}let q=document.createElement("fig-preview");q.setAttribute("data-generated",""),this.prepend(q),this.#Q=q}#f(){let _=this.mediaKind==="video"?"video":"img";return this.querySelector(`${_}:not([data-generated])`)}#E(){let _=this.#f();if(_){if(this.#S(),this.#_&&this.#_!==_){if(this.#M(),this.#_.hasAttribute("data-generated"))this.#_.remove()}if(this.#_=_,this.#Q&&_.parentElement!==this.#Q)this.#Q.append(_);this.#D(),this.#y();return}this.#S();let q=this.mediaKind==="video"?"VIDEO":"IMG";if(this.#_&&this.#_.tagName!==q){if(this.#M(),this.#_.hasAttribute("data-generated"))this.#_.remove();this.#_=null}if(this.#_)return;if(this.mediaKind==="video"){let Q=document.createElement("video");Q.setAttribute("data-generated",""),Q.className="fig-media-element",Q.setAttribute("playsinline",""),Q.preload="auto",this.#Q.append(Q),this.#_=Q;let Z=()=>{if(this.#_?.autoplay)return;try{this.#_.currentTime=0.001}catch{}};this.#_.addEventListener("loadedmetadata",Z,{once:!0})}else{let Q=document.createElement("img");Q.setAttribute("data-generated",""),Q.className="fig-media-element",Q.loading="lazy",Q.decoding="async",Q.alt=this.getAttribute("alt")||"",this.#Q.append(Q),this.#_=Q}this.#D()}#y(){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 q=this.getAttribute(_);if(q===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,q)})}#g(){return this.querySelector(":scope > figcaption:not([data-generated])")}#v(){return Array.from(this.querySelectorAll(":scope > figcaption[data-generated]"))}#x(){let _=this.#g(),q=this.#v();if(_){q.forEach((J)=>J.remove());return}let Q=this.getAttribute("caption")||"";if(!Q){q.forEach((J)=>J.remove());return}let Z=q[0]||document.createElement("figcaption");if(q.slice(1).forEach((J)=>J.remove()),!Z.hasAttribute("data-generated"))Z.setAttribute("data-generated","");if(Z.textContent!==Q)Z.textContent=Q;let $=this.querySelector(":scope > fig-media-controls");if($)$.before(Z);else if(this.#Q?.isConnected)this.#Q.after(Z);else if(!Z.isConnected)this.append(Z)}#w(_,q=!1){if(!this.hasAttribute(_))return q;return this.getAttribute(_)!=="false"}#h(){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.#y(),this.#I();return}let q=this.getAttribute("poster");if(q)this.#_.setAttribute("poster",q);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.#y(),this.#m(),this.#b(),this.#I()}get mediaEl(){return this.#_}#V(){if(this.mediaKind!=="video")return!1;return Boolean(this.#H())}#b(){let _=this.#B||this.querySelector(":scope > fig-media-controls");if(!_)return;if(this.mediaKind!=="video")return;if(this.#V()){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}#m(){if(this.mediaKind!=="video"){this.#u();return}let _=this.querySelector(":scope > fig-media-controls:not([data-generated])");if(_){if(this.#B!==_)this.#u(),this.#B=_;this.#i(),this.#b();return}if(this.#w("controls",!1))this.#s();else this.#u()}#s(){let _=Array.from(this.querySelectorAll(":scope > fig-media-controls[data-generated]")),q=_[0];if(_.slice(1).forEach((Z)=>Z.remove()),q){this.#B=q,this.#i(),this.#b();return}let Q=document.createElement("fig-media-controls");Q.setAttribute("data-generated",""),this.append(Q),this.#B=Q,this.#i(),this.#b()}#i(){if(!this.#B||!this.#_)return;if(this.#Y===this.#_&&this.#O===this.#B){this.#b();return}this.#a();let _=this.#B,q=this.#_;this.#Y=q,this.#O=_;let Q=null,Z=()=>{if(this.#b(),!this.#V())return;if(_.playing=!q.paused&&!q.ended,Number.isFinite(q.duration))_.duration=q.duration;if(Q!==null)if(Math.abs(q.currentTime-Q)<0.25)Q=null;else return;_.time=q.currentTime||0},$=()=>{if(!this.#V())return;let N=q.play?.();if(N&&typeof N.catch==="function")N.catch(()=>{})},J=()=>q.pause?.(),j=(N)=>{if(!this.#V())return;let W=Number(N?.detail?.time);if(!Number.isFinite(W))return;Q=W;try{q.currentTime=W}catch{}};this.#F=Z,this.#P=$,this.#k=J,this.#z=j,q.addEventListener("play",Z),q.addEventListener("pause",Z),q.addEventListener("ended",Z),q.addEventListener("timeupdate",Z),q.addEventListener("loadedmetadata",Z),q.addEventListener("durationchange",Z),q.addEventListener("seeked",Z),_.addEventListener("play",$),_.addEventListener("pause",J),_.addEventListener("seek",j),Z()}#a(){let _=this.#Y,q=this.#O;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(q){if(this.#P)q.removeEventListener("play",this.#P);if(this.#k)q.removeEventListener("pause",this.#k);if(this.#z)q.removeEventListener("seek",this.#z)}this.#Y=null,this.#O=null,this.#F=null,this.#P=null,this.#k=null,this.#z=null}#u(){this.#a(),this.querySelectorAll(":scope > fig-media-controls[data-generated]").forEach((_)=>{_.remove()}),this.#B=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()}#t(){let _=document.createElement("fig-input-file");_.setAttribute("data-generated",""),_.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*"),_.setAttribute("variant","overlay");let q=this.getAttribute("label")||"Upload";if(_.setAttribute("label",this.#q?"Replace":q),this.#W?.name)_.setAttribute("filename",this.#W.name);else if(this.#q)_.setAttribute("url",this.#q);_.addEventListener("change",this.#j),this.#S(),this.#Q.append(_),this.#Z=_}#p(){if(this.#Z)this.#Z.removeEventListener("change",this.#j),this.#Z.remove(),this.#Z=null}#c(_){if(_.target!==this.#Z)return;let q=_.detail?.files?.[0],Q=_.detail?.cleared===!0;if(!q){if(this.#$)URL.revokeObjectURL(this.#$),this.#$=null;if(this.#W=null,this.#J=null,Q)this.src="";if(this.#h(),this.#Z){let Z=this.getAttribute("label")||"Upload";if(this.#Z.setAttribute("label",this.#q?"Replace":Z),this.#Z.removeAttribute("filename"),this.#q)this.#Z.setAttribute("url",this.#q);else this.#Z.removeAttribute("url")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0}));return}if(this.#$)URL.revokeObjectURL(this.#$);if(this.#W=q,this.#$=URL.createObjectURL(q),this.#J=this.#$,this.#h(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,detail:{file:q,src:this.#$}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0})),this.#Z)this.#Z.removeAttribute("url"),this.#Z.setAttribute("filename",q.name),this.#Z.setAttribute("label","Replace")}#d(_){if(!this.#_)return;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!1,composed:!0,detail:{src:this.#q||"",currentTime:this.#_.currentTime,duration:this.#_.duration}}))}#n(_){let q=this.#_;if(!q||_.currentTarget!==q)return;if(q.tagName==="IMG"&&(_.type==="load"||_.type==="error"))this.#T();let Q={src:this.#H(),media:q,originalEvent:_};if(q.tagName==="VIDEO")Q.currentTime=q.currentTime,Q.duration=q.duration,Q.readyState=q.readyState,Q.networkState=q.networkState,Q.error=q.error;this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,cancelable:!1,composed:!0,detail:Q}))}#e(){this.#d("play")}#r(){this.#d("pause")}#o(){this.#d("ended")}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="src"){let Z=Q||"",$=Z&&(Z===this.#J||Z===this.#$);if(this.#q=Z,this.#$&&!$)URL.revokeObjectURL(this.#$),this.#$=null,this.#J=null,this.#W=null;if(this.#h(),this.#Z){let J=this.getAttribute("label")||"Upload";if(this.#Z.setAttribute("label",this.#q?"Replace":J),this.#q)if(this.#W?.name)this.#Z.removeAttribute("url"),this.#Z.setAttribute("filename",this.#W.name);else this.#Z.setAttribute("url",this.#q),this.#Z.removeAttribute("filename");else this.#Z.removeAttribute("url"),this.#Z.removeAttribute("filename")}}if(_==="type"){if(this.#E(),this.#h(),this.#Z)this.#Z.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*")}if(["alt","aria-label","aria-labelledby","title"].includes(_))this.#y();if(_==="upload"){let Z=Q!==null&&Q!=="false";if(Z&&!this.#Z)this.#t();else if(!Z)this.#p()}if(_==="loading-indicator")this.#I();if(_==="aspect-ratio")if(Q)this.style.setProperty("--fig-media-aspect-ratio",Q);else this.style.removeProperty("--fig-media-aspect-ratio");if(_==="fit")if(Q)this.style.setProperty("--fig-media-fit",Q);else this.style.removeProperty("--fig-media-fit");if(_==="label"&&this.#Z){let Z=this.getAttribute("label")||"Upload";this.#Z.setAttribute("label",this.#q?"Replace":Z)}if(["controls","autoplay","loop","muted","poster"].includes(_))this.#h();if(_==="caption")this.#x()}}M("fig-media",G0);class U_ extends G0{get mediaKind(){return"image"}}M("fig-image",U_);class L_ extends G0{get mediaKind(){return"video"}}M("fig-video",L_);class R_ extends HTMLElement{static get observedAttributes(){return["src","alt","label","text","sublabel","selected","disabled","full","size","aspect-ratio","fit","label-line-clamp"]}#q=null;#_=null;#Q=null;#Z=null;#$=!1;#J=new MutationObserver((_)=>{if(!_.some((Q)=>[...Q.addedNodes,...Q.removedNodes].some((Z)=>Z instanceof Element&&(Z.matches("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])")||Z.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.#K(),this.#X()});connectedCallback(){this.#J.observe(this,{childList:!0,subtree:!0}),this.#K(),this.#X()}disconnectedCallback(){this.#J.disconnect()}attributeChangedCallback(){if(!this.isConnected)return;this.#K(),this.#X()}#W(){return this.getAttribute("label")??this.getAttribute("text")??""}#j(){return this.getAttribute("sublabel")??""}#N(){return this.getAttribute("label-line-clamp")==="2"?"2":"1"}#U(){return Boolean(this.getAttribute("src"))}#L(){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((q)=>{while(q.firstChild)_.insertBefore(q.firstChild,q);q.remove()});while(_.firstChild)this.insertBefore(_.firstChild,_);_.remove()})}#K(){if(this.#G(),!this.#U()){this.#R();return}let _=this.#L();if(this.#$=Boolean(_),_)this.querySelectorAll(":scope > [data-generated]:not(fig-footer)").forEach((Q)=>Q.remove()),this.#_=null;if(!this.#$){if(this.#_=this.querySelector(":scope > fig-image[data-generated]")||null,!this.#_)this.querySelectorAll(":scope > fig-image, :scope > fig-media, :scope > fig-preview").forEach((Q)=>{if(Q.hasAttribute("data-generated"))Q.remove()}),this.#_=document.createElement("fig-image"),this.#_.setAttribute("data-generated",""),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto"),this.prepend(this.#_)}if(!Boolean(this.#W()||this.#j())){this.querySelector(":scope > fig-footer[data-generated]")?.remove(),this.#q=null,this.#Q=null,this.#Z=null;return}if(!this.#q||!this.#q.isConnected){if(this.#q=this.querySelector(":scope > fig-footer[data-generated]"),!this.#q)this.#q=document.createElement("fig-footer"),this.#q.setAttribute("data-generated",""),this.appendChild(this.#q)}if(!this.#Q||!this.#Q.isConnected){if(this.#Q=this.#q.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.#q.appendChild(this.#Q)}if(!this.#Z||!this.#Z.isConnected){if(this.#Z=this.#q.querySelector(":scope > .fig-card-sublabel[data-generated]"),!this.#Z)this.#Z=document.createElement("label"),this.#Z.className="fig-card-sublabel",this.#Z.setAttribute("data-generated",""),this.#Q.after(this.#Z)}}#R(){if(this.#G(),this.querySelectorAll(":scope > [data-generated]").forEach((q)=>q.remove()),this.#_=null,this.#$=!0,this.#q=null,this.#Q=null,this.#Z=null,!this.#W()&&!this.#j())return;this.#q=document.createElement("fig-footer"),this.#q.setAttribute("data-generated",""),this.#Q=document.createElement("label"),this.#Q.className="fig-card-label",this.#Q.setAttribute("data-generated",""),this.#q.appendChild(this.#Q);let _=this.#j();if(this.#Z=null,_)this.#Z=document.createElement("label"),this.#Z.className="fig-card-sublabel",this.#Z.setAttribute("data-generated",""),this.#q.appendChild(this.#Z);this.appendChild(this.#q)}#X(){if(!this.#U()){this.#A();return}let _=k(this,"disabled"),q=this.#W(),Q=this.#j(),Z=this.#N();this.style.setProperty("--fig-card-label-line-clamp",Z),this.setAttribute("role","group");let $=[q,Q].filter(Boolean).join(", ");if($)this.setAttribute("aria-label",$);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#_&&!this.#$){let J=this.getAttribute("src"),j=this.getAttribute("alt"),N=this.getAttribute("aspect-ratio")||"1/1",W=this.getAttribute("fit")||"contain",G=j!=null?j:"";if(J)this.#_.setAttribute("src",J);else this.#_.removeAttribute("src");this.#_.setAttribute("alt",G),this.#_.setAttribute("aspect-ratio",N),this.#_.setAttribute("fit",W),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto")}if(this.#Q)this.#Q.textContent=q,this.#Q.hidden=!q;if(this.#Z)this.#Z.textContent=Q,this.#Z.hidden=!Q;if(this.#q)this.#q.hidden=!q&&!Q}#A(){let _=k(this,"disabled"),q=this.#W(),Q=this.#j();this.style.setProperty("--fig-card-label-line-clamp",this.#N()),this.setAttribute("role","group");let Z=[q,Q].filter(Boolean).join(", ");if(Z)this.setAttribute("aria-label",Z);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#Q)this.#Q.textContent=q,this.#Q.hidden=!q;if(this.#Z)this.#Z.textContent=Q}}M("fig-card",R_);class X_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=!1;#J=!1;static get observedAttributes(){return["playing","duration","time","disabled"]}connectedCallback(){this.#W(),this.#L(),this.#G(),this.#j()}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 q=Number(_);if(!Number.isFinite(q)||q<0){this.removeAttribute("duration");return}this.setAttribute("duration",String(q))}get time(){let _=Number(this.getAttribute("time"));return Number.isFinite(_)&&_>=0?_:0}set time(_){let q=Number(_);if(!Number.isFinite(q)||q<0){this.removeAttribute("time");return}this.setAttribute("time",String(q))}get disabled(){return k(this,"disabled")}set disabled(_){if(_)this.setAttribute("disabled","");else this.removeAttribute("disabled")}attributeChangedCallback(_){if(!this.#J)return;if(_==="playing")this.#L();if(_==="duration"||_==="time")this.#G();if(_==="disabled")this.#j()}#W(){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 q=document.createElement("fig-button");q.setAttribute("variant","ghost"),q.setAttribute("size","small"),q.setAttribute("icon","true"),q.setAttribute("aria-label","Play");let Q=b("play",{className:"fig-media-controls-play-icon"});q.append(Q),_.append(q),q.addEventListener("click",(j)=>{j.preventDefault(),j.stopPropagation(),this.toggle()});let Z=document.createElement("fig-slider");Z.setAttribute("text","false"),Z.setAttribute("min","0"),Z.setAttribute("max",String(this.duration)),Z.setAttribute("step","1"),Z.setAttribute("value",String(this.time)),Z.setAttribute("full",""),Z.setAttribute("aria-label","Seek"),Z.setAttribute("aria-valuetext",this.#U(this.time,this.duration));let $=document.createElement("span");$.className="fig-media-controls-time",$.textContent=this.#N(this.time);let J=(j)=>{if(this.disabled){j.preventDefault?.(),j.stopPropagation();return}let N=j.currentTarget,W=Number(N?.value);if(!Number.isFinite(W))return;this.#$=!0,this.setAttribute("time",String(W)),this.dispatchEvent(new CustomEvent("seek",{bubbles:!0,composed:!0,detail:{time:W}})),requestAnimationFrame(()=>{this.#$=!1})};Z.addEventListener("input",J),Z.addEventListener("change",J),this.append(_,Z,$),this.#q=q,this.#_=_,this.#Q=Z,this.#Z=$,this.#j()}#j(){let _=this.disabled;if(this.setAttribute("aria-disabled",_?"true":"false"),this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");if(this.#Q)if(_)this.#Q.setAttribute("disabled","");else this.#Q.removeAttribute("disabled")}#N(_){if(!Number.isFinite(_)||_<0)_=0;let q=Math.floor(_),Q=Math.floor(q/60),Z=q%60;return`${String(Q).padStart(2,"0")}:${String(Z).padStart(2,"0")}`}#U(_,q=0){let Q=this.#N(_);if(!Number.isFinite(q)||q<=0)return Q;return`${Q} of ${this.#N(q)}`}#L(){if(!this.#q)return;let _=this.playing;this.#q.setAttribute("aria-label",_?"Pause":"Play"),this.#_?.setAttribute("text",_?"Pause":"Play");let q=this.#q.querySelector(".fig-media-controls-play-icon");if(q)q.setAttribute("name",_?"pause":"play")}#G(){if(!this.#Q)return;let _=this.duration;if(Number(this.#Q.getAttribute("max"))!==_)this.#Q.setAttribute("max",String(_));let q=this.time;if(!this.#$)this.#Q.setAttribute("value",String(q));if(this.#Q.setAttribute("aria-valuetext",this.#U(q,_)),this.#Z)this.#Z.textContent=this.#N(q)}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()}}M("fig-media-controls",X_);class Y_ extends HTMLElement{static observedAttributes=["accepts","label","disabled","multiple","variant","url","filename"];#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;get files(){return this.#J}get#W(){let _=this.getAttribute("filename");if(_)return _;let q=this.getAttribute("url");if(!q)return"";try{let Z=new URL(q,location.href).pathname.split("/").pop();return Z?decodeURIComponent(Z):q}catch{return q}}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.#W}connectedCallback(){this.#R(),this.addEventListener("dragover",this.#L),this.addEventListener("dragleave",this.#G),this.addEventListener("drop",this.#K)}disconnectedCallback(){this.#q?.removeEventListener("change",this.#N),this.#Q?.removeEventListener("click",this.#U),this.removeEventListener("dragover",this.#L),this.removeEventListener("dragleave",this.#G),this.removeEventListener("drop",this.#K)}attributeChangedCallback(_,q,Q){if(q===Q)return;this.#R()}clear(){if(this.#J=null,this.#q)this.#q.value="";this.removeAttribute("url"),this.removeAttribute("filename"),this.#R(),this.#j({cleared:!0})}#j(_={}){let q={files:this.#J,..._};this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0}))}#N=()=>{if(this.#q.files.length>0)this.#J=this.#q.files,this.removeAttribute("url"),this.#R(),this.#j()};#U=(_)=>{_.stopPropagation(),this.clear()};#L=(_)=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(_.preventDefault(),!this.hasAttribute("dragover")){if(this.setAttribute("dragover",""),this.#$)this.#$.dataset.prevText=this.#$.textContent,this.#$.textContent="Drop file"}};#G=()=>{if(this.removeAttribute("dragover"),this.#$&&this.#$.dataset.prevText!==void 0)this.#$.textContent=this.#$.dataset.prevText,delete this.#$.dataset.prevText};#K=(_)=>{if(_.preventDefault(),this.removeAttribute("dragover"),this.#$&&this.#$.dataset.prevText!==void 0)this.#$.textContent=this.#$.dataset.prevText,delete this.#$.dataset.prevText;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.getAttribute("accepts"),Q=Array.from(_.dataTransfer.files);if(q){let $=q.split(",").map((J)=>J.trim().toLowerCase());Q=Q.filter((J)=>{let j="."+J.name.split(".").pop().toLowerCase(),N=J.type.toLowerCase();return $.some((W)=>W===j||W===N||W.endsWith("/*")&&N.startsWith(W.slice(0,-1)))})}if(!this.hasAttribute("multiple")||this.getAttribute("multiple")==="false")Q=Q.slice(0,1);if(Q.length===0)return;let Z=new DataTransfer;if(Q.forEach(($)=>Z.items.add($)),this.#J=Z.files,this.#q)this.#q.files=Z.files;this.removeAttribute("url"),this.#R(),this.#j()};#R(){let _=this.getAttribute("accepts")||"",q=this.getAttribute("label")||"Upload",Q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.hasAttribute("multiple")&&this.getAttribute("multiple")!=="false",$=this.getAttribute("variant")||"input",J=this.#J&&this.#J.length>0||!!this.getAttribute("url")||!!this.getAttribute("filename");if(this.replaceChildren(),J){let j=_?`Accepts ${_.split(",").map((U)=>U.trim()).join(", ")}`:"";if(this.#$=document.createElement("fig-button"),this.#$.setAttribute("variant",$),this.#$.setAttribute("type","upload"),this.#$.className="fig-input-file-filename",Q)this.#$.setAttribute("disabled","");let N=document.createElement("fig-truncate");N.setAttribute("position","middle"),N.setAttribute("tooltip","");let W=this.value,G=W.lastIndexOf(".");if(G>0)N.setAttribute("tail",W.slice(G));if(N.textContent=W,this.#$.appendChild(N),this.#q=document.createElement("input"),this.#q.type="file",this.#q.title="",this.#q.disabled=Q,_)this.#q.setAttribute("accept",_);if(Z)this.#q.setAttribute("multiple","");if(this.#q.addEventListener("change",this.#N),this.#$.appendChild(this.#q),j)this.#Z=document.createElement("fig-tooltip"),this.#Z.setAttribute("text",j),this.#Z.appendChild(this.#$),this.appendChild(this.#Z);else this.appendChild(this.#$);let K=document.createElement("fig-tooltip");if(K.setAttribute("text","Remove"),this.#Q=document.createElement("fig-button"),this.#Q.setAttribute("variant",$==="overlay"?"overlay":"ghost"),this.#Q.setAttribute("icon","true"),this.#Q.setAttribute("aria-label","Remove"),this.#Q.className="fig-input-file-clear",Q)this.#Q.setAttribute("disabled","");this.#Q.replaceChildren(b("minus")),this.#Q.addEventListener("click",this.#U),K.appendChild(this.#Q),this.appendChild(K)}else{let j=_?`Accepts ${_.split(",").map((N)=>N.trim()).join(", ")}`:"";if(j)this.#Z=document.createElement("fig-tooltip"),this.#Z.setAttribute("text",j);if(this.#$=document.createElement("fig-button"),this.#$.setAttribute("variant",$),this.#$.setAttribute("type","upload"),this.#$.textContent=q,Q)this.#$.setAttribute("disabled","");if(this.#q=document.createElement("input"),this.#q.type="file",this.#q.title="",this.#q.disabled=Q,_)this.#q.setAttribute("accept",_);if(Z)this.#q.setAttribute("multiple","");if(this.#q.addEventListener("change",this.#N),this.#$.appendChild(this.#q),this.#Z)this.#Z.appendChild(this.#$),this.appendChild(this.#Z);else this.appendChild(this.#$)}}}M("fig-input-file",Y_);class w extends HTMLElement{#q={x:0.42,y:0};#_={x:0.58,y:1};#Q={stiffness:200,damping:15,mass:1};#Z="bezier";#$=2;#J=null;#W=null;#j=null;#N=null;#U=null;#L=null;#G=null;#K=null;#R=null;#X=null;#A=null;#B=0.8;#Y=200;#O=200;#F=null;#P=null;#k=null;#z=null;#H=5;#M=10;#D=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","precision","aspect-ratio","edit"]}connectedCallback(){this.#$=parseInt(this.getAttribute("precision")||"2"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio"));let _=this.getAttribute("value");if(_)this.#I(_);this.#X=this.#T(),this.#x(),this.#t()}disconnectedCallback(){if(this.#J=null,this.#z)this.#z.disconnect(),this.#z=null}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="aspect-ratio"){if(g(this,"--aspect-ratio",Q),this.#W)this.#p(),this.#o();return}if(_==="edit"){if(this.isConnected)this.#x();return}if(_==="value"&&Q){let Z=this.#Z;if(this.#I(Q),this.#X=this.#T(),Z!==this.#Z&&this.#v())this.#x();else{if(this.#W)this.#o();this.#l(),this.#q0()}}if(_==="precision")this.#$=parseInt(Q||"2")}get value(){if(this.#Z==="spring"){let{stiffness:q,damping:Q,mass:Z}=this.#Q;return`spring(${q}, ${Q}, ${Z})`}let _=this.#$;return`${this.#q.x.toFixed(_)}, ${this.#q.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)}`}get cssValue(){if(this.#Z==="spring"){let q=this.#S(),Q=20,Z=Math.max(1,Math.floor(q.length/20)),$=[];for(let J=0;J<q.length;J+=Z)$.push(q[J].value.toFixed(3));if(q.length>0)$.push(q[q.length-1].value.toFixed(3));return`linear(${$.join(", ")})`}let _=this.#$;return`cubic-bezier(${this.#q.x.toFixed(_)}, ${this.#q.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)})`}get preset(){return this.#X}set value(_){this.setAttribute("value",_)}#I(_){let q=_.match(/^spring\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/);if(q)return this.#Z="spring",this.#Q.stiffness=parseFloat(q[1]),this.#Q.damping=parseFloat(q[2]),this.#Q.mass=parseFloat(q[3]),!0;let Q=_.split(",").map((Z)=>parseFloat(Z.trim()));if(Q.length>=4&&Q.every((Z)=>!isNaN(Z)))return this.#Z="bezier",this.#q.x=Q[0],this.#q.y=Q[1],this.#_.x=Q[2],this.#_.y=Q[3],!0;return!1}#T(){if(this.#Z==="bezier"){for(let q of w.PRESETS){if(q.type!=="bezier"||!q.value)continue;if(Math.abs(this.#q.x-q.value[0])<0.001&&Math.abs(this.#q.y-q.value[1])<0.001&&Math.abs(this.#_.x-q.value[2])<0.001&&Math.abs(this.#_.y-q.value[3])<0.001)return q.name}return"Custom bezier"}for(let q of w.PRESETS){if(q.type!=="spring"||!q.spring)continue;if(Math.abs(this.#Q.stiffness-q.spring.stiffness)<0.001&&Math.abs(this.#Q.damping-q.spring.damping)<0.001&&Math.abs(this.#Q.mass-q.spring.mass)<0.001)return q.name}return"Custom spring"}#S(){let{stiffness:_,damping:q,mass:Q}=this.#Q,Z=0.004,$=5,J=[],j=0,N=0;for(let W=0;W<=5;W+=0.004){let G=-_*(j-1)-q*N;if(N+=G/Q*0.004,j+=N*0.004,J.push({t:W,value:j}),W>0.1&&Math.abs(j-1)<0.0005&&Math.abs(N)<0.0005)break}return J}static#f(_,q=24){let{stiffness:Q,damping:Z,mass:$}=_,J=0.004,j=5,N=[],W=0,G=0;for(let F=0;F<=5;F+=0.004){let B=-Q*(W-1)-Z*G;if(G+=B/$*0.004,W+=G*0.004,N.push({t:F,value:W}),F>0.1&&Math.abs(W-1)<0.001&&Math.abs(G)<0.001)break}let K=N[N.length-1].t||1,U=1;for(let F of N)if(F.value>U)U=F.value;let L=0;for(let F of N)if(F.value<L)L=F.value;let A=Math.max(U-L,1),Y=6,O=q-Y*2,D=Math.max(1,Math.floor(N.length/30)),H="";for(let F=0;F<N.length;F+=D){let B=Y+N[F].t/K*O,S=Y+(1-(N[F].value-L)/A)*O;H+=(F===0?"M":"L")+B.toFixed(1)+","+S.toFixed(1)}return w.#y(H,q)}static#E(_,q,Q,Z,$=24){let j=($-12)/2,N=48,W=[],G=(B,S,f,I,x)=>{let y=1-x;return y*y*y*B+3*y*y*x*S+3*y*x*x*f+x*x*x*I};for(let B=0;B<=48;B++){let S=B/48;W.push({x:G(0,_,Q,1,S),y:G(0,q,Z,1,S)})}let K=1/0,U=-1/0,L=1/0,A=-1/0;for(let B of W){if(B.x<K)K=B.x;if(B.x>U)U=B.x;if(B.y<L)L=B.y;if(B.y>A)A=B.y}let Y=Math.max(U-K,0.000001),O=Math.max(A-L,0.000001),D=(B)=>j+(B-K)/Y*12,H=(B)=>j+(1-(B-L)/O)*12,F="";for(let B=0;B<W.length;B++){let S=D(W[B].x),f=H(W[B].y);F+=`${B===0?"M":"L"}${S.toFixed(1)},${f.toFixed(1)}`}return F}static#y(_,q=24){return h("svg",{width:q,height:q,viewBox:`0 0 ${q} ${q}`,fill:"none"},h("path",{d:_,stroke:"currentColor","stroke-width":"1","stroke-linecap":"round",fill:"none"}))}static#g(_,q,Q,Z,$=24){return w.#y(w.#E(_,q,Q,Z,$),$)}static curveIcon(_,q,Q,Z,$=24){let J=w.#E(_,q,Q,Z,$);return`<svg width="${$}" height="${$}" viewBox="0 0 ${$} ${$}" fill="none"><path d="${J}" stroke="currentColor" stroke-width="1" stroke-linecap="round"/></svg>`}#v(){return this.getAttribute("edit")!=="false"}#x(){if(this.classList.toggle("spring-mode",this.#Z==="spring"),this.classList.toggle("bezier-mode",this.#Z!=="spring"),this.#i(),this.replaceChildren(...this.#m()),this.#a(),this.#W)this.#u(),this.#p(),this.#o();this.#q0(),this.#A0()}#w(){return["fig-select","fig-select-options","fig-select-option"].every((_)=>{let q=customElements.get(_);return typeof q==="function"&&q.prototype instanceof HTMLElement})}#h(){let _=X("fig-dropdown",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#X,full:!0}),q=void 0,Q=_;for(let Z of w.PRESETS){if(!this.#v()&&!Z.value&&!Z.spring)continue;if(Z.group!==q){if(q=Z.group,Q=q?X("optgroup",{label:q}):_,Q!==_)_.appendChild(Q)}Q.appendChild(X("option",{value:Z.name},Z.name))}return _}#V(){if(!this.#w())return this.#h();let _=document.createElement("fig-select-options"),q=void 0;for(let Q of w.PRESETS){if(!this.#v()&&!Q.value&&!Q.spring)continue;if(Q.group!==q){if(Q.group)_.appendChild(X("fig-separator",{label:Q.group}));q=Q.group}let Z;if(Q.type==="spring"){let $=Q.spring||this.#Q;Z=w.#f($)}else{let $=Q.value||[this.#q.x,this.#q.y,this.#_.x,this.#_.y];Z=w.#g(...$)}_.appendChild(X("fig-select-option",{value:Q.name,label:Q.name},[X("span",{slot:"prepend"},Z),X("span",{},Q.name)]))}return X("fig-select",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#X,full:!0},_)}#b(_,q,Q){return h("foreignObject",{className:_,"data-handle":q,width:"20",height:"20"},X("fig-handle",{size:"small","aria-label":Q}))}#m(){let q=this.#V();if(!this.#v())return[q];let Q=X("fig-input-text",{className:"fig-easing-curve-value-input",value:this.value,full:!0}),Z=[h("rect",{className:"fig-easing-curve-bounds",x:"0",y:"0",width:200,height:200})];if(this.#Z==="spring")Z.push(h("line",{className:"fig-easing-curve-target",x1:"0",y1:40,x2:200,y2:40}),h("path",{className:"fig-easing-curve-path"}),this.#b("fig-easing-curve-handle","bounce","Spring bounce handle"),this.#b("fig-easing-curve-handle fig-easing-curve-duration-bar","duration","Spring duration handle"));else Z.push(h("line",{className:"fig-easing-curve-boundary","data-boundary":"top",x1:"0",y1:"0",x2:200,y2:"0"}),h("line",{className:"fig-easing-curve-boundary","data-boundary":"bottom",x1:"0",y1:200,x2:200,y2:200}),h("path",{className:"fig-easing-curve-path"}),h("line",{className:"fig-easing-curve-arm","data-arm":"1"}),h("line",{className:"fig-easing-curve-arm","data-arm":"2"}),this.#b("fig-easing-curve-handle","1","First easing control point"),this.#b("fig-easing-curve-handle","2","Second easing control point"));let $=h("svg",{viewBox:"0 0 200 200",className:"fig-easing-curve-svg"},Z);return[q,X("div",{className:"fig-easing-curve-svg-container"},$),Q]}#s(_,q){let Q=getComputedStyle(this).getPropertyValue(_).trim();if(!Q)return q;let Z=Number.parseFloat(Q);return Number.isFinite(Z)?Z:q}#i(){this.#C=this.#s("--easing-duration-bar-radius",this.#C)}#a(){this.#W=this.querySelector(".fig-easing-curve-svg"),this.#j=this.querySelector(".fig-easing-curve-path"),this.#N=this.querySelector('[data-arm="1"]'),this.#U=this.querySelector('[data-arm="2"]'),this.#L=this.querySelector('[data-handle="1"]')||this.querySelector('[data-handle="bounce"]'),this.#G=this.querySelector('[data-handle="2"]')||this.querySelector('[data-handle="duration"]'),this.#K=this.querySelector(".fig-easing-curve-select"),this.#R=this.querySelector(".fig-easing-curve-value-input"),this.#A=this.querySelector(".fig-easing-curve-target"),this.#F=this.querySelector(".fig-easing-curve-bounds"),this.#P=this.querySelector('[data-boundary="top"]'),this.#k=this.querySelector('[data-boundary="bottom"]')}#u(){let _=this.#L?.querySelector("fig-handle"),q=this.#G?.querySelector("fig-handle");if(_){let Q=_.offsetWidth||this.#H*2,Z=_.offsetHeight||this.#H*2;this.#H=Math.max(Q,Z)/2,this.#L.setAttribute("width",Q),this.#L.setAttribute("height",Z)}if(q){let Q=q.offsetWidth||this.#M,Z=q.offsetHeight||this.#D;if(this.#Z==="spring")this.#M=Q,this.#D=Z;this.#G.setAttribute("width",Q),this.#G.setAttribute("height",Z)}}#t(){if(this.#z||!window.ResizeObserver)return;this.#z=new ResizeObserver(()=>{if(this.#p())this.#o()}),this.#z.observe(this)}#p(){if(!this.#W)return!1;let _=this.#W.getBoundingClientRect(),q=Math.max(1,Math.round(_.width||200)),Q=Math.max(1,Math.round(_.height||200)),Z=q!==this.#Y||Q!==this.#O;return this.#Y=q,this.#O=Q,this.#W.setAttribute("viewBox",`0 0 ${q} ${Q}`),Z}#c(){let _=Math.min(0,this.#q.y,this.#_.y),q=Math.max(1,this.#q.y,this.#_.y),Q=q-_||1,Z=Math.min(this.#H,Math.max(0,(this.#O-1)/2));return{minVal:_,maxVal:q,range:Q,pad:Z,draw:Math.max(1,this.#O-Z*2)}}#d(_,q){let{maxVal:Q,range:Z,pad:$,draw:J}=this.#c();return{x:_*this.#Y,y:$+(Q-q)/Z*J}}#n(_,q){let{maxVal:Q,range:Z,pad:$,draw:J}=this.#c();return{x:_/this.#Y,y:Q-(q-$)/J*Z}}#e={minVal:0,maxVal:1.2,totalTime:1};#r(_,q){let Z=this.#O-40,{minVal:$,maxVal:J}=this.#e,j=J-$||1;return{x:_*this.#Y,y:20+(1-(q-$)/j)*Z}}#o(){if(this.#p(),this.#Z==="spring")this.#j0();else this.#$0()}#Z0(){this.#N?.classList.toggle("is-active",this.#Z==="bezier"&&this.#J===1),this.#U?.classList.toggle("is-active",this.#Z==="bezier"&&this.#J===2)}#$0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#Y),this.#F.setAttribute("height",this.#O);let _=this.#d(0,0),q=this.#d(this.#q.x,this.#q.y),Q=this.#d(this.#_.x,this.#_.y),Z=this.#d(1,1);for(let[J,j]of[[this.#P,Z.y],[this.#k,_.y]]){if(!J)continue;J.setAttribute("x1","0"),J.setAttribute("y1",j),J.setAttribute("x2",this.#Y),J.setAttribute("y2",j)}this.#j.setAttribute("d",`M${_.x},${_.y} C${q.x},${q.y} ${Q.x},${Q.y} ${Z.x},${Z.y}`),this.#N.setAttribute("x1",_.x),this.#N.setAttribute("y1",_.y),this.#N.setAttribute("x2",q.x),this.#N.setAttribute("y2",q.y),this.#U.setAttribute("x1",Z.x),this.#U.setAttribute("y1",Z.y),this.#U.setAttribute("x2",Q.x),this.#U.setAttribute("y2",Q.y);let $=this.#H;this.#L.setAttribute("x",q.x-$),this.#L.setAttribute("y",q.y-$),this.#G.setAttribute("x",Q.x-$),this.#G.setAttribute("y",Q.y-$),this.#J0()}#J0(){if(!this.#W||!this.#L||!this.#G)return;let _=this.#q.y>=this.#_.y?[this.#L,this.#G]:[this.#G,this.#L];for(let q of _)this.#W.append(q)}#j0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#Y),this.#F.setAttribute("height",this.#O);let _=this.#S();if(!_.length)return;let q=_[_.length-1].t||1,Q=0,Z=1;for(let O of _){if(O.value<Q)Q=O.value;if(O.value>Z)Z=O.value}let $=Math.max(Math.abs(Q-1),Math.abs(Z-1),0.01),J=0;this.#e={minVal:1-$-J,maxVal:1+$+J,totalTime:q};let j=Math.max(0.05,Math.min(0.95,this.#B)),N="";for(let O=0;O<_.length;O++){let D=_[O].t/q*j,H=this.#r(D,_[O].value);N+=(O===0?"M":"L")+H.x.toFixed(1)+","+H.y.toFixed(1)}let W=this.#r(j,1),G=this.#r(1,1);if(N+=`L${W.x.toFixed(1)},${W.y.toFixed(1)} L${G.x.toFixed(1)},${G.y.toFixed(1)}`,this.#j.setAttribute("d",N),this.#A){let O=this.#r(0,1),D=this.#r(1,1);this.#A.setAttribute("x1",O.x),this.#A.setAttribute("y1",O.y),this.#A.setAttribute("x2",D.x),this.#A.setAttribute("y2",D.y)}let K=this.#Q0(_),U=K.t/q*j,L=this.#r(U,K.value),A=this.#H;this.#L.setAttribute("x",L.x-A),this.#L.setAttribute("y",L.y-A);let Y=this.#r(j,1);this.#G.setAttribute("x",Y.x-this.#M/2),this.#G.setAttribute("y",Y.y-this.#D/2)}#Q0(_){let q={t:0,value:1},Q=!1;for(let Z of _){if(Z.value>=0.99)Q=!0;if(Q&&Z.value>q.value)q={t:Z.t,value:Z.value}}return q}#l(){if(!this.#K)return;this.#K.value=this.#X,this.#Y0()}#q0(){if(!this.#R)return;this.#R.setAttribute("value",this.value)}#X0(_){let q=_.split(",").map((Q)=>Number.parseFloat(Q.trim()));if(q.length!==4||q.some((Q)=>!Number.isFinite(Q)))return null;if(q[0]<0||q[0]>1||q[2]<0||q[2]>1)return null;return q}#K0(_,q){let Q=this.#X0(_);if(!Q){if(q==="change")this.#q0();return}let Z=this.#Z;if(this.#Z="bezier",this.#q.x=Q[0],this.#q.y=Q[1],this.#_.x=Q[2],this.#_.y=Q[3],this.#X=this.#T(),Z!==this.#Z)this.#x();else if(this.#o(),this.#l(),q==="change")this.#q0();this.#_0(q)}#U0(_,q){if(!this.#K)return;for(let Q of this.#K.querySelectorAll("fig-select-option"))if(Q.value===_){let Z=Q.querySelector(':scope > [slot="prepend"]');if(Z)Z.replaceChildren(q.cloneNode(!0))}}#Y0(){if(!this.#K)return;if(!this.#v())return;let _=w.#g(this.#q.x,this.#q.y,this.#_.x,this.#_.y),q=w.#f(this.#Q);this.#U0("Custom bezier",_),this.#U0("Custom spring",q)}#L0(_){this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0(_)}#B0(_,q){let Q=_.shiftKey?0.1:0.01,Z=q===1?this.#q:this.#_;switch(_.key){case"ArrowLeft":Z.x-=Q;break;case"ArrowRight":Z.x+=Q;break;case"ArrowUp":Z.y+=Q;break;case"ArrowDown":Z.y-=Q;break;case"Home":Z.x=0,Z.y=0;break;case"End":Z.x=1,Z.y=1;break;default:return!1}return Z.x=Math.max(0,Math.min(1,Math.round(Z.x*100)/100)),Z.y=Math.round(Z.y*100)/100,this.#L0("input"),this.#_0("change"),!0}#O0(_,q){let Q=_.shiftKey?10:1;if(q==="bounce")switch(_.key){case"ArrowUp":this.#Q.damping=Math.max(1,Math.round(this.#Q.damping-Q));break;case"ArrowDown":this.#Q.damping=Math.max(1,Math.round(this.#Q.damping+Q));break;case"Home":this.#Q.damping=1;break;case"End":this.#Q.damping=50;break;default:return!1}else{let Z=Q*2;switch(_.key){case"ArrowLeft":this.#B=Math.max(0.05,this.#B-Z/200),this.#Q.stiffness=Math.max(10,Math.round(this.#Q.stiffness+Z*1.5));break;case"ArrowRight":this.#B=Math.min(0.95,this.#B+Z/200),this.#Q.stiffness=Math.max(10,Math.round(this.#Q.stiffness-Z*1.5));break;case"Home":this.#B=0.05;break;case"End":this.#B=0.95;break;default:return!1}}return this.#L0("input"),this.#_0("change"),!0}#N0(_,q){let Q=_?.querySelector("fig-handle");if(!Q)return;Q.addEventListener("pointerdown",(Z)=>{if(Z.preventDefault(),Z.stopImmediatePropagation(),this.#Z==="bezier")this.#W0(Z,Number(q));else this.#G0(Z,q)},{capture:!0}),Q.addEventListener("keydown",(Z)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(Z.key))return;if(!(this.#Z==="bezier"?this.#B0(Z,Number(q)):this.#O0(Z,q)))return;Z.preventDefault(),Z.stopImmediatePropagation()},{capture:!0})}#_0(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{mode:this.#Z,value:this.value,cssValue:this.cssValue,preset:this.#X}}))}#A0(){if(this.#W&&this.#Z==="bezier"){this.#N0(this.#L,"1"),this.#N0(this.#G,"2"),this.#L.addEventListener("pointerdown",(q)=>this.#W0(q,1)),this.#G.addEventListener("pointerdown",(q)=>this.#W0(q,2));let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(q)=>{if(q.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#W0(q,this.#M0(q))})}else if(this.#W){this.#N0(this.#L,"bounce"),this.#N0(this.#G,"duration"),this.#L.addEventListener("pointerdown",(q)=>{q.stopPropagation(),this.#G0(q,"bounce")}),this.#G.addEventListener("pointerdown",(q)=>{q.stopPropagation(),this.#G0(q,"duration")});let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(q)=>{if(q.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#G0(q,"duration")})}if(this.#K)this.#K.addEventListener("change",(_)=>{let q=_.detail,Q=w.PRESETS.find((Z)=>Z.name===q);if(!Q)return;if(Q.type==="bezier"){if(Q.value)this.#q.x=Q.value[0],this.#q.y=Q.value[1],this.#_.x=Q.value[2],this.#_.y=Q.value[3];if(this.#X=q,this.#Z!=="bezier")this.#Z="bezier",this.#x();else if(this.#W)this.#o(),this.#q0()}else if(Q.type==="spring"){if(Q.spring)this.#Q={...Q.spring};if(this.#X=q,this.#Z!=="spring")this.#Z="spring",this.#x();else if(this.#W)this.#o(),this.#q0()}this.#_0("input"),this.#_0("change")});if(this.#R)this.#R.addEventListener("input",(_)=>{_.stopPropagation();let q=_.detail??_.target?.value;if(typeof q!=="string")return;this.#K0(q,"input")}),this.#R.addEventListener("change",(_)=>{_.stopPropagation();let q=_.detail??_.target?.value;if(typeof q!=="string")return;this.#K0(q,"change")})}#R0(_){let q=this.#W.getScreenCTM();if(!q)return{x:0,y:0};let Q=q.inverse();return{x:Q.a*_.clientX+Q.c*_.clientY+Q.e,y:Q.b*_.clientX+Q.d*_.clientY+Q.f}}#M0(_){return this.#R0(_).x<=this.#Y/2?1:2}#W0(_,q){_.preventDefault(),this.#J=q,this.#Z0();let Q=this.#W.getBoundingClientRect(),Z=_.clientX,$=_.clientY,J=_.target?.closest?.(".fig-easing-curve-handle, fig-handle"),j=q===1?this.#q:this.#_,N=this.#R0(_),W=J?{...j}:this.#n(N.x,N.y),{range:G,draw:K}=this.#c(),U=G/Math.max(1,K/this.#O*Math.max(1,Q.height)),L=(Y)=>{if(!this.#J)return;let O={x:W.x+(Y.clientX-Z)/Math.max(1,Q.width),y:W.y-(Y.clientY-$)*U};if(O.x=Math.round(O.x*100)/100,O.y=Math.round(O.y*100)/100,O.x=Math.max(0,Math.min(1,O.x)),this.#J===1)this.#q.x=O.x,this.#q.y=O.y;else this.#_.x=O.x,this.#_.y=O.y;this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0("input")},A=()=>{this.#J=null,this.#Z0(),document.removeEventListener("pointermove",L),document.removeEventListener("pointerup",A),this.#_0("change")};document.addEventListener("pointermove",L),document.addEventListener("pointerup",A)}#G0(_,q){_.preventDefault(),this.#J=q,this.classList.toggle("spring-bounce-dragging",q==="bounce");let Q=this.#Q.damping,Z=this.#Q.stiffness,$=this.#B,J=_.clientY,j=_.clientX,N=(G)=>{if(!this.#J)return;if(q==="bounce"){let K=G.clientY-J;this.#Q.damping=Math.max(1,Math.round(Q+K*0.15))}else{let K=G.clientX-j;this.#B=Math.max(0.05,Math.min(0.95,$+K/200)),this.#Q.stiffness=Math.max(10,Math.round(Z-K*1.5))}this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0("input")},W=()=>{this.#J=null,this.classList.remove("spring-bounce-dragging"),document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",W),this.#_0("change")};document.addEventListener("pointermove",N),document.addEventListener("pointerup",W)}}M("fig-easing-curve",w);class B_ extends HTMLElement{#q=0;#_=0;#Q=0;#Z=1;#$=!1;#J=!1;#W=null;#j=null;#N=null;#U=null;#L=(_)=>this.#f(_);#G=null;#K=[];#R={};#X={};static get observedAttributes(){return["value","precision","aspect-ratio","fields","perspective","perspective-origin","transform-origin","selected","drag"]}connectedCallback(){this.#Z=parseInt(this.getAttribute("precision")||"1"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),g(this,"--perspective",this.getAttribute("perspective")),g(this,"--perspective-origin",this.getAttribute("perspective-origin")),this.#Y(this.getAttribute("transform-origin")),this.#P(this.getAttribute("fields"));let _=this.getAttribute("value");if(_)this.#k(_);if(this.querySelector(".fig-3d-rotate-container"))this.#A();else this.#z();this.#F(this.getAttribute("selected")),this.#O()}disconnectedCallback(){this.#$=!1,this.#B()}#A(){this.#j=this.querySelector(".fig-3d-rotate-container"),this.#W=this.querySelector(".fig-3d-rotate-cube"),this.#H(),this.#D(),this.#T()}#B(){if(this.#G?.abort(),this.#G=null,this.#N)window.removeEventListener("keydown",this.#N),window.removeEventListener("keyup",this.#U),this.#N=null,this.#U=null}#Y(_){if(!_||!_.trim()){this.style.removeProperty("--transform-origin");return}let q=_.trim().split(/\s+/);if(q.length===2)this.style.setProperty("--transform-origin",`${q[0]} ${q[1]} -50cqi`);else this.style.setProperty("--transform-origin",_.trim())}#O(){if(!this.#j)return;this.#j.style.cursor=this.#S?"":"default"}#F(_){if(!this.#W)return;let q=this.#W.querySelectorAll(".fig-3d-rotate-face"),Q=_?_.trim().toLowerCase():"";for(let Z of q)Z.classList.toggle("selected",Q!==""&&Z.classList.contains(Q))}#P(_){if(!_||!_.trim()){this.#K=[];return}let q=["rotateX","rotateY","rotateZ"];this.#K=_.split(",").map((Q)=>Q.trim()).filter((Q)=>q.includes(Q))}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="perspective"){g(this,"--perspective",Q);return}if(_==="perspective-origin"){g(this,"--perspective-origin",Q);return}if(_==="transform-origin"){this.#Y(Q);return}if(_==="selected"){this.#F(Q);return}if(_==="drag"){this.#O();return}if(_==="fields"){if(this.#P(Q),this.#W)this.#z();return}if(!this.#W)return;if(_==="value"&&Q){if(this.#$)return;this.#k(Q),this.#D(),this.#M()}if(_==="precision")this.#Z=parseInt(Q||"1")}get value(){let _=this.#Z;return`rotateX(${this.#q.toFixed(_)}deg) rotateY(${this.#_.toFixed(_)}deg) rotateZ(${this.#Q.toFixed(_)}deg)`}set value(_){this.setAttribute("value",_)}get rotateX(){return this.#q}get rotateY(){return this.#_}get rotateZ(){return this.#Q}#k(_){let q=_.match(/rotateX\(\s*(-?[\d.]+)\s*deg\s*\)/),Q=_.match(/rotateY\(\s*(-?[\d.]+)\s*deg\s*\)/),Z=_.match(/rotateZ\(\s*(-?[\d.]+)\s*deg\s*\)/);if(q)this.#q=parseFloat(q[1]);if(Q)this.#_=parseFloat(Q[1]);if(Z)this.#Q=parseFloat(Z[1])}#z(){let _={rotateX:"X",rotateY:"Y",rotateZ:"Z"},q={rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q},Q=X("div",{className:"fig-3d-rotate-cube"},["front","back","right","left","top","bottom"].map((J)=>X("div",{className:`fig-3d-rotate-face ${J}`}))),Z=X("div",{className:"fig-3d-rotate-container",tabindex:"0"},X("div",{className:"fig-3d-rotate-scene"},Q)),$=this.#K.map((J)=>X("fig-input-number",{name:J,step:"1",precision:"1",value:q[J],units:"°"},X("span",{slot:"prepend"},_[J])));this.replaceChildren(Z,...$),this.#j=Z,this.#W=Q,this.#H(),this.#D(),this.#T()}#H(){this.#R={};for(let _ of this.#K){let q=this.querySelector(`fig-input-number[name="${_}"]`);if(!q)continue;if(this.#R[_]=q,!this.#X[_])this.#X[_]=(Z)=>{Z.stopPropagation();let $=parseFloat(Z.target.value);if(isNaN($))return;if(_==="rotateX")this.#q=$;else if(_==="rotateY")this.#_=$;else if(_==="rotateZ")this.#Q=$;this.#D(),this.#C(Z.type)};let Q=this.#X[_];q.removeEventListener("input",Q),q.removeEventListener("change",Q),q.addEventListener("input",Q),q.addEventListener("change",Q)}}#M(){let _={rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q};for(let q of this.#K){let Q=this.#R[q];if(Q)Q.setAttribute("value",_[q].toFixed(this.#Z))}}#D(){if(!this.#W)return;this.#W.style.transform=`rotateX(${this.#q}deg) rotateY(${this.#_}deg) rotateZ(${this.#Q}deg)`}#C(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q}}))}#I(_){if(!this.#J)return _;return Math.round(_/15)*15}#T(){if(this.#B(),!this.#j)return;this.#G=new AbortController,this.#j.addEventListener("pointerdown",this.#L,{signal:this.#G.signal}),this.#N=(_)=>{if(_.key==="Shift")this.#J=!0},this.#U=(_)=>{if(_.key==="Shift")this.#J=!1},window.addEventListener("keydown",this.#N),window.addEventListener("keyup",this.#U)}get#S(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}#f(_){if(!this.#S)return;_.preventDefault(),this.#$=!0,this.#j.classList.add("dragging"),this.#j.setPointerCapture(_.pointerId);let{clientX:q,clientY:Q}=_,Z=this.#q,$=this.#_,J=(N)=>{if(!this.#$)return;if(N.buttons===0){j();return}let W=N.clientX-q,G=N.clientY-Q;this.#_=this.#I($+W*0.5),this.#q=this.#I(Z-G*0.5),this.#D(),this.#M(),this.setAttribute("value",this.value),this.#C("input")},j=()=>{if(!this.#$)return;this.setAttribute("value",this.value),this.#$=!1,this.#j.classList.remove("dragging"),this.#j.removeEventListener("pointermove",J),this.#j.removeEventListener("pointerup",j),this.#j.removeEventListener("pointercancel",j),this.#j.removeEventListener("lostpointercapture",j),this.#C("change")};this.#j.addEventListener("pointermove",J),this.#j.addEventListener("pointerup",j),this.#j.addEventListener("pointercancel",j),this.#j.addEventListener("lostpointercapture",j)}}M("fig-3d-rotate",B_);class A0 extends HTMLElement{#q=50;#_=50;#Q=0;#Z=null;#$=[];#J=null;#W=null;#j=null;#N=!1;#U=!1;#L=null;#G=null;#K=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"]}#R(){this.#Z=this.querySelector(".origin-grid"),this.#$=Array.from(this.querySelectorAll(".origin-grid-cell")),this.#J=this.querySelector("fig-handle"),this.#W=this.querySelector('fig-input-number[name="x"]'),this.#j=this.querySelector('fig-input-number[name="y"]'),this.#D(),this.#C(),this.#z(),this.#m()}connectedCallback(){if(this.#Q=parseInt(this.getAttribute("precision")||"0"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),this.#P(this.getAttribute("value")),this.querySelector(".fig-origin-grid-surface"))this.#R();else this.#k();this.#B(),this.#H()}disconnectedCallback(){this.#N=!1,this.#w(),this.#b()}get value(){let _=this.#Q;return`${this.#q.toFixed(_)}% ${this.#_.toFixed(_)}%`}set value(_){this.setAttribute("value",_)}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="drag"){this.#B();return}if(_==="fields"){this.#k(),this.#B(),this.#H();return}if(_==="precision"){this.#Q=parseInt(Q||"0"),this.#z(),this.#H();return}if(_==="value"){if(this.#U||this.#N)return;this.#P(Q),this.#D(),this.#C(),this.#z()}}get#X(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}get#A(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#B(){if(!this.#Z)return;this.#Z.classList.toggle("drag-disabled",!this.#X)}#Y(_){return Math.max(0,Math.min(100,_))}#O(_,q){let Q=(_||"").trim().toLowerCase();if(!Q)return q==="x"?this.#q:this.#_;let Z=q==="x"?{left:0,center:50,right:100}:{top:0,center:50,bottom:100};if(Q in Z)return Z[Q];let $=Number.parseFloat(Q.replace("%",""));if(Number.isFinite($))return $;return q==="x"?this.#q:this.#_}#F(_){let q=_.trim().replace(/,/g," ").split(/\s+/).filter(Boolean);if(q.length<1)return;if(q.length===1){let Q=this.#O(q[0],"x");this.#q=Q,this.#_=Q;return}this.#q=this.#O(q[0],"x"),this.#_=this.#O(q[1],"y")}#P(_){let q=typeof _==="string"?_.trim():"";if(!q){this.#q=50,this.#_=50;return}this.#F(q)}#k(){let _=Array.from({length:9},(N,W)=>{let G=W%3,K=Math.floor(W/3);return X("span",{className:"origin-grid-cell","data-col":G,"data-row":K},X("span",{className:"origin-grid-dot"}))}),q=this.#q.toFixed(this.#Q),Q=this.#_.toFixed(this.#Q),Z=document.createElement("fig-handle"),$=X("div",{className:"origin-grid","aria-label":"Transform origin grid"},[X("div",{className:"origin-grid-cells"},_),Z]),j=[X("div",{className:"fig-origin-grid-surface"},$)];if(this.#A){let N=(W,G)=>X("fig-input-number",{name:W,value:G,step:"1",units:"%"},X("span",{slot:"prepend"},W.toUpperCase()));j.push(X("div",{className:"origin-values"},[N("x",q),N("y",Q)]))}this.replaceChildren(...j),this.#Z=$,this.#$=_,this.#J=Z,this.#W=this.querySelector('fig-input-number[name="x"]'),this.#j=this.querySelector('fig-input-number[name="y"]'),this.#D(),this.#C(),this.#z(),this.#m()}#z(){let _=this.#q.toFixed(this.#Q),q=this.#_.toFixed(this.#Q);if(this.#W)this.#W.setAttribute("value",_);if(this.#j)this.#j.setAttribute("value",q)}#H(){let _=this.value;if(this.getAttribute("value")===_)return;this.#U=!0,this.setAttribute("value",_),this.#U=!1}#M(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,x:this.#q,y:this.#_}}))}#D(){if(!this.#J)return;let _=(q)=>16.6667+this.#Y(q)/100*66.6667;this.#J.style.left=`${_(this.#q)}%`,this.#J.style.top=`${_(this.#_)}%`}#C(){if(!this.#J)return;let _=this.#q<0||this.#q>100,q=this.#_<0||this.#_>100,Q=this.#q<0,Z=this.#q>100,$=this.#_<0,J=this.#_>100;this.#J.classList.toggle("beyond-bounds-x",_),this.#J.classList.toggle("beyond-bounds-y",q),this.#J.classList.toggle("overflow-left",Q),this.#J.classList.toggle("overflow-right",Z),this.#J.classList.toggle("overflow-up",$),this.#J.classList.toggle("overflow-down",J)}#I(_,q){if(!this.#Z)return null;let Q=this.#Z.getBoundingClientRect(),Z=(_-Q.left)/Math.max(Q.width,1),$=(q-Q.top)/Math.max(Q.height,1);if(Z<0||Z>1||$<0||$>1)return null;let J=Math.max(0,Math.min(2,Math.floor(Z*3))),j=Math.max(0,Math.min(2,Math.floor($*3)));return this.#$.find((N)=>Number(N.getAttribute("data-col"))===J&&Number(N.getAttribute("data-row"))===j)}#T(){for(let _ of this.#$)_.classList.remove("is-hovered")}#S(_){if(this.#T(),_)_.classList.add("is-hovered")}#f(_,q,Q){let Z=Number(_),$=Number(q);if(!Number.isFinite(Z)||!Number.isFinite($))return;if(Z===this.#q&&$===this.#_&&Q==="input")return;this.#q=Z,this.#_=$,this.#D(),this.#C(),this.#z(),this.#H(),this.#M(Q)}#E(_,q){if(!this.#Z)return{x:this.#q,y:this.#_};let Q=this.#Z.getBoundingClientRect(),Z=Q.width/6,$=Q.height/6,J=Math.max(1,Q.width-Z*2),j=Math.max(1,Q.height-$*2),N=(_-(Q.left+Z))/J,W=(q-(Q.top+$))/j;return{x:N*100,y:W*100}}#y(_,q){if(!this.#Z)return{x:50,y:50};let Q=this.#Z.getBoundingClientRect(),Z=(_-Q.left)/Math.max(Q.width,1)*3,$=(q-Q.top)/Math.max(Q.height,1)*3,J=Math.max(0,Math.min(2,Math.floor(Z))),j=Math.max(0,Math.min(2,Math.floor($)));return{x:J*50,y:j*50}}#g(_){let Q=_,Z=1/0;for(let $ of A0.SNAP_POINTS){let J=Math.abs(_-$);if(J<Z)Z=J,Q=$}return Z<=2.5?Q:_}#v(_,q){if(!q)return _;return{x:this.#g(_.x),y:this.#g(_.y)}}#x(_){if(!this.#X)return!1;let q=_.shiftKey?10:1,Q=this.#q,Z=this.#_;switch(_.key){case"ArrowLeft":Q-=q;break;case"ArrowRight":Q+=q;break;case"ArrowUp":Z-=q;break;case"ArrowDown":Z+=q;break;case"Home":Q=0,Z=0;break;case"End":Q=100,Z=100;break;default:return!1}return this.#f(this.#Y(Q),this.#Y(Z),"input"),this.#M("change"),!0}#w(){if(!this.#Z||!this.#G||!this.#K)return;this.#Z.removeEventListener("pointermove",this.#G),this.#Z.removeEventListener("pointerup",this.#K),this.#Z.removeEventListener("pointercancel",this.#K),this.#Z.removeEventListener("lostpointercapture",this.#K),this.#G=null,this.#K=null}#h(_){if(!this.#Z||!this.#X)return;_.preventDefault(),this.#N=!0,this.#L=_.pointerId;let{clientX:q,clientY:Q}=_,Z=3,$=!1;this.#Z.setPointerCapture(_.pointerId),this.#G=(J)=>{if(!this.#N||J.pointerId!==this.#L)return;let j=J.clientX-q,N=J.clientY-Q,W=Math.hypot(j,N);if(!$&&W<Z)return;if(!$)$=!0,this.#Z.classList.add("is-dragging"),this.#T();let G=this.#v(this.#E(J.clientX,J.clientY),J.shiftKey);this.#f(G.x,G.y,"input")},this.#K=(J)=>{if(!this.#N||J.pointerId!==this.#L)return;if(this.#N=!1,this.#L=null,this.#Z.classList.remove("is-dragging"),this.#T(),this.#w(),!$){let j=this.#y(q,Q);this.#f(j.x,j.y,"input")}this.#M("change")},this.#Z.addEventListener("pointermove",this.#G),this.#Z.addEventListener("pointerup",this.#K),this.#Z.addEventListener("pointercancel",this.#K),this.#Z.addEventListener("lostpointercapture",this.#K)}#V=null;#b(){this.#V?.abort(),this.#V=null}#m(){if(this.#b(),!this.#Z||!this.#J)return;this.#V=new AbortController;let{signal:_}=this.#V;this.#Z.addEventListener("pointerdown",(Q)=>{let Z=this.#I(Q.clientX,Q.clientY);if(this.#S(Z),this.#X){this.#h(Q);return}let $=this.#y(Q.clientX,Q.clientY);this.#f($.x,$.y,"input"),this.#M("change")},{signal:_}),this.#Z.addEventListener("pointermove",(Q)=>{if(this.#N)return;let Z=this.#I(Q.clientX,Q.clientY);this.#S(Z)},{signal:_}),this.#Z.addEventListener("pointerleave",()=>{this.#T()},{signal:_}),this.#J.addEventListener("keydown",(Q)=>{if(!this.#x(Q))return;Q.preventDefault(),Q.stopPropagation()},{signal:_});let q=(Q,Z)=>{if(!Q)return;let $=(J)=>{let j=Number.parseFloat(J.target.value);if(!Number.isFinite(j))return;if(Z==="x")this.#f(j,this.#_,"input");else this.#f(this.#q,j,"input")};Q.addEventListener("input",$,{signal:_}),Q.addEventListener("change",$,{signal:_}),Q.addEventListener("focusout",()=>{this.#M("change")},{signal:_})};q(this.#W,"x"),q(this.#j,"y")}}M("fig-origin-grid",A0);class O_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=null;#N=!1;#U={x:0.5,y:0.5};#L=!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.#q=(_)=>this.#z(_),this.#_=()=>{this.isDragging=!0,this.plane?.classList.add("dragging")},this.#Q=(_)=>this.#H(_),this.#Z=()=>this.#M(),this.#$=(_)=>this.#O(_),this.#J=(_)=>this.#F(_),this.#W=()=>this.#P(),this.#j=()=>this.#P()}#G(){this.#B(),this.#I(),this.#S(),this.#f(),this.#L=!0}connectedCallback(){c(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",g(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.#X(),this.#B(),this.#I(),this.#S(),this.#f(),this.#L=!0})}#K(_){return this.coordinates==="math"?1-_:_}disconnectedCallback(){this.#Y()}get#R(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#X(){let _=this.#A(),q=X("div",{className:"fig-input-joystick-plane-container"}),Q=(j,N,W=!1)=>N?X("label",{className:["fig-joystick-axis-label",j,W?"no-rotate":""].filter(Boolean).join(" "),"aria-hidden":"true"},N):null;q.append(...[Q("left",_.left,_.leftNoRotate),Q("right",_.right),Q("top",_.top),Q("bottom",_.bottom)].filter(Boolean));let Z=X("div",{className:"fig-input-joystick-plane"},[X("div",{className:"fig-input-joystick-guides"}),X("fig-handle",{drag:!0,"drag-surface":".fig-input-joystick-plane","drag-axes":"x,y","drag-snapping":"modifier"})]),$=X("fig-tooltip",{text:"Reset"},X("fig-button",{variant:"ghost",icon:"true",className:"fig-joystick-reset","aria-label":"Reset to default"},b("reset",{size:"small"})));q.append(Z,$);let J=[q];if(this.#R){let j=(N,W)=>X("fig-input-number",{name:N,step:"1",value:W,min:"0",max:"100",units:"%"},X("span",{slot:"prepend"},N.toUpperCase()));J.push(X("div",{className:"joystick-values"},[j("x",(this.position.x*100).toFixed(this.precision)),j("y",(this.position.y*100).toFixed(this.precision))]))}this.replaceChildren(...J)}#A(){let _=(this.getAttribute("axis-labels")||"").trim();if(!_)return{left:"",right:"",top:"",bottom:"",leftNoRotate:!1};let q=_.split(/[\s,]+/).filter(Boolean);if(q.length===1)return{left:"",right:"",top:q[0],bottom:"",leftNoRotate:!1};if(q.length===2){let[Q,Z]=q;return{left:Q,right:"",top:"",bottom:Z,leftNoRotate:!0}}if(q.length===4){let[Q,Z,$,J]=q;return{left:Q,right:Z,top:$,bottom:J,leftNoRotate:!1}}return{left:"",right:"",top:"",bottom:"",leftNoRotate:!1}}#B(){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.#q),this.cursor?.addEventListener("pointerdown",this.#_),this.cursor?.addEventListener("input",this.#Q),this.cursor?.addEventListener("change",this.#Z);let _=this.querySelector(".fig-joystick-reset");if(_)_.addEventListener("click",()=>this.#E());if(this.#R&&this.xInput&&this.yInput)this.xInput.addEventListener("input",this.#$),this.xInput.addEventListener("change",this.#$),this.xInput.addEventListener("focusout",this.#W),this.yInput.addEventListener("input",this.#J),this.yInput.addEventListener("change",this.#J),this.yInput.addEventListener("focusout",this.#j)}#Y(){if(this.plane?.removeEventListener("pointerdown",this.#q),this.cursor?.removeEventListener("pointerdown",this.#_),this.cursor?.removeEventListener("input",this.#Q),this.cursor?.removeEventListener("change",this.#Z),this.plane?.classList.remove("dragging"),this.isDragging=!1,this.#R&&this.xInput&&this.yInput)this.xInput.removeEventListener("input",this.#$),this.xInput.removeEventListener("change",this.#$),this.xInput.removeEventListener("focusout",this.#W),this.yInput.removeEventListener("input",this.#J),this.yInput.removeEventListener("change",this.#J),this.yInput.removeEventListener("focusout",this.#j)}#O(_){let q=Number.parseFloat(_.target.value);if(!Number.isFinite(q))return;this.position.x=Math.max(0,Math.min(1,q/100)),this.#I(),this.#S(),this.#D()}#F(_){let q=Number.parseFloat(_.target.value);if(!Number.isFinite(q))return;this.position.y=Math.max(0,Math.min(1,q/100)),this.#I(),this.#S(),this.#D()}#P(){this.#S(),this.#C()}#k(_,q,{syncHandle:Q=!0}={}){let Z=Math.max(0,Math.min(1,_)),$=Math.max(0,Math.min(1,q)),J=this.coordinates==="math"?1-$:$;if(this.position={x:Z,y:J},Q)this.#I();this.#T(),this.#S()}#z(_){if(!this.plane||!this.cursor)return;if(_.target?.closest?.(".fig-joystick-reset, fig-tooltip, fig-handle"))return;let q=this.plane.getBoundingClientRect(),Q=q.width>0?(_.clientX-q.left)/q.width:0.5,Z=q.height>0?(_.clientY-q.top)/q.height:0.5;this.cursor.value=`${Math.round(Q*100)}% ${Math.round(Z*100)}%`,this.#k(Q,Z,{syncHandle:!1}),this.#D(),this.#C()}#H(_){let q=_.detail??{};if(typeof q.px!=="number"||typeof q.py!=="number")return;this.#k(q.px,q.py,{syncHandle:!1}),this.#D()}#M(){this.isDragging=!1,this.plane?.classList.remove("dragging"),this.#S(),this.#C()}#D(){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}}))}#I(){let _=this.#K(this.position.y);if(this.cursor)this.cursor.value=`${this.position.x*100}% ${_*100}%`;this.#T()}#T(){if(this.#R&&this.xInput&&this.yInput)this.xInput.setAttribute("value",Math.round(this.position.x*100)),this.yInput.setAttribute("value",Math.round(this.position.y*100))}#S(){let _=this.value;if(this.getAttribute("value")!==_)this.#N=!0,this.setAttribute("value",_),this.#N=!1;this.#f()}#f(){let _=this.#U,q=Math.round(this.position.x*100)===Math.round(_.x*100)&&Math.round(this.position.y*100)===Math.round(_.y*100);this.toggleAttribute("default",q),this.style.setProperty("--is-not-default",q?"0":"1")}#E(){this.position={...this.#U},this.#I(),this.#S(),this.#D(),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 q=_==null?"":String(_).trim();if(!q)this.position={x:0.5,y:0.5};else{let Q=q.split(/[\s,]+/).filter(Boolean),Z=(j)=>{if(!j)return 0.5;let N=j.includes("%"),W=Number.parseFloat(j.replace(/%/g,"").trim());if(!Number.isFinite(W))return 0.5;let G=N||Math.abs(W)>1?W/100:W;return Math.max(0,Math.min(1,G))},$=Z(Q[0]),J=Z(Q[1]??Q[0]);this.position={x:$,y:J}}if(this.#L)this.#I(),this.#f()}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="value"){if(this.#N||this.isDragging)return;this.value=Q}if(_==="precision")this.precision=parseInt(Q);if(_==="transform")this.transform=Number(Q);if(_==="fields"&&Q!==q)this.#Y(),this.#X(),this.#B(),this.#I();if(_==="axis-labels"&&Q!==q)this.#Y(),this.#X(),this.#B(),this.#I();if(_==="coordinates")this.coordinates=Q||"screen",this.#I()}}M("fig-joystick",O_);class M0 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.#q()}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(_,q,Q){if(_==="duration")this.style.setProperty(this.durationPropertyName,Q||"1.5s");if(_==="playing"||_==="aria-label"||_==="aria-labelledby")this.#q()}#q(){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")}}M("fig-shimmer",M0);class A_ extends M0{connectedCallback(){super.connectedCallback(),this.inert=!0,this.setAttribute("inert","")}}M("fig-skeleton",A_);class M_ extends HTMLElement{static observedAttributes=["name","collapsible","open"];#q=null;#_=null;connectedCallback(){this.#$()}disconnectedCallback(){if(this.#_)this.#_.removeEventListener("click",this.#Q);if(this.#q)this.#q.removeEventListener("click",this.#Q),this.#q.removeEventListener("keydown",this.#Z),this.#q.querySelector("h3")?.removeEventListener("click",this.#Q)}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="open"){this.#q?.setAttribute("aria-expanded",String(this.open));return}this.#$()}get open(){let _=this.getAttribute("open");return _!==null&&_!=="false"}set open(_){let q=this.open;if(_)this.setAttribute("open","true");else this.setAttribute("open","false");if(this.#q?.setAttribute("aria-expanded",String(!!_)),q!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}#Q=(_)=>{_.stopPropagation(),this.open=!this.open};#Z=(_)=>{if(_.key!=="Enter"&&_.key!==" ")return;_.preventDefault(),_.stopPropagation(),this.open=!this.open};#$(){let _=this.hasAttribute("collapsible"),Q=this.getAttribute("name")||(_?"Group":null),Z=this.querySelector(":scope > fig-header");if(!Q&&!_&&!Z){if(this.#q&&this.#q.dataset.generated)this.#q.remove(),this.#q=null,this.#_=null;return}if(Z)this.#q=Z;else if(!this.#q||!this.#q.dataset.generated)this.#q=document.createElement("fig-header"),this.#q.setAttribute("borderless",""),this.#q.dataset.generated="true",this.prepend(this.#q);let $=this.#q.querySelector("h3");if(!$)$=document.createElement("h3"),this.#q.prepend($);if(!$.id)$.id=m();if(this.#q.dataset.generated)$.textContent=Q;if(!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-labelledby",$.id);if(_){if(!$.querySelector(".fig-group-chevron")){let J=b("chevron",{size:"small",className:"fig-group-chevron"});$.prepend(J)}if(this.#_=$.querySelector(".fig-group-chevron"),$.removeEventListener("click",this.#Q),this.#q.removeEventListener("click",this.#Q),this.#q.addEventListener("click",this.#Q),this.#q.setAttribute("role","button"),this.#q.setAttribute("tabindex","0"),this.#q.setAttribute("aria-expanded",String(this.open)),this.#q.removeEventListener("keydown",this.#Z),this.#q.addEventListener("keydown",this.#Z),!this.hasAttribute("open"))this.setAttribute("open","false"),this.#q.setAttribute("aria-expanded","false")}else{if($.removeEventListener("click",this.#Q),this.#q.removeEventListener("click",this.#Q),this.#q.removeAttribute("role"),this.#q.removeAttribute("tabindex"),this.#q.removeAttribute("aria-expanded"),this.#q.removeEventListener("keydown",this.#Z),this.#_)this.#_.remove(),this.#_=null;this.removeAttribute("open")}}}M("fig-group",M_);class z_ extends HTMLElement{}M("fig-header",z_);class F_ extends HTMLElement{}M("fig-footer",F_);class H_ 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")}}M("fig-spinner",H_);class T_ extends HTMLElement{static get observedAttributes(){return["fit","aspect-ratio"]}connectedCallback(){this.#q(),this.#_()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="fit")this.#q();if(_==="aspect-ratio")this.#_()}#q(){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")}}M("fig-preview",T_);var e_={chevron:{medium:"--icon-24-chevron",small:"--icon-16-chevron"},checkmark:"--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"}};function _q(_,q="medium"){let Q=_&&e_[_];if(!Q)return"";let Z=typeof Q==="string"?Q:Q[q==="small"?"small":"medium"];return Z?`var(${Z})`:""}class k_ extends HTMLElement{static get observedAttributes(){return["name","size","color"]}connectedCallback(){this.#q()}attributeChangedCallback(_,q,Q){if(q!==Q)this.#q()}#q(){let _=this.getAttribute("name"),q=this.getAttribute("size")||"medium",Q=_q(_,q);if(Q)this.style.setProperty("--icon",Q);else this.style.removeProperty("--icon");if(q==="small")this.style.setProperty("--size","var(--spacer-3)");else this.style.removeProperty("--size");let Z=this.getAttribute("color");if(Z)this.style.backgroundColor=Z;else this.style.removeProperty("background-color");if(!this.hasAttribute("aria-hidden"))this.setAttribute("aria-hidden","true")}}M("fig-icon",k_);class D_ extends HTMLElement{}M("fig-content",D_);class P_ extends HTMLElement{}M("fig-tab-content",P_);class S_ extends HTMLElement{}M("fig-button-combo",S_);class f_ extends HTMLElement{}M("fig-input-combo",f_);class I_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=this.#Y.bind(this);#$=this.#O.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.#U(),this.#X()}disconnectedCallback(){this.#W(),this.removeEventListener("click",this.#L)}#W(){if(this.#q)this.#q.removeEventListener("input",this.#Z),this.#q.removeEventListener("change",this.#$);if(this.#_)this.#_.removeEventListener("input",this.#Z),this.#_.removeEventListener("change",this.#$);if(this.#Q)this.#Q.disconnect(),this.#Q=null}#j(){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#N(){let _=this.getAttribute("alpha");return _===null||_!=="false"}#U(){this.#W();let _=this.#J;if(_==="add"||_==="remove"){let N=_==="add"?"add":"minus",W=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");this.replaceChildren(X("fig-button",{icon:!0,variant:"ghost","aria-label":W},b(N))),this.#q=null,this.#_=null,this.addEventListener("click",this.#L),this.#A();return}this.removeEventListener("click",this.#L);let q=(this.getAttribute("value")||"").trim(),Q=this.#R(q),Z=this.#K(q),$=Z<1?JSON.stringify({type:"solid",color:Q,opacity:Math.round(Z*100)}):JSON.stringify({type:"solid",color:Q}),J=X("fig-swatch",{background:Q,alpha:Z<1?Z:null}),j=null;if(o())j=X("fig-fill-picker",{mode:"solid",alpha:this.#N?null:"false",value:$},J),this.replaceChildren(j);else this.replaceChildren(J);if(this.#q=j,this.#_=J,this.#q?.addEventListener("input",this.#Z),this.#q?.addEventListener("change",this.#$),!this.#q)this.#_?.addEventListener("input",this.#Z),this.#_?.addEventListener("change",this.#$);this.#j(),this.#A()}#L=()=>{let _=this.#J;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,composed:!0}))};#G(_){if(!_)return"#D9D9D9";let q=_.replace("#","").trim();if(q.length===3||q.length===4){let[Q,Z,$]=q;return`#${Q}${Q}${Z}${Z}${$}${$}`.toUpperCase()}if(q.length===6||q.length===8)return`#${q.slice(0,6)}`.toUpperCase();return"#D9D9D9"}#K(_){if(!_)return 1;let q=String(_).trim(),Q=q.replace(/^#/,"");if(/^[0-9a-f]{4}$/i.test(Q)){let $=Q[3];return parseInt(`${$}${$}`,16)/255}if(/^[0-9a-f]{8}$/i.test(Q))return parseInt(Q.slice(6,8),16)/255;let Z=q.match(/rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*([\d.]+)\s*\)/i);if(Z)return parseFloat(Z[1]);return 1}#R(_){if(!_)return"#D9D9D9";let q=String(_).trim();if(q.startsWith("{"))try{let Q=JSON.parse(q);if(Q?.color)return this.#R(Q.color)}catch{}if(q.startsWith("#"))return this.#G(q);if(/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(q))return this.#G(q);try{let{ctx:Q}=B0(1,1);Q.fillStyle="#000000",Q.fillStyle=q;let Z=Q.fillStyle;if(Z.startsWith("#"))return this.#G(Z);let $=Z.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if($){let J=(j)=>Math.max(0,Math.min(255,Number(j))).toString(16).padStart(2,"0");return`#${J($[1])}${J($[2])}${J($[3])}`.toUpperCase()}}catch{}return"#D9D9D9"}#X(){let _=this.getAttribute("value"),q=this.#R(_),Q=this.#K(_);if(_!==q&&Q>=1){this.setAttribute("value",q);return}if(this.#q){this.#A();let Z=Q<1?{type:"solid",color:q,opacity:Math.round(Q*100)}:{type:"solid",color:q};if(this.#q.setAttribute("value",JSON.stringify(Z)),this.#N)this.#q.removeAttribute("alpha");else this.#q.setAttribute("alpha","false");if(k(this,"disabled"))this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}if(this.#_){if(this.#A(),this.#_.setAttribute("background",q),Q<1)this.#_.setAttribute("alpha",String(Q));else this.#_.removeAttribute("alpha");if(k(this,"disabled"))this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled")}}#A(){let _=this.#J,q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Q=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(this.setAttribute("aria-disabled",q?"true":"false"),this.setAttribute("aria-pressed",Q?"true":"false"),_==="add"||_==="remove"){let N=this.querySelector("fig-button"),W=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");if(N?.setAttribute("aria-label",W),q)N?.setAttribute("disabled","");else N?.removeAttribute("disabled");return}let Z=this.#q||this.#_;if(!Z)return;let $=this.getAttribute("aria-label")||"Color stop",J=this.getAttribute("aria-labelledby"),j=this.getAttribute("aria-describedby");if(J)Z.setAttribute("aria-labelledby",J),Z.removeAttribute("aria-label");else Z.setAttribute("aria-label",$),Z.removeAttribute("aria-labelledby");if(j)Z.setAttribute("aria-describedby",j);else Z.removeAttribute("aria-describedby")}#B(_,q){let Q=this.#R(_?.color),Z=this.#R(this.getAttribute("value"));if(Q!==Z)this.setAttribute("value",Q);else this.#X();let $={color:this.value};if(this.#N){if(_?.opacity!==void 0)$.opacity=_.opacity;else if(_?.alpha!==void 0)$.opacity=Math.round(_.alpha*100)}Object.assign($,i($.color,this.#N?_?.alpha:1,$.opacity)),this.dispatchEvent(new CustomEvent(q,{bubbles:!0,cancelable:!0,composed:!0,detail:$}))}#Y(_){_.stopPropagation(),this.#B(_.detail||{color:_.target?.value},"input")}#O(_){_.stopPropagation(),this.#B(_.detail||{color:_.target?.value},"change")}attributeChangedCallback(_,q,Q){if(q===Q)return;if(!this.isConnected)return;switch(_){case"control":this.#U();break;case"value":case"selected":case"disabled":case"aria-label":case"aria-labelledby":case"aria-describedby":this.#X(),this.#A();break}}get value(){return this.#R(this.getAttribute("value"))}set value(_){if(_===null||_===void 0||_===""){this.removeAttribute("value");return}this.setAttribute("value",this.#R(_))}get selected(){return k(this,"selected")}set selected(_){this.toggleAttribute("selected",Boolean(_))}get disabled(){return k(this,"disabled")}set disabled(_){this.toggleAttribute("disabled",Boolean(_))}}M("fig-color-tip",I_);class C_ 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",k(this,"selected")?"true":"false"),k(this,"disabled"))this.setAttribute("aria-disabled","true")}attributeChangedCallback(_){if(_==="selected")this.setAttribute("aria-selected",k(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")}}M("fig-choice",C_);class V_ extends HTMLElement{#q=null;#_=this.#F.bind(this);#Q=this.#P.bind(this);#Z=this.#z.bind(this);#$=null;#J=null;#W=null;#j=null;#N=null;#U=!1;constructor(){super()}static get observedAttributes(){return["value","disabled","choice-element","columns","drag","layout","overflow","loop"]}get#L(){return this.getAttribute("overflow")==="scrollbar"?"scrollbar":"buttons"}get#G(){let _=this.getAttribute("drag");return _===null||_!=="false"}get#K(){return this.getAttribute("choice-element")||"fig-choice"}#R(){let _=this.getAttribute("columns"),q=_===null?NaN:Number(_);if(Number.isInteger(q)&&q>0)this.style.setProperty("--fig-chooser-grid-columns",String(q));else this.style.removeProperty("--fig-chooser-grid-columns")}get choices(){return Array.from(this.querySelectorAll(`:scope > ${this.#K}`))}get selectedChoice(){return this.#q}set selectedChoice(_){if(_&&!this.contains(_))return;let q=this.choices;for(let Z of q){let $=Z===_,J=k(Z,"selected");if($&&!J)Z.setAttribute("selected","");else if(!$&&J)Z.removeAttribute("selected")}this.#q=_;let Q=_?.getAttribute("value")??"";if(this.getAttribute("value")!==Q){if(Q)this.setAttribute("value",Q)}this.#y(_)}get value(){return this.#q?.getAttribute("value")??""}set value(_){if(_===null||_===void 0||_==="")return;this.setAttribute("value",String(_))}connectedCallback(){if(this.setAttribute("role","listbox"),this.shadowRoot)this.shadowRoot.replaceChildren();this.#R(),this.#C(),this.addEventListener("click",this.#_),this.addEventListener("keydown",this.#Q),this.addEventListener("scroll",this.#Z),this.#I(),this.#M(),this.#g(),this.#H(),this.#B(),c(this,()=>{this.#A(),this.#z(),this.#X()})}#X(){let _=()=>{if(!this.isConnected)return;if(this.#q)this.#y(this.#q,"auto")},q=()=>{let Q=this.querySelectorAll("img, video");for(let Z of Q){if(Z.tagName==="IMG"?Z.complete:Z.readyState>=1)continue;let $=()=>{Z.removeEventListener("load",$),Z.removeEventListener("loadedmetadata",$),Z.removeEventListener("error",$),_()};Z.addEventListener("load",$),Z.addEventListener("loadedmetadata",$),Z.addEventListener("error",$)}};requestAnimationFrame(()=>{q(),_()})}disconnectedCallback(){this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#Q),this.removeEventListener("scroll",this.#Z),this.#D(),this.#$?.disconnect(),this.#$=null,this.#J?.disconnect(),this.#J=null,this.#T()}attributeChangedCallback(_,q,Q){if(_==="value"&&Q!==q&&Q)this.#Y(Q);if(_==="disabled")this.#B();if(_==="choice-element")requestAnimationFrame(()=>this.#A());if(_==="columns")this.#R(),this.#E();if(_==="drag")if(this.#G)this.#M();else this.#D();if(_==="overflow")this.#I(),requestAnimationFrame(()=>this.#z());if(_==="layout"){if(this.#I(),Q==="horizontal")this.scrollTop=0;else this.scrollLeft=0;this.#E()}}#A(){let _=this.choices;if(!_.length){this.#q=null;return}let q=this.getAttribute("value");if(q&&this.#Y(q))return;let Q=_.find((Z)=>k(Z,"selected"));if(Q){this.selectedChoice=Q;return}this.selectedChoice=_[0]}#B(){let _=k(this,"disabled");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");for(let q of this.choices)if(_||k(q,"disabled"))q.setAttribute("aria-disabled","true"),q.setAttribute("tabindex","-1");else q.removeAttribute("aria-disabled"),q.setAttribute("tabindex","0")}#Y(_){let q=this.choices;for(let Q of q)if(Q.getAttribute("value")===_)return this.selectedChoice=Q,!0;return!1}#O(_){let q=this.#K,Q=_;while(Q&&Q!==this){if(Q.matches(q))return Q;Q=Q.parentElement}return null}#F(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.#O(_.target);if(!q)return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;this.selectedChoice=q,this.#k()}#P(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.choices.filter((J)=>!J.hasAttribute("disabled")||J.getAttribute("disabled")==="false");if(!q.length)return;let Q=q.indexOf(this.#q),Z=Q,$=this.hasAttribute("loop");switch(_.key){case"ArrowDown":case"ArrowRight":if(_.preventDefault(),Q<q.length-1)Z=Q+1;else if($)Z=0;break;case"ArrowUp":case"ArrowLeft":if(_.preventDefault(),Q>0)Z=Q-1;else if($)Z=q.length-1;break;case"Home":_.preventDefault(),Z=0;break;case"End":_.preventDefault(),Z=q.length-1;break;case"Enter":case" ":if(_.preventDefault(),document.activeElement?.matches(this.#K)){let J=this.#O(document.activeElement);if(J&&J!==this.#q)this.selectedChoice=J,this.#k()}return;default:return}if(Z!==Q&&q[Z])this.selectedChoice=q[Z],q[Z].focus(),this.#k()}#k(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#z(){if(this.#L==="scrollbar")return;let _=this.getAttribute("layout")==="horizontal";e(this,this,_?"x":"y")}#H(){this.#J?.disconnect(),this.#J=new ResizeObserver(()=>{this.#z(),this.#E()}),this.#J.observe(this)}#M(){if(this.#N?.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.#N.active=!0,this.#N.didDrag=!1,this.#N.startX=J.clientX,this.#N.startY=J.clientY,this.#N.scrollLeft=this.scrollLeft,this.#N.scrollTop=this.scrollTop,this.style.cursor="grab",this.style.userSelect="none"},q=(J)=>{if(!this.#N.active)return;let j=this.getAttribute("layout")==="horizontal",N=J.clientX-this.#N.startX,W=J.clientY-this.#N.startY;if(!this.#N.didDrag&&Math.abs(j?N:W)>3)this.#N.didDrag=!0,this.style.cursor="grabbing",this.setPointerCapture(J.pointerId);if(!this.#N.didDrag)return;if(j)this.scrollLeft=this.#N.scrollLeft-N;else this.scrollTop=this.#N.scrollTop-W},Q=(J)=>{if(!this.#N.active)return;let j=this.#N.didDrag;if(this.#N.active=!1,this.#N.didDrag=!1,this.style.cursor="",this.style.userSelect="",J.pointerId!==void 0)try{this.releasePointerCapture(J.pointerId)}catch{}if(j)J.preventDefault(),J.stopPropagation()},Z=(J)=>{if(this.#N?.suppressClick)J.stopPropagation(),J.preventDefault(),this.#N.suppressClick=!1},$=(J)=>{if(this.#N?.didDrag)this.#N.suppressClick=!0,setTimeout(()=>{if(this.#N)this.#N.suppressClick=!1},0)};this.#N={active:!1,didDrag:!1,suppressClick:!1,startX:0,startY:0,scrollLeft:0,scrollTop:0,bound:!0,onPointerDown:_,onPointerMove:q,onPointerUp:Q,onClick:Z,onPointerUpCapture:$},this.addEventListener("pointerdown",_),window.addEventListener("pointermove",q),window.addEventListener("pointerup",Q),this.addEventListener("pointerup",$,!0),this.addEventListener("click",Z,!0)}#D(){if(!this.#N?.bound)return;this.removeEventListener("pointerdown",this.#N.onPointerDown),window.removeEventListener("pointermove",this.#N.onPointerMove),window.removeEventListener("pointerup",this.#N.onPointerUp),this.removeEventListener("pointerup",this.#N.onPointerUpCapture,!0),this.removeEventListener("click",this.#N.onClick,!0),this.style.cursor="",this.style.userSelect="",this.#N=null}#C(){if(this.#U)return;let _=this.querySelector(":scope > [data-fig-chooser-scroll]");if(!_)return;this.#U=!0;try{let q=Array.from(_.childNodes);_.replaceWith(...q)}finally{this.#U=!1}}#I(){if(this.#L==="scrollbar")this.#T();else this.#S()}#T(){this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null,this.classList.remove("overflow-start","overflow-end")}#S(){if(this.#W&&this.#j&&this.contains(this.#W)&&this.contains(this.#j))return;this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null;let _=X0({owner:"chooser",startClass:"fig-chooser-nav-start",endClass:"fig-chooser-nav-end",chevronClass:"fig-chooser-nav-chevron",onStart:()=>this.#f(-1),onEnd:()=>this.#f(1)});this.#W=_.start,this.#j=_.end,this.prepend(this.#W),this.append(this.#j)}#f(_){let q=this.getAttribute("layout")==="horizontal";_0(this,q?"x":"y",_)}#E(){if(!this.#q)return;this.#y(this.#q,"auto")}#y(_,q="smooth"){if(!_)return;requestAnimationFrame(()=>{if(!_.isConnected)return;let Q=this.scrollHeight>this.clientHeight,Z=this.scrollWidth>this.clientWidth;if(!Z&&!Q)return;let $=_.getBoundingClientRect(),J=this.getBoundingClientRect(),j={behavior:q},N=!1;if(Q){let W=$.top-J.top+this.scrollTop,G=this.scrollHeight-this.clientHeight;j.top=Math.max(0,Math.min(W+$.height/2-this.clientHeight/2,G)),N=!0}if(Z){let W=$.left-J.left+this.scrollLeft,G=this.scrollWidth-this.clientWidth;j.left=Math.max(0,Math.min(W+$.width/2-this.clientWidth/2,G)),N=!0}if(N)this.scrollTo(j);this.#z()})}#g(){this.#$?.disconnect(),this.#$=new MutationObserver(()=>{if(this.#U)return;this.#C(),this.#I(),this.#B();let _=this.choices;if(this.#q&&!_.includes(this.#q))this.#q=null,this.#A();else if(!this.#q&&_.length)this.#A();requestAnimationFrame(()=>this.#z())}),this.#$.observe(this,{childList:!0,subtree:!1})}}M("fig-chooser",V_);class E_ extends HTMLElement{static observedAttributes=["color","selected","disabled","drag","drag-surface","drag-axes","drag-snapping","value","type","tip","hit-area","hit-area-mode","aria-label","aria-labelledby"];#q=!1;#_=!1;#Q=null;#Z=null;#$=!1;#J=null;#W=null;#j=null;#N=null;get#U(){let _=(this.getAttribute("tip")||"").trim().toLowerCase();return _==="color"||_==="add"||_==="remove"?_:null}get#L(){return!this.hasAttribute("data-no-color-picker")}get#G(){let _=this.getAttribute("drag");return _!==null&&_!=="false"}get#K(){let _=(this.getAttribute("drag-axes")||"x,y").toLowerCase();return{x:_.includes("x"),y:_.includes("y")}}get#R(){let _=this.getAttribute("drag-snapping");if(_===null)return"false";let q=_.trim().toLowerCase();if(q==="modifier")return"modifier";if(q===""||q==="true")return"true";return"false"}#X(_){let q=this.#R;if(q==="true")return!0;if(q==="modifier")return!!_;return!1}#A(_){if(_<0.1)return 0;if(_>0.9)return 1;if(_>0.4&&_<0.6)return 0.5;return _}#B(_,q){if(Math.abs(_-q)<0.1){let Z=(_+q)/2;return{x:Z,y:Z}}if(Math.abs(1-_-q)<0.1)return{x:_,y:1-_};return{x:_,y:q}}#Y(){let _=this.getAttribute("drag-surface");if(!_||_==="parent")return this.parentElement;return this.closest(_)}get value(){let _=this.#Y();if(!_)return"0% 0%";let{px:q,py:Q}=this.#l(_.getBoundingClientRect());return`${Math.round(q*100)}% ${Math.round(Q*100)}%`}set value(_){this.setAttribute("value",_??"0% 0%")}#O(_){let q=_==null?"":String(_).trim();if(!q)return{xPct:0,yPct:0};let Q=q.split(/[\s,]+/).filter(Boolean),Z=(j)=>{if(!j)return 0;let N=j.includes("px"),W=j.includes("%"),G=parseFloat(j.replace(/[%px]/g,""));if(!Number.isFinite(G))return 0;if(N)return{px:G};if(W||Math.abs(G)>1)return Math.max(0,Math.min(100,G));return Math.max(0,Math.min(100,G*100))},$=Z(Q[0]),J=Z(Q[1]??Q[0]);return{xToken:$,yToken:J}}#F(_){let q=this.#Y();if(!q)return;let{xToken:Q,yToken:Z}=this.#O(_),$=q.getBoundingClientRect(),J=(W,G)=>{if(W&&typeof W==="object"&&"px"in W)return Math.max(0,Math.min(G,W.px));return null},j=(W)=>{return`${typeof W==="number"?W:0}%`},N=this.#K;if(this.#P(N),N.x){let W=J(Q,$.width);this.style.left=W===null?j(Q):`${Math.round(W)}px`}if(N.y){let W=J(Z,$.height);this.style.top=W===null?j(Z):`${Math.round(W)}px`}}#P(_=this.#K){this.style.setProperty("--fig-handle-position-translate",`${_.x?"-50%":"0"} ${_.y?"-50%":"0"}`)}#k(){this.#$=!0,this.setAttribute("value",this.value),this.#$=!1}get#z(){return this.getAttribute("hit-area-mode")||"handle"}#H(){let _=this.getAttribute("hit-area");if(!_)return null;let q=_.trim().split(/\s+/),Q=0,Z=0,$=!1,J=[];for(let j of q){if(j==="circle"){$=!0;continue}let N=parseFloat(j);if(Number.isFinite(N))J.push(N)}if(J.length>=2)Q=J[0],Z=J[1];else if(J.length===1)Q=J[0],Z=J[0];else return null;return{vPad:Q,hPad:Z,circle:$}}#M(){let _=this.#H();if(!_){if(this.#N)this.#N.remove(),this.#N=null;this.style.removeProperty("--fig-handle-hit-area-size");return}if(!this.#N){let q=document.createElement("div");q.classList.add("fig-handle-hit-area"),q.addEventListener("pointerdown",(Q)=>this.#D(Q)),this.prepend(q),this.#N=q}if(this.style.setProperty("--fig-handle-hit-area-size",String(_.hPad*2)),_.circle)this.#N.style.borderRadius="50%";else this.#N.style.borderRadius="inherit"}#D(_){if(k(this,"disabled"))return;if(_.target!==this.#N)return;if(this.#z==="delegate")_.preventDefault(),_.stopPropagation(),this.dispatchEvent(new CustomEvent("hitareadown",{bubbles:!0,detail:{originalEvent:_}}));else this.#g(_)}connectedCallback(){this.#E(),this.#f(),this.#M(),this.addEventListener("click",this.#C),document.addEventListener("pointerdown",this.#I),document.addEventListener("keydown",this.#T);let _=this.getAttribute("value");if(_)this.#F(_);if(this.#U)this.#u()}disconnectedCallback(){if(this.#y(),this.#t(),this.#b(),this.#i(),this.#N)this.#N.remove(),this.#N=null;this.removeEventListener("click",this.#C),document.removeEventListener("pointerdown",this.#I),document.removeEventListener("keydown",this.#T)}select(){if(k(this,"disabled"))return;this.setAttribute("selected","")}deselect(){this.removeAttribute("selected")}#C=(_)=>{if(this.#_){this.#_=!1;return}if(this.select(),this.getAttribute("type")==="color"&&this.#L&&!this.#U)this.#V()};#I=(_)=>{if(this.contains(_.target))return;if((this.#J||this.#W)&&_.target.closest?.("dialog, [popover]"))return;this.deselect()};#T=(_)=>{if(_.defaultPrevented)return;if(_.target===this&&this.#G&&["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(_.key)){if(this.#S(_)){if(_.preventDefault(),!k(this,"selected"))this.select()}return}if(_.key!=="Enter"&&_.key!==" ")return;if(_.target===this&&!k(this,"selected")){if(_.preventDefault(),this.getAttribute("type")==="color"&&this.#L&&!this.#U)this.#V();else this.select();return}if(!k(this,"selected"))return;if(this.getAttribute("type")!=="color")return;if(!this.#L)return;if(_.preventDefault(),!this.#U)this.#V()};#S(_){if(k(this,"disabled"))return!1;let q=this.#Y();if(!q)return!1;let Q=q.getBoundingClientRect();if(Q.width<=0||Q.height<=0)return!1;let Z=this.#K,$=this.#l(Q),J=_.shiftKey?0.1:0.01,j=$.px,N=$.py;switch(_.key){case"ArrowLeft":if(!Z.x)return!1;j-=J;break;case"ArrowRight":if(!Z.x)return!1;j+=J;break;case"ArrowUp":if(!Z.y)return!1;N-=J;break;case"ArrowDown":if(!Z.y)return!1;N+=J;break;case"Home":if(Z.x)j=0;if(Z.y)N=0;break;case"End":if(Z.x)j=1;if(Z.y)N=1;break;default:return!1}if(j=Math.max(0,Math.min(1,j)),N=Math.max(0,Math.min(1,N)),this.#P(Z),Z.x)this.style.left=`${Math.round(j*Q.width)}px`;if(Z.y)this.style.top=`${Math.round(N*Q.height)}px`;this.#k();let W={...this.#l(Q),shiftKey:_.shiftKey,keyboard:!0};return this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:W})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:W})),!0}attributeChangedCallback(_,q,Q){if(_==="color"){if(!Q||Q==="false"||Q==="true")this.style.removeProperty("--fill");else this.style.setProperty("--fill",Q);if(this.#J&&this.#U==="color"&&Q)this.#J.setAttribute("value",Q);this.#w()}if(_==="drag")this.#f();if(_==="hit-area")this.#M();if(_==="selected")this.#p();if(_==="selected"||_==="disabled"||_==="type"||_==="tip"||_==="aria-label"||_==="aria-labelledby")this.#E();if(_==="value"&&!this.#$&&!this.#q)this.#F(Q);if(_==="tip"){if(this.#t(),this.#U)this.#b(),this.#u()}}#f(){if(this.#G&&!this.#Q)this.#Q=(_)=>this.#g(_),this.addEventListener("pointerdown",this.#Q);else if(!this.#G&&this.#Q)this.#y()}#E(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=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",q?"true":"false"),!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")){let Q=this.#U||this.getAttribute("type")||"handle";this.setAttribute("aria-label",Q==="color"?"Color handle":Q==="add"?"Add handle":Q==="remove"?"Remove handle":"Handle")}}#y(){if(this.#Z?.(),this.#Z=null,this.#Q)this.removeEventListener("pointerdown",this.#Q),this.#Q=null;this.#q=!1,this.#_=!1}#g(_){if(!this.#G||k(this,"disabled"))return;_.preventDefault(),this.focus(),this.select();let q=this.#Y();if(!q)return;this.#Z?.(),this.#q=!0;let Q=this.#K,Z=null,$=this.getBoundingClientRect(),J=$.left+$.width/2,j=$.top+$.height/2,N=_.clientX-J,W=_.clientY-j,G=_.clientX,K=_.clientY,U=3,L=(D,H,F=!1)=>{let B=q.getBoundingClientRect();Z=B;let S=this.#l(B),f=D-N-B.left,I=H-W-B.top,x=Math.max(0,Math.min(B.width,f)),y=Math.max(0,Math.min(B.height,I)),u=B.width>0?Q.x?x/B.width:S.px:0.5,d=B.height>0?Q.y?y/B.height:S.py:0.5;if(this.#X(F)){if(Q.x)u=this.#A(u);if(Q.y)d=this.#A(d);if(Q.x&&Q.y){let t=this.#B(u,d);u=t.x,d=t.y}}if(this.#P(Q),Q.x)this.style.left=`${Math.round(Math.max(0,Math.min(B.width,u*B.width)))}px`;if(Q.y)this.style.top=`${Math.round(Math.max(0,Math.min(B.height,d*B.height)))}px`},A=(D)=>{if(!this.#q)return;if(!this.#_){let H=D.clientX-G,F=D.clientY-K;if(H*H+F*F<U*U)return;if(this.#a(),this.classList.add("dragging"),this.style.cursor="grabbing",!k(this,"selected"))this.select()}this.#_=!0,L(D.clientX,D.clientY,D.shiftKey),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{...this.#l(Z),shiftKey:D.shiftKey}}))},Y=(D)=>{if(O(),this.#_){L(D.clientX,D.clientY,D.shiftKey),this.#k(),this.#F(this.getAttribute("value")),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.#l(Z)}));let H=(F)=>{F.stopPropagation(),F.preventDefault()};this.addEventListener("click",H,{capture:!0,once:!0})}else this.#k();this.#_=!1},O=()=>{if(window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",Y),this.#q=!1,this.style.cursor="",this.classList.remove("dragging"),this.#Z===O)this.#Z=null};this.#Z=O,window.addEventListener("pointermove",A),window.addEventListener("pointerup",Y)}showColorTip(){if(!this.#U)return;if(this.#J){this.#J.style.display="";return}this.#u()}hideColorTip(){if(!this.#J)return;this.#J.style.display="none"}#v(_=this.getAttribute("color")){let q={color:"#D9D9D9",opacity:100},Q=String(_||"").trim();if(!Q)return q;let Z=(J)=>{let j=J.replace("#","").trim();if(j.length===3||j.length===4){let[N,W,G,K]=j;return{color:`#${N}${N}${W}${W}${G}${G}`.toUpperCase(),opacity:K?Math.round(parseInt(`${K}${K}`,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 q},$=(J,j,N)=>{let W=(G)=>Math.max(0,Math.min(255,Math.round(Number(G)))).toString(16).padStart(2,"0");return`#${W(J)}${W(j)}${W(N)}`.toUpperCase()};if(Q.startsWith("#"))return Z(Q);try{let{ctx:J}=B0(1,1);J.fillStyle="#000000",J.fillStyle=Q;let j=J.fillStyle;if(j.startsWith("#"))return Z(j);let N=j.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*([\d.]+))?/i);if(N)return{color:$(N[1],N[2],N[3]),opacity:N[4]!==void 0?Math.round(parseFloat(N[4])*100):100}}catch{}return q}#x(){let{color:_,opacity:q}=this.#v();return JSON.stringify(q<100?{type:"solid",color:_,opacity:q}:{type:"solid",color:_})}#w(){if(!this.#W)return;this.#W.setAttribute("value",this.#x())}#h(){if(!o())return null;if(this.#W)return this.#W;let _=document.createElement("fig-fill-picker");_.setAttribute("mode","solid"),_.setAttribute("alpha","true"),_.setAttribute("dialog-offset","8 8"),_.setAttribute("value",this.#x()),_.anchorElement=this;let q=document.createElement("span");return q.hidden=!0,_.appendChild(q),_.addEventListener("input",this.#n),_.addEventListener("change",this.#e),_.addEventListener("close",this.#$0),this.appendChild(_),this.#W=_,_}#V(){if(k(this,"disabled"))return;let _=this.#h();if(!_){this.#s();return}this.setAttribute("selected",""),this.#w(),_.open()}#b(){if(!this.#W)return;this.#W.removeEventListener("input",this.#n),this.#W.removeEventListener("change",this.#e),this.#W.removeEventListener("close",this.#$0),this.#W.close(),this.#W.remove(),this.#W=null,this.removeAttribute("selected")}#m(){if(this.#j)return this.#j;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.#o),_.addEventListener("change",this.#Z0),this.appendChild(_),this.#j=_,_}#s(){let _=this.#m(),{color:q}=this.#v();_.value=q,this.setAttribute("selected",""),_.click()}#i(){if(!this.#j)return;this.#j.removeEventListener("input",this.#o),this.#j.removeEventListener("change",this.#Z0),this.#j.remove(),this.#j=null}#a(){if(this.getAttribute("type")!=="color")return;this.#W?.close()}#u(){let _=this.#U;if(!_)return;if(this.#J)return;let q=document.createElement("fig-color-tip");if(_==="add"||_==="remove")q.setAttribute("control",_);else q.setAttribute("value",this.getAttribute("color")||"#D9D9D9"),q.setAttribute("alpha","true");q.addEventListener("input",this.#J0),q.addEventListener("change",this.#j0),q.addEventListener("add",this.#Q0),q.addEventListener("remove",this.#Q0),this.appendChild(q),this.#J=q,this.#p()}#t(){if(!this.#J)return;this.#J.removeEventListener("input",this.#J0),this.#J.removeEventListener("change",this.#j0),this.#J.removeEventListener("add",this.#Q0),this.#J.removeEventListener("remove",this.#Q0),this.#J.remove(),this.#J=null}#p(){if(!this.#J||this.#U!=="color")return;let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";this.#J.toggleAttribute("selected",_)}#c(_,q){if(q===void 0||q>=100)return _;let{r:Q,g:Z,b:$}=l(_);return`rgba(${Q}, ${Z}, ${$}, ${q/100})`}#d(_){if(!_?.color)return null;let q=_.opacity!==void 0?_.opacity:_.alpha!==void 0?Math.round(_.alpha*100):void 0;return{color:_.color,opacity:q,...i(_.color,_.alpha,q)}}#n=(_)=>{_.stopPropagation();let q=this.#d(_.detail);if(!q)return;this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))};#e=(_)=>{_.stopPropagation();let q=this.#d(_.detail);if(!q)return;this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q}))};#r(_){let{opacity:q}=this.#v();return{...q<100?{color:_,opacity:q}:{color:_},...i(_,void 0,q)}}#o=(_)=>{_.stopPropagation();let q=this.#r(_.target.value);this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))};#Z0=(_)=>{_.stopPropagation();let q=this.#r(_.target.value);if(this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q})),this.isConnected)this.focus()};#$0=()=>{if(!this.isConnected)return;this.setAttribute("selected",""),this.focus()};#J0=(_)=>{if(_.stopPropagation(),_.detail?.color){let q={color:_.detail.color,opacity:_.detail.opacity,...i(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))}};#j0=(_)=>{if(_.stopPropagation(),_.detail?.color){let q={color:_.detail.color,opacity:_.detail.opacity,...i(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q}))}};#Q0=(_)=>{_.stopPropagation(),this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,composed:!0}))};#l(_){let q=_||this.#Y()?.getBoundingClientRect();if(!q)return{x:0,y:0,px:0,py:0};let Q=this.getBoundingClientRect(),Z=this.offsetWidth/2,$=this.offsetHeight/2,J=Q.left-q.left,j=Q.top-q.top,N=J+Z,W=j+$,G=q.width>0?N/q.width:0,K=q.height>0?W/q.height:0;return{x:J,y:j,px:G,py:K}}}M("fig-handle",E_);class w_ 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.#q()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="disabled")this.#q()}#q(){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")}}M("fig-menu-item",w_);class z0 extends HTMLElement{static get observedAttributes(){return["label"]}get label(){return this.getAttribute("label")??""}set label(_){if(_==null||_==="")this.removeAttribute("label");else this.setAttribute("label",String(_))}connectedCallback(){this.#q()}attributeChangedCallback(_,q,Q){if(q===Q)return;this.#q()}#q(){if(!this.hasAttribute("role"))this.setAttribute("role","separator");let _=this.label.trim();if(_)this.setAttribute("aria-label",_);else this.removeAttribute("aria-label")}}M("fig-separator",z0);class x_ extends z0{}M("fig-menu-separator",x_);var E0=":scope > fig-menu-item, :scope > fig-separator, :scope > fig-menu-separator",qq=new Set(["FIG-MENU-ITEM","FIG-SEPARATOR","FIG-MENU-SEPARATOR"]);class y_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=null;#N;#U;#L;#G;#K;#R=this.#M.bind(this);#X=-1;static get observedAttributes(){return["position","offset","closedby","disabled","open","trigger"]}constructor(){super();this.#N=this.#y.bind(this),this.#U=this.#g.bind(this),this.#L=this.#x.bind(this),this.#G=this.#w.bind(this),this.#K=this.#h.bind(this)}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.#E())return;this.setAttribute("open","")}else this.removeAttribute("open")}connectedCallback(){if(this.#A(),this.#Y(),this.#O(),this.#F(),this.#z(),this.#k(),this.#f(),this.open)this.#b()}disconnectedCallback(){if(this.#P(),this.#H(),document.removeEventListener("keydown",this.#G,!0),this.#$)this.#$.disconnect(),this.#$=null;if(this.#q){this.#q.removeEventListener("close",this.#K);let _=Array.from(this.#_?.querySelectorAll(E0)??[]);for(let q of _)this.insertBefore(q,this.#q);this.#q.remove(),this.#q=null,this.#_=null}}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="open"){if(Q===null||Q==="false")this.#m();else{if(this.#E()){this.removeAttribute("open");return}this.#b()}return}if(_==="disabled"){this.#f();return}if(this.#q&&(_==="position"||_==="offset"||_==="closedby"))if(Q!==null)this.#q.setAttribute(_,Q);else this.#q.removeAttribute(_)}#A(){this.#Q=this.querySelector("[fig-menu-trigger]")||this.querySelector(":scope > :not(fig-menu-item):not(fig-separator):not(fig-menu-separator)")}#B(){return(this.getAttribute("trigger")||"").toLowerCase()==="contextmenu"||this.hasAttribute("contextmenu")}#Y(){this.#q=document.createElement("dialog",{is:"fig-popup"}),this.#q.setAttribute("is","fig-popup"),this.#q.classList.add("fig-menu-popup"),this.#q.setAttribute("theme","menu"),this.#q.setAttribute("role","menu"),this.#q.setAttribute("id",this.#q.getAttribute("id")||m());let _=this.getAttribute("position")||"bottom left";this.#q.setAttribute("position",_);let q=this.getAttribute("offset");if(q)this.#q.setAttribute("offset",q);let Q=this.getAttribute("closedby");if(Q)this.#q.setAttribute("closedby",Q);if(this.#Q)this.#q.anchor=this.#Q;this.#_=document.createElement("div"),this.#_.className="fig-menu-options",this.#_.setAttribute("role","presentation"),this.#q.appendChild(this.#_),this.#q.addEventListener("close",this.#K),this.appendChild(this.#q)}#O(){if(!this.#_)return;let _=Array.from(this.querySelectorAll(E0));for(let q of _)this.#_.appendChild(q)}#F(){if(this.addEventListener("keydown",this.#G),this.#Q)this.#Q.addEventListener("click",this.#N),this.#Q.addEventListener("contextmenu",this.#U),this.#Q.setAttribute("aria-haspopup","menu"),this.#Q.setAttribute("aria-expanded","false"),this.#Q.setAttribute("aria-controls",this.#q.getAttribute("id"));if(this.#q)this.#q.addEventListener("click",this.#L),this.#q.addEventListener("keydown",this.#G)}#P(){if(this.removeEventListener("keydown",this.#G),this.#Q)this.#Q.removeEventListener("click",this.#N),this.#Q.removeEventListener("contextmenu",this.#U);if(this.#q)this.#q.removeEventListener("click",this.#L),this.#q.removeEventListener("keydown",this.#G)}#k(){this.#$=new MutationObserver((_)=>{for(let q of _)for(let Q of q.addedNodes){if(Q.nodeType!==1||Q===this.#q)continue;if(qq.has(Q.tagName)&&Q.parentElement===this)this.#_?.appendChild(Q);else if(!this.#Q&&Q.parentElement===this){if(this.#A(),this.#Q)this.#Q.addEventListener("click",this.#N),this.#Q.addEventListener("contextmenu",this.#U),this.#Q.setAttribute("aria-haspopup","menu"),this.#Q.setAttribute("aria-expanded","false"),this.#Q.setAttribute("aria-controls",this.#q.getAttribute("id")),this.#q.anchor=this.#Q,this.#f()}}this.#M()}),this.#$.observe(this,{childList:!0})}#z(){if(!this.#_)return;this.#D(),this.#_.addEventListener("scroll",this.#R,{passive:!0}),this.#J?.disconnect(),this.#J=new ResizeObserver(()=>this.#M()),this.#J.observe(this.#_),requestAnimationFrame(()=>this.#M())}#H(){this.#_?.removeEventListener("scroll",this.#R),this.#J?.disconnect(),this.#J=null,this.#C()}#M(){return e(this.#_,this.#_,"y")}#D(){if(this.#W&&this.#j&&this.#_?.contains(this.#W)&&this.#_?.contains(this.#j))return;this.#C();let _=X0({owner:"menu",startLabel:"Scroll up",endLabel:"Scroll down",onStart:()=>_0(this.#_,"y",-1),onEnd:()=>_0(this.#_,"y",1)});this.#W=_.start,this.#j=_.end,this.#_.prepend(this.#W),this.#_.append(this.#j)}#C(){this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null,this.#_?.classList.remove("overflow-start","overflow-end")}#I(){if(!this.#_)return[];return Array.from(this.#_.querySelectorAll("fig-menu-item")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#T(){let _=this.#I();if(!_.length){this.#X=-1;return}let q=document.activeElement,Q=_.findIndex((Z)=>Z===q||Z.contains(q));this.#X=Q>=0?Q:-1}#S(_){let q=this.#I();if(!q.length)return;let Q=(_+q.length)%q.length;this.#X=Q;let Z=q[Q];Z.focus(),p_(this.#_,Z,"y")}#f(){let _=this.#E();if(_)if(this.open)this.removeAttribute("open");else this.#m();if(!this.#Q)return;if(_)this.#Q.setAttribute("disabled",""),this.#Q.setAttribute("aria-disabled","true"),this.#Q.setAttribute("aria-expanded","false");else this.#Q.removeAttribute("disabled"),this.#Q.removeAttribute("aria-disabled")}#E(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#y(_){if(this.#B())return;if(this.#E())return;_.stopPropagation();let q=this.#q?.matches?.(":open")??!1;if(this.open&&!q)this.removeAttribute("open");if(this.open&&q)this.open=!1;else{if(this.#q&&this.#Q)this.#q.anchor=this.#Q;this.open=!0}}#g(_){if(!this.#B())return;if(this.#E())return;_.preventDefault(),_.stopPropagation(),this.#v(_.clientX,_.clientY)}#v(_,q){let Q=!1,Z=0,$=()=>{window.clearTimeout(Z),window.removeEventListener("pointerup",J,!0),window.removeEventListener("pointercancel",j,!0)},J=()=>{if(Q)return;Q=!0,$(),requestAnimationFrame(()=>this.showAt(_,q))},j=()=>{if(Q)return;Q=!0,$()};window.addEventListener("pointerup",J,{once:!0,capture:!0}),window.addEventListener("pointercancel",j,{once:!0,capture:!0}),Z=window.setTimeout(J,180)}#x(_){if(this.#E())return;let q=_.target.closest("fig-menu-item");if(!q)return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;this.#V(q)}#w(_){if(this.#E())return;if(_.currentTarget===document&&_.key!=="Escape")return;if(_.currentTarget===this&&this.#q?.contains(_.target))return;if(!this.open||!this.#q?.matches?.(":open")){if(this.#Q?.contains(_.target)&&(_.key==="ArrowDown"||_.key==="Enter"||_.key===" ")){if(_.preventDefault(),this.#q&&this.#Q)this.#q.anchor=this.#Q;this.open=!0,requestAnimationFrame(()=>this.#S(0))}return}let q=this.#I();if(!q.length)return;switch(_.key){case"ArrowDown":{_.preventDefault(),this.#T(),this.#S(this.#X+1);break}case"ArrowUp":{_.preventDefault(),this.#T(),this.#S(this.#X-1);break}case"Home":{_.preventDefault(),this.#S(0);break}case"End":{_.preventDefault(),this.#S(q.length-1);break}case"Escape":{_.preventDefault(),this.open=!1,this.#Q?.focus();break}case"Enter":case" ":{this.#T();let Q=q[this.#X];if(!Q)return;_.preventDefault(),this.#V(Q);break}}}#h(){if(this.hasAttribute("open"))this.removeAttribute("open");if(this.#Q)this.#Q.setAttribute("aria-expanded","false"),this.#Q.focus();this.#X=-1}#V(_){let q=_.getAttribute("value")||_.textContent.trim();this.setAttribute("value",q),this.dispatchEvent(new CustomEvent("change",{detail:{value:q,item:_},bubbles:!0})),this.open=!1}showAt(_,q){if(this.#E())return;if(this.#Z={getBoundingClientRect:()=>({width:0,height:0,top:q,right:_,bottom:q,left:_,x:_,y:q})},this.#q)this.#q.anchor=this.#Z;if(this.open)this.open=!1;requestAnimationFrame(()=>{if(this.#E())return;this.open=!0})}#b(){if(!this.#q||this.#E()){if(this.hasAttribute("open"))this.removeAttribute("open");return}if(this.#q.open=!0,document.addEventListener("keydown",this.#G,!0),this.#Q)this.#Q.setAttribute("aria-expanded","true");this.#X=-1,requestAnimationFrame(()=>{if(this.#M(),!this.#Q?.matches?.(":focus-visible"))return;this.#S(0)})}#m(){if(!this.#q)return;document.removeEventListener("keydown",this.#G,!0),this.#q.open=!1,this.#Q?.setAttribute("aria-expanded","false")}}M("fig-menu",y_);
34
+ `:",";this.#Z=_.split(q).map((Q)=>Q.trim()).filter(Boolean)}#L(){if(this.replaceChildren(),this.#Z.length===0)return;let _=document.createElement("fig-segmented-control");if(_.setAttribute("sizing",this.getAttribute("sizing")||"equal"),k(this,"disabled"))_.setAttribute("disabled","");if(k(this,"full"))_.setAttribute("full","");let q=this.getAttribute("value");for(let Q of this.#Z){let Z=document.createElement("fig-segment");if(Z.setAttribute("value",Q),Z.textContent=Q,q===Q)Z.setAttribute("selected","true");_.appendChild(Z)}if(q)_.setAttribute("value",q);_.addEventListener("input",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(Z===null)return;this.#J=!0,this.setAttribute("value",Z),this.#J=!1,this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0,composed:!0}))}),_.addEventListener("change",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(Z===null)return;this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#$=_,this.#q="segments"}#G(){if(this.replaceChildren(),this.#Z.length===0)return;let _=document.createElement("fig-dropdown");if(k(this,"disabled"))_.setAttribute("disabled","");let q=this.getAttribute("value");for(let Q of this.#Z){let Z=document.createElement("option");if(Z.value=Q,Z.textContent=Q,q===Q)Z.selected=!0;_.appendChild(Z)}if(q)_.setAttribute("value",q);_.addEventListener("input",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(!Z)return;this.#J=!0,this.setAttribute("value",Z),this.#J=!1,this.dispatchEvent(new CustomEvent("input",{detail:Z,bubbles:!0,composed:!0}))}),_.addEventListener("change",(Q)=>{if(Q.stopPropagation(),this.#J)return;let Z=this.#W(Q);if(!Z)return;this.dispatchEvent(new CustomEvent("change",{detail:Z,bubbles:!0,composed:!0}))}),this.appendChild(_),this.#$=_,this.#q="dropdown"}#K(){if(this.#q==="segments")this.#L(),requestAnimationFrame(()=>{requestAnimationFrame(()=>this.#O())});else this.#G()}#R(){if(!this.#$||this.#J)return;let _=this.getAttribute("value")||"";this.#$.value=_}#X(_){if(!this.#$)return;if(this.hasAttribute(_))this.#$.setAttribute(_,this.getAttribute(_)||"");else this.#$.removeAttribute(_)}#A(){this.#Q?.disconnect(),this.#Q=new ResizeObserver(()=>{this.#O()}),this.#Q.observe(this)}#B(_){let q=document.createRange();q.selectNodeContents(_);let Q=q.getBoundingClientRect().width,$=_.getBoundingClientRect().width,J=getComputedStyle(_),j=parseFloat(J.paddingLeft)||0,N=parseFloat(J.paddingRight)||0,W=$-j-N;return Q>W+0.5}#Y(){let _=this.querySelectorAll("fig-segment");for(let q of _)if(this.#B(q))return!0;return!1}#O(){if(this.#Z.length<=1)return;if(this.#q==="segments"){let _=this.#$;if(_&&_.scrollWidth>_.clientWidth+1||this.#Y())this.#_=this.clientWidth,this.#G()}else if(this.#_>0&&this.clientWidth>=this.#_)this.#L(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let _=this.#$;if(_&&_.scrollWidth>_.clientWidth+1||this.#Y())this.#G()})})}}M("fig-options",r0);class l0 extends HTMLElement{#q=!1;#_=!1;#Q=!1;#Z="";#$=["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"}};#W;#j;#N;#U;#L;#G;#K;#R=null;#X=null;#A=null;#B=null;constructor(){super();this.initialChildren=null,this.#W=(_)=>{_.stopPropagation(),this.#g()},this.#j=(_)=>{_.stopPropagation(),this.#v()},this.#L=(_)=>{this.#x(_)},this.#N=(_)=>{_.stopPropagation(),this.#z()},this.#U=(_)=>{_.stopPropagation(),this.#w()},this.#G=()=>{this.#q=!0},this.#K=()=>{if(this.#q=!1,this.#_&&this.isConnected)this.#_=!1,this.#k()}}#Y(){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 q=this.#J[this.type]||this.#J.range,Q=(Z,$)=>{let J=this.getAttribute(Z),j=J===null||J.trim()===""?$:Number(J);return Number.isFinite(j)?j:$};if(this.min=Q("min",q.min),this.max=Q("max",q.max),this.step=Q("step",q.step),!(this.step>0))this.step=q.step>0?q.step:1;this.color=this.getAttribute("color")||q?.color,this.default=this.hasAttribute("default")?this.getAttribute("default"):this.type==="delta"?0:this.min,this.value=this.#T(_)}#O(){if(!this.querySelector("[type=range]"))return!1;return this.getAttribute("text")!=="false"===!!this.querySelector("fig-input-number")}#F(){if(this.#Y(),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)}}#P(){if(this.#E(),this.input.removeEventListener("input",this.#W),this.input.addEventListener("input",this.#W),this.input.removeEventListener("change",this.#j),this.input.addEventListener("change",this.#j),this.input.removeEventListener("keydown",this.#L),this.input.addEventListener("keydown",this.#L),this.input.removeEventListener("pointerdown",this.#G),this.input.addEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#K),this.input.addEventListener("pointerup",this.#K),this.input.removeEventListener("pointercancel",this.#K),this.input.addEventListener("pointercancel",this.#K),this.default)this.style.setProperty("--default",this.#H(this.default));if(this.figInputNumber)this.#y(),this.figInputNumber.removeEventListener("input",this.#N),this.figInputNumber.addEventListener("input",this.#N),this.figInputNumber.removeEventListener("change",this.#U),this.figInputNumber.addEventListener("change",this.#U)}#k(){if(this.#Y(),this.color)this.style.setProperty("--color",this.color);let _=X("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}),q=X("div",{className:"fig-slider-input-container",role:"group"},_);for(let Z of this.initialChildren??[])q.appendChild(Z);let Q=[q];if(this.text)Q.push(X("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(...Q),this.input=_,this.inputContainer=q,this.figInputNumber=this.querySelector("fig-input-number"),this.#P(),this.datalist=this.querySelector("datalist"),this.datalist)this.inputContainer.append(this.datalist),this.datalist.setAttribute("id",this.datalist.getAttribute("id")||m()),this.input.setAttribute("list",this.datalist.getAttribute("id"));else if(this.type==="stepper"){this.datalist=document.createElement("datalist"),this.datalist.setAttribute("id",m());let Z=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1));for(let $=0;$<Z;$++){let J=document.createElement("option");J.setAttribute("value",this.min+$*this.step),this.datalist.append(J)}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("id",m());let Z=document.createElement("option");Z.setAttribute("value",this.default),this.datalist.append(Z),this.inputContainer.append(this.datalist),this.input.setAttribute("list",this.datalist.getAttribute("id"))}if(this.datalist){let Z=[...this.datalist.querySelectorAll("option")].find(($)=>$.value===String(this.default));if(Z)Z.setAttribute("default","true")}this.#f()}connectedCallback(){if(this.initialChildren===null)this.initialChildren=Array.from(this.childNodes);if(this.#O()){this.#F(),this.#P(),this.#f();return}this.#k()}get value(){if(this.#Z!=="")return this.#Z;let _=this.getAttribute("value");if(_!==null)return String(this.#T(_));return""}set value(_){let q=_===null||_===void 0?"":String(_),Z=this.min!==void 0||this.max!==void 0?String(this.#T(q)):q;if(this.#Z=Z,this.getAttribute("value")!==Z)this.#Q=!0,this.setAttribute("value",Z),this.#Q=!1;if(this.input&&this.input.value!==Z)this.input.value=Z,this.input.setAttribute("aria-valuenow",Z);if(this.figInputNumber)this.figInputNumber.setAttribute("value",Z);if(this.input)this.#S()}disconnectedCallback(){if(this.#_=!1,this.input)this.input.removeEventListener("input",this.#W),this.input.removeEventListener("change",this.#j),this.input.removeEventListener("keydown",this.#L),this.input.removeEventListener("pointerdown",this.#G),this.input.removeEventListener("pointerup",this.#K),this.input.removeEventListener("pointercancel",this.#K);if(this.figInputNumber)this.figInputNumber.removeEventListener("input",this.#N),this.figInputNumber.removeEventListener("change",this.#U)}#z(){if(this.figInputNumber){let _=this.figInputNumber.value,q=this.#T(_);this.value=q,this.input.value=String(q),this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}}#H(_){let{min:q,max:Q}=this.#D(),Z=Q-q;if(Z===0)return 0;return(Number(_)-q)/Z}#M(_){if(_===null||_===void 0)return null;if(typeof _==="string"&&_.trim()==="")return null;let q=Number(_);return Number.isFinite(q)?q:null}#D(){let _=this.#M(this.min),q=this.#M(this.max);if(_===null)_=0;if(q===null)q=_;if(_>q)[_,q]=[q,_];return{min:_,max:q}}#C(_){let{min:q,max:Q}=this.#D();return Math.min(Q,Math.max(q,_))}#I(){if(this.type==="delta"){let q=this.#M(this.default);if(q!==null)return this.#C(q);return this.#C(0)}if(this.type==="range"){let{min:q,max:Q}=this.#D();return this.#C(q+(Q-q)/2)}let{min:_}=this.#D();return _}#T(_){let q=this.#M(_);if(q===null)return this.#I();return this.#C(q)}#S(){let _=this.#H(this.value),q=this.#H(this.default),Q=_<q?-1:1,Z=_===q?1:0;if(this.#R!==_)this.style.setProperty("--slider-complete",_),this.#R=_;if(this.#X!==q)this.style.setProperty("--default",q),this.#X=q;if(this.#A!==Q)this.style.setProperty("--slider-delta-direction",Q),this.#A=Q;if(this.#B!==Z)this.style.setProperty("--unchanged",Z),this.#B=Z}#f(){let _=this.input.value;if(this.value=_,this.#S(),this.input.setAttribute("aria-valuenow",_),this.figInputNumber)this.figInputNumber.setAttribute("value",_)}#E(){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.#$.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#y(){if(!this.figInputNumber)return;["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"].forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.figInputNumber.removeAttribute(_);else this.figInputNumber.setAttribute(_,q)})}#g(){this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#v(){this.#q=!1,this.#f(),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 q=_.key==="ArrowRight"||_.key==="ArrowUp"?1:-1,Q=this.#M(this.input.value)??this.#I(),Z=this.#M(this.step)??1,$=this.#T(Q+Z*10*q);this.value=$,this.input.value=String($),this.#f(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#w(){if(this.figInputNumber){let _=this.figInputNumber.value,q=this.#T(_);this.value=q,this.input.value=String(q),this.#f(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}}#h(_,q){if(!this.input)return;let Q=this.#J[this.type]||this.#J.range,Z=q===null||String(q).trim()===""?Q[_]:Number(q),$=Number.isFinite(Z)?Z:Q[_];if(_==="step"&&!($>0))$=Q.step>0?Q.step:1;if(this[_]===$&&this.input[_]===String($))return;if(this[_]=$,this.input[_]=String($),_==="min")this.input.setAttribute("aria-valuemin",String($));else if(_==="max")this.input.setAttribute("aria-valuemax",String($));if(this.figInputNumber)this.figInputNumber.setAttribute(_,String($));if(!this.hasAttribute("default")&&this.type!=="delta")this.default=this.min;this.value=this.#T(this.value),this.#S(),this.#V()}#V(){if(this.type!=="stepper"||!this.datalist)return;let _=Math.min(1001,Math.max(0,Math.floor((this.max-this.min)/this.step)+1)),q=document.createDocumentFragment();for(let Q=0;Q<_;Q++){let Z=document.createElement("option");Z.setAttribute("value",this.min+Q*this.step),q.append(Z)}this.datalist.replaceChildren(q),this.input.setAttribute("list",this.datalist.id)}#b(){if(this.#q){this.#_=!0;return}this.#_=!1,this.#k()}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(_,q,Q){if(q===Q)return;if(_==="value"&&this.#Q)return;if(this.input)switch(_){case"color":this.color=Q,this.style.setProperty("--color",this.color);break;case"disabled":if(this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.figInputNumber)this.figInputNumber.disabled=this.disabled,this.figInputNumber.setAttribute("disabled",this.disabled);break;case"value":if(this.#q)break;this.value=Q,this.#f();break;case"transform":if(this.transform=Number(Q)||1,this.figInputNumber)this.figInputNumber.setAttribute("transform",this.transform);break;case"precision":if(this.precision=Q!==null?Number(Q):null,this.figInputNumber)if(this.precision!==null)this.figInputNumber.setAttribute("precision",this.precision);else this.figInputNumber.removeAttribute("precision");break;case"placeholder":if(this.placeholder=Q!==null?Q:"##",this.figInputNumber)this.figInputNumber.setAttribute("placeholder",this.placeholder);break;case"default":this.default=Q!==null?Q:this.type==="delta"?0:this.min,this.#S();break;case"min":case"max":case"step":this.#h(_,Q);break;case"units":if(this.units=Q||"",this.figInputNumber)if(this.units)this.figInputNumber.setAttribute("units",this.units);else this.figInputNumber.removeAttribute("units");break;case"type":case"variant":if(!this.#q)this[_]=Q;this.#b();break;case"text":if(!this.#q)this.text=Q!=="false";this.#b();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":case"aria-valuetext":this.#E();break;default:this[_]=this.input[_]=Q,this.#f();break}}}M("fig-slider",l0);class t0 extends HTMLElement{#q=!1;#_=!1;#Q="";#Z=!1;#$;#J;#W;#j;#N;#U;#L;#G;#K=null;#R=0;#X="";#A="";#B=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];constructor(){super();this.#$=this.#E.bind(this),this.#J=this.#g.bind(this),this.#W=this.#g.bind(this),this.#j=this.#y.bind(this),this.#N=(_)=>{_.stopPropagation(),this.#f(_)},this.#U=(_)=>{_.stopPropagation();let q=_.target.value;if(this.type==="number")q=Number(q)/(this.transform||1);this.value=q,this.#D(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))},this.#L=()=>{if(!this.disabled)this.focus()},this.#G=this.#O.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.#Y(),this.input.readOnly=this.readonly,this.disabled=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",this.input.disabled=this.disabled,this.#z(),this.#H(),this.#M(),this.#D(),this.#C(),this.#T(),j0(this),this.#F(),this.type==="number"){if(this.getAttribute("min"))this.input.setAttribute("min",this.#S(this.min));if(this.getAttribute("max"))this.input.setAttribute("max",this.#S(this.max));if(this.getAttribute("step"))this.input.setAttribute("step",this.#S(this.step));this.addEventListener("pointerdown",this.#j)}this.removeEventListener("click",this.#G),this.addEventListener("click",this.#G),this.input.removeEventListener("change",this.#N),this.input.addEventListener("change",this.#N),this.input.removeEventListener("input",this.#U),this.input.addEventListener("input",this.#U)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#N),this.input.removeEventListener("input",this.#U);if(this.removeEventListener("click",this.#G),this.removeEventListener("pointerdown",this.#j),window.removeEventListener("pointermove",this.#$),window.removeEventListener("pointerup",this.#J),window.removeEventListener("blur",this.#W),this.#K?.disconnect(),this.#K=null,this.#R)cancelAnimationFrame(this.#R),this.#R=0}focus(){this.input.focus()}#Y(){let _=this.multiline,q=this.querySelector("input,textarea");if(q){if(_?q.tagName==="TEXTAREA":q.tagName==="INPUT")return q;q.remove()}let Q;if(_)Q=document.createElement("textarea"),Q.value=this.value;else Q=document.createElement("input"),Q.type=this.type,Q.value=this.type==="number"?this.#S(this.value):this.value;if(Q.setAttribute("data-generated","input-control"),this.name)Q.name=this.name;return Q.placeholder=this.placeholder,this.insertBefore(Q,this.querySelector('[slot="append"]')),Q}#O(_){let q=_.target?.closest?.("[slot]");if(!q||q.parentElement!==this)return;if(this.disabled)return;this.focus()}#F(){this.#K?.disconnect(),this.#K=new MutationObserver(()=>this.#P()),this.#K.observe(this,{childList:!0,characterData:!0,subtree:!0})}#P(){if(this.#R)return;this.#R=requestAnimationFrame(()=>{if(this.#R=0,!this.isConnected)return;this.#k()})}#k(){if(!this.input||!this.contains(this.input))this.input=this.#Y(),this.input.readOnly=this.readonly,this.input.addEventListener("change",this.#N),this.input.addEventListener("input",this.#U);this.#z(),this.#H(),this.#M(),this.#D(),this.#C(),this.#T(),j0(this)}#z(){if(!this.input)return;this.#B.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#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 Z=_.querySelector("fig-icon");if(Z&&Z.getAttribute("name")!=="search")Z.setAttribute("name","search");return}let Q=b("search");Q.setAttribute("slot","prepend"),Q.setAttribute("data-generated","search-prefix"),Q.setAttribute("color","var(--figma-color-icon)"),Q.addEventListener("click",this.#L),this.prepend(Q)}#M(){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 Q=document.createElement("span");Q.setAttribute("slot","append"),Q.setAttribute("data-generated","search-clear");let Z=document.createElement("fig-tooltip");Z.setAttribute("text","Clear search");let $=document.createElement("fig-button");$.setAttribute("variant","ghost"),$.setAttribute("icon",""),$.setAttribute("aria-label","Clear search");let J=b("close",{size:"small"});J.setAttribute("color","var(--figma-color-icon-secondary)"),$.append(J),Z.append($),Q.append(Z),this.append(Q),$.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.#D(),this.focus()})}#D(){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.#I(_);return}let Q=document.createElement("span");Q.setAttribute("slot","append"),Q.setAttribute("data-generated","password-toggle");let Z=document.createElement("fig-tooltip"),$=document.createElement("fig-button");$.setAttribute("variant","ghost"),$.setAttribute("icon","");let J=b("visible",{size:"small"});J.setAttribute("color","var(--figma-color-icon-secondary)"),$.append(J),Z.append($),Q.append(Z),this.append(Q),this.#I(Q),$.addEventListener("click",(j)=>{if(j.preventDefault(),j.stopPropagation(),this.disabled)return;if(this.#_=!this.#_,this.input)this.input.type=this.#_?"text":"password";this.#I(Q),this.focus()})}#I(_){let q=_.querySelector("fig-tooltip"),Q=_.querySelector("fig-button"),Z=_.querySelector("fig-icon"),$=this.#_?"Hide password":"Show password";q?.setAttribute("text",$),Q?.setAttribute("aria-label",$),Z?.setAttribute("name",this.#_?"visible":"hidden")}#T(){this.querySelectorAll('[data-generated="search-clear"] fig-button, [data-generated="password-toggle"] fig-button').forEach((_)=>{if(this.disabled)_.setAttribute("disabled","");else _.removeAttribute("disabled")})}#S(_){if(_==="")return"";let q=Number(_)*(this.transform||1);return q=this.#x(q),q}#f(_){_.stopPropagation();let q=_.target.value,Q=q;if(this.type==="number")q=q/(this.transform||1),q=this.#v(q,!1),Q=q*(this.transform||1);this.value=q,this.input.value=Q,this.#D(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#E(_){if(this.type!=="number")return;if(_.buttons===0){this.#g();return}let q=(this.step||1)*_.movementX,Q=Number(this.input.value);Q=Q/(this.transform||1)+q,Q=this.#v(Q,!1);let Z=Q*(this.transform||1);Q=this.#x(Q),Z=this.#x(Z),this.value=Q,this.input.value=Z,this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#y(_){if(this.type!=="number")return;if(_.altKey||_.target.closest("[slot]"))this.#q=!0,this.#X=this.style.userSelect,this.#A=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.#$),window.addEventListener("pointerup",this.#J),window.addEventListener("pointercancel",this.#J),window.addEventListener("blur",this.#W)}#g(_){if(this.type!=="number")return;let q=this.#q;if(this.#q=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#A,this.style.userSelect=this.#X,window.removeEventListener("pointermove",this.#$),window.removeEventListener("pointerup",this.#J),window.removeEventListener("pointercancel",this.#J),window.removeEventListener("blur",this.#W),q)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#v(_,q=!0){let Q=_;if(this.type==="number"){if(Q=Number(Q),typeof this.min==="number")Q=Math.max(q?this.#S(this.min):this.min,Q);if(typeof this.max==="number")Q=Math.min(q?this.#S(this.max):this.max,Q);Q=this.#x(Q)}return Q}#x(_,q=2){let Q=Math.round(_*100)/100;return Number.isInteger(Q)?Q:Q.toFixed(q)}get value(){return this.#Q}set value(_){let q=_??"";this.#Q=q;let Q=String(q);if(this.getAttribute("value")!==Q)this.#Z=!0,this.setAttribute("value",Q),this.#Z=!1;this.#w(q)}#w(_){if(!this.input||this.#q)return;let q=this.type==="number"?String(this.#S(_)):String(_??"");if(this.input.value!==q)this.input.value=q;this.#D()}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(_,q,Q){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.#T();break;case"readonly":this.readonly=Q!==null&&Q!=="false",this.input.readOnly=this.readonly;break;case"transform":if(this.type==="number")this.transform=Number(Q)||1,this.input.value=this.#S(this.value);break;case"value":if(this.#q)break;let Z=Q;if(this.type==="number")Z=this.#v(Z,!1);if(this.#Q=Z??"",!this.#Z)this.#w(this.#Q);break;case"min":case"max":case"step":if(Q===null||Q==="")this[_]=void 0,this.input.removeAttribute(_);else this[_]=this.input[_]=Number(Q),this.input.setAttribute(_,Q);break;case"name":if(this[_]=this.input[_]=Q||"",Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=Q??"",this.input.placeholder=this.placeholder;break;case"type":if(this.type=Q||"text",this.input.type=this.type,this.removeEventListener("pointerdown",this.#j),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.#j);this.#H(),this.#M(),this.#D(),this.#C(),this.#T();break;case"multiline":{let $=Q!==null&&Q!=="false";if($!==this.multiline){this.multiline=$;let J=this.input;J.removeEventListener("change",this.#N),J.removeEventListener("input",this.#U),J.remove(),this.input=this.#Y(),this.input.readOnly=this.readonly,this.input.disabled=Boolean(this.disabled),this.input.addEventListener("change",this.#N),this.input.addEventListener("input",this.#U),this.#z()}break}case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#z();break;default:this[_]=this.input[_]=Q;break}}}M("fig-input-text",t0);class N0 extends HTMLElement{#q;#_;#Q;#Z;#$;#J;#W;#j;#N;#U;#L;#G;#K;#R;#X;#A;#B=!1;#Y=null;#O=null;#F=0;#P="";#k="";#z=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];static#H="px";#M(_){return(_||"").split(",").map((q)=>q.trim().toLowerCase()).filter(Boolean)}#D(_){let q=(_||"").trim();if(!q)return"";return(this.#R??[]).includes(q.toLowerCase())?"":q}#C(){this.#G=this.#D(this.#K)}#I(_){if(_&&!this.#Y)this.#Y=document.createElement("span"),this.#Y.className="fig-steppers",this.#Y.append(X("button",{className:"fig-stepper-up",tabindex:"-1","aria-label":"Increase"}),X("button",{className:"fig-stepper-down",tabindex:"-1","aria-label":"Decrease"})),this.#Y.addEventListener("pointerdown",(q)=>{q.preventDefault(),q.stopPropagation();let Q=q.target.closest("button");if(!Q||this.disabled||Q.disabled)return;let Z=Q.classList.contains("fig-stepper-up")?1:-1;this.#S(Z),this.input.focus()}),this.append(this.#Y);else if(!_&&this.#Y)this.#Y.remove(),this.#Y=null;this.#T()}#T(){if(!this.#Y)return;let _=this.#Y.querySelector(".fig-stepper-up"),q=this.#Y.querySelector(".fig-stepper-down");if(!_||!q)return;let Q=this.input?this.#h(this.input.value):this.value,Z=Q!==""&&Q!==null&&Q!==void 0?Number(Q)/(this.transform||1):Number(this.value),$=Number.isFinite(Z),J=Boolean(this.disabled),j=$&&typeof this.min==="number"&&Z<=this.min,N=$&&typeof this.max==="number"&&Z>=this.max;_.disabled=J||N,q.disabled=J||j}#S(_){let q=this.step||1,Q=this.#h(this.input.value),Z=(Q!==""?Number(Q)/(this.transform||1):0)+q*_;Z=this.#d(Z,!1),this.value=Z,this.input.value=this.#V(this.value),this.#T(),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.#q=this.#t.bind(this),this.#_=this.#c.bind(this),this.#Q=this.#c.bind(this),this.#Z=this.#p.bind(this),this.#$=(_)=>{_.stopPropagation(),this.#u(_)},this.#J=(_)=>{_.stopPropagation(),this.#a(_)},this.#W=(_)=>{this.#m(_)},this.#j=(_)=>{this.#s(_)},this.#N=(_)=>{this.#i(_)},this.#U=this.focus.bind(this),this.#L=this.#E.bind(this)}connectedCallback(){let _=this.getAttribute("value");this.value=_!==null&&_!==""?Number(_):"",this.placeholder=this.getAttribute("placeholder")||"",this.name=this.getAttribute("name")||null,this.#K=this.getAttribute("units")||"";let q=this.getAttribute("units-disallow");if(this.#R=this.#M(q===null?N0.#H:q),this.#C(),this.#X=this.getAttribute("unit-position")||"suffix",this.#A=this.#e(this.hasAttribute("precision")?this.getAttribute("precision"):2),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 Q=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.input=this.#f(),this.#x(),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.#I(Q),this.hasAttribute("disabled")){let Z=this.getAttribute("disabled");this.disabled=this.input.disabled=Z!=="false"}this.#T(),this.#w(),j0(this),this.addEventListener("pointerdown",this.#Z),this.removeEventListener("click",this.#L),this.addEventListener("click",this.#L),this.#y(),this.input.removeEventListener("change",this.#$),this.input.addEventListener("change",this.#$),this.input.removeEventListener("input",this.#J),this.input.addEventListener("input",this.#J),this.input.removeEventListener("focus",this.#W),this.input.addEventListener("focus",this.#W),this.input.removeEventListener("blur",this.#j),this.input.addEventListener("blur",this.#j),this.input.removeEventListener("keydown",this.#N),this.input.addEventListener("keydown",this.#N)}disconnectedCallback(){if(this.input)this.input.removeEventListener("change",this.#$),this.input.removeEventListener("input",this.#J),this.input.removeEventListener("focus",this.#W),this.input.removeEventListener("blur",this.#j),this.input.removeEventListener("keydown",this.#N);if(this.removeEventListener("click",this.#L),this.removeEventListener("pointerdown",this.#Z),window.removeEventListener("pointermove",this.#q),window.removeEventListener("pointerup",this.#_),window.removeEventListener("blur",this.#Q),this.#O?.disconnect(),this.#O=null,this.#F)cancelAnimationFrame(this.#F),this.#F=0}focus(){this.input.focus()}#f(){let _=this.querySelector("input");if(_)return _;let q=document.createElement("input");if(q.type="text",q.inputMode="decimal",q.setAttribute("data-generated","input-control"),this.name)q.name=this.name;return q.placeholder=this.placeholder,q.value=this.#V(this.value),this.insertBefore(q,this.querySelector('[slot="append"]')),q}#E(_){let q=_.target?.closest?.("[slot]");if(!q||q.parentElement!==this)return;this.focus()}#y(){this.#O?.disconnect(),this.#O=new MutationObserver(()=>this.#g()),this.#O.observe(this,{childList:!0,characterData:!0,subtree:!0})}#g(){if(this.#F)return;this.#F=requestAnimationFrame(()=>{if(this.#F=0,!this.isConnected)return;this.#v()})}#v(){if(!this.input||!this.contains(this.input))this.input=this.#f(),this.input.addEventListener("change",this.#$),this.input.addEventListener("input",this.#J),this.input.addEventListener("focus",this.#W),this.input.addEventListener("blur",this.#j),this.input.addEventListener("keydown",this.#N);let _=this.hasAttribute("steppers")&&this.getAttribute("steppers")!=="false";if(this.#Y&&!this.contains(this.#Y))this.#Y=null;this.#I(_),this.#x(),this.#w(),j0(this)}#x(){if(!this.input)return;this.#z.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.input.removeAttribute(_);else this.input.setAttribute(_,q)})}#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.#V(this.value));else this.input.removeAttribute("aria-valuenow"),this.input.removeAttribute("aria-valuetext")}#h(_){if(!_)return"";if(!this.#G){let Z=_.replace(/[^\d.-]/g,""),$=Z.split(".");if($.length>2)Z=$[0]+"."+$.slice(1).join("");return Z}let q=_.replace(this.#G,"").trim();q=q.replace(/[^\d.-]/g,"");let Q=q.split(".");if(Q.length>2)q=Q[0]+"."+Q.slice(1).join("");return q}#V(_){if(_===""||_===null||_===void 0)return"";let q=Number(_)*(this.transform||1);if(isNaN(q))return"";if(q=this.#n(q),!this.#G)return q.toString();if(this.#X==="prefix")return this.#G+q;else return q+this.#G}#b(_){if(_===""||_===null||_===void 0)return"";let q=Number(_)*(this.transform||1);return q=this.#n(q),q.toString()}#m(_){this.#B=!0,setTimeout(()=>{let q=_.target.value;if(q&&this.#G)if(this.#X==="prefix")_.target.setSelectionRange(this.#G.length,q.length);else{let Q=q.indexOf(this.#G);if(Q>-1)_.target.setSelectionRange(0,Q)}},0)}#s(_){this.#B=!1;let q=this.#h(_.target.value);if(q!==""){let Q=Number(q)/(this.transform||1);Q=this.#d(Q,!1),this.value=Q,_.target.value=this.#V(this.value)}else this.value="",_.target.value="";this.#T(),this.#w()}#i(_){if(this.disabled)return;if(_.key!=="ArrowUp"&&_.key!=="ArrowDown")return;_.preventDefault();let q=this.step||1,Q=_.shiftKey?10:1,Z=q*Q*(_.key==="ArrowUp"?1:-1),$=this.#h(this.input.value),J=($!==""?Number($)/(this.transform||1):0)+Z;J=this.#d(J,!1),this.value=J,this.input.value=this.#V(this.value),this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#a(_){let q=this.#h(_.target.value);if(q!=="")this.value=Number(q)/(this.transform||1);else this.value="";this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#u(_){_.stopPropagation();let q=this.#h(_.target.value);if(q!==""){let Q=Number(q)/(this.transform||1);Q=this.#d(Q,!1),this.value=Q,_.target.value=this.#V(this.value)}else this.value="",_.target.value="";this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#t(_){if(this.disabled)return;if(_.buttons===0){this.#c();return}let q=(this.step||1)*_.movementX,Q=this.#h(this.input.value),Z=Number(Q)/(this.transform||1)+q;Z=this.#d(Z,!1),this.value=Z,this.input.value=this.#V(this.value),this.#T(),this.#w(),this.dispatchEvent(new CustomEvent("input",{detail:this.value,bubbles:!0}))}#p(_){if(this.disabled)return;if(_.altKey||_.target.closest("[slot]"))this.#B=!0,this.#P=this.style.userSelect,this.#k=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.#q),window.addEventListener("pointerup",this.#_),window.addEventListener("pointercancel",this.#_),window.addEventListener("blur",this.#Q)}#c(_){let q=this.#B;if(this.#B=!1,this.input.style.cursor="",this.style.cursor="",document.body.style.cursor=this.#k,this.style.userSelect=this.#P,window.removeEventListener("pointermove",this.#q),window.removeEventListener("pointerup",this.#_),window.removeEventListener("pointercancel",this.#_),window.removeEventListener("blur",this.#Q),q)this.dispatchEvent(new CustomEvent("change",{detail:this.value,bubbles:!0}))}#d(_,q=!0){let Q=Number(_);if(isNaN(Q))return"";if(typeof this.min==="number")Q=Math.max(this.min,Q);if(typeof this.max==="number")Q=Math.min(this.max,Q);return Q=this.#n(Q),Q}#n(_){let q=this.#A??2,Q=Math.pow(10,q),Z=Math.round(_*Q)/Q;return Number.isInteger(Z)?Z:parseFloat(Z.toFixed(q))}#e(_){let q=Number(_);if(!Number.isFinite(q))return 2;return Math.max(0,Math.min(100,Math.trunc(q)))}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(_,q,Q){if(this.input)switch(_){case"disabled":this.disabled=this.input.disabled=Q!==null&&Q!=="false",this.#T();break;case"units":this.#K=Q||"",this.#C(),this.input.value=this.#V(this.value),this.#w();break;case"units-disallow":this.#R=this.#M(Q===null?N0.#H:Q),this.#C(),this.input.value=this.#V(this.value),this.#w();break;case"unit-position":this.#X=Q||"suffix",this.input.value=this.#V(this.value),this.#w();break;case"transform":this.transform=Number(Q)||1,this.input.value=this.#V(this.value),this.#w();break;case"value":if(this.#B)break;let Z=Q!==null&&Q!==""?Number(Q):"";if(Z!=="")Z=this.#d(Z,!1);this.value=Z,this.input.value=this.#V(this.value),this.#T(),this.#w();break;case"min":case"max":case"step":if(Q===null||Q===""){this[_]=void 0,this.#T(),this.#w();break}this[_]=Number(Q),this.#T(),this.#w();break;case"steppers":{let $=Q!==null&&Q!=="false";this.#I($);break}case"precision":this.#A=this.#e(Q!==null?Q:2),this.input.value=this.#V(this.value),this.#w();break;case"name":if(this[_]=this.input[_]=Q||"",Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"placeholder":this.placeholder=Q??"",this.input.placeholder=this.placeholder;break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#x();break;default:this[_]=this.input[_]=Q;break}}}M("fig-input-number",N0);class a0 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 q=this.querySelector(":scope > img")||document.createElement("img");if(q.src=_,q.alt=this.name||"",!q.isConnected)this.replaceChildren(q);this.img=q}getInitials(_){return _?_.split(" ").map((q)=>q[0]).join(""):""}static get observedAttributes(){return["src","href","name"]}attributeChangedCallback(_,q,Q){if(this[_]=Q,_==="name"){if(this.img)this.img.alt=Q||"";this.name=Q,this.initials=this.getInitials(this.name),this.setAttribute("initials",this.initials)}else if(_==="src")this.src=Q,this.setSrc(this.src)}}M("fig-avatar",a0);class n0 extends HTMLElement{#q=!1;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;constructor(){super();this.#Q=this.#U.bind(this),this.#Z=this.focus.bind(this),this.#$=this.#L.bind(this),this.#J=this.#G.bind(this)}static get observedAttributes(){return["label"]}connectedCallback(){queueMicrotask(()=>{if(!this.isConnected)return;this.#N(),this.#j()})}#j(){if(this.#W||typeof MutationObserver>"u")return;this.#W=new MutationObserver(()=>{this.#N()}),this.#W.observe(this,{childList:!0})}#N(){let _=this.label,q=this.#_;_?.removeEventListener("click",this.#Q),_?.removeEventListener("click",this.#Z),_?.removeEventListener("pointerenter",this.#$),_?.removeEventListener("pointerleave",this.#J),q?.removeEventListener("click",this.#Q),this.label=this.querySelector(":scope>label"),this.input=Array.from(this.childNodes).find(($)=>$.nodeType===Node.ELEMENT_NODE&&$.nodeName.toLowerCase().startsWith("fig-")&&!($ instanceof Element&&$.classList.contains("fig-field-chevron")));let Q=this.input?.localName??"",Z=Q==="fig-select"||Q==="fig-menu"||Q==="fig-dropdown"||Q==="fig-tooltip"||this.input instanceof HTMLDialogElement;if(this.#q=!!(this.input&&("open"in this.input)&&!Z),this.#q&&this.label){if(!this.#_||!this.#_.isConnected)this.#_=b("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.#Z)}}if(this.input&&this.label&&!this.#q)this.#K();if(this.label)this.label.removeEventListener("pointerenter",this.#$),this.label.addEventListener("pointerenter",this.#$),this.label.removeEventListener("pointerleave",this.#J),this.label.addEventListener("pointerleave",this.#J)}disconnectedCallback(){if(this.#W?.disconnect(),this.#W=null,this.label)z.hide(this.label);if(this.label&&this.#Q)this.label.removeEventListener("click",this.#Q);if(this.label&&this.#Z)this.label.removeEventListener("click",this.#Z);if(this.label&&this.#$)this.label.removeEventListener("pointerenter",this.#$);if(this.label&&this.#J)this.label.removeEventListener("pointerleave",this.#J);if(this.#_&&this.#Q)this.#_.removeEventListener("click",this.#Q)}#U(_){if(_.preventDefault(),_.stopPropagation(),this.input&&typeof this.input.open<"u")this.input.open=!this.input.open}#L(){if(!this.label||this.label.scrollWidth<=this.label.clientWidth)return;z.show(this.label,this.label.textContent.trim())}#G(){if(this.label)z.hide(this.label)}#K(){if(!this.input||!this.label)return;let _=this.label.getAttribute("id")||m();this.label.setAttribute("id",_);let q=this.input.querySelectorAll("input, select, textarea");if(q.length===1){let Q=q[0],Z=Q.getAttribute("id")||m();if(Q.setAttribute("id",Z),this.label.setAttribute("for",Z),this.input.getAttribute("aria-labelledby")===_)this.input.removeAttribute("aria-labelledby");if(!Q.hasAttribute("aria-labelledby"))Q.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(_,q,Q){switch(_){case"label":if(this.label)this.label.textContent=Q,this.#K();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()}}M("fig-field",n0);class e0 extends HTMLElement{rgba;hex;#q=100;#_;#Q;#Z;#$;#J=!1;#W=!1;#j=null;#N=this.#I.bind(this);#U=this.#T.bind(this);#L=this.#S.bind(this);#G=this.#w.bind(this);#K=this.#E.bind(this);#R=this.#g.bind(this);#X=this.#y.bind(this);#A=this.#h.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(_))}#B(){let _={};for(let{name:q,value:Q}of this.attributes)if(q.startsWith("picker-")&&q!=="picker-anchor"&&q!=="picker-experimental"){let Z=q.slice(7);if(/^on/i.test(Z))continue;_[Z]=Q}if(!_["dialog-position"])_["dialog-position"]="left";return _}#Y(){let _=this.#B();return Object.entries(_).map(([q,Q])=>`${q}="${Q}"`).join(" ")}connectedCallback(){if(this.#O()){this.#F();return}this.#z()}disconnectedCallback(){this.#P()}#O(){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.#Z=this.querySelector("fig-input-text:not([type=number])"),this.#$=this.querySelector("fig-input-number"),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$)this.#$.setAttribute("value",String(this.#q));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",String(this.rgba.a));this.#x(),this.#k()}#P(){if(this.#_)this.#_.removeEventListener("pointerdown",this.#N,{capture:!0}),this.#_.removeEventListener("click",this.#U,{capture:!0}),this.#_.querySelector('input[type="color"]')?.removeEventListener("keydown",this.#L),this.#_.removeEventListener("input",this.#G);this.#Z?.removeEventListener("input",this.#K),this.#Z?.removeEventListener("change",this.#R),this.#$?.removeEventListener("input",this.#X),this.#$?.removeEventListener("change",this.#R),this.#Q?.removeEventListener("input",this.#A),this.#Q?.removeEventListener("change",this.#R)}#k(){if(this.#_){this.#_.disabled=k(this,"disabled");let _=this.#_.querySelector('input[type="color"]');if(this.#Z||this.hasAttribute("swatch-disabled"))_?.setAttribute("tabindex","-1");if(this.hasAttribute("swatch-disabled")){if(_?.setAttribute("disabled",""),_)_.style.pointerEvents="none"}this.#_.addEventListener("pointerdown",this.#N,{capture:!0}),this.#_.addEventListener("click",this.#U,{capture:!0}),_?.addEventListener("keydown",this.#L),this.#_.addEventListener("input",this.#G)}if(this.#Z)this.#Z.addEventListener("input",this.#K),this.#Z.addEventListener("change",this.#R);if(this.#$)this.#$.addEventListener("input",this.#X),this.#$.addEventListener("change",this.#R);if(this.#Q)this.#Q.addEventListener("input",this.#A),this.#Q.addEventListener("change",this.#R)}#z(){this.#f(this.getAttribute("value"));let _=this.getAttribute("alpha")!=="false",q=this.#s,Q=this.getAttribute("text")!=="false",Z=X("fig-swatch",{background:this.hexOpaque,alpha:this.rgba.a,disabled:q});if(Q){let $=X("div",{className:"input-combo"},[Z,X("fig-input-text",{type:"text",placeholder:"000000",value:this.hexOpaque.slice(1).toUpperCase(),disabled:q})]);if(_)$.appendChild(X("fig-tooltip",{text:"Opacity"},X("fig-input-number",{placeholder:"##",min:"0",max:"100",value:this.#q,units:"%",disabled:q})));this.replaceChildren($)}else this.replaceChildren(Z);if(this.#_=Z,this.#Q=this.querySelector("fig-fill-picker"),this.#Z=this.querySelector("fig-input-text:not([type=number])"),this.#$=this.querySelector("fig-input-number"),this.#x(),this.#Z){let $=this.rgbAlphaToHex(this.rgba,1);if(this.#Z.value=$.slice(1).toUpperCase(),this.#_)this.#_.background=$}this.#k()}#H(){if(!this.#Q)return;for(let[_,q]of Object.entries(this.#B()))this.#Q.setAttribute(_,q);if(this.#Q.setAttribute("mode","solid"),this.getAttribute("alpha")!=="false")this.#Q.removeAttribute("alpha");else this.#Q.setAttribute("alpha","false");if(k(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.#q}))}#M(){if(!o())return null;if(this.#Q?.isConnected)return this.#H(),this.#Q;let _=document.createElement("fig-fill-picker");return _.appendChild(X("span",{hidden:!0})),_.addEventListener("input",this.#A),_.addEventListener("change",this.#R),this.appendChild(_),this.#Q=_,this.#H(),_}#D(){if(k(this,"disabled")||k(this,"swatch-disabled"))return!1;let _=this.#M();if(!_)return!1;return requestAnimationFrame(()=>_.open?.()),!0}#C(_){_.preventDefault(),_.stopPropagation(),_.stopImmediatePropagation?.()}#I(_){if(!o())return;if(k(this,"disabled")||k(this,"swatch-disabled"))return;if(this.#W=!0,this.#J=!0,this.#j)clearTimeout(this.#j);this.#j=setTimeout(()=>{this.#J=!1,this.#W=!1,this.#j=null},500),this.#C(_)}#T(_){if(!this.#J)return;if(this.#J=!1,this.#j)clearTimeout(this.#j),this.#j=null;if(this.#C(_),this.#W)this.#W=!1,this.#D()}#S(_){if(_.key!=="Enter"&&_.key!==" ")return;if(!o())return;if(!this.#D())return;this.#C(_)}#f(_){let q=typeof _==="string"&&_.trim()?_.trim():"#D9D9D9",Q=this.convertToRGBA(q);if(!Q||!Number.isFinite(Q.r)||!Number.isFinite(Q.g)||!Number.isFinite(Q.b)||!Number.isFinite(Q.a))q="#D9D9D9",Q={r:217,g:217,b:217,a:1};this.rgba=Q,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.#q=q.length>7?(this.rgba.a*100).toFixed(0):100,this.style.setProperty("--alpha",this.rgba.a)}#E(_){_.stopPropagation();let q=_.target.value.replace(/#/g,"");if(this.#f("#"+q),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$)this.#$.setAttribute("value",this.#q);if(this.#_)this.#_.setAttribute("background",this.hexOpaque);this.#V()}#y(_){_.stopPropagation();let q=Number(_.target.value)||0,Z=Math.round(q/100*255).toString(16).padStart(2,"0");if(this.#f(this.hexOpaque+Z),this.#_)this.#_.setAttribute("alpha",this.rgba.a);if(this.#Q)this.#Q.setAttribute("value",JSON.stringify({type:"solid",color:this.hexOpaque,opacity:this.#q}));this.#V()}#g(_){_.stopPropagation(),this.#b()}focus(){if(this.#Z){this.#Z.focus();return}this.#_?.focus()}#v(){return this.getAttribute("aria-label")||"Color"}#x(){if(!this.hasAttribute("role"))this.setAttribute("role","group");if(this.#s)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");let _=this.getAttribute("aria-describedby"),q=this.getAttribute("aria-invalid"),Q=this.getAttribute("aria-required"),Z=this.getAttribute("aria-labelledby"),$=this.#v();if(this.#Z){if(this.#Z.setAttribute("aria-label",`${$} hex color`),_)this.#Z.setAttribute("aria-describedby",_);else this.#Z.removeAttribute("aria-describedby");if(q)this.#Z.setAttribute("aria-invalid",q);else this.#Z.removeAttribute("aria-invalid");if(Q)this.#Z.setAttribute("aria-required",Q);else this.#Z.removeAttribute("aria-required")}if(this.#$){if(this.#$.setAttribute("aria-label",`${$} opacity`),_)this.#$.setAttribute("aria-describedby",_);else this.#$.removeAttribute("aria-describedby");if(q)this.#$.setAttribute("aria-invalid",q);else this.#$.removeAttribute("aria-invalid");if(Q)this.#$.setAttribute("aria-required",Q);else this.#$.removeAttribute("aria-required")}if(!this.#Z){let J=this.#_?.querySelector('input[type="color"]');if(!J)return;if(Z)J.setAttribute("aria-labelledby",Z),J.removeAttribute("aria-label");else J.setAttribute("aria-label",$),J.removeAttribute("aria-labelledby");if(_)J.setAttribute("aria-describedby",_);else J.removeAttribute("aria-describedby")}}#w(_){if(_.stopPropagation(),this.#f(_.target.value),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());this.#V()}#h(_){_.stopPropagation();let q=_.detail;if(q&&q.color){let Q=q.color;if(q.alpha!==void 0){let Z=Math.round(q.alpha*255).toString(16).padStart(2,"0");Q=q.color+Z}if(this.#f(Q),this.#Z)this.#Z.setAttribute("value",this.hexOpaque.slice(1).toUpperCase());if(this.#$&&q.alpha!==void 0)this.#$.setAttribute("value",Math.round(q.alpha*100));if(this.#_)this.#_.setAttribute("background",this.hexOpaque),this.#_.setAttribute("alpha",this.rgba.a);this.#V()}}#V(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:this.#m()}))}#b(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:this.#m()}))}#m(){return{value:this.value,hex:this.hex,rgba:this.rgba,...i(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(_,q,Q){if(q===Q)return;switch(_){case"value":if(this.#f(Q),this.#Z)this.#Z.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.#q}));if(this.#$)this.#$.setAttribute("value",this.#q);break;case"mode":this.#H();break;case"alpha":case"text":if(this.isConnected)this.#z();break;case"disabled":this.#i();break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#x();break}}get#s(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#i(){let _=this.#s;for(let q of[this.#_,this.#Z,this.#$]){if(!q)continue;if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}if(this.#x(),this.#Q)this.#H()}rgbAlphaToHex({r:_,g:q,b:Q},Z=1){_=Math.max(0,Math.min(255,Math.round(_))),q=Math.max(0,Math.min(255,Math.round(q))),Q=Math.max(0,Math.min(255,Math.round(Q))),Z=Math.max(0,Math.min(1,Z));let $=_.toString(16).padStart(2,"0"),J=q.toString(16).padStart(2,"0"),j=Q.toString(16).padStart(2,"0");if(Z===1)return`#${$}${J}${j}`.toUpperCase();let W=Math.round(Z*255).toString(16).padStart(2,"0");return`#${$}${J}${j}${W}`.toUpperCase()}convertToRGBA(_){if(typeof _!=="string")return null;let q,Q,Z,$=1;if(_.startsWith("#")){let J=_.slice(1);if(J.length===8)$=parseInt(J.slice(6),16)/255,J=J.slice(0,6);q=parseInt(J.slice(0,2),16),Q=parseInt(J.slice(2,4),16),Z=parseInt(J.slice(4,6),16)}else if(_.startsWith("rgba")||_.startsWith("rgb")){let J=_.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)/);if(J)q=parseInt(J[1]),Q=parseInt(J[2]),Z=parseInt(J[3]),$=J[4]?parseFloat(J[4]):1}else if(_.startsWith("hsla")||_.startsWith("hsl")){let J=_.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*(\d+(?:\.\d+)?))?\)/);if(J){let j=parseInt(J[1])/360,N=parseInt(J[2])/100,W=parseInt(J[3])/100;if($=J[4]?parseFloat(J[4]):1,N===0)q=Q=Z=W;else{let G=(L,A,Y)=>{if(Y<0)Y+=1;if(Y>1)Y-=1;if(Y<0.16666666666666666)return L+(A-L)*6*Y;if(Y<0.5)return A;if(Y<0.6666666666666666)return L+(A-L)*(0.6666666666666666-Y)*6;return L},K=W<0.5?W*(1+N):W+N-W*N,U=2*W-K;q=G(U,K,j+0.3333333333333333),Q=G(U,K,j),Z=G(U,K,j-0.3333333333333333)}q=Math.round(q*255),Q=Math.round(Q*255),Z=Math.round(Z*255)}}else return null;return{r:q,g:Q,b:Z,a:$}}}M("fig-input-color",e0);var i_=["srgb","srgb-linear","display-p3","oklab","oklch","hsl"],r_=["shorter","longer","increasing","decreasing"],__=new Set(["oklch","hsl"]);function q0(_){let q={..._??{}},Q=String(q.interpolationSpace??"srgb").toLowerCase();if(!i_.includes(Q))Q="srgb";q.interpolationSpace=Q;let Z=String(q.hueInterpolation??"shorter").toLowerCase();return q.hueInterpolation=r_.includes(Z)?Z:"shorter",q}function q_(_){let q=q0(_),Q={...q,interpolationSpace:q.interpolationSpace};if(__.has(q.interpolationSpace))Q.hueInterpolation=q.hueInterpolation;else delete Q.hueInterpolation;return Q}function Q_(_){let q=q0(_);if(q.interpolationSpace==="srgb")return"";if(__.has(q.interpolationSpace))return`in ${q.interpolationSpace} ${q.hueInterpolation} hue`;return`in ${q.interpolationSpace}`}function l(_){let q=_.replace(/^#/,"");return{r:parseInt(q.substring(0,2),16),g:parseInt(q.substring(2,4),16),b:parseInt(q.substring(4,6),16)}}function p(_){let q=_/255;return q<=0.04045?q/12.92:Math.pow((q+0.055)/1.055,2.4)}function r(_){let q=_<=0.0031308?12.92*_:1.055*Math.pow(_,0.4166666666666667)-0.055;return Math.round(Math.max(0,Math.min(1,q))*255)}function J0(_,q,Q){let Z=p(_),$=p(q),J=p(Q),j=Math.cbrt(0.4122214708*Z+0.5363325363*$+0.0514459929*J),N=Math.cbrt(0.2119034982*Z+0.6806995451*$+0.1073969566*J),W=Math.cbrt(0.0883024619*Z+0.2817188376*$+0.6299787005*J);return{l:0.2104542553*j+0.793617785*N-0.0040720468*W,a:1.9779984951*j-2.428592205*N+0.4505937099*W,b:0.0259040371*j+0.7827717662*N-0.808675766*W}}function f0(_,q,Q){let Z=_+0.3963377774*q+0.2158037573*Q,$=_-0.1055613458*q-0.0638541728*Q,J=_-0.0894841775*q-1.291485548*Q,j=Z*Z*Z,N=$*$*$,W=J*J*J;return{r:r(4.0767416621*j-3.3077115913*N+0.2309699292*W),g:r(-1.2684380046*j+2.6097574011*N-0.3413193965*W),b:r(-0.0041960863*j-0.7034186147*N+1.707614701*W)}}function I0(_,q,Q){return{l:_,c:Math.sqrt(q*q+Q*Q),h:Math.atan2(Q,q)*180/Math.PI}}function l_(_,q,Q){let Z=Q*Math.PI/180;return{l:_,a:q*Math.cos(Z),b:q*Math.sin(Z)}}function C0(_,q,Q,Z){let $=(_%360+360)%360,j=(q%360+360)%360-$;switch(Z){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*Q)%360+360)%360}function t_(_,q,Q,Z){let $=[..._].sort((H,F)=>H.position-F.position),J=q*100;if($.length===0)return"#888888";if(J<=$[0].position)return $[0].color;if(J>=$[$.length-1].position)return $[$.length-1].color;let j=0;while(j<$.length-1&&$[j+1].position<J)j++;let N=$[j],W=$[j+1],G=W.position-N.position,K=G>0?(J-N.position)/G:0,U=l(N.color),L=l(W.color),A,Y,O,D=Q||"oklab";if(D==="srgb-linear"){let H=p(U.r),F=p(U.g),B=p(U.b),S=p(L.r),f=p(L.g),I=p(L.b);A=r(H+(S-H)*K),Y=r(F+(f-F)*K),O=r(B+(I-B)*K)}else if(D==="oklch"){let H=J0(U.r,U.g,U.b),F=J0(L.r,L.g,L.b),B=I0(H.l,H.a,H.b),S=I0(F.l,F.a,F.b),f=B.l+(S.l-B.l)*K,I=B.c+(S.c-B.c)*K,x=C0(B.h,S.h,K,Z||"shorter"),y=l_(f,I,x),u=f0(y.l,y.a,y.b);A=u.r,Y=u.g,O=u.b}else if(D==="hsl"){let H=V0(U.r,U.g,U.b),F=V0(L.r,L.g,L.b),B=C0(H.h,F.h,K,Z||"shorter"),S=H.s+(F.s-H.s)*K,f=H.l+(F.l-H.l)*K,I=a_(B,S,f);A=I[0],Y=I[1],O=I[2]}else if(D==="srgb")A=Math.round(U.r+(L.r-U.r)*K),Y=Math.round(U.g+(L.g-U.g)*K),O=Math.round(U.b+(L.b-U.b)*K);else{let H=J0(U.r,U.g,U.b),F=J0(L.r,L.g,L.b),B=H.l+(F.l-H.l)*K,S=H.a+(F.a-H.a)*K,f=H.b+(F.b-H.b)*K,I=f0(B,S,f);A=I.r,Y=I.g,O=I.b}return`#${A.toString(16).padStart(2,"0")}${Y.toString(16).padStart(2,"0")}${O.toString(16).padStart(2,"0")}`.toUpperCase()}function V0(_,q,Q){let Z=_/255,$=q/255,J=Q/255,j=Math.max(Z,$,J),N=Math.min(Z,$,J),W=(j+N)/2;if(j===N)return{h:0,s:0,l:W*100};let G=j-N,K=W>0.5?G/(2-j-N):G/(j+N),U;switch(j){case Z:U=(($-J)/G+($<J?6:0))/6;break;case $:U=((J-Z)/G+2)/6;break;default:U=((Z-$)/G+4)/6;break}return{h:U*360,s:K*100,l:W*100}}function a_(_,q,Q){q/=100,Q/=100;let Z=(1-Math.abs(2*Q-1))*q,$=Z*(1-Math.abs(_/60%2-1)),J=Q-Z/2,j,N,W;if(_<60)j=Z,N=$,W=0;else if(_<120)j=$,N=Z,W=0;else if(_<180)j=0,N=Z,W=$;else if(_<240)j=0,N=$,W=Z;else if(_<300)j=$,N=0,W=Z;else j=Z,N=0,W=$;return[Math.round((j+J)*255),Math.round((N+J)*255),Math.round((W+J)*255)]}class Z_ extends HTMLElement{#q="solid";#_;#Q;#Z;#$={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}]};#W={url:null,scaleMode:"fill",scale:50,opacity:1};#j={url:null,scaleMode:"fill",opacity:1};#N={snapshot:null,opacity:1};constructor(){super()}static get observedAttributes(){return["value","disabled","mode","alpha","aria-label","aria-describedby","aria-invalid","aria-required"]}connectedCallback(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#U(),this.#O()}disconnectedCallback(){this.#_=null,this.#Q=null,this.#Z=null}#U(){let _=this.getAttribute("value");if(!_)return;try{let q=JSON.parse(_);if(q.type)this.#q=q.type;switch(this.#q){case"solid":if(q.color)this.#$.color=q.color;if(q.alpha!==void 0)this.#$.alpha=q.alpha;if(q.opacity!==void 0)this.#$.alpha=q.opacity/100;break;case"gradient":if(q.gradient)this.#J=q0({...this.#J,...q.gradient}),this.#J.opacity=this.#K(q.gradient.opacity??q.opacity??q.alpha,this.#J.opacity??1);else if(q.opacity!==void 0||q.alpha!==void 0)this.#J.opacity=this.#K(q.opacity??q.alpha,this.#J.opacity??1);break;case"image":if(q.image)this.#W={...this.#W,...q.image};break;case"video":if(q.video)this.#j={...this.#j,...q.video};break;case"webcam":if(q.webcam)this.#N={...this.#N,...q.webcam};if(q.opacity!==void 0)this.#N.opacity=q.opacity;break}}catch(q){if(_.startsWith("#")){if(this.#q="solid",this.#$.color=_.slice(0,7),_.length>7){let Q=_.slice(7,9);this.#$.alpha=parseInt(Q,16)/255}}}}#L(){let _={},q=this.getAttribute("mode");if(q)_.mode=q;let Q=this.getAttribute("alpha");if(Q)_.alpha=Q;for(let{name:Z,value:$}of this.attributes)if(Z.startsWith("picker-")&&Z!=="picker-anchor"&&Z!=="picker-experimental"){let J=Z.slice(7);if(/^on/i.test(J))continue;_[J]=$}if(!_["dialog-position"])_["dialog-position"]="left";return _}#G(){switch(this.#q){case"solid":return this.#$.color;case"gradient":{let q=[...this.#J.stops].sort(($,J)=>$.position-J.position).map(($)=>{let J=($.opacity??100)/100;if(J>=1)return`${$.color} ${$.position}%`;let{r:j,g:N,b:W}=l($.color);return`rgba(${j}, ${N}, ${W}, ${J}) ${$.position}%`}).join(", "),Q=Q_(this.#J),Z=Q?` ${Q}`:"";switch(this.#J.type){case"radial":return`radial-gradient(circle${Z}, ${q})`;case"angular":return`conic-gradient(from ${this.#J.angle}deg${Z}, ${q})`;default:return`linear-gradient(${this.#J.angle}deg${Z}, ${q})`}}case"image":return this.#W.url?`url(${this.#W.url})`:"#D9D9D9";case"webcam":return this.#N.snapshot?`url(${this.#N.snapshot})`:"#D9D9D9";default:return"#D9D9D9"}}#K(_,q=1){if(_===void 0||_===null||_==="")return q;let Q=Number(_);if(!Number.isFinite(Q))return q;if(Q>1)return Math.max(0,Math.min(1,Q/100));return Math.max(0,Math.min(1,Q))}#R(){switch(this.#q){case"solid":return this.#$.alpha;case"gradient":return this.#J.opacity??1;case"image":return this.#W.opacity??1;case"video":return this.#j.opacity??1;case"webcam":return this.#N.opacity??1;default:return 1}}#X(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";this.setAttribute("aria-disabled",_?"true":"false");for(let q of[this.#_,this.#Q,this.#Z]){if(!q)continue;if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}}#A(){if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#X();let _=this.getAttribute("aria-label")||"Fill",q=this.getAttribute("aria-describedby"),Q=this.getAttribute("aria-invalid"),Z=this.getAttribute("aria-required"),$=(J,j)=>{if(!J)return;if(J.setAttribute("aria-label",j),q)J.setAttribute("aria-describedby",q);else J.removeAttribute("aria-describedby");if(Q)J.setAttribute("aria-invalid",Q);else J.removeAttribute("aria-invalid");if(Z)J.setAttribute("aria-required",Z);else J.removeAttribute("aria-required")};$(this.#_,`${_} picker`),$(this.#Z,`${_} hex color`),$(this.#Q,`${_} opacity`)}#B(_,q){if(this.getAttribute("alpha")==="false")return null;return X("fig-tooltip",{text:"Opacity"},X("fig-input-number",{className:"fig-input-fill-opacity",placeholder:"##",min:"0",max:"100",value:_,units:"%",disabled:q}))}#Y(_){let q=null,Q=1;switch(this.#q){case"solid":return[X("fig-input-text",{type:"text",className:"fig-input-fill-hex",placeholder:"000000",value:this.#$.color.slice(1).toUpperCase(),disabled:_}),this.#B(Math.round(this.#$.alpha*100),_)].filter(Boolean);case"gradient":q=this.#J.type.charAt(0).toUpperCase()+this.#J.type.slice(1),Q=this.#J.opacity??1;break;case"image":q="Image",Q=this.#W.opacity??1;break;case"video":q="Video",Q=this.#j.opacity??1;break;case"webcam":q="Webcam",Q=this.#N.opacity??1;break}return[X("label",{className:"fig-input-fill-label"},q),this.#B(Math.round(Q*100),_)].filter(Boolean)}#O(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=JSON.stringify(this.value),Q=this.#L(),Z=X("fig-swatch",{background:this.#G(),alpha:this.#R(),disabled:_}),$=X("fig-fill-picker",{value:q,disabled:_,...Q},Z),J=X("div",{className:"input-combo"},[$,this.#Y(_)]);this.replaceChildren(J),this.#F()}#F(){this.#_=this.querySelector("fig-fill-picker"),this.#Q=this.querySelector(".fig-input-fill-opacity"),this.#Z=this.querySelector(".fig-input-fill-hex");let _=this.querySelector(".fig-input-fill-label");if(this.#A(),_&&this.#_)_.addEventListener("click",()=>{let q=this.#_.querySelector("fig-swatch");if(q)q.click()});if(this.#_){let q=this.getAttribute("picker-anchor");if(!q||q==="self")this.#_.anchorElement=this;else{let Q=null;try{Q=document.querySelector(q)}catch{}if(Q)this.#_.anchorElement=Q}this.#_.addEventListener("input",(Q)=>{Q.stopPropagation();let Z=Q.detail;if(!Z)return;let $=Z.type,J=$!==this.#q;switch(this.#q=$,$){case"solid":this.#$.color=Z.color,this.#$.alpha=Z.alpha;break;case"gradient":if(Z.gradient)this.#J=q0({...this.#J,...Z.gradient});break;case"image":if(Z.image)this.#W=Z.image;break;case"video":if(Z.video)this.#j=Z.video;break;case"webcam":if(Z.image?.url)this.#N.snapshot=Z.image.url;break}if(J)this.#k();else this.#P();this.#M()}),this.#_.addEventListener("change",(Q)=>{Q.stopPropagation(),this.#D()})}if(this.#Z)this.#Z.addEventListener("input",(q)=>{q.stopPropagation();let Q="#"+q.target.value.replace("#","");this.#$.color=Q,this.#z(),this.#M()}),this.#Z.addEventListener("change",(q)=>{q.stopPropagation(),this.#D()});if(this.#Q)this.#Q.addEventListener("input",(q)=>{q.stopPropagation();let Q=parseFloat(q.target.value),$=(isNaN(Q)?100:Q)/100;switch(this.#q){case"solid":this.#$.alpha=$;break;case"gradient":this.#J.opacity=$;break;case"image":this.#W.opacity=$;break;case"video":this.#j.opacity=$;break;case"webcam":this.#N.opacity=$;break}this.#z(),this.#H($),this.#M()}),this.#Q.addEventListener("change",(q)=>{q.stopPropagation(),this.#D()})}#P(){switch(this.#q){case"solid":if(this.#Z)this.#Z.setAttribute("value",this.#$.color.slice(1).toUpperCase());if(this.#Q)this.#Q.setAttribute("value",Math.round(this.#$.alpha*100));break;case"gradient":{let _=this.querySelector(".fig-input-fill-label");if(_){let q=this.#J.type.charAt(0).toUpperCase()+this.#J.type.slice(1);_.textContent=q}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.#W.opacity??1)*100));break;case"video":if(this.#Q)this.#Q.setAttribute("value",Math.round((this.#j.opacity??1)*100));break;case"webcam":if(this.#Q)this.#Q.setAttribute("value",Math.round((this.#N.opacity??1)*100));break}}#k(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=this.querySelector(".input-combo");if(!q)return;let Q=q.querySelector(".fig-input-fill-label"),Z=q.querySelector(".fig-input-fill-hex"),$=q.querySelector(".fig-input-fill-opacity"),J=q.querySelectorAll("fig-tooltip");Q?.remove(),Z?.remove(),J.forEach((N)=>N.remove()),q.append(...this.#Y(_)),this.#Q=this.querySelector(".fig-input-fill-opacity"),this.#Z=this.querySelector(".fig-input-fill-hex");let j=this.querySelector(".fig-input-fill-label");if(this.#A(),j&&this.#_)j.addEventListener("click",()=>{let N=this.#_.querySelector("fig-swatch");if(N)N.click()});if(this.#Z)this.#Z.addEventListener("input",(N)=>{N.stopPropagation();let W="#"+N.target.value.replace("#","");this.#$.color=W,this.#z(),this.#M()}),this.#Z.addEventListener("change",(N)=>{N.stopPropagation(),this.#D()});if(this.#Q)this.#Q.addEventListener("input",(N)=>{N.stopPropagation();let W=parseFloat(N.target.value),K=(isNaN(W)?100:W)/100;switch(this.#q){case"solid":this.#$.alpha=K;break;case"gradient":this.#J.opacity=K;break;case"image":this.#W.opacity=K;break;case"video":this.#j.opacity=K;break;case"webcam":this.#N.opacity=K;break}this.#z(),this.#H(K),this.#M()}),this.#Q.addEventListener("change",(N)=>{N.stopPropagation(),this.#D()})}#z(){if(this.#_)this.#_.setAttribute("value",JSON.stringify(this.value))}#H(_){if(this.#_){let q=this.#_.querySelector("fig-swatch");if(q)q.setAttribute("alpha",_)}}#M(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#D(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){switch(this.#q){case"solid":return{type:"solid",color:this.#$.color,alpha:this.#$.alpha,opacity:Math.round(this.#$.alpha*100)};case"gradient":return{type:"gradient",gradient:q_(this.#J)};case"image":return{type:"image",image:{...this.#W}};case"video":return{type:"video",video:{...this.#j}};case"webcam":return{type:"webcam",webcam:{...this.#N}};default:return{type:this.#q}}}set value(_){if(typeof _==="string")this.setAttribute("value",_);else this.setAttribute("value",JSON.stringify(_))}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"value":let Z=this.#q;if(this.#U(),this.#_)if(this.#q!==Z)this.#O();else this.#z(),this.#P();break;case"disabled":this.#X();break;case"mode":if(this.#_)if(Q)this.#_.setAttribute(_,Q);else this.#_.removeAttribute(_);break;case"alpha":if(this.isConnected)this.#O();break;case"aria-label":case"aria-describedby":case"aria-invalid":case"aria-required":this.#A();break}}}M("fig-input-fill",Z_);class $_ extends HTMLElement{#q=[];#_=[];#Q=[];#Z=null;#$=this.#U.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 q=this.open;if(_)this.setAttribute("open","");else this.removeAttribute("open");if(q!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}get#W(){return this.hasAttribute("fixed")&&this.getAttribute("fixed")!=="false"}get#j(){let _=parseInt(this.getAttribute("min"));return isNaN(_)?2:_}get#N(){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.#$),this.addEventListener("keydown",this.#$),this.#Z)cancelAnimationFrame(this.#Z);this.#Z=requestAnimationFrame(()=>{if(this.#Z=null,!this.isConnected)return;this.#L(),this.#G()})}disconnectedCallback(){if(this.#Z)cancelAnimationFrame(this.#Z),this.#Z=null;this.removeEventListener("keydown",this.#$),this.removeEventListener("focus",this.#J),this.#_=[],this.#Q=[]}#U(_){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(_,q,Q){if(q===Q)return;switch(_){case"value":this.#L(),this.#O();break;case"disabled":this.#F();break;case"min":case"max":case"fixed":this.#G();break;case"open":this.#P();break}}#L(){let _=this.getAttribute("value");if(!_){this.#q=[];return}let q=_.trim();try{let Q=JSON.parse(q);if(Array.isArray(Q)){this.#q=Q.map((Z)=>{if(typeof Z==="string")return{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1};if(Z&&typeof Z==="object")return{color:Z.color||"#D9D9D9",alpha:Z.alpha!==void 0?Z.alpha:Z.opacity!==void 0?Z.opacity/100:1};return{color:"#D9D9D9",alpha:1}});return}}catch(Q){}if(q.includes(",")){this.#q=q.split(",").map((Q)=>{let Z=Q.trim();return{color:Z.slice(0,7),alpha:Z.length>7?parseInt(Z.slice(7,9),16)/255:1}});return}if(q.startsWith("#")){this.#q=[{color:q.slice(0,7),alpha:q.length>7?parseInt(q.slice(7,9),16)/255:1}];return}this.#q=[]}get value(){return this.#q.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 q=document.createElement("div");q.className="palette-colors-inline",q.setAttribute("role","button"),q.setAttribute("tabindex",_?"-1":"+0"),q.setAttribute("aria-expanded",String(this.open)),q.setAttribute("aria-label","Edit palette colors"),q.addEventListener("blur",()=>{q.style.removeProperty("outline"),q.style.removeProperty("outline-offset")});let Q=()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.open=!0,q.setAttribute("aria-expanded","true")};q.addEventListener("click",Q);let Z=document.createElement("div");if(Z.className="palette-colors",this.#q.forEach((J,j)=>{Z.appendChild(this.#K(J,j,_,{inline:!0}))}),q.appendChild(Z),this.appendChild(q),this.#P(),!this.#W)this.#A(_,this);let $=document.createElement("div");$.className="palette-colors-expanded",this.#q.forEach((J,j)=>{if($.appendChild(this.#K(J,j,_)),!this.#W)$.appendChild(this.#R(j,_))}),this.appendChild($)}#K(_,q,Q,{inline:Z=!1}={}){let $=_.alpha<1?_.color+Math.round(_.alpha*255).toString(16).padStart(2,"0"):_.color,J=document.createElement("fig-input-color");if(J.setAttribute("value",$),Z)J.setAttribute("text","false"),J.setAttribute("alpha","true"),J.setAttribute("swatch-disabled","");else J.setAttribute("text","true"),J.setAttribute("alpha","true"),J.setAttribute("full","");if(Q)J.setAttribute("disabled","");let j=Z?this.#Q:this.#_,N=(W)=>{W.stopPropagation();let G=W.currentTarget;this.#q[q]={color:G.hexOpaque||this.#q[q].color,alpha:G.rgba?G.rgba.a:this.#q[q].alpha};let K=j[q];if(K){let U=this.#q[q],L=U.alpha<1?U.color+Math.round(U.alpha*255).toString(16).padStart(2,"0"):U.color;K.setAttribute("value",L)}};if(J.addEventListener("input",(W)=>{N(W),this.#z()}),J.addEventListener("change",(W)=>{N(W),this.#H()}),Z)this.#_.push(J);else this.#Q.push(J);return J}#R(_,q){let Q=document.createElement("fig-button");if(Q.setAttribute("variant","ghost"),Q.setAttribute("icon","true"),Q.setAttribute("aria-label","Remove color"),Q.className="palette-remove-btn",q||this.#q.length<=this.#j)Q.setAttribute("disabled","");Q.appendChild(b("minus")),Q.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;this.#X(_)});let Z=document.createElement("fig-tooltip");return Z.setAttribute("text","Remove color"),Z.appendChild(Q),Z}#X(_){if(this.#W)return;if(_<0||_>=this.#q.length)return;if(this.#q.length<=this.#j)return;this.#q.splice(_,1),this.#_=[],this.#Q=[],this.#G(),this.#H()}#A(_,q=this){let Q=this.#q.length>=this.#N,Z=document.createElement("fig-button");if(Z.setAttribute("variant","ghost"),Z.setAttribute("icon","true"),Z.setAttribute("aria-label","Add color"),Z.className="palette-add-btn",_||Q)Z.setAttribute("disabled","");Z.appendChild(b("add")),Z.addEventListener("click",()=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(this.#q.length>=this.#N)return;this.open=!0,this.#B({color:"#D9D9D9",alpha:1})});let $=document.createElement("fig-tooltip");$.setAttribute("text","Add color"),$.appendChild(Z),q.appendChild($)}#B(_){if(this.#W)return;this.#q.push(_);let q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Q=this.#q.length-1,Z=this.#K(_,Q,q,{inline:!0}),$=this.querySelector(".palette-colors");if($)$.appendChild(Z);let J=this.#K(_,Q,q),j=this.querySelector(".palette-colors-expanded");if(j)j.appendChild(J),j.appendChild(this.#R(Q,q));if(this.#q.length>=this.#N){let N=this.querySelector(".palette-add-btn");if(N)N.setAttribute("disabled","")}this.#k(q),this.#H()}#Y(_){let q=this.#q[_];if(!q)return;let Q=q.alpha<1?q.color+Math.round(q.alpha*255).toString(16).padStart(2,"0"):q.color,Z=this.#_[_];if(Z)Z.setAttribute("value",Q);let $=this.#Q[_];if($)$.setAttribute("value",Q)}#O(){if(this.#_.length!==this.#q.length){this.#G();return}this.#q.forEach((_,q)=>{this.#Y(q)})}#F(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";[...this.#_,...this.#Q].forEach((Q)=>{if(_)Q.setAttribute("disabled","");else Q.removeAttribute("disabled")});let q=this.querySelector(".palette-add-btn");if(q)if(_||this.#q.length>=this.#N)q.setAttribute("disabled","");else q.removeAttribute("disabled");this.#k(_),this.#P()}#P(){let _=this.querySelector(".palette-colors-inline");if(!_)return;let q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";_.setAttribute("tabindex",q?"-1":"+0"),_.setAttribute("aria-disabled",String(q)),_.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()}#k(_=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){let q=_||this.#q.length<=this.#j;this.querySelectorAll(".palette-remove-btn").forEach((Q)=>{if(q)Q.setAttribute("disabled","");else Q.removeAttribute("disabled")})}#z(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#H(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}}M("fig-input-palette",$_);class n extends HTMLElement{static SHIFT_SNAP=5;#q;#_;#Q=!1;#Z=null;#$=null;#J=null;#W=null;#j={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#N(){let _=this.getAttribute("edit");if(_==="false")return"false";if(_==="picker")return"picker";return"true"}get#U(){return this.#N==="true"}get#L(){return this.getAttribute("mode")==="tip"?"tip":"handle"}#G(){if(!this.#_)return null;return this.#_.querySelector("fig-handle:not(.fig-input-gradient-ghost):not([disabled])")}#K(){if(!this.#_)return null;let _=this.#_.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)");if(_)return _;let q=document.activeElement;if(!(q instanceof Element)||!this.#_.contains(q))return null;return q.closest("fig-handle:not(.fig-input-gradient-ghost)")}#R(_){if(!_||!this.#_)return;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q)=>{if(q!==_)q.deselect()}),_.select(),_.focus()}#X(){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"){this.setAttribute("tabindex","-1");return}this.setAttribute("tabindex",this.#U?"-1":"0")}#A(_){let q=q0(_);return{...q,type:["linear","radial","angular"].includes(q.type)?q.type:"linear",angle:Number.isFinite(Number(q.angle))?Number(q.angle):90,centerX:Number.isFinite(Number(q.centerX))?Number(q.centerX):50,centerY:Number.isFinite(Number(q.centerY))?Number(q.centerY):50}}connectedCallback(){if(this.#F(),this.#C(),this.#B(),this.removeEventListener("keydown",this.#O),this.addEventListener("keydown",this.#O),this.#U)document.addEventListener("keydown",this.#Y)}#B(){if(this.#N!=="picker"||o())return;this.#W??=customElements.whenDefined("fig-fill-picker").then(()=>{if(!this.isConnected||this.#N!=="picker")return;this.#C()})}disconnectedCallback(){if(document.removeEventListener("keydown",this.#Y),this.removeEventListener("keydown",this.#O),this.#$)this.#$.disconnect(),this.#$=null;if(this.#J!==null)cancelAnimationFrame(this.#J),this.#J=null;clearTimeout(this.#Z),this.removeEventListener("pointerenter",this.#y),this.removeEventListener("pointermove",this.#v),this.removeEventListener("pointerleave",this.#g),this.removeEventListener("click",this.#h),this.removeEventListener("dblclick",this.#w)}#Y=(_)=>{let q=document.activeElement,Q=q instanceof Node&&this.contains(q),Z=this.#_?.querySelector("fig-handle[selected]:not(.fig-input-gradient-ghost)"),$=!q||q===document.body||q===document.documentElement;if(!Q&&!(Z&&$))return;let J=q&&(q.tagName==="INPUT"||q.tagName==="TEXTAREA"||q.isContentEditable);if(!this.#_)return;if(_.key==="Tab"&&!J){let K=this.#K();if(!K)return;_.preventDefault();let U=[...this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")],L=U.indexOf(K),A=_.shiftKey?(L-1+U.length)%U.length:(L+1)%U.length;K.deselect(),this.#R(U[A]);return}if((_.key==="ArrowLeft"||_.key==="ArrowRight")&&!J){let K=this.#K();if(!K)return;let U=parseInt(K.dataset.stopIndex,10);if(isNaN(U)||!this.#j.stops[U])return;_.preventDefault();let L=(_.key==="ArrowRight"?1:-1)*(_.shiftKey?n.SHIFT_SNAP:1),A=this.#j.stops[U];A.position=Math.max(0,Math.min(100,A.position+L)),K.setAttribute("value",`${A.position}% 50%`);let Y=K.closest("fig-tooltip");if(Y)Y.text=`${Math.round(A.position)}%`,Y.setAttribute("show","true"),Y.showPopup(),K.hideColorTip(),clearTimeout(this.#Z),this.#Z=setTimeout(()=>{Y.removeAttribute("show"),K.showColorTip()},600);this.#u(),this.#p(),this.#c();return}if(_.key!=="Delete"&&_.key!=="Backspace")return;if(J)return;if(this.#j.stops.length<=2)return;let j=this.#K();if(!j)return;let N=parseInt(j.dataset.stopIndex,10);if(isNaN(N)||!this.#j.stops[N])return;_.preventDefault(),this.#j.stops.splice(N,1),this.#m(),this.#u(),this.#p(),this.#c();let W=Math.min(N,this.#j.stops.length-1),G=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[W];this.#R(G)};#O=(_)=>{if(this.#N!=="picker")return;if(_.key!=="Enter"&&_.key!==" ")return;if(_.altKey||_.ctrlKey||_.metaKey)return;if(k(this,"disabled"))return;let q=this.querySelector("fig-fill-picker");if(!q||typeof q.open!=="function")return;_.preventDefault(),q.open()};#F(){let _=this.getAttribute("value");if(!_)return;try{let q=JSON.parse(_);if(q?.type==="gradient"&&q.gradient){this.#j=this.#A({...this.#j,...q.gradient});return}if(q?.gradient)this.#j=this.#A({...this.#j,...q.gradient})}catch(q){}}#P(){let _=this.#A(this.#j),Q=[..._.stops].sort((J,j)=>J.position-j.position).map((J)=>{let j=(J.opacity??100)/100;if(j>=1)return`${J.color} ${J.position}%`;let{r:N,g:W,b:G}=l(J.color);return`rgba(${N}, ${W}, ${G}, ${j}) ${J.position}%`}).join(", "),Z=Q_(_);return`linear-gradient(to right${Z?` ${Z}`:""}, ${Q})`}#k(_){let q=(_.opacity??100)/100;if(q>=1)return _.color;let{r:Q,g:Z,b:$}=l(_.color);return`rgba(${Q}, ${Z}, ${$}, ${q})`}#z(){if(!this.#q)return;let _=this.getAttribute("size");if(_)this.#q.setAttribute("size",_);else this.#q.removeAttribute("size")}#H(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";return this.#j.stops.map((q,Q)=>X("fig-tooltip",{action:"manual",text:`${Math.round(q.position)}%`},X("fig-handle",{drag:!0,"drag-axes":"x","drag-surface":".fig-input-gradient-track",type:"color",tip:this.#L==="tip"?"color":null,color:this.#k(q),value:`${q.position}% 50%`,"hit-area":"4","data-stop-index":Q,disabled:_})))}#M=null;#D=!1;#C(){this.#$?.disconnect(),this.#$=null;let _=k(this,"disabled"),q=this.#N,Q=this.getAttribute("size"),Z=X("fig-swatch",{background:this.#P(),size:Q||null,disabled:_});if(q==="picker"&&o()){let j=JSON.stringify(this.value),N=X("fig-fill-picker",{mode:"gradient",value:j,disabled:_},Z);this.replaceChildren(N),this.#q=Z,this.#_=null,this.#I(),this.#X();return}let $=q==="true"||q==="picker",J=$?X("div",{className:"fig-input-gradient-track"},this.#H()):null;if(this.replaceChildren(...J?[Z,J]:[Z]),this.#q=Z,this.#_=J,$)this.#S(),this.#t();this.#X()}#I(){let _=this.querySelector("fig-fill-picker");if(!_)return;_.anchorElement=this;let q=(Q)=>{Q.stopPropagation();let Z=Q.detail;if(!Z?.gradient)return;this.#j=this.#A({...this.#j,...Z.gradient}),this.#u()};_.addEventListener("input",(Q)=>{q(Q),this.#p()}),_.addEventListener("change",(Q)=>{q(Q),this.#c()})}#T(_){return t_(this.#j.stops,_,this.#j.interpolationSpace,this.#j.hueInterpolation)}#S(){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.#L==="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.#M=_,this.addEventListener("pointerenter",this.#y),this.addEventListener("pointermove",this.#v),this.addEventListener("pointerleave",this.#g),this.addEventListener("click",this.#h),this.addEventListener("dblclick",this.#w)}#f(){if(!this.#M)return;this.#M.style.opacity="1"}#E(){if(!this.#M)return;this.#M.style.opacity="0"}#y=()=>{if(this.#Q)return;this.#f()};#g=()=>{this.#E()};#v=(_)=>{if(this.#Q){this.#E();return}if(!this.#M||!this.#_)return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){this.#E();return}let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width));this.#M.style.left=`${Q*100}%`;let Z=this.#T(Q);this.#M.setAttribute("color",Z),this.#f()};#x(){let _=this.#j.stops.length;if(_<2)return;for(let q=0;q<_;q++)this.#j.stops[q].position=Math.round(q/(_-1)*100);this.#m(),this.#u(),this.#p(),this.#c()}#w=(_)=>{if(!this.#_)return;if(!_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;this.#x(),this.#_.querySelectorAll("fig-handle[selected]").forEach((q)=>{q.removeAttribute("selected")})};#h=(_)=>{if(!this.#_)return;if(this.#Q)return;if(this.#D){this.#D=!1;return}if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)")){if(_.shiftKey){let j=_.target.closest("fig-handle"),N=parseInt(j?.dataset.stopIndex,10);if(this.#x(),!isNaN(N))this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((W)=>{if(parseInt(W.dataset.stopIndex,10)===N)W.select();else W.deselect()});_.stopPropagation()}return}let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width)),Z=Math.round(Q*100),$=this.#T(Q);this.#j.stops.push({position:Z,color:$,opacity:100}),this.#j.stops.sort((j,N)=>j.position-N.position);let J=this.#j.stops.findIndex((j)=>j.position===Z&&j.color===$);this.#m(),this.#u(),this.#p(),this.#c(),requestAnimationFrame(()=>{let N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[J];if(N)this.#R(N)})};#V(){if(this.#J=null,!this.isConnected)return;if(!this.#_)return;let _=this.#j.stops;this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q,Q)=>{if(Q>=_.length)return;q.removeAttribute("value"),q.setAttribute("value",`${_[Q].position}% 50%`)})}refreshLayout(){this.#V()}#b(){if(this.#J!==null)return;this.#J=requestAnimationFrame(()=>this.#V())}#m(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),q=this.#j.stops;if(_.length!==q.length){let Q=this.#M;if(this.#_.replaceChildren(...this.#H()),Q)this.#_.appendChild(Q);this.#s(),this.#i(),this.#b();return}for(let Q=0;Q<q.length;Q++){let Z=_[Q],$=q[Q];if(Z.dataset.stopIndex=Q,Z.setAttribute("value",`${$.position}% 50%`),Z.setAttribute("color",this.#k($)),this.#L==="tip")Z.setAttribute("tip","color");else Z.removeAttribute("tip");let J=Z.closest("fig-tooltip");if(J)J.setAttribute("text",`${Math.round($.position)}%`)}this.#s()}#s(){if(!this.#_)return;let _=this.#L==="tip";if(this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((q)=>{if(_)q.setAttribute("tip","color");else q.removeAttribute("tip")}),this.#M)if(_)this.#M.setAttribute("tip","add");else this.#M.removeAttribute("tip")}#i(){if(!this.#$||!this.#_)return;this.#$.disconnect(),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#$.observe(_,{attributes:!0,attributeFilter:["color"]})})}#a(){if(!this.#_)return;let _=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)"),q=this.#j.stops,Q=new Set;_.forEach((Z)=>{let $=Math.round(parseFloat(Z.getAttribute("value"))||0),J=(Z.getAttribute("color")||"").toUpperCase(),j=-1;for(let N=0;N<q.length;N++){if(Q.has(N))continue;if(q[N].position===$&&q[N].color.toUpperCase()===J){j=N;break}}if(j===-1){let N=1/0;for(let W=0;W<q.length;W++){if(Q.has(W))continue;let G=Math.abs(q[W].position-$);if(G<N)N=G,j=W}}if(j!==-1)Q.add(j),Z.dataset.stopIndex=j})}#u(){if(!this.#q)return;this.#q.setAttribute("background",this.#P()),this.#z()}#t(){if(!this.#_)return;this.#_.addEventListener("pointerdown",(_)=>{if(k(this,"disabled"))return;if(_.target.closest("fig-handle:not(.fig-input-gradient-ghost)"))return;if(_.button!==0)return;_.preventDefault(),_.stopPropagation();let q=this.#_.getBoundingClientRect(),Q=Math.max(0,Math.min(1,(_.clientX-q.left)/q.width)),Z=Math.round(Q*100),$=this.#T(Q);this.#j.stops.push({position:Z,color:$,opacity:100}),this.#j.stops.sort((W,G)=>W.position-G.position);let J=this.#j.stops.findIndex((W)=>W.position===Z&&W.color===$);this.#D=!0,this.#m(),this.#u(),this.#p(),this.#E();let N=this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)")[J];if(N)this.#R(N),N.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,clientX:_.clientX,clientY:_.clientY,pointerId:_.pointerId,pointerType:_.pointerType,button:_.button,buttons:_.buttons}))}),this.#_.addEventListener("input",(_)=>{let q=_.target.closest("fig-handle");if(!q)return;if(_.stopPropagation(),_.detail?.color){let W=parseInt(q.dataset.stopIndex,10);if(!isNaN(W)&&this.#j.stops[W]){if(this.#j.stops[W].color=_.detail.color,_.detail.opacity!==void 0)this.#j.stops[W].opacity=_.detail.opacity;else if(_.detail.alpha!==void 0)this.#j.stops[W].opacity=Math.round(_.detail.alpha*100);q.setAttribute("color",this.#k(this.#j.stops[W])),this.#u(),this.#p()}return}if(!this.#Q)q.style.zIndex="5";this.#Q=!0;let Q=parseInt(q.dataset.stopIndex,10);if(isNaN(Q)||!this.#j.stops[Q])return;let Z=_.detail?.px??0,$=Math.round(Z*100),J=$,j=this.#_.getBoundingClientRect().width;if(_.detail?.shiftKey)J=Math.round(J/n.SHIFT_SNAP)*n.SHIFT_SNAP;else{let W=j>0?5/j*100:0;for(let G=0;G<this.#j.stops.length;G++){if(G===Q)continue;if(Math.abs(this.#j.stops[G].position-J)<=W){J=this.#j.stops[G].position;break}}}if(this.#j.stops[Q].position=J,J!==$)q.style.left=`${J/100*j}px`;let N=q.closest("fig-tooltip");if(N){if(N.text=`${Math.round(J)}%`,!N.hasAttribute("show"))N.setAttribute("show","true"),q.hideColorTip()}this.#u(),this.#p()}),this.#_.addEventListener("change",(_)=>{let q=_.target.closest("fig-handle");if(!q)return;if(_.stopPropagation(),_.detail?.color){let W=parseInt(q.dataset.stopIndex,10);if(!isNaN(W)&&this.#j.stops[W]){if(this.#j.stops[W].color=_.detail.color,_.detail.opacity!==void 0)this.#j.stops[W].opacity=_.detail.opacity;q.setAttribute("color",this.#k(this.#j.stops[W])),this.#u(),this.#c()}return}q.style.zIndex="";let Q=q.closest("fig-tooltip");if(Q)Q.removeAttribute("show");q.showColorTip();let Z=parseInt(q.dataset.stopIndex,10);if(isNaN(Z)||!this.#j.stops[Z])return;let $=_.detail?.px??0,J=Math.round($*100),j=this.#_.getBoundingClientRect().width,N=j>0?5/j*100:0;for(let W=0;W<this.#j.stops.length;W++){if(W===Z)continue;if(Math.abs(this.#j.stops[W].position-J)<=N){J=this.#j.stops[W].position;break}}this.#j.stops[Z].position=J,q.style.left=`${J/100*j}px`,this.#j.stops.sort((W,G)=>W.position-G.position),this.#a(),this.#u(),this.#c(),requestAnimationFrame(()=>{this.#Q=!1})}),this.#$=new MutationObserver((_)=>{for(let q of _){if(q.attributeName!=="color")continue;let Q=q.target;if(Q.classList.contains("fig-input-gradient-ghost"))continue;let Z=parseInt(Q.dataset.stopIndex,10);if(isNaN(Z)||!this.#j.stops[Z])continue;let $=Q.getAttribute("color");if(!$||!$.startsWith("#"))continue;if($!==this.#j.stops[Z].color)this.#j.stops[Z].color=$,this.#u(),this.#p()}}),this.#_.querySelectorAll("fig-handle:not(.fig-input-gradient-ghost)").forEach((_)=>{this.#$.observe(_,{attributes:!0,attributeFilter:["color"]})})}#p(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:this.value}))}#c(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.value}))}get value(){return{type:"gradient",gradient:q_(this.#A(this.#j))}}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.#U){let q=this.#G();if(q){q.focus(_);return}}HTMLElement.prototype.focus.call(this,_)}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"value":this.#F(),this.#u(),this.#m();break;case"disabled":this.#d();break;case"edit":if(this.#C(),this.#B(),this.#U)document.addEventListener("keydown",this.#Y);else document.removeEventListener("keydown",this.#Y);break;case"mode":this.#s();break;case"size":this.#z();break}}#d(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.#X(),this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");if(this.#_)for(let q of this.#_.querySelectorAll("fig-handle"))if(_)q.setAttribute("disabled","");else q.removeAttribute("disabled")}}M("fig-input-gradient",n);class W0 extends HTMLElement{#q=null;#_;#Q;#Z;#$=!1;constructor(){super();if(this.input=document.createElement("input"),this.name=this.getAttribute("name")||"",this.input.value=this.getAttribute("value")||"",this.input.setAttribute("id",m()),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.#Z=(_)=>{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.#Z),this.addEventListener("click",this.#Z),this.#N();let q=this.querySelector(":scope > label");if(q)this.#q=q,this.#$=!1,this.#q.setAttribute("for",this.input.id);if(this.hasAttribute("label"))this.#J(),this.#q.innerText=this.getAttribute("label");if(!this.hasAttribute("label")){let Q=Array.from(this.childNodes).filter((Z)=>Z.nodeType===Node.TEXT_NODE).map((Z)=>Z.textContent||"").join(" ").trim();if(Q&&!this.input.hasAttribute("aria-label")&&!this.input.hasAttribute("aria-labelledby"))this.input.setAttribute("aria-label",Q)}this.render()}static get observedAttributes(){return["disabled","label","checked","name","value","indeterminate"]}#J(){if(!this.#q)this.#q=document.createElement("label"),this.#$=!0,this.#q.setAttribute("for",this.input.id);if(this.#q&&!this.#q.parentNode&&this.input.parentNode)this.input.after(this.#q)}render(){}#W(_){return this.hasAttribute(_)&&this.getAttribute(_)!=="false"}#j(){if(this.input.indeterminate)this.input.setAttribute("aria-checked","mixed");else this.input.setAttribute("aria-checked",this.input.checked?"true":"false")}#N(){let _=this.#W("checked"),q=this.#W("indeterminate")&&!_,Q=this.#W("disabled");this.input.checked=_,this.input.indeterminate=q,this.input.disabled=Q,this.input.value=this.getAttribute("value")||"";let Z=this.getAttribute("name")||this.name;if(Z)this.input.setAttribute("name",Z);else this.input.removeAttribute("name");if(q)this.input.setAttribute("indeterminate","true");else this.input.removeAttribute("indeterminate");this.#j()}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.#Z)}attributeChangedCallback(_,q,Q){switch(_){case"label":if(Q)this.#J(),this.#q.innerText=Q;else if(this.#q&&this.#$)this.#q.remove(),this.#q=null,this.#$=!1;break;case"checked":if(this.#W("checked")&&this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");this.#N();break;case"indeterminate":this.#N();break;case"disabled":this.#N();break;case"name":if(Q)this.input.setAttribute("name",Q);else this.input.removeAttribute("name");break;case"value":this.input.value=Q||"";break;default:this.input[_]=Q,this.input.setAttribute(_,Q);break}}handleInput(_){if(_.stopPropagation(),this.input.indeterminate=!1,this.input.removeAttribute("indeterminate"),this.hasAttribute("indeterminate"))this.removeAttribute("indeterminate");if(this.#j(),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.#j(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.input.checked,value:this.input.value}}))}}M("fig-checkbox",W0);class J_ extends W0{constructor(){super();this.input.setAttribute("type","radio");let _=this.getAttribute("name");if(_)this.input.setAttribute("name",_);else this.input.removeAttribute("name")}}M("fig-radio",J_);class j_ extends W0{render(){this.input.setAttribute("class","switch"),this.input.setAttribute("role","switch")}}M("fig-switch",j_);class N_ extends HTMLElement{static observedAttributes=["options","placeholder","value","disabled","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#q=!1;#_=null;#Q=null;#Z=null;#$=null;#J=!1;#W=["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"];#j=this.#A.bind(this);#N=this.#B.bind(this);#U=this.#Y.bind(this);get value(){return this.getAttribute("value")||""}set value(_){this.setAttribute("value",_??"")}#L(){return!!this.querySelector(":scope > .input-combo")}#G(){if(this.#_=this.querySelector("fig-input-text"),this.#Z=this.querySelector("fig-button"),this.#Q=this.querySelector("fig-dropdown"),this.#_)this.#_.setAttribute("value",this.value),this.#_.setAttribute("placeholder",this.getAttribute("placeholder")||"");this.#H()}connectedCallback(){if(this.#$=Array.from(this.children).find((_)=>_.tagName==="FIG-DROPDOWN")||null,this.#q=this.#$!==null,this.#$)this.#$.remove();if(this.#L())this.#G(),this.#R();else this.#K(),this.#R();this.#M(k(this,"disabled"))}disconnectedCallback(){this.#X()}#K(){let _=this.#P(),q=this.getAttribute("placeholder")||"",Q=this.value,Z=this.#z(),$=X("fig-input-text",{placeholder:q,value:Q}),J=h("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},h("path",{d:"M5.87868 7.12132L8 9.24264L10.1213 7.12132",stroke:"currentColor","stroke-opacity":"0.9","stroke-linecap":"round"})),j=X("fig-button",{type:"select",variant:"input",icon:!0},J);if(!this.#q)j.appendChild(X("fig-dropdown",{type:"dropdown",label:Z},_.map((N)=>X("option",{},N.trim()))));if(this.replaceChildren(X("div",{className:"input-combo"},[$,j])),this.#_=$,this.#Z=j,this.#q&&this.#$&&this.#Z){if(!this.#$.hasAttribute("type"))this.#$.setAttribute("type","dropdown");if(!this.#$.hasAttribute("label"))this.#$.setAttribute("label",Z);this.#Z.append(this.#$)}this.#Q=this.querySelector("fig-dropdown"),this.#H()}#R(){this.#X(),this.#Q?.addEventListener("input",this.#j),this.#_?.addEventListener("input",this.#N),this.#_?.addEventListener("change",this.#U)}#X(){this.#Q?.removeEventListener("input",this.#j),this.#_?.removeEventListener("input",this.#N),this.#_?.removeEventListener("change",this.#U)}#A(_){_.stopPropagation();let q=_.target.closest("fig-dropdown")?.value??"";if(this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#_)this.#_.setAttribute("value",q);this.#O(),this.#F()}#B(_){_.stopPropagation();let q=_.target.value??"";this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#O()}#Y(_){_.stopPropagation();let q=_.target.value??"";this.#J=!0,this.setAttribute("value",q),this.#J=!1,this.#F()}#O(){this.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#F(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:this.value}}))}#P(){return(this.getAttribute("options")||"").split(",").map((_)=>_.trim()).filter(Boolean)}#k(){return(this.getAttribute("aria-label")||this.getAttribute("placeholder")||"Combo input").trim()}#z(){return`${this.#k()} options`}#H(){if(this.#_)this.#W.forEach((_)=>{let q=this.getAttribute(_);if(q===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,q)});if(this.#Q&&!this.#Q.hasAttribute("aria-label"))this.#Q.setAttribute("label",this.#z())}#M(_){if(this.#_)if(_)this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled");if(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")}focus(){this.#_?.focus()}attributeChangedCallback(_,q,Q){if(q===Q)return;switch(_){case"options":if(this.#Q&&!this.#q){let Z=this.#P();this.#Q.replaceChildren(...Z.map(($)=>{let J=document.createElement("option");return J.textContent=$,J}))}break;case"placeholder":if(this.#_)this.#_.setAttribute("placeholder",Q||"");this.#H();break;case"value":if(!this.#J&&this.#_)this.#_.setAttribute("value",Q||"");break;case"disabled":this.#M(Q!==null&&Q!=="false");break;case"aria-label":case"aria-labelledby":case"aria-describedby":case"aria-invalid":case"aria-required":this.#H();break}}}M("fig-combo-input",N_);class O0 extends HTMLElement{#q="color";#_=null;#Q=!1;constructor(){super();this.#_=this.#U.bind(this)}static get observedAttributes(){return["background","size","selected","disabled","alpha","aria-label","aria-labelledby","aria-describedby"]}connectedCallback(){this.#j(),this.#Z(),this.#N()}#Z(){let _=this.getAttribute("alpha");if(_!==null)this.style.setProperty("--alpha",_);else this.style.removeProperty("--alpha")}#$(_){if(!_)return"color";let q=_.toLowerCase();if(q.includes("gradient"))return"gradient";if(q.includes("url("))return"image";return"color"}#J(_){if(!_)return"#D9D9D9";if(_.startsWith("#"))return _.slice(0,7);try{let{ctx:q}=B0(1,1);return q.fillStyle=_,q.fillStyle}catch{return"#D9D9D9"}}#W(_){if(!_||!_.includes("var("))return _;let q=this.style.background;this.style.background=_;let Q=getComputedStyle(this),Z=Q.backgroundImage,$=Q.backgroundColor;if(this.style.background=q,Z&&Z!=="none")return Z;return $||_}#j(){let _=this.getAttribute("background")||"#D9D9D9",q=_.includes("var("),Q=q?this.#W(_):_,Z=this.#$(Q);if(Z!==this.#q||!this.input){if(this.#q=Z,this.setAttribute("data-type",this.#q),this.input)this.input.removeEventListener("input",this.#_);if(this.#q==="color"){let J=this.#J(Q),j=X("input",{type:"color",value:J});if(this.replaceChildren(document.createElement("div"),j),this.input=j,!q)this.input.addEventListener("input",this.#_);this.#N()}else this.replaceChildren(document.createElement("div")),this.input=null,this.#N()}else if(this.#q==="color"&&this.input){let J=this.#J(Q);if(this.input.value!==J)this.input.value=J}let $=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test(_);this.style.setProperty("--swatch-background",$?_:`linear-gradient(${_}, ${_})`)}#N(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false";if(this.setAttribute("aria-disabled",_?"true":"false"),this.input){this.input.disabled=_;let q=this.getAttribute("aria-labelledby"),Q=this.getAttribute("aria-label")||"Color swatch",Z=this.getAttribute("aria-describedby");if(q)this.input.setAttribute("aria-labelledby",q),this.input.removeAttribute("aria-label");else this.input.setAttribute("aria-label",Q),this.input.removeAttribute("aria-labelledby");if(Z)this.input.setAttribute("aria-describedby",Z);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")}#U(_){this.#Q=!0,this.setAttribute("background",_.target.value),this.#Q=!1}get background(){return this.getAttribute("background")}set background(_){this.setAttribute("background",_)}focus(){this.input?.focus()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="background"){if(this.#Q){let Z=/^(linear-gradient|radial-gradient|conic-gradient|repeating-|url)\s*\(/i.test(Q);this.style.setProperty("--swatch-background",Z?Q:`linear-gradient(${Q}, ${Q})`);return}this.#j()}else if(_==="alpha")this.#Z();else if(_==="disabled"||_==="aria-label"||_==="aria-labelledby"||_==="aria-describedby")this.#N()}get alpha(){return this.getAttribute("alpha")}set alpha(_){if(_===null||_===void 0)this.removeAttribute("alpha");else this.setAttribute("alpha",_)}}M("fig-swatch",O0);class W_ extends O0{}M("fig-chit",W_);var G_=["load","error"],K_=["loadstart","progress","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","durationchange","timeupdate","ratechange","resize","volumechange"],n_=[...new Set([...G_,...K_])];class G0 extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=this.#c.bind(this);#N=this.#e.bind(this);#U=this.#r.bind(this);#L=this.#o.bind(this);#G=this.#n.bind(this);#K=null;#R=null;#X=null;#A=void 0;#B=null;#Y=null;#O=null;#F=null;#P=null;#k=null;#z=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.#q}set src(_){if(this.#q=_||"",_===null||_===void 0||_==="")this.removeAttribute("src");else this.setAttribute("src",_)}get file(){return this.#W}#H(){return this.#J||this.#q||""}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((Z,$)=>{this.#_.addEventListener("load",Z,{once:!0}),this.#_.addEventListener("error",$,{once:!0})})}catch{}let _=this.#_.naturalWidth,q=this.#_.naturalHeight;if(!(_>0)||!(q>0))return null;let Q=document.createElement("canvas");return Q.width=_,Q.height=q,Q.getContext("2d").drawImage(this.#_,0,0),Q.toDataURL()}connectedCallback(){this.#q=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 q=this.getAttribute("fit");if(q)this.style.setProperty("--fig-media-fit",q);if(this.querySelectorAll("fig-swatch[data-generated]").forEach((Z)=>Z.remove()),this.#S(),this.#E(),this.#D(),this.#h(),this.#I(),this.#y(),this.#x(),this.hasAttribute("upload")&&this.getAttribute("upload")!=="false"&&!this.querySelector("fig-input-file[data-generated]"))this.#t();this.#Z=this.querySelector("fig-input-file[data-generated]"),this.#Z?.removeEventListener("change",this.#j),this.#Z?.addEventListener("change",this.#j)}disconnectedCallback(){if(this.#Z?.removeEventListener("change",this.#j),this.#T(),this.#M(),this.#u(),this.#$)URL.revokeObjectURL(this.#$),this.#$=null;this.#J=null}#M(){if(!this.#_)return;if(n_.forEach((_)=>{this.#_.removeEventListener(_,this.#G)}),this.#_.tagName==="VIDEO")this.#_.removeEventListener("play",this.#N),this.#_.removeEventListener("pause",this.#U),this.#_.removeEventListener("ended",this.#L)}#D(){if(this.#M(),!this.#_)return;if((this.#_.tagName==="VIDEO"?K_:G_).forEach((q)=>{this.#_.addEventListener(q,this.#G)}),this.#_.tagName!=="VIDEO")return;this.#_.addEventListener("play",this.#N),this.#_.addEventListener("pause",this.#U),this.#_.addEventListener("ended",this.#L)}#C(){return this.mediaKind==="image"&&this.getAttribute("loading-indicator")!=="false"&&this.#Q?.hasAttribute("data-generated")&&this.#_?.hasAttribute("data-generated")}#I(){let _=this.#H();if(!_||!this.#C()){this.#T();return}if(this.#_?.tagName==="IMG"&&this.#_.complete&&this.#_.currentSrc){this.#T();return}if(this.#X===_)return;this.#T(),this.#X=_,this.#A=this.getAttribute("aria-busy"),this.setAttribute("aria-busy","true"),this.#R=setTimeout(()=>{if(this.#R=null,this.#X!==_||!this.isConnected||!this.#C())return;let q=document.createElement("fig-spinner");q.setAttribute("data-generated",""),q.setAttribute("data-loading-indicator",""),q.setAttribute("slot","overlay"),q.setAttribute("size","small"),q.setAttribute("aria-hidden","true"),this.append(q),this.#K=q},150)}#T(){if(this.#R!==null)clearTimeout(this.#R),this.#R=null;if(this.#K?.remove(),this.#K=null,this.#X=null,this.#A!==void 0){if(this.#A===null)this.removeAttribute("aria-busy");else this.setAttribute("aria-busy",this.#A);this.#A=void 0}}#S(){if(this.#Q?.isConnected)return;let _=this.querySelector(":scope > fig-preview");if(_){this.#Q=_;return}let q=document.createElement("fig-preview");q.setAttribute("data-generated",""),this.prepend(q),this.#Q=q}#f(){let _=this.mediaKind==="video"?"video":"img";return this.querySelector(`${_}:not([data-generated])`)}#E(){let _=this.#f();if(_){if(this.#S(),this.#_&&this.#_!==_){if(this.#M(),this.#_.hasAttribute("data-generated"))this.#_.remove()}if(this.#_=_,this.#Q&&_.parentElement!==this.#Q)this.#Q.append(_);this.#D(),this.#y();return}this.#S();let q=this.mediaKind==="video"?"VIDEO":"IMG";if(this.#_&&this.#_.tagName!==q){if(this.#M(),this.#_.hasAttribute("data-generated"))this.#_.remove();this.#_=null}if(this.#_)return;if(this.mediaKind==="video"){let Q=document.createElement("video");Q.setAttribute("data-generated",""),Q.className="fig-media-element",Q.setAttribute("playsinline",""),Q.preload="auto",this.#Q.append(Q),this.#_=Q;let Z=()=>{if(this.#_?.autoplay)return;try{this.#_.currentTime=0.001}catch{}};this.#_.addEventListener("loadedmetadata",Z,{once:!0})}else{let Q=document.createElement("img");Q.setAttribute("data-generated",""),Q.className="fig-media-element",Q.loading="lazy",Q.decoding="async",Q.alt=this.getAttribute("alt")||"",this.#Q.append(Q),this.#_=Q}this.#D()}#y(){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 q=this.getAttribute(_);if(q===null)this.#_.removeAttribute(_);else this.#_.setAttribute(_,q)})}#g(){return this.querySelector(":scope > figcaption:not([data-generated])")}#v(){return Array.from(this.querySelectorAll(":scope > figcaption[data-generated]"))}#x(){let _=this.#g(),q=this.#v();if(_){q.forEach((J)=>J.remove());return}let Q=this.getAttribute("caption")||"";if(!Q){q.forEach((J)=>J.remove());return}let Z=q[0]||document.createElement("figcaption");if(q.slice(1).forEach((J)=>J.remove()),!Z.hasAttribute("data-generated"))Z.setAttribute("data-generated","");if(Z.textContent!==Q)Z.textContent=Q;let $=this.querySelector(":scope > fig-media-controls");if($)$.before(Z);else if(this.#Q?.isConnected)this.#Q.after(Z);else if(!Z.isConnected)this.append(Z)}#w(_,q=!1){if(!this.hasAttribute(_))return q;return this.getAttribute(_)!=="false"}#h(){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.#y(),this.#I();return}let q=this.getAttribute("poster");if(q)this.#_.setAttribute("poster",q);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.#y(),this.#m(),this.#b(),this.#I()}get mediaEl(){return this.#_}#V(){if(this.mediaKind!=="video")return!1;return Boolean(this.#H())}#b(){let _=this.#B||this.querySelector(":scope > fig-media-controls");if(!_)return;if(this.mediaKind!=="video")return;if(this.#V()){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}#m(){if(this.mediaKind!=="video"){this.#u();return}let _=this.querySelector(":scope > fig-media-controls:not([data-generated])");if(_){if(this.#B!==_)this.#u(),this.#B=_;this.#i(),this.#b();return}if(this.#w("controls",!1))this.#s();else this.#u()}#s(){let _=Array.from(this.querySelectorAll(":scope > fig-media-controls[data-generated]")),q=_[0];if(_.slice(1).forEach((Z)=>Z.remove()),q){this.#B=q,this.#i(),this.#b();return}let Q=document.createElement("fig-media-controls");Q.setAttribute("data-generated",""),this.append(Q),this.#B=Q,this.#i(),this.#b()}#i(){if(!this.#B||!this.#_)return;if(this.#Y===this.#_&&this.#O===this.#B){this.#b();return}this.#a();let _=this.#B,q=this.#_;this.#Y=q,this.#O=_;let Q=null,Z=()=>{if(this.#b(),!this.#V())return;if(_.playing=!q.paused&&!q.ended,Number.isFinite(q.duration))_.duration=q.duration;if(Q!==null)if(Math.abs(q.currentTime-Q)<0.25)Q=null;else return;_.time=q.currentTime||0},$=()=>{if(!this.#V())return;let N=q.play?.();if(N&&typeof N.catch==="function")N.catch(()=>{})},J=()=>q.pause?.(),j=(N)=>{if(!this.#V())return;let W=Number(N?.detail?.time);if(!Number.isFinite(W))return;Q=W;try{q.currentTime=W}catch{}};this.#F=Z,this.#P=$,this.#k=J,this.#z=j,q.addEventListener("play",Z),q.addEventListener("pause",Z),q.addEventListener("ended",Z),q.addEventListener("timeupdate",Z),q.addEventListener("loadedmetadata",Z),q.addEventListener("durationchange",Z),q.addEventListener("seeked",Z),_.addEventListener("play",$),_.addEventListener("pause",J),_.addEventListener("seek",j),Z()}#a(){let _=this.#Y,q=this.#O;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(q){if(this.#P)q.removeEventListener("play",this.#P);if(this.#k)q.removeEventListener("pause",this.#k);if(this.#z)q.removeEventListener("seek",this.#z)}this.#Y=null,this.#O=null,this.#F=null,this.#P=null,this.#k=null,this.#z=null}#u(){this.#a(),this.querySelectorAll(":scope > fig-media-controls[data-generated]").forEach((_)=>{_.remove()}),this.#B=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()}#t(){let _=document.createElement("fig-input-file");_.setAttribute("data-generated",""),_.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*"),_.setAttribute("variant","overlay");let q=this.getAttribute("label")||"Upload";if(_.setAttribute("label",this.#q?"Replace":q),this.#W?.name)_.setAttribute("filename",this.#W.name);else if(this.#q)_.setAttribute("url",this.#q);_.addEventListener("change",this.#j),this.#S(),this.#Q.append(_),this.#Z=_}#p(){if(this.#Z)this.#Z.removeEventListener("change",this.#j),this.#Z.remove(),this.#Z=null}#c(_){if(_.target!==this.#Z)return;let q=_.detail?.files?.[0],Q=_.detail?.cleared===!0;if(!q){if(this.#$)URL.revokeObjectURL(this.#$),this.#$=null;if(this.#W=null,this.#J=null,Q)this.src="";if(this.#h(),this.#Z){let Z=this.getAttribute("label")||"Upload";if(this.#Z.setAttribute("label",this.#q?"Replace":Z),this.#Z.removeAttribute("filename"),this.#q)this.#Z.setAttribute("url",this.#q);else this.#Z.removeAttribute("url")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0}));return}if(this.#$)URL.revokeObjectURL(this.#$);if(this.#W=q,this.#$=URL.createObjectURL(q),this.#J=this.#$,this.#h(),this.dispatchEvent(new CustomEvent("loaded",{bubbles:!0,cancelable:!0,detail:{file:q,src:this.#$}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0})),this.#Z)this.#Z.removeAttribute("url"),this.#Z.setAttribute("filename",q.name),this.#Z.setAttribute("label","Replace")}#d(_){if(!this.#_)return;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!1,composed:!0,detail:{src:this.#q||"",currentTime:this.#_.currentTime,duration:this.#_.duration}}))}#n(_){let q=this.#_;if(!q||_.currentTarget!==q)return;if(q.tagName==="IMG"&&(_.type==="load"||_.type==="error"))this.#T();let Q={src:this.#H(),media:q,originalEvent:_};if(q.tagName==="VIDEO")Q.currentTime=q.currentTime,Q.duration=q.duration,Q.readyState=q.readyState,Q.networkState=q.networkState,Q.error=q.error;this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,cancelable:!1,composed:!0,detail:Q}))}#e(){this.#d("play")}#r(){this.#d("pause")}#o(){this.#d("ended")}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="src"){let Z=Q||"",$=Z&&(Z===this.#J||Z===this.#$);if(this.#q=Z,this.#$&&!$)URL.revokeObjectURL(this.#$),this.#$=null,this.#J=null,this.#W=null;if(this.#h(),this.#Z){let J=this.getAttribute("label")||"Upload";if(this.#Z.setAttribute("label",this.#q?"Replace":J),this.#q)if(this.#W?.name)this.#Z.removeAttribute("url"),this.#Z.setAttribute("filename",this.#W.name);else this.#Z.setAttribute("url",this.#q),this.#Z.removeAttribute("filename");else this.#Z.removeAttribute("url"),this.#Z.removeAttribute("filename")}}if(_==="type"){if(this.#E(),this.#h(),this.#Z)this.#Z.setAttribute("accepts",this.mediaKind==="video"?"video/*":"image/*")}if(["alt","aria-label","aria-labelledby","title"].includes(_))this.#y();if(_==="upload"){let Z=Q!==null&&Q!=="false";if(Z&&!this.#Z)this.#t();else if(!Z)this.#p()}if(_==="loading-indicator")this.#I();if(_==="aspect-ratio")if(Q)this.style.setProperty("--fig-media-aspect-ratio",Q);else this.style.removeProperty("--fig-media-aspect-ratio");if(_==="fit")if(Q)this.style.setProperty("--fig-media-fit",Q);else this.style.removeProperty("--fig-media-fit");if(_==="label"&&this.#Z){let Z=this.getAttribute("label")||"Upload";this.#Z.setAttribute("label",this.#q?"Replace":Z)}if(["controls","autoplay","loop","muted","poster"].includes(_))this.#h();if(_==="caption")this.#x()}}M("fig-media",G0);class U_ extends G0{get mediaKind(){return"image"}}M("fig-image",U_);class L_ extends G0{get mediaKind(){return"video"}}M("fig-video",L_);class R_ extends HTMLElement{static get observedAttributes(){return["src","alt","label","text","sublabel","selected","disabled","full","size","aspect-ratio","fit","label-line-clamp"]}#q=null;#_=null;#Q=null;#Z=null;#$=!1;#J=new MutationObserver((_)=>{if(!_.some((Q)=>[...Q.addedNodes,...Q.removedNodes].some((Z)=>Z instanceof Element&&(Z.matches("fig-image:not([data-generated]), fig-media:not([data-generated]), fig-preview:not([data-generated]), fig-footer:not([data-generated])")||Z.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.#K(),this.#X()});connectedCallback(){this.#J.observe(this,{childList:!0,subtree:!0}),this.#K(),this.#X()}disconnectedCallback(){this.#J.disconnect()}attributeChangedCallback(){if(!this.isConnected)return;this.#K(),this.#X()}#W(){return this.getAttribute("label")??this.getAttribute("text")??""}#j(){return this.getAttribute("sublabel")??""}#N(){return this.getAttribute("label-line-clamp")==="2"?"2":"1"}#U(){return Boolean(this.getAttribute("src"))}#L(){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((q)=>{while(q.firstChild)_.insertBefore(q.firstChild,q);q.remove()});while(_.firstChild)this.insertBefore(_.firstChild,_);_.remove()})}#K(){if(this.#G(),!this.#U()){this.#R();return}let _=this.#L();if(this.#$=Boolean(_),_)this.querySelectorAll(":scope > [data-generated]:not(fig-footer)").forEach((Q)=>Q.remove()),this.#_=null;if(!this.#$){if(this.#_=this.querySelector(":scope > fig-image[data-generated]")||null,!this.#_)this.querySelectorAll(":scope > fig-image, :scope > fig-media, :scope > fig-preview").forEach((Q)=>{if(Q.hasAttribute("data-generated"))Q.remove()}),this.#_=document.createElement("fig-image"),this.#_.setAttribute("data-generated",""),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto"),this.prepend(this.#_)}if(!Boolean(this.#W()||this.#j())){this.querySelector(":scope > fig-footer[data-generated]")?.remove(),this.#q=null,this.#Q=null,this.#Z=null;return}if(!this.#q||!this.#q.isConnected){if(this.#q=this.querySelector(":scope > fig-footer[data-generated]"),!this.#q)this.#q=document.createElement("fig-footer"),this.#q.setAttribute("data-generated",""),this.appendChild(this.#q)}if(!this.#Q||!this.#Q.isConnected){if(this.#Q=this.#q.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.#q.appendChild(this.#Q)}if(!this.#Z||!this.#Z.isConnected){if(this.#Z=this.#q.querySelector(":scope > .fig-card-sublabel[data-generated]"),!this.#Z)this.#Z=document.createElement("label"),this.#Z.className="fig-card-sublabel",this.#Z.setAttribute("data-generated",""),this.#Q.after(this.#Z)}}#R(){if(this.#G(),this.querySelectorAll(":scope > [data-generated]").forEach((q)=>q.remove()),this.#_=null,this.#$=!0,this.#q=null,this.#Q=null,this.#Z=null,!this.#W()&&!this.#j())return;this.#q=document.createElement("fig-footer"),this.#q.setAttribute("data-generated",""),this.#Q=document.createElement("label"),this.#Q.className="fig-card-label",this.#Q.setAttribute("data-generated",""),this.#q.appendChild(this.#Q);let _=this.#j();if(this.#Z=null,_)this.#Z=document.createElement("label"),this.#Z.className="fig-card-sublabel",this.#Z.setAttribute("data-generated",""),this.#q.appendChild(this.#Z);this.appendChild(this.#q)}#X(){if(!this.#U()){this.#A();return}let _=k(this,"disabled"),q=this.#W(),Q=this.#j(),Z=this.#N();this.style.setProperty("--fig-card-label-line-clamp",Z),this.setAttribute("role","group");let $=[q,Q].filter(Boolean).join(", ");if($)this.setAttribute("aria-label",$);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#_&&!this.#$){let J=this.getAttribute("src"),j=this.getAttribute("alt"),N=this.getAttribute("aspect-ratio")||"1/1",W=this.getAttribute("fit")||"contain",G=j!=null?j:"";if(J)this.#_.setAttribute("src",J);else this.#_.removeAttribute("src");this.#_.setAttribute("alt",G),this.#_.setAttribute("aspect-ratio",N),this.#_.setAttribute("fit",W),this.#_.setAttribute("full",""),this.#_.setAttribute("size","auto")}if(this.#Q)this.#Q.textContent=q,this.#Q.hidden=!q;if(this.#Z)this.#Z.textContent=Q,this.#Z.hidden=!Q;if(this.#q)this.#q.hidden=!q&&!Q}#A(){let _=k(this,"disabled"),q=this.#W(),Q=this.#j();this.style.setProperty("--fig-card-label-line-clamp",this.#N()),this.setAttribute("role","group");let Z=[q,Q].filter(Boolean).join(", ");if(Z)this.setAttribute("aria-label",Z);else this.removeAttribute("aria-label");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");if(this.#Q)this.#Q.textContent=q,this.#Q.hidden=!q;if(this.#Z)this.#Z.textContent=Q}}M("fig-card",R_);class X_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=!1;#J=!1;static get observedAttributes(){return["playing","duration","time","disabled"]}connectedCallback(){this.#W(),this.#L(),this.#G(),this.#j()}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 q=Number(_);if(!Number.isFinite(q)||q<0){this.removeAttribute("duration");return}this.setAttribute("duration",String(q))}get time(){let _=Number(this.getAttribute("time"));return Number.isFinite(_)&&_>=0?_:0}set time(_){let q=Number(_);if(!Number.isFinite(q)||q<0){this.removeAttribute("time");return}this.setAttribute("time",String(q))}get disabled(){return k(this,"disabled")}set disabled(_){if(_)this.setAttribute("disabled","");else this.removeAttribute("disabled")}attributeChangedCallback(_){if(!this.#J)return;if(_==="playing")this.#L();if(_==="duration"||_==="time")this.#G();if(_==="disabled")this.#j()}#W(){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 q=document.createElement("fig-button");q.setAttribute("variant","ghost"),q.setAttribute("size","small"),q.setAttribute("icon","true"),q.setAttribute("aria-label","Play");let Q=b("play",{className:"fig-media-controls-play-icon"});q.append(Q),_.append(q),q.addEventListener("click",(j)=>{j.preventDefault(),j.stopPropagation(),this.toggle()});let Z=document.createElement("fig-slider");Z.setAttribute("text","false"),Z.setAttribute("min","0"),Z.setAttribute("max",String(this.duration)),Z.setAttribute("step","1"),Z.setAttribute("value",String(this.time)),Z.setAttribute("full",""),Z.setAttribute("aria-label","Seek"),Z.setAttribute("aria-valuetext",this.#U(this.time,this.duration));let $=document.createElement("span");$.className="fig-media-controls-time",$.textContent=this.#N(this.time);let J=(j)=>{if(this.disabled){j.preventDefault?.(),j.stopPropagation();return}let N=j.currentTarget,W=Number(N?.value);if(!Number.isFinite(W))return;this.#$=!0,this.setAttribute("time",String(W)),this.dispatchEvent(new CustomEvent("seek",{bubbles:!0,composed:!0,detail:{time:W}})),requestAnimationFrame(()=>{this.#$=!1})};Z.addEventListener("input",J),Z.addEventListener("change",J),this.append(_,Z,$),this.#q=q,this.#_=_,this.#Q=Z,this.#Z=$,this.#j()}#j(){let _=this.disabled;if(this.setAttribute("aria-disabled",_?"true":"false"),this.#q)if(_)this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled");if(this.#Q)if(_)this.#Q.setAttribute("disabled","");else this.#Q.removeAttribute("disabled")}#N(_){if(!Number.isFinite(_)||_<0)_=0;let q=Math.floor(_),Q=Math.floor(q/60),Z=q%60;return`${String(Q).padStart(2,"0")}:${String(Z).padStart(2,"0")}`}#U(_,q=0){let Q=this.#N(_);if(!Number.isFinite(q)||q<=0)return Q;return`${Q} of ${this.#N(q)}`}#L(){if(!this.#q)return;let _=this.playing;this.#q.setAttribute("aria-label",_?"Pause":"Play"),this.#_?.setAttribute("text",_?"Pause":"Play");let q=this.#q.querySelector(".fig-media-controls-play-icon");if(q)q.setAttribute("name",_?"pause":"play")}#G(){if(!this.#Q)return;let _=this.duration;if(Number(this.#Q.getAttribute("max"))!==_)this.#Q.setAttribute("max",String(_));let q=this.time;if(!this.#$)this.#Q.setAttribute("value",String(q));if(this.#Q.setAttribute("aria-valuetext",this.#U(q,_)),this.#Z)this.#Z.textContent=this.#N(q)}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()}}M("fig-media-controls",X_);class Y_ extends HTMLElement{static observedAttributes=["accepts","label","disabled","multiple","variant","url","filename"];#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;get files(){return this.#J}get#W(){let _=this.getAttribute("filename");if(_)return _;let q=this.getAttribute("url");if(!q)return"";try{let Z=new URL(q,location.href).pathname.split("/").pop();return Z?decodeURIComponent(Z):q}catch{return q}}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.#W}connectedCallback(){this.#R(),this.addEventListener("dragover",this.#L),this.addEventListener("dragleave",this.#G),this.addEventListener("drop",this.#K)}disconnectedCallback(){this.#q?.removeEventListener("change",this.#N),this.#Q?.removeEventListener("click",this.#U),this.removeEventListener("dragover",this.#L),this.removeEventListener("dragleave",this.#G),this.removeEventListener("drop",this.#K)}attributeChangedCallback(_,q,Q){if(q===Q)return;this.#R()}clear(){if(this.#J=null,this.#q)this.#q.value="";this.removeAttribute("url"),this.removeAttribute("filename"),this.#R(),this.#j({cleared:!0})}#j(_={}){let q={files:this.#J,..._};this.dispatchEvent(new CustomEvent("input",{detail:q,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:q,bubbles:!0}))}#N=()=>{if(this.#q.files.length>0)this.#J=this.#q.files,this.removeAttribute("url"),this.#R(),this.#j()};#U=(_)=>{_.stopPropagation(),this.clear()};#L=(_)=>{if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;if(_.preventDefault(),!this.hasAttribute("dragover")){if(this.setAttribute("dragover",""),this.#$)this.#$.dataset.prevText=this.#$.textContent,this.#$.textContent="Drop file"}};#G=()=>{if(this.removeAttribute("dragover"),this.#$&&this.#$.dataset.prevText!==void 0)this.#$.textContent=this.#$.dataset.prevText,delete this.#$.dataset.prevText};#K=(_)=>{if(_.preventDefault(),this.removeAttribute("dragover"),this.#$&&this.#$.dataset.prevText!==void 0)this.#$.textContent=this.#$.dataset.prevText,delete this.#$.dataset.prevText;if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.getAttribute("accepts"),Q=Array.from(_.dataTransfer.files);if(q){let $=q.split(",").map((J)=>J.trim().toLowerCase());Q=Q.filter((J)=>{let j="."+J.name.split(".").pop().toLowerCase(),N=J.type.toLowerCase();return $.some((W)=>W===j||W===N||W.endsWith("/*")&&N.startsWith(W.slice(0,-1)))})}if(!this.hasAttribute("multiple")||this.getAttribute("multiple")==="false")Q=Q.slice(0,1);if(Q.length===0)return;let Z=new DataTransfer;if(Q.forEach(($)=>Z.items.add($)),this.#J=Z.files,this.#q)this.#q.files=Z.files;this.removeAttribute("url"),this.#R(),this.#j()};#R(){let _=this.getAttribute("accepts")||"",q=this.getAttribute("label")||"Upload",Q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Z=this.hasAttribute("multiple")&&this.getAttribute("multiple")!=="false",$=this.getAttribute("variant")||"input",J=this.#J&&this.#J.length>0||!!this.getAttribute("url")||!!this.getAttribute("filename");if(this.replaceChildren(),J){let j=_?`Accepts ${_.split(",").map((U)=>U.trim()).join(", ")}`:"";if(this.#$=document.createElement("fig-button"),this.#$.setAttribute("variant",$),this.#$.setAttribute("type","upload"),this.#$.className="fig-input-file-filename",Q)this.#$.setAttribute("disabled","");let N=document.createElement("fig-truncate");N.setAttribute("position","middle"),N.setAttribute("tooltip","");let W=this.value,G=W.lastIndexOf(".");if(G>0)N.setAttribute("tail",W.slice(G));if(N.textContent=W,this.#$.appendChild(N),this.#q=document.createElement("input"),this.#q.type="file",this.#q.title="",this.#q.disabled=Q,_)this.#q.setAttribute("accept",_);if(Z)this.#q.setAttribute("multiple","");if(this.#q.addEventListener("change",this.#N),this.#$.appendChild(this.#q),j)this.#Z=document.createElement("fig-tooltip"),this.#Z.setAttribute("text",j),this.#Z.appendChild(this.#$),this.appendChild(this.#Z);else this.appendChild(this.#$);let K=document.createElement("fig-tooltip");if(K.setAttribute("text","Remove"),this.#Q=document.createElement("fig-button"),this.#Q.setAttribute("variant",$==="overlay"?"overlay":"ghost"),this.#Q.setAttribute("icon","true"),this.#Q.setAttribute("aria-label","Remove"),this.#Q.className="fig-input-file-clear",Q)this.#Q.setAttribute("disabled","");this.#Q.replaceChildren(b("minus")),this.#Q.addEventListener("click",this.#U),K.appendChild(this.#Q),this.appendChild(K)}else{let j=_?`Accepts ${_.split(",").map((N)=>N.trim()).join(", ")}`:"";if(j)this.#Z=document.createElement("fig-tooltip"),this.#Z.setAttribute("text",j);if(this.#$=document.createElement("fig-button"),this.#$.setAttribute("variant",$),this.#$.setAttribute("type","upload"),this.#$.textContent=q,Q)this.#$.setAttribute("disabled","");if(this.#q=document.createElement("input"),this.#q.type="file",this.#q.title="",this.#q.disabled=Q,_)this.#q.setAttribute("accept",_);if(Z)this.#q.setAttribute("multiple","");if(this.#q.addEventListener("change",this.#N),this.#$.appendChild(this.#q),this.#Z)this.#Z.appendChild(this.#$),this.appendChild(this.#Z);else this.appendChild(this.#$)}}}M("fig-input-file",Y_);class w extends HTMLElement{#q={x:0.42,y:0};#_={x:0.58,y:1};#Q={stiffness:200,damping:15,mass:1};#Z="bezier";#$=2;#J=null;#W=null;#j=null;#N=null;#U=null;#L=null;#G=null;#K=null;#R=null;#X=null;#A=null;#B=0.8;#Y=200;#O=200;#F=null;#P=null;#k=null;#z=null;#H=5;#M=10;#D=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","precision","aspect-ratio","edit"]}connectedCallback(){this.#$=parseInt(this.getAttribute("precision")||"2"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio"));let _=this.getAttribute("value");if(_)this.#I(_);this.#X=this.#T(),this.#x(),this.#t()}disconnectedCallback(){if(this.#J=null,this.#z)this.#z.disconnect(),this.#z=null}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="aspect-ratio"){if(g(this,"--aspect-ratio",Q),this.#W)this.#p(),this.#o();return}if(_==="edit"){if(this.isConnected)this.#x();return}if(_==="value"&&Q){let Z=this.#Z;if(this.#I(Q),this.#X=this.#T(),Z!==this.#Z&&this.#v())this.#x();else{if(this.#W)this.#o();this.#l(),this.#q0()}}if(_==="precision")this.#$=parseInt(Q||"2")}get value(){if(this.#Z==="spring"){let{stiffness:q,damping:Q,mass:Z}=this.#Q;return`spring(${q}, ${Q}, ${Z})`}let _=this.#$;return`${this.#q.x.toFixed(_)}, ${this.#q.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)}`}get cssValue(){if(this.#Z==="spring"){let q=this.#S(),Q=20,Z=Math.max(1,Math.floor(q.length/20)),$=[];for(let J=0;J<q.length;J+=Z)$.push(q[J].value.toFixed(3));if(q.length>0)$.push(q[q.length-1].value.toFixed(3));return`linear(${$.join(", ")})`}let _=this.#$;return`cubic-bezier(${this.#q.x.toFixed(_)}, ${this.#q.y.toFixed(_)}, ${this.#_.x.toFixed(_)}, ${this.#_.y.toFixed(_)})`}get preset(){return this.#X}set value(_){this.setAttribute("value",_)}#I(_){let q=_.match(/^spring\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/);if(q)return this.#Z="spring",this.#Q.stiffness=parseFloat(q[1]),this.#Q.damping=parseFloat(q[2]),this.#Q.mass=parseFloat(q[3]),!0;let Q=_.split(",").map((Z)=>parseFloat(Z.trim()));if(Q.length>=4&&Q.every((Z)=>!isNaN(Z)))return this.#Z="bezier",this.#q.x=Q[0],this.#q.y=Q[1],this.#_.x=Q[2],this.#_.y=Q[3],!0;return!1}#T(){if(this.#Z==="bezier"){for(let q of w.PRESETS){if(q.type!=="bezier"||!q.value)continue;if(Math.abs(this.#q.x-q.value[0])<0.001&&Math.abs(this.#q.y-q.value[1])<0.001&&Math.abs(this.#_.x-q.value[2])<0.001&&Math.abs(this.#_.y-q.value[3])<0.001)return q.name}return"Custom bezier"}for(let q of w.PRESETS){if(q.type!=="spring"||!q.spring)continue;if(Math.abs(this.#Q.stiffness-q.spring.stiffness)<0.001&&Math.abs(this.#Q.damping-q.spring.damping)<0.001&&Math.abs(this.#Q.mass-q.spring.mass)<0.001)return q.name}return"Custom spring"}#S(){let{stiffness:_,damping:q,mass:Q}=this.#Q,Z=0.004,$=5,J=[],j=0,N=0;for(let W=0;W<=5;W+=0.004){let G=-_*(j-1)-q*N;if(N+=G/Q*0.004,j+=N*0.004,J.push({t:W,value:j}),W>0.1&&Math.abs(j-1)<0.0005&&Math.abs(N)<0.0005)break}return J}static#f(_,q=24){let{stiffness:Q,damping:Z,mass:$}=_,J=0.004,j=5,N=[],W=0,G=0;for(let F=0;F<=5;F+=0.004){let B=-Q*(W-1)-Z*G;if(G+=B/$*0.004,W+=G*0.004,N.push({t:F,value:W}),F>0.1&&Math.abs(W-1)<0.001&&Math.abs(G)<0.001)break}let K=N[N.length-1].t||1,U=1;for(let F of N)if(F.value>U)U=F.value;let L=0;for(let F of N)if(F.value<L)L=F.value;let A=Math.max(U-L,1),Y=6,O=q-Y*2,D=Math.max(1,Math.floor(N.length/30)),H="";for(let F=0;F<N.length;F+=D){let B=Y+N[F].t/K*O,S=Y+(1-(N[F].value-L)/A)*O;H+=(F===0?"M":"L")+B.toFixed(1)+","+S.toFixed(1)}return w.#y(H,q)}static#E(_,q,Q,Z,$=24){let j=($-12)/2,N=48,W=[],G=(B,S,f,I,x)=>{let y=1-x;return y*y*y*B+3*y*y*x*S+3*y*x*x*f+x*x*x*I};for(let B=0;B<=48;B++){let S=B/48;W.push({x:G(0,_,Q,1,S),y:G(0,q,Z,1,S)})}let K=1/0,U=-1/0,L=1/0,A=-1/0;for(let B of W){if(B.x<K)K=B.x;if(B.x>U)U=B.x;if(B.y<L)L=B.y;if(B.y>A)A=B.y}let Y=Math.max(U-K,0.000001),O=Math.max(A-L,0.000001),D=(B)=>j+(B-K)/Y*12,H=(B)=>j+(1-(B-L)/O)*12,F="";for(let B=0;B<W.length;B++){let S=D(W[B].x),f=H(W[B].y);F+=`${B===0?"M":"L"}${S.toFixed(1)},${f.toFixed(1)}`}return F}static#y(_,q=24){return h("svg",{width:q,height:q,viewBox:`0 0 ${q} ${q}`,fill:"none"},h("path",{d:_,stroke:"currentColor","stroke-width":"1","stroke-linecap":"round",fill:"none"}))}static#g(_,q,Q,Z,$=24){return w.#y(w.#E(_,q,Q,Z,$),$)}static curveIcon(_,q,Q,Z,$=24){let J=w.#E(_,q,Q,Z,$);return`<svg width="${$}" height="${$}" viewBox="0 0 ${$} ${$}" fill="none"><path d="${J}" stroke="currentColor" stroke-width="1" stroke-linecap="round"/></svg>`}#v(){return this.getAttribute("edit")!=="false"}#x(){if(this.classList.toggle("spring-mode",this.#Z==="spring"),this.classList.toggle("bezier-mode",this.#Z!=="spring"),this.#i(),this.replaceChildren(...this.#m()),this.#a(),this.#W)this.#u(),this.#p(),this.#o();this.#q0(),this.#A0()}#w(){return["fig-select","fig-select-options","fig-select-option"].every((_)=>{let q=customElements.get(_);return typeof q==="function"&&q.prototype instanceof HTMLElement})}#h(){let _=X("fig-dropdown",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#X,full:!0}),q=void 0,Q=_;for(let Z of w.PRESETS){if(!this.#v()&&!Z.value&&!Z.spring)continue;if(Z.group!==q){if(q=Z.group,Q=q?X("optgroup",{label:q}):_,Q!==_)_.appendChild(Q)}Q.appendChild(X("option",{value:Z.name},Z.name))}return _}#V(){if(!this.#w())return this.#h();let _=document.createElement("fig-select-options"),q=void 0;for(let Q of w.PRESETS){if(!this.#v()&&!Q.value&&!Q.spring)continue;if(Q.group!==q){if(Q.group)_.appendChild(X("fig-separator",{label:Q.group}));q=Q.group}let Z;if(Q.type==="spring"){let $=Q.spring||this.#Q;Z=w.#f($)}else{let $=Q.value||[this.#q.x,this.#q.y,this.#_.x,this.#_.y];Z=w.#g(...$)}_.appendChild(X("fig-select-option",{value:Q.name,label:Q.name},[X("span",{slot:"prepend"},Z),X("span",{},Q.name)]))}return X("fig-select",{className:"fig-easing-curve-select",label:"Easing preset",value:this.#X,full:!0},_)}#b(_,q,Q){return h("foreignObject",{className:_,"data-handle":q,width:"20",height:"20"},X("fig-handle",{size:"small","aria-label":Q}))}#m(){let q=this.#V();if(!this.#v())return[q];let Q=X("fig-input-text",{className:"fig-easing-curve-value-input",value:this.value,full:!0}),Z=[h("rect",{className:"fig-easing-curve-bounds",x:"0",y:"0",width:200,height:200})];if(this.#Z==="spring")Z.push(h("line",{className:"fig-easing-curve-target",x1:"0",y1:40,x2:200,y2:40}),h("path",{className:"fig-easing-curve-path"}),this.#b("fig-easing-curve-handle","bounce","Spring bounce handle"),this.#b("fig-easing-curve-handle fig-easing-curve-duration-bar","duration","Spring duration handle"));else Z.push(h("line",{className:"fig-easing-curve-boundary","data-boundary":"top",x1:"0",y1:"0",x2:200,y2:"0"}),h("line",{className:"fig-easing-curve-boundary","data-boundary":"bottom",x1:"0",y1:200,x2:200,y2:200}),h("path",{className:"fig-easing-curve-path"}),h("line",{className:"fig-easing-curve-arm","data-arm":"1"}),h("line",{className:"fig-easing-curve-arm","data-arm":"2"}),this.#b("fig-easing-curve-handle","1","First easing control point"),this.#b("fig-easing-curve-handle","2","Second easing control point"));let $=h("svg",{viewBox:"0 0 200 200",className:"fig-easing-curve-svg"},Z);return[q,X("div",{className:"fig-easing-curve-svg-container"},$),Q]}#s(_,q){let Q=getComputedStyle(this).getPropertyValue(_).trim();if(!Q)return q;let Z=Number.parseFloat(Q);return Number.isFinite(Z)?Z:q}#i(){this.#C=this.#s("--easing-duration-bar-radius",this.#C)}#a(){this.#W=this.querySelector(".fig-easing-curve-svg"),this.#j=this.querySelector(".fig-easing-curve-path"),this.#N=this.querySelector('[data-arm="1"]'),this.#U=this.querySelector('[data-arm="2"]'),this.#L=this.querySelector('[data-handle="1"]')||this.querySelector('[data-handle="bounce"]'),this.#G=this.querySelector('[data-handle="2"]')||this.querySelector('[data-handle="duration"]'),this.#K=this.querySelector(".fig-easing-curve-select"),this.#R=this.querySelector(".fig-easing-curve-value-input"),this.#A=this.querySelector(".fig-easing-curve-target"),this.#F=this.querySelector(".fig-easing-curve-bounds"),this.#P=this.querySelector('[data-boundary="top"]'),this.#k=this.querySelector('[data-boundary="bottom"]')}#u(){let _=this.#L?.querySelector("fig-handle"),q=this.#G?.querySelector("fig-handle");if(_){let Q=_.offsetWidth||this.#H*2,Z=_.offsetHeight||this.#H*2;this.#H=Math.max(Q,Z)/2,this.#L.setAttribute("width",Q),this.#L.setAttribute("height",Z)}if(q){let Q=q.offsetWidth||this.#M,Z=q.offsetHeight||this.#D;if(this.#Z==="spring")this.#M=Q,this.#D=Z;this.#G.setAttribute("width",Q),this.#G.setAttribute("height",Z)}}#t(){if(this.#z||!window.ResizeObserver)return;this.#z=new ResizeObserver(()=>{if(this.#p())this.#o()}),this.#z.observe(this)}#p(){if(!this.#W)return!1;let _=this.#W.getBoundingClientRect(),q=Math.max(1,Math.round(_.width||200)),Q=Math.max(1,Math.round(_.height||200)),Z=q!==this.#Y||Q!==this.#O;return this.#Y=q,this.#O=Q,this.#W.setAttribute("viewBox",`0 0 ${q} ${Q}`),Z}#c(){let _=Math.min(0,this.#q.y,this.#_.y),q=Math.max(1,this.#q.y,this.#_.y),Q=q-_||1,Z=Math.min(this.#H,Math.max(0,(this.#O-1)/2));return{minVal:_,maxVal:q,range:Q,pad:Z,draw:Math.max(1,this.#O-Z*2)}}#d(_,q){let{maxVal:Q,range:Z,pad:$,draw:J}=this.#c();return{x:_*this.#Y,y:$+(Q-q)/Z*J}}#n(_,q){let{maxVal:Q,range:Z,pad:$,draw:J}=this.#c();return{x:_/this.#Y,y:Q-(q-$)/J*Z}}#e={minVal:0,maxVal:1.2,totalTime:1};#r(_,q){let Z=this.#O-40,{minVal:$,maxVal:J}=this.#e,j=J-$||1;return{x:_*this.#Y,y:20+(1-(q-$)/j)*Z}}#o(){if(this.#p(),this.#Z==="spring")this.#j0();else this.#$0()}#Z0(){this.#N?.classList.toggle("is-active",this.#Z==="bezier"&&this.#J===1),this.#U?.classList.toggle("is-active",this.#Z==="bezier"&&this.#J===2)}#$0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#Y),this.#F.setAttribute("height",this.#O);let _=this.#d(0,0),q=this.#d(this.#q.x,this.#q.y),Q=this.#d(this.#_.x,this.#_.y),Z=this.#d(1,1);for(let[J,j]of[[this.#P,Z.y],[this.#k,_.y]]){if(!J)continue;J.setAttribute("x1","0"),J.setAttribute("y1",j),J.setAttribute("x2",this.#Y),J.setAttribute("y2",j)}this.#j.setAttribute("d",`M${_.x},${_.y} C${q.x},${q.y} ${Q.x},${Q.y} ${Z.x},${Z.y}`),this.#N.setAttribute("x1",_.x),this.#N.setAttribute("y1",_.y),this.#N.setAttribute("x2",q.x),this.#N.setAttribute("y2",q.y),this.#U.setAttribute("x1",Z.x),this.#U.setAttribute("y1",Z.y),this.#U.setAttribute("x2",Q.x),this.#U.setAttribute("y2",Q.y);let $=this.#H;this.#L.setAttribute("x",q.x-$),this.#L.setAttribute("y",q.y-$),this.#G.setAttribute("x",Q.x-$),this.#G.setAttribute("y",Q.y-$),this.#J0()}#J0(){if(!this.#W||!this.#L||!this.#G)return;let _=this.#q.y>=this.#_.y?[this.#L,this.#G]:[this.#G,this.#L];for(let q of _)this.#W.append(q)}#j0(){if(this.#F)this.#F.setAttribute("x","0"),this.#F.setAttribute("y","0"),this.#F.setAttribute("width",this.#Y),this.#F.setAttribute("height",this.#O);let _=this.#S();if(!_.length)return;let q=_[_.length-1].t||1,Q=0,Z=1;for(let O of _){if(O.value<Q)Q=O.value;if(O.value>Z)Z=O.value}let $=Math.max(Math.abs(Q-1),Math.abs(Z-1),0.01),J=0;this.#e={minVal:1-$-J,maxVal:1+$+J,totalTime:q};let j=Math.max(0.05,Math.min(0.95,this.#B)),N="";for(let O=0;O<_.length;O++){let D=_[O].t/q*j,H=this.#r(D,_[O].value);N+=(O===0?"M":"L")+H.x.toFixed(1)+","+H.y.toFixed(1)}let W=this.#r(j,1),G=this.#r(1,1);if(N+=`L${W.x.toFixed(1)},${W.y.toFixed(1)} L${G.x.toFixed(1)},${G.y.toFixed(1)}`,this.#j.setAttribute("d",N),this.#A){let O=this.#r(0,1),D=this.#r(1,1);this.#A.setAttribute("x1",O.x),this.#A.setAttribute("y1",O.y),this.#A.setAttribute("x2",D.x),this.#A.setAttribute("y2",D.y)}let K=this.#Q0(_),U=K.t/q*j,L=this.#r(U,K.value),A=this.#H;this.#L.setAttribute("x",L.x-A),this.#L.setAttribute("y",L.y-A);let Y=this.#r(j,1);this.#G.setAttribute("x",Y.x-this.#M/2),this.#G.setAttribute("y",Y.y-this.#D/2)}#Q0(_){let q={t:0,value:1},Q=!1;for(let Z of _){if(Z.value>=0.99)Q=!0;if(Q&&Z.value>q.value)q={t:Z.t,value:Z.value}}return q}#l(){if(!this.#K)return;this.#K.value=this.#X,this.#Y0()}#q0(){if(!this.#R)return;this.#R.setAttribute("value",this.value)}#X0(_){let q=_.split(",").map((Q)=>Number.parseFloat(Q.trim()));if(q.length!==4||q.some((Q)=>!Number.isFinite(Q)))return null;if(q[0]<0||q[0]>1||q[2]<0||q[2]>1)return null;return q}#K0(_,q){let Q=this.#X0(_);if(!Q){if(q==="change")this.#q0();return}let Z=this.#Z;if(this.#Z="bezier",this.#q.x=Q[0],this.#q.y=Q[1],this.#_.x=Q[2],this.#_.y=Q[3],this.#X=this.#T(),Z!==this.#Z)this.#x();else if(this.#o(),this.#l(),q==="change")this.#q0();this.#_0(q)}#U0(_,q){if(!this.#K)return;for(let Q of this.#K.querySelectorAll("fig-select-option"))if(Q.value===_){let Z=Q.querySelector(':scope > [slot="prepend"]');if(Z)Z.replaceChildren(q.cloneNode(!0))}}#Y0(){if(!this.#K)return;if(!this.#v())return;let _=w.#g(this.#q.x,this.#q.y,this.#_.x,this.#_.y),q=w.#f(this.#Q);this.#U0("Custom bezier",_),this.#U0("Custom spring",q)}#L0(_){this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0(_)}#B0(_,q){let Q=_.shiftKey?0.1:0.01,Z=q===1?this.#q:this.#_;switch(_.key){case"ArrowLeft":Z.x-=Q;break;case"ArrowRight":Z.x+=Q;break;case"ArrowUp":Z.y+=Q;break;case"ArrowDown":Z.y-=Q;break;case"Home":Z.x=0,Z.y=0;break;case"End":Z.x=1,Z.y=1;break;default:return!1}return Z.x=Math.max(0,Math.min(1,Math.round(Z.x*100)/100)),Z.y=Math.round(Z.y*100)/100,this.#L0("input"),this.#_0("change"),!0}#O0(_,q){let Q=_.shiftKey?10:1;if(q==="bounce")switch(_.key){case"ArrowUp":this.#Q.damping=Math.max(1,Math.round(this.#Q.damping-Q));break;case"ArrowDown":this.#Q.damping=Math.max(1,Math.round(this.#Q.damping+Q));break;case"Home":this.#Q.damping=1;break;case"End":this.#Q.damping=50;break;default:return!1}else{let Z=Q*2;switch(_.key){case"ArrowLeft":this.#B=Math.max(0.05,this.#B-Z/200),this.#Q.stiffness=Math.max(10,Math.round(this.#Q.stiffness+Z*1.5));break;case"ArrowRight":this.#B=Math.min(0.95,this.#B+Z/200),this.#Q.stiffness=Math.max(10,Math.round(this.#Q.stiffness-Z*1.5));break;case"Home":this.#B=0.05;break;case"End":this.#B=0.95;break;default:return!1}}return this.#L0("input"),this.#_0("change"),!0}#N0(_,q){let Q=_?.querySelector("fig-handle");if(!Q)return;Q.addEventListener("pointerdown",(Z)=>{if(Z.preventDefault(),Z.stopImmediatePropagation(),this.#Z==="bezier")this.#W0(Z,Number(q));else this.#G0(Z,q)},{capture:!0}),Q.addEventListener("keydown",(Z)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(Z.key))return;if(!(this.#Z==="bezier"?this.#B0(Z,Number(q)):this.#O0(Z,q)))return;Z.preventDefault(),Z.stopImmediatePropagation()},{capture:!0})}#_0(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{mode:this.#Z,value:this.value,cssValue:this.cssValue,preset:this.#X}}))}#A0(){if(this.#W&&this.#Z==="bezier"){this.#N0(this.#L,"1"),this.#N0(this.#G,"2"),this.#L.addEventListener("pointerdown",(q)=>this.#W0(q,1)),this.#G.addEventListener("pointerdown",(q)=>this.#W0(q,2));let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(q)=>{if(q.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#W0(q,this.#M0(q))})}else if(this.#W){this.#N0(this.#L,"bounce"),this.#N0(this.#G,"duration"),this.#L.addEventListener("pointerdown",(q)=>{q.stopPropagation(),this.#G0(q,"bounce")}),this.#G.addEventListener("pointerdown",(q)=>{q.stopPropagation(),this.#G0(q,"duration")});let _=this.querySelector(".fig-easing-curve-svg-container");if(_)_.addEventListener("pointerdown",(q)=>{if(q.target?.closest?.(".fig-easing-curve-handle, fig-handle"))return;this.#G0(q,"duration")})}if(this.#K)this.#K.addEventListener("change",(_)=>{let q=_.detail,Q=w.PRESETS.find((Z)=>Z.name===q);if(!Q)return;if(Q.type==="bezier"){if(Q.value)this.#q.x=Q.value[0],this.#q.y=Q.value[1],this.#_.x=Q.value[2],this.#_.y=Q.value[3];if(this.#X=q,this.#Z!=="bezier")this.#Z="bezier",this.#x();else if(this.#W)this.#o(),this.#q0()}else if(Q.type==="spring"){if(Q.spring)this.#Q={...Q.spring};if(this.#X=q,this.#Z!=="spring")this.#Z="spring",this.#x();else if(this.#W)this.#o(),this.#q0()}this.#_0("input"),this.#_0("change")});if(this.#R)this.#R.addEventListener("input",(_)=>{_.stopPropagation();let q=_.detail??_.target?.value;if(typeof q!=="string")return;this.#K0(q,"input")}),this.#R.addEventListener("change",(_)=>{_.stopPropagation();let q=_.detail??_.target?.value;if(typeof q!=="string")return;this.#K0(q,"change")})}#R0(_){let q=this.#W.getScreenCTM();if(!q)return{x:0,y:0};let Q=q.inverse();return{x:Q.a*_.clientX+Q.c*_.clientY+Q.e,y:Q.b*_.clientX+Q.d*_.clientY+Q.f}}#M0(_){return this.#R0(_).x<=this.#Y/2?1:2}#W0(_,q){_.preventDefault(),this.#J=q,this.#Z0();let Q=this.#W.getBoundingClientRect(),Z=_.clientX,$=_.clientY,J=_.target?.closest?.(".fig-easing-curve-handle, fig-handle"),j=q===1?this.#q:this.#_,N=this.#R0(_),W=J?{...j}:this.#n(N.x,N.y),{range:G,draw:K}=this.#c(),U=G/Math.max(1,K/this.#O*Math.max(1,Q.height)),L=(Y)=>{if(!this.#J)return;let O={x:W.x+(Y.clientX-Z)/Math.max(1,Q.width),y:W.y-(Y.clientY-$)*U};if(O.x=Math.round(O.x*100)/100,O.y=Math.round(O.y*100)/100,O.x=Math.max(0,Math.min(1,O.x)),this.#J===1)this.#q.x=O.x,this.#q.y=O.y;else this.#_.x=O.x,this.#_.y=O.y;this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0("input")},A=()=>{this.#J=null,this.#Z0(),document.removeEventListener("pointermove",L),document.removeEventListener("pointerup",A),this.#_0("change")};document.addEventListener("pointermove",L),document.addEventListener("pointerup",A)}#G0(_,q){_.preventDefault(),this.#J=q,this.classList.toggle("spring-bounce-dragging",q==="bounce");let Q=this.#Q.damping,Z=this.#Q.stiffness,$=this.#B,J=_.clientY,j=_.clientX,N=(G)=>{if(!this.#J)return;if(q==="bounce"){let K=G.clientY-J;this.#Q.damping=Math.max(1,Math.round(Q+K*0.15))}else{let K=G.clientX-j;this.#B=Math.max(0.05,Math.min(0.95,$+K/200)),this.#Q.stiffness=Math.max(10,Math.round(Z-K*1.5))}this.#o(),this.#X=this.#T(),this.#l(),this.#q0(),this.#_0("input")},W=()=>{this.#J=null,this.classList.remove("spring-bounce-dragging"),document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",W),this.#_0("change")};document.addEventListener("pointermove",N),document.addEventListener("pointerup",W)}}M("fig-easing-curve",w);class B_ extends HTMLElement{#q=0;#_=0;#Q=0;#Z=1;#$=!1;#J=!1;#W=null;#j=null;#N=null;#U=null;#L=(_)=>this.#f(_);#G=null;#K=[];#R={};#X={};static get observedAttributes(){return["value","precision","aspect-ratio","fields","perspective","perspective-origin","transform-origin","selected","drag"]}connectedCallback(){this.#Z=parseInt(this.getAttribute("precision")||"1"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),g(this,"--perspective",this.getAttribute("perspective")),g(this,"--perspective-origin",this.getAttribute("perspective-origin")),this.#Y(this.getAttribute("transform-origin")),this.#P(this.getAttribute("fields"));let _=this.getAttribute("value");if(_)this.#k(_);if(this.querySelector(".fig-3d-rotate-container"))this.#A();else this.#z();this.#F(this.getAttribute("selected")),this.#O()}disconnectedCallback(){this.#$=!1,this.#B()}#A(){this.#j=this.querySelector(".fig-3d-rotate-container"),this.#W=this.querySelector(".fig-3d-rotate-cube"),this.#H(),this.#D(),this.#T()}#B(){if(this.#G?.abort(),this.#G=null,this.#N)window.removeEventListener("keydown",this.#N),window.removeEventListener("keyup",this.#U),this.#N=null,this.#U=null}#Y(_){if(!_||!_.trim()){this.style.removeProperty("--transform-origin");return}let q=_.trim().split(/\s+/);if(q.length===2)this.style.setProperty("--transform-origin",`${q[0]} ${q[1]} -50cqi`);else this.style.setProperty("--transform-origin",_.trim())}#O(){if(!this.#j)return;this.#j.style.cursor=this.#S?"":"default"}#F(_){if(!this.#W)return;let q=this.#W.querySelectorAll(".fig-3d-rotate-face"),Q=_?_.trim().toLowerCase():"";for(let Z of q)Z.classList.toggle("selected",Q!==""&&Z.classList.contains(Q))}#P(_){if(!_||!_.trim()){this.#K=[];return}let q=["rotateX","rotateY","rotateZ"];this.#K=_.split(",").map((Q)=>Q.trim()).filter((Q)=>q.includes(Q))}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="perspective"){g(this,"--perspective",Q);return}if(_==="perspective-origin"){g(this,"--perspective-origin",Q);return}if(_==="transform-origin"){this.#Y(Q);return}if(_==="selected"){this.#F(Q);return}if(_==="drag"){this.#O();return}if(_==="fields"){if(this.#P(Q),this.#W)this.#z();return}if(!this.#W)return;if(_==="value"&&Q){if(this.#$)return;this.#k(Q),this.#D(),this.#M()}if(_==="precision")this.#Z=parseInt(Q||"1")}get value(){let _=this.#Z;return`rotateX(${this.#q.toFixed(_)}deg) rotateY(${this.#_.toFixed(_)}deg) rotateZ(${this.#Q.toFixed(_)}deg)`}set value(_){this.setAttribute("value",_)}get rotateX(){return this.#q}get rotateY(){return this.#_}get rotateZ(){return this.#Q}#k(_){let q=_.match(/rotateX\(\s*(-?[\d.]+)\s*deg\s*\)/),Q=_.match(/rotateY\(\s*(-?[\d.]+)\s*deg\s*\)/),Z=_.match(/rotateZ\(\s*(-?[\d.]+)\s*deg\s*\)/);if(q)this.#q=parseFloat(q[1]);if(Q)this.#_=parseFloat(Q[1]);if(Z)this.#Q=parseFloat(Z[1])}#z(){let _={rotateX:"X",rotateY:"Y",rotateZ:"Z"},q={rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q},Q=X("div",{className:"fig-3d-rotate-cube"},["front","back","right","left","top","bottom"].map((J)=>X("div",{className:`fig-3d-rotate-face ${J}`}))),Z=X("div",{className:"fig-3d-rotate-container",tabindex:"0"},X("div",{className:"fig-3d-rotate-scene"},Q)),$=this.#K.map((J)=>X("fig-input-number",{name:J,step:"1",precision:"1",value:q[J],units:"°"},X("span",{slot:"prepend"},_[J])));this.replaceChildren(Z,...$),this.#j=Z,this.#W=Q,this.#H(),this.#D(),this.#T()}#H(){this.#R={};for(let _ of this.#K){let q=this.querySelector(`fig-input-number[name="${_}"]`);if(!q)continue;if(this.#R[_]=q,!this.#X[_])this.#X[_]=(Z)=>{Z.stopPropagation();let $=parseFloat(Z.target.value);if(isNaN($))return;if(_==="rotateX")this.#q=$;else if(_==="rotateY")this.#_=$;else if(_==="rotateZ")this.#Q=$;this.#D(),this.#C(Z.type)};let Q=this.#X[_];q.removeEventListener("input",Q),q.removeEventListener("change",Q),q.addEventListener("input",Q),q.addEventListener("change",Q)}}#M(){let _={rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q};for(let q of this.#K){let Q=this.#R[q];if(Q)Q.setAttribute("value",_[q].toFixed(this.#Z))}}#D(){if(!this.#W)return;this.#W.style.transform=`rotateX(${this.#q}deg) rotateY(${this.#_}deg) rotateZ(${this.#Q}deg)`}#C(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,rotateX:this.#q,rotateY:this.#_,rotateZ:this.#Q}}))}#I(_){if(!this.#J)return _;return Math.round(_/15)*15}#T(){if(this.#B(),!this.#j)return;this.#G=new AbortController,this.#j.addEventListener("pointerdown",this.#L,{signal:this.#G.signal}),this.#N=(_)=>{if(_.key==="Shift")this.#J=!0},this.#U=(_)=>{if(_.key==="Shift")this.#J=!1},window.addEventListener("keydown",this.#N),window.addEventListener("keyup",this.#U)}get#S(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}#f(_){if(!this.#S)return;_.preventDefault(),this.#$=!0,this.#j.classList.add("dragging"),this.#j.setPointerCapture(_.pointerId);let{clientX:q,clientY:Q}=_,Z=this.#q,$=this.#_,J=(N)=>{if(!this.#$)return;if(N.buttons===0){j();return}let W=N.clientX-q,G=N.clientY-Q;this.#_=this.#I($+W*0.5),this.#q=this.#I(Z-G*0.5),this.#D(),this.#M(),this.setAttribute("value",this.value),this.#C("input")},j=()=>{if(!this.#$)return;this.setAttribute("value",this.value),this.#$=!1,this.#j.classList.remove("dragging"),this.#j.removeEventListener("pointermove",J),this.#j.removeEventListener("pointerup",j),this.#j.removeEventListener("pointercancel",j),this.#j.removeEventListener("lostpointercapture",j),this.#C("change")};this.#j.addEventListener("pointermove",J),this.#j.addEventListener("pointerup",j),this.#j.addEventListener("pointercancel",j),this.#j.addEventListener("lostpointercapture",j)}}M("fig-3d-rotate",B_);class A0 extends HTMLElement{#q=50;#_=50;#Q=0;#Z=null;#$=[];#J=null;#W=null;#j=null;#N=!1;#U=!1;#L=null;#G=null;#K=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"]}#R(){this.#Z=this.querySelector(".origin-grid"),this.#$=Array.from(this.querySelectorAll(".origin-grid-cell")),this.#J=this.querySelector("fig-handle"),this.#W=this.querySelector('fig-input-number[name="x"]'),this.#j=this.querySelector('fig-input-number[name="y"]'),this.#D(),this.#C(),this.#z(),this.#m()}connectedCallback(){if(this.#Q=parseInt(this.getAttribute("precision")||"0"),g(this,"--aspect-ratio",this.getAttribute("aspect-ratio")),this.#P(this.getAttribute("value")),this.querySelector(".fig-origin-grid-surface"))this.#R();else this.#k();this.#B(),this.#H()}disconnectedCallback(){this.#N=!1,this.#w(),this.#b()}get value(){let _=this.#Q;return`${this.#q.toFixed(_)}% ${this.#_.toFixed(_)}%`}set value(_){this.setAttribute("value",_)}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="drag"){this.#B();return}if(_==="fields"){this.#k(),this.#B(),this.#H();return}if(_==="precision"){this.#Q=parseInt(Q||"0"),this.#z(),this.#H();return}if(_==="value"){if(this.#U||this.#N)return;this.#P(Q),this.#D(),this.#C(),this.#z()}}get#X(){let _=this.getAttribute("drag");return _===null||_.toLowerCase()!=="false"}get#A(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#B(){if(!this.#Z)return;this.#Z.classList.toggle("drag-disabled",!this.#X)}#Y(_){return Math.max(0,Math.min(100,_))}#O(_,q){let Q=(_||"").trim().toLowerCase();if(!Q)return q==="x"?this.#q:this.#_;let Z=q==="x"?{left:0,center:50,right:100}:{top:0,center:50,bottom:100};if(Q in Z)return Z[Q];let $=Number.parseFloat(Q.replace("%",""));if(Number.isFinite($))return $;return q==="x"?this.#q:this.#_}#F(_){let q=_.trim().replace(/,/g," ").split(/\s+/).filter(Boolean);if(q.length<1)return;if(q.length===1){let Q=this.#O(q[0],"x");this.#q=Q,this.#_=Q;return}this.#q=this.#O(q[0],"x"),this.#_=this.#O(q[1],"y")}#P(_){let q=typeof _==="string"?_.trim():"";if(!q){this.#q=50,this.#_=50;return}this.#F(q)}#k(){let _=Array.from({length:9},(N,W)=>{let G=W%3,K=Math.floor(W/3);return X("span",{className:"origin-grid-cell","data-col":G,"data-row":K},X("span",{className:"origin-grid-dot"}))}),q=this.#q.toFixed(this.#Q),Q=this.#_.toFixed(this.#Q),Z=document.createElement("fig-handle"),$=X("div",{className:"origin-grid","aria-label":"Transform origin grid"},[X("div",{className:"origin-grid-cells"},_),Z]),j=[X("div",{className:"fig-origin-grid-surface"},$)];if(this.#A){let N=(W,G)=>X("fig-input-number",{name:W,value:G,step:"1",units:"%"},X("span",{slot:"prepend"},W.toUpperCase()));j.push(X("div",{className:"origin-values"},[N("x",q),N("y",Q)]))}this.replaceChildren(...j),this.#Z=$,this.#$=_,this.#J=Z,this.#W=this.querySelector('fig-input-number[name="x"]'),this.#j=this.querySelector('fig-input-number[name="y"]'),this.#D(),this.#C(),this.#z(),this.#m()}#z(){let _=this.#q.toFixed(this.#Q),q=this.#_.toFixed(this.#Q);if(this.#W)this.#W.setAttribute("value",_);if(this.#j)this.#j.setAttribute("value",q)}#H(){let _=this.value;if(this.getAttribute("value")===_)return;this.#U=!0,this.setAttribute("value",_),this.#U=!1}#M(_){this.dispatchEvent(new CustomEvent(_,{bubbles:!0,detail:{value:this.value,x:this.#q,y:this.#_}}))}#D(){if(!this.#J)return;let _=(q)=>16.6667+this.#Y(q)/100*66.6667;this.#J.style.left=`${_(this.#q)}%`,this.#J.style.top=`${_(this.#_)}%`}#C(){if(!this.#J)return;let _=this.#q<0||this.#q>100,q=this.#_<0||this.#_>100,Q=this.#q<0,Z=this.#q>100,$=this.#_<0,J=this.#_>100;this.#J.classList.toggle("beyond-bounds-x",_),this.#J.classList.toggle("beyond-bounds-y",q),this.#J.classList.toggle("overflow-left",Q),this.#J.classList.toggle("overflow-right",Z),this.#J.classList.toggle("overflow-up",$),this.#J.classList.toggle("overflow-down",J)}#I(_,q){if(!this.#Z)return null;let Q=this.#Z.getBoundingClientRect(),Z=(_-Q.left)/Math.max(Q.width,1),$=(q-Q.top)/Math.max(Q.height,1);if(Z<0||Z>1||$<0||$>1)return null;let J=Math.max(0,Math.min(2,Math.floor(Z*3))),j=Math.max(0,Math.min(2,Math.floor($*3)));return this.#$.find((N)=>Number(N.getAttribute("data-col"))===J&&Number(N.getAttribute("data-row"))===j)}#T(){for(let _ of this.#$)_.classList.remove("is-hovered")}#S(_){if(this.#T(),_)_.classList.add("is-hovered")}#f(_,q,Q){let Z=Number(_),$=Number(q);if(!Number.isFinite(Z)||!Number.isFinite($))return;if(Z===this.#q&&$===this.#_&&Q==="input")return;this.#q=Z,this.#_=$,this.#D(),this.#C(),this.#z(),this.#H(),this.#M(Q)}#E(_,q){if(!this.#Z)return{x:this.#q,y:this.#_};let Q=this.#Z.getBoundingClientRect(),Z=Q.width/6,$=Q.height/6,J=Math.max(1,Q.width-Z*2),j=Math.max(1,Q.height-$*2),N=(_-(Q.left+Z))/J,W=(q-(Q.top+$))/j;return{x:N*100,y:W*100}}#y(_,q){if(!this.#Z)return{x:50,y:50};let Q=this.#Z.getBoundingClientRect(),Z=(_-Q.left)/Math.max(Q.width,1)*3,$=(q-Q.top)/Math.max(Q.height,1)*3,J=Math.max(0,Math.min(2,Math.floor(Z))),j=Math.max(0,Math.min(2,Math.floor($)));return{x:J*50,y:j*50}}#g(_){let Q=_,Z=1/0;for(let $ of A0.SNAP_POINTS){let J=Math.abs(_-$);if(J<Z)Z=J,Q=$}return Z<=2.5?Q:_}#v(_,q){if(!q)return _;return{x:this.#g(_.x),y:this.#g(_.y)}}#x(_){if(!this.#X)return!1;let q=_.shiftKey?10:1,Q=this.#q,Z=this.#_;switch(_.key){case"ArrowLeft":Q-=q;break;case"ArrowRight":Q+=q;break;case"ArrowUp":Z-=q;break;case"ArrowDown":Z+=q;break;case"Home":Q=0,Z=0;break;case"End":Q=100,Z=100;break;default:return!1}return this.#f(this.#Y(Q),this.#Y(Z),"input"),this.#M("change"),!0}#w(){if(!this.#Z||!this.#G||!this.#K)return;this.#Z.removeEventListener("pointermove",this.#G),this.#Z.removeEventListener("pointerup",this.#K),this.#Z.removeEventListener("pointercancel",this.#K),this.#Z.removeEventListener("lostpointercapture",this.#K),this.#G=null,this.#K=null}#h(_){if(!this.#Z||!this.#X)return;_.preventDefault(),this.#N=!0,this.#L=_.pointerId;let{clientX:q,clientY:Q}=_,Z=3,$=!1;this.#Z.setPointerCapture(_.pointerId),this.#G=(J)=>{if(!this.#N||J.pointerId!==this.#L)return;let j=J.clientX-q,N=J.clientY-Q,W=Math.hypot(j,N);if(!$&&W<Z)return;if(!$)$=!0,this.#Z.classList.add("is-dragging"),this.#T();let G=this.#v(this.#E(J.clientX,J.clientY),J.shiftKey);this.#f(G.x,G.y,"input")},this.#K=(J)=>{if(!this.#N||J.pointerId!==this.#L)return;if(this.#N=!1,this.#L=null,this.#Z.classList.remove("is-dragging"),this.#T(),this.#w(),!$){let j=this.#y(q,Q);this.#f(j.x,j.y,"input")}this.#M("change")},this.#Z.addEventListener("pointermove",this.#G),this.#Z.addEventListener("pointerup",this.#K),this.#Z.addEventListener("pointercancel",this.#K),this.#Z.addEventListener("lostpointercapture",this.#K)}#V=null;#b(){this.#V?.abort(),this.#V=null}#m(){if(this.#b(),!this.#Z||!this.#J)return;this.#V=new AbortController;let{signal:_}=this.#V;this.#Z.addEventListener("pointerdown",(Q)=>{let Z=this.#I(Q.clientX,Q.clientY);if(this.#S(Z),this.#X){this.#h(Q);return}let $=this.#y(Q.clientX,Q.clientY);this.#f($.x,$.y,"input"),this.#M("change")},{signal:_}),this.#Z.addEventListener("pointermove",(Q)=>{if(this.#N)return;let Z=this.#I(Q.clientX,Q.clientY);this.#S(Z)},{signal:_}),this.#Z.addEventListener("pointerleave",()=>{this.#T()},{signal:_}),this.#J.addEventListener("keydown",(Q)=>{if(!this.#x(Q))return;Q.preventDefault(),Q.stopPropagation()},{signal:_});let q=(Q,Z)=>{if(!Q)return;let $=(J)=>{let j=Number.parseFloat(J.target.value);if(!Number.isFinite(j))return;if(Z==="x")this.#f(j,this.#_,"input");else this.#f(this.#q,j,"input")};Q.addEventListener("input",$,{signal:_}),Q.addEventListener("change",$,{signal:_}),Q.addEventListener("focusout",()=>{this.#M("change")},{signal:_})};q(this.#W,"x"),q(this.#j,"y")}}M("fig-origin-grid",A0);class O_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=null;#N=!1;#U={x:0.5,y:0.5};#L=!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.#q=(_)=>this.#z(_),this.#_=()=>{this.isDragging=!0,this.plane?.classList.add("dragging")},this.#Q=(_)=>this.#H(_),this.#Z=()=>this.#M(),this.#$=(_)=>this.#O(_),this.#J=(_)=>this.#F(_),this.#W=()=>this.#P(),this.#j=()=>this.#P()}#G(){this.#B(),this.#I(),this.#S(),this.#f(),this.#L=!0}connectedCallback(){c(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",g(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.#X(),this.#B(),this.#I(),this.#S(),this.#f(),this.#L=!0})}#K(_){return this.coordinates==="math"?1-_:_}disconnectedCallback(){this.#Y()}get#R(){let _=this.getAttribute("fields");if(_===null)return!1;return _.toLowerCase()!=="false"}#X(){let _=this.#A(),q=X("div",{className:"fig-input-joystick-plane-container"}),Q=(j,N,W=!1)=>N?X("label",{className:["fig-joystick-axis-label",j,W?"no-rotate":""].filter(Boolean).join(" "),"aria-hidden":"true"},N):null;q.append(...[Q("left",_.left,_.leftNoRotate),Q("right",_.right),Q("top",_.top),Q("bottom",_.bottom)].filter(Boolean));let Z=X("div",{className:"fig-input-joystick-plane"},[X("div",{className:"fig-input-joystick-guides"}),X("fig-handle",{drag:!0,"drag-surface":".fig-input-joystick-plane","drag-axes":"x,y","drag-snapping":"modifier"})]),$=X("fig-tooltip",{text:"Reset"},X("fig-button",{variant:"ghost",icon:"true",className:"fig-joystick-reset","aria-label":"Reset to default"},b("reset",{size:"small"})));q.append(Z,$);let J=[q];if(this.#R){let j=(N,W)=>X("fig-input-number",{name:N,step:"1",value:W,min:"0",max:"100",units:"%"},X("span",{slot:"prepend"},N.toUpperCase()));J.push(X("div",{className:"joystick-values"},[j("x",(this.position.x*100).toFixed(this.precision)),j("y",(this.position.y*100).toFixed(this.precision))]))}this.replaceChildren(...J)}#A(){let _=(this.getAttribute("axis-labels")||"").trim();if(!_)return{left:"",right:"",top:"",bottom:"",leftNoRotate:!1};let q=_.split(/[\s,]+/).filter(Boolean);if(q.length===1)return{left:"",right:"",top:q[0],bottom:"",leftNoRotate:!1};if(q.length===2){let[Q,Z]=q;return{left:Q,right:"",top:"",bottom:Z,leftNoRotate:!0}}if(q.length===4){let[Q,Z,$,J]=q;return{left:Q,right:Z,top:$,bottom:J,leftNoRotate:!1}}return{left:"",right:"",top:"",bottom:"",leftNoRotate:!1}}#B(){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.#q),this.cursor?.addEventListener("pointerdown",this.#_),this.cursor?.addEventListener("input",this.#Q),this.cursor?.addEventListener("change",this.#Z);let _=this.querySelector(".fig-joystick-reset");if(_)_.addEventListener("click",()=>this.#E());if(this.#R&&this.xInput&&this.yInput)this.xInput.addEventListener("input",this.#$),this.xInput.addEventListener("change",this.#$),this.xInput.addEventListener("focusout",this.#W),this.yInput.addEventListener("input",this.#J),this.yInput.addEventListener("change",this.#J),this.yInput.addEventListener("focusout",this.#j)}#Y(){if(this.plane?.removeEventListener("pointerdown",this.#q),this.cursor?.removeEventListener("pointerdown",this.#_),this.cursor?.removeEventListener("input",this.#Q),this.cursor?.removeEventListener("change",this.#Z),this.plane?.classList.remove("dragging"),this.isDragging=!1,this.#R&&this.xInput&&this.yInput)this.xInput.removeEventListener("input",this.#$),this.xInput.removeEventListener("change",this.#$),this.xInput.removeEventListener("focusout",this.#W),this.yInput.removeEventListener("input",this.#J),this.yInput.removeEventListener("change",this.#J),this.yInput.removeEventListener("focusout",this.#j)}#O(_){let q=Number.parseFloat(_.target.value);if(!Number.isFinite(q))return;this.position.x=Math.max(0,Math.min(1,q/100)),this.#I(),this.#S(),this.#D()}#F(_){let q=Number.parseFloat(_.target.value);if(!Number.isFinite(q))return;this.position.y=Math.max(0,Math.min(1,q/100)),this.#I(),this.#S(),this.#D()}#P(){this.#S(),this.#C()}#k(_,q,{syncHandle:Q=!0}={}){let Z=Math.max(0,Math.min(1,_)),$=Math.max(0,Math.min(1,q)),J=this.coordinates==="math"?1-$:$;if(this.position={x:Z,y:J},Q)this.#I();this.#T(),this.#S()}#z(_){if(!this.plane||!this.cursor)return;if(_.target?.closest?.(".fig-joystick-reset, fig-tooltip, fig-handle"))return;let q=this.plane.getBoundingClientRect(),Q=q.width>0?(_.clientX-q.left)/q.width:0.5,Z=q.height>0?(_.clientY-q.top)/q.height:0.5;this.cursor.value=`${Math.round(Q*100)}% ${Math.round(Z*100)}%`,this.#k(Q,Z,{syncHandle:!1}),this.#D(),this.#C()}#H(_){let q=_.detail??{};if(typeof q.px!=="number"||typeof q.py!=="number")return;this.#k(q.px,q.py,{syncHandle:!1}),this.#D()}#M(){this.isDragging=!1,this.plane?.classList.remove("dragging"),this.#S(),this.#C()}#D(){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}}))}#I(){let _=this.#K(this.position.y);if(this.cursor)this.cursor.value=`${this.position.x*100}% ${_*100}%`;this.#T()}#T(){if(this.#R&&this.xInput&&this.yInput)this.xInput.setAttribute("value",Math.round(this.position.x*100)),this.yInput.setAttribute("value",Math.round(this.position.y*100))}#S(){let _=this.value;if(this.getAttribute("value")!==_)this.#N=!0,this.setAttribute("value",_),this.#N=!1;this.#f()}#f(){let _=this.#U,q=Math.round(this.position.x*100)===Math.round(_.x*100)&&Math.round(this.position.y*100)===Math.round(_.y*100);this.toggleAttribute("default",q),this.style.setProperty("--is-not-default",q?"0":"1")}#E(){this.position={...this.#U},this.#I(),this.#S(),this.#D(),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 q=_==null?"":String(_).trim();if(!q)this.position={x:0.5,y:0.5};else{let Q=q.split(/[\s,]+/).filter(Boolean),Z=(j)=>{if(!j)return 0.5;let N=j.includes("%"),W=Number.parseFloat(j.replace(/%/g,"").trim());if(!Number.isFinite(W))return 0.5;let G=N||Math.abs(W)>1?W/100:W;return Math.max(0,Math.min(1,G))},$=Z(Q[0]),J=Z(Q[1]??Q[0]);this.position={x:$,y:J}}if(this.#L)this.#I(),this.#f()}attributeChangedCallback(_,q,Q){if(_==="aspect-ratio"){g(this,"--aspect-ratio",Q);return}if(_==="value"){if(this.#N||this.isDragging)return;this.value=Q}if(_==="precision")this.precision=parseInt(Q);if(_==="transform")this.transform=Number(Q);if(_==="fields"&&Q!==q)this.#Y(),this.#X(),this.#B(),this.#I();if(_==="axis-labels"&&Q!==q)this.#Y(),this.#X(),this.#B(),this.#I();if(_==="coordinates")this.coordinates=Q||"screen",this.#I()}}M("fig-joystick",O_);class M0 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.#q()}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(_,q,Q){if(_==="duration")this.style.setProperty(this.durationPropertyName,Q||"1.5s");if(_==="playing"||_==="aria-label"||_==="aria-labelledby")this.#q()}#q(){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")}}M("fig-shimmer",M0);class A_ extends M0{connectedCallback(){super.connectedCallback(),this.inert=!0,this.setAttribute("inert","")}}M("fig-skeleton",A_);class M_ extends HTMLElement{static observedAttributes=["name","collapsible","open"];#q=null;#_=null;connectedCallback(){this.#$()}disconnectedCallback(){if(this.#_)this.#_.removeEventListener("click",this.#Q);if(this.#q)this.#q.removeEventListener("click",this.#Q),this.#q.removeEventListener("keydown",this.#Z),this.#q.querySelector("h3")?.removeEventListener("click",this.#Q)}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="open"){this.#q?.setAttribute("aria-expanded",String(this.open));return}this.#$()}get open(){let _=this.getAttribute("open");return _!==null&&_!=="false"}set open(_){let q=this.open;if(_)this.setAttribute("open","true");else this.setAttribute("open","false");if(this.#q?.setAttribute("aria-expanded",String(!!_)),q!==!!_)this.dispatchEvent(new CustomEvent("openchange",{detail:{open:!!_},bubbles:!0}))}#Q=(_)=>{_.stopPropagation(),this.open=!this.open};#Z=(_)=>{if(_.key!=="Enter"&&_.key!==" ")return;_.preventDefault(),_.stopPropagation(),this.open=!this.open};#$(){let _=this.hasAttribute("collapsible"),Q=this.getAttribute("name")||(_?"Group":null),Z=this.querySelector(":scope > fig-header");if(!Q&&!_&&!Z){if(this.#q&&this.#q.dataset.generated)this.#q.remove(),this.#q=null,this.#_=null;return}if(Z)this.#q=Z;else if(!this.#q||!this.#q.dataset.generated)this.#q=document.createElement("fig-header"),this.#q.setAttribute("borderless",""),this.#q.dataset.generated="true",this.prepend(this.#q);let $=this.#q.querySelector("h3");if(!$)$=document.createElement("h3"),this.#q.prepend($);if(!$.id)$.id=m();if(this.#q.dataset.generated)$.textContent=Q;if(!this.hasAttribute("role"))this.setAttribute("role","group");if(!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby"))this.setAttribute("aria-labelledby",$.id);if(_){if(!$.querySelector(".fig-group-chevron")){let J=b("chevron",{size:"small",className:"fig-group-chevron"});$.prepend(J)}if(this.#_=$.querySelector(".fig-group-chevron"),$.removeEventListener("click",this.#Q),this.#q.removeEventListener("click",this.#Q),this.#q.addEventListener("click",this.#Q),this.#q.setAttribute("role","button"),this.#q.setAttribute("tabindex","0"),this.#q.setAttribute("aria-expanded",String(this.open)),this.#q.removeEventListener("keydown",this.#Z),this.#q.addEventListener("keydown",this.#Z),!this.hasAttribute("open"))this.setAttribute("open","false"),this.#q.setAttribute("aria-expanded","false")}else{if($.removeEventListener("click",this.#Q),this.#q.removeEventListener("click",this.#Q),this.#q.removeAttribute("role"),this.#q.removeAttribute("tabindex"),this.#q.removeAttribute("aria-expanded"),this.#q.removeEventListener("keydown",this.#Z),this.#_)this.#_.remove(),this.#_=null;this.removeAttribute("open")}}}M("fig-group",M_);class z_ extends HTMLElement{}M("fig-header",z_);class F_ extends HTMLElement{}M("fig-footer",F_);class H_ 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")}}M("fig-spinner",H_);class T_ extends HTMLElement{static get observedAttributes(){return["fit","aspect-ratio"]}connectedCallback(){this.#q(),this.#_()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="fit")this.#q();if(_==="aspect-ratio")this.#_()}#q(){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")}}M("fig-preview",T_);var e_={chevron:{medium:"--icon-24-chevron",small:"--icon-16-chevron"},checkmark:"--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"}};function _q(_,q="medium"){let Q=_&&e_[_];if(!Q)return"";let Z=typeof Q==="string"?Q:Q[q==="small"?"small":"medium"];return Z?`var(${Z})`:""}class k_ extends HTMLElement{static get observedAttributes(){return["name","size","color"]}connectedCallback(){this.#q()}attributeChangedCallback(_,q,Q){if(q!==Q)this.#q()}#q(){let _=this.getAttribute("name"),q=this.getAttribute("size")||"medium",Q=_q(_,q);if(Q)this.style.setProperty("--icon",Q);else this.style.removeProperty("--icon");if(q==="small")this.style.setProperty("--size","var(--spacer-3)");else this.style.removeProperty("--size");let Z=this.getAttribute("color");if(Z)this.style.backgroundColor=Z;else this.style.removeProperty("background-color");if(!this.hasAttribute("aria-hidden"))this.setAttribute("aria-hidden","true")}}M("fig-icon",k_);class D_ extends HTMLElement{}M("fig-content",D_);class P_ extends HTMLElement{}M("fig-tab-content",P_);class S_ extends HTMLElement{}M("fig-button-combo",S_);class f_ extends HTMLElement{}M("fig-input-combo",f_);class I_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=this.#Y.bind(this);#$=this.#O.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.#U(),this.#X()}disconnectedCallback(){this.#W(),this.removeEventListener("click",this.#L)}#W(){if(this.#q)this.#q.removeEventListener("input",this.#Z),this.#q.removeEventListener("change",this.#$);if(this.#_)this.#_.removeEventListener("input",this.#Z),this.#_.removeEventListener("change",this.#$);if(this.#Q)this.#Q.disconnect(),this.#Q=null}#j(){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#N(){let _=this.getAttribute("alpha");return _===null||_!=="false"}#U(){this.#W();let _=this.#J;if(_==="add"||_==="remove"){let N=_==="add"?"add":"minus",W=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");this.replaceChildren(X("fig-button",{icon:!0,variant:"ghost","aria-label":W},b(N))),this.#q=null,this.#_=null,this.addEventListener("click",this.#L),this.#A();return}this.removeEventListener("click",this.#L);let q=(this.getAttribute("value")||"").trim(),Q=this.#R(q),Z=this.#K(q),$=Z<1?JSON.stringify({type:"solid",color:Q,opacity:Math.round(Z*100)}):JSON.stringify({type:"solid",color:Q}),J=X("fig-swatch",{background:Q,alpha:Z<1?Z:null}),j=null;if(o())j=X("fig-fill-picker",{mode:"solid",alpha:this.#N?null:"false",value:$},J),this.replaceChildren(j);else this.replaceChildren(J);if(this.#q=j,this.#_=J,this.#q?.addEventListener("input",this.#Z),this.#q?.addEventListener("change",this.#$),!this.#q)this.#_?.addEventListener("input",this.#Z),this.#_?.addEventListener("change",this.#$);this.#j(),this.#A()}#L=()=>{let _=this.#J;this.dispatchEvent(new CustomEvent(_,{bubbles:!0,composed:!0}))};#G(_){if(!_)return"#D9D9D9";let q=_.replace("#","").trim();if(q.length===3||q.length===4){let[Q,Z,$]=q;return`#${Q}${Q}${Z}${Z}${$}${$}`.toUpperCase()}if(q.length===6||q.length===8)return`#${q.slice(0,6)}`.toUpperCase();return"#D9D9D9"}#K(_){if(!_)return 1;let q=String(_).trim(),Q=q.replace(/^#/,"");if(/^[0-9a-f]{4}$/i.test(Q)){let $=Q[3];return parseInt(`${$}${$}`,16)/255}if(/^[0-9a-f]{8}$/i.test(Q))return parseInt(Q.slice(6,8),16)/255;let Z=q.match(/rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*([\d.]+)\s*\)/i);if(Z)return parseFloat(Z[1]);return 1}#R(_){if(!_)return"#D9D9D9";let q=String(_).trim();if(q.startsWith("{"))try{let Q=JSON.parse(q);if(Q?.color)return this.#R(Q.color)}catch{}if(q.startsWith("#"))return this.#G(q);if(/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(q))return this.#G(q);try{let{ctx:Q}=B0(1,1);Q.fillStyle="#000000",Q.fillStyle=q;let Z=Q.fillStyle;if(Z.startsWith("#"))return this.#G(Z);let $=Z.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if($){let J=(j)=>Math.max(0,Math.min(255,Number(j))).toString(16).padStart(2,"0");return`#${J($[1])}${J($[2])}${J($[3])}`.toUpperCase()}}catch{}return"#D9D9D9"}#X(){let _=this.getAttribute("value"),q=this.#R(_),Q=this.#K(_);if(_!==q&&Q>=1){this.setAttribute("value",q);return}if(this.#q){this.#A();let Z=Q<1?{type:"solid",color:q,opacity:Math.round(Q*100)}:{type:"solid",color:q};if(this.#q.setAttribute("value",JSON.stringify(Z)),this.#N)this.#q.removeAttribute("alpha");else this.#q.setAttribute("alpha","false");if(k(this,"disabled"))this.#q.setAttribute("disabled","");else this.#q.removeAttribute("disabled")}if(this.#_){if(this.#A(),this.#_.setAttribute("background",q),Q<1)this.#_.setAttribute("alpha",String(Q));else this.#_.removeAttribute("alpha");if(k(this,"disabled"))this.#_.setAttribute("disabled","");else this.#_.removeAttribute("disabled")}}#A(){let _=this.#J,q=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",Q=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";if(this.setAttribute("aria-disabled",q?"true":"false"),this.setAttribute("aria-pressed",Q?"true":"false"),_==="add"||_==="remove"){let N=this.querySelector("fig-button"),W=this.getAttribute("aria-label")||(_==="add"?"Add color stop":"Remove color stop");if(N?.setAttribute("aria-label",W),q)N?.setAttribute("disabled","");else N?.removeAttribute("disabled");return}let Z=this.#q||this.#_;if(!Z)return;let $=this.getAttribute("aria-label")||"Color stop",J=this.getAttribute("aria-labelledby"),j=this.getAttribute("aria-describedby");if(J)Z.setAttribute("aria-labelledby",J),Z.removeAttribute("aria-label");else Z.setAttribute("aria-label",$),Z.removeAttribute("aria-labelledby");if(j)Z.setAttribute("aria-describedby",j);else Z.removeAttribute("aria-describedby")}#B(_,q){let Q=this.#R(_?.color),Z=this.#R(this.getAttribute("value"));if(Q!==Z)this.setAttribute("value",Q);else this.#X();let $={color:this.value};if(this.#N){if(_?.opacity!==void 0)$.opacity=_.opacity;else if(_?.alpha!==void 0)$.opacity=Math.round(_.alpha*100)}Object.assign($,i($.color,this.#N?_?.alpha:1,$.opacity)),this.dispatchEvent(new CustomEvent(q,{bubbles:!0,cancelable:!0,composed:!0,detail:$}))}#Y(_){_.stopPropagation(),this.#B(_.detail||{color:_.target?.value},"input")}#O(_){_.stopPropagation(),this.#B(_.detail||{color:_.target?.value},"change")}attributeChangedCallback(_,q,Q){if(q===Q)return;if(!this.isConnected)return;switch(_){case"control":this.#U();break;case"value":case"selected":case"disabled":case"aria-label":case"aria-labelledby":case"aria-describedby":this.#X(),this.#A();break}}get value(){return this.#R(this.getAttribute("value"))}set value(_){if(_===null||_===void 0||_===""){this.removeAttribute("value");return}this.setAttribute("value",this.#R(_))}get selected(){return k(this,"selected")}set selected(_){this.toggleAttribute("selected",Boolean(_))}get disabled(){return k(this,"disabled")}set disabled(_){this.toggleAttribute("disabled",Boolean(_))}}M("fig-color-tip",I_);class C_ 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",k(this,"selected")?"true":"false"),k(this,"disabled"))this.setAttribute("aria-disabled","true")}attributeChangedCallback(_){if(_==="selected")this.setAttribute("aria-selected",k(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")}}M("fig-choice",C_);class V_ extends HTMLElement{#q=null;#_=this.#F.bind(this);#Q=this.#P.bind(this);#Z=this.#z.bind(this);#$=null;#J=null;#W=null;#j=null;#N=null;#U=!1;constructor(){super()}static get observedAttributes(){return["value","disabled","choice-element","columns","drag","layout","overflow","loop"]}get#L(){return this.getAttribute("overflow")==="scrollbar"?"scrollbar":"buttons"}get#G(){let _=this.getAttribute("drag");return _===null||_!=="false"}get#K(){return this.getAttribute("choice-element")||"fig-choice"}#R(){let _=this.getAttribute("columns"),q=_===null?NaN:Number(_);if(Number.isInteger(q)&&q>0)this.style.setProperty("--fig-chooser-grid-columns",String(q));else this.style.removeProperty("--fig-chooser-grid-columns")}get choices(){return Array.from(this.querySelectorAll(`:scope > ${this.#K}`))}get selectedChoice(){return this.#q}set selectedChoice(_){if(_&&!this.contains(_))return;let q=this.choices;for(let Z of q){let $=Z===_,J=k(Z,"selected");if($&&!J)Z.setAttribute("selected","");else if(!$&&J)Z.removeAttribute("selected")}this.#q=_;let Q=_?.getAttribute("value")??"";if(this.getAttribute("value")!==Q){if(Q)this.setAttribute("value",Q)}this.#y(_)}get value(){return this.#q?.getAttribute("value")??""}set value(_){if(_===null||_===void 0||_==="")return;this.setAttribute("value",String(_))}connectedCallback(){if(this.setAttribute("role","listbox"),this.shadowRoot)this.shadowRoot.replaceChildren();this.#R(),this.#C(),this.addEventListener("click",this.#_),this.addEventListener("keydown",this.#Q),this.addEventListener("scroll",this.#Z),this.#I(),this.#M(),this.#g(),this.#H(),this.#B(),c(this,()=>{this.#A(),this.#z(),this.#X()})}#X(){let _=()=>{if(!this.isConnected)return;if(this.#q)this.#y(this.#q,"auto")},q=()=>{let Q=this.querySelectorAll("img, video");for(let Z of Q){if(Z.tagName==="IMG"?Z.complete:Z.readyState>=1)continue;let $=()=>{Z.removeEventListener("load",$),Z.removeEventListener("loadedmetadata",$),Z.removeEventListener("error",$),_()};Z.addEventListener("load",$),Z.addEventListener("loadedmetadata",$),Z.addEventListener("error",$)}};requestAnimationFrame(()=>{q(),_()})}disconnectedCallback(){this.removeEventListener("click",this.#_),this.removeEventListener("keydown",this.#Q),this.removeEventListener("scroll",this.#Z),this.#D(),this.#$?.disconnect(),this.#$=null,this.#J?.disconnect(),this.#J=null,this.#T()}attributeChangedCallback(_,q,Q){if(_==="value"&&Q!==q&&Q)this.#Y(Q);if(_==="disabled")this.#B();if(_==="choice-element")requestAnimationFrame(()=>this.#A());if(_==="columns")this.#R(),this.#E();if(_==="drag")if(this.#G)this.#M();else this.#D();if(_==="overflow")this.#I(),requestAnimationFrame(()=>this.#z());if(_==="layout"){if(this.#I(),Q==="horizontal")this.scrollTop=0;else this.scrollLeft=0;this.#E()}}#A(){let _=this.choices;if(!_.length){this.#q=null;return}let q=this.getAttribute("value");if(q&&this.#Y(q))return;let Q=_.find((Z)=>k(Z,"selected"));if(Q){this.selectedChoice=Q;return}this.selectedChoice=_[0]}#B(){let _=k(this,"disabled");if(_)this.setAttribute("aria-disabled","true");else this.removeAttribute("aria-disabled");for(let q of this.choices)if(_||k(q,"disabled"))q.setAttribute("aria-disabled","true"),q.setAttribute("tabindex","-1");else q.removeAttribute("aria-disabled"),q.setAttribute("tabindex","0")}#Y(_){let q=this.choices;for(let Q of q)if(Q.getAttribute("value")===_)return this.selectedChoice=Q,!0;return!1}#O(_){let q=this.#K,Q=_;while(Q&&Q!==this){if(Q.matches(q))return Q;Q=Q.parentElement}return null}#F(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.#O(_.target);if(!q)return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;this.selectedChoice=q,this.#k()}#P(_){if(this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false")return;let q=this.choices.filter((J)=>!J.hasAttribute("disabled")||J.getAttribute("disabled")==="false");if(!q.length)return;let Q=q.indexOf(this.#q),Z=Q,$=this.hasAttribute("loop");switch(_.key){case"ArrowDown":case"ArrowRight":if(_.preventDefault(),Q<q.length-1)Z=Q+1;else if($)Z=0;break;case"ArrowUp":case"ArrowLeft":if(_.preventDefault(),Q>0)Z=Q-1;else if($)Z=q.length-1;break;case"Home":_.preventDefault(),Z=0;break;case"End":_.preventDefault(),Z=q.length-1;break;case"Enter":case" ":if(_.preventDefault(),document.activeElement?.matches(this.#K)){let J=this.#O(document.activeElement);if(J&&J!==this.#q)this.selectedChoice=J,this.#k()}return;default:return}if(Z!==Q&&q[Z])this.selectedChoice=q[Z],q[Z].focus(),this.#k()}#k(){let _=this.value;this.dispatchEvent(new CustomEvent("input",{detail:_,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:_,bubbles:!0}))}#z(){if(this.#L==="scrollbar")return;let _=this.getAttribute("layout")==="horizontal";e(this,this,_?"x":"y")}#H(){this.#J?.disconnect(),this.#J=new ResizeObserver(()=>{this.#z(),this.#E()}),this.#J.observe(this)}#M(){if(this.#N?.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.#N.active=!0,this.#N.didDrag=!1,this.#N.startX=J.clientX,this.#N.startY=J.clientY,this.#N.scrollLeft=this.scrollLeft,this.#N.scrollTop=this.scrollTop,this.style.cursor="grab",this.style.userSelect="none"},q=(J)=>{if(!this.#N.active)return;let j=this.getAttribute("layout")==="horizontal",N=J.clientX-this.#N.startX,W=J.clientY-this.#N.startY;if(!this.#N.didDrag&&Math.abs(j?N:W)>3)this.#N.didDrag=!0,this.style.cursor="grabbing",this.setPointerCapture(J.pointerId);if(!this.#N.didDrag)return;if(j)this.scrollLeft=this.#N.scrollLeft-N;else this.scrollTop=this.#N.scrollTop-W},Q=(J)=>{if(!this.#N.active)return;let j=this.#N.didDrag;if(this.#N.active=!1,this.#N.didDrag=!1,this.style.cursor="",this.style.userSelect="",J.pointerId!==void 0)try{this.releasePointerCapture(J.pointerId)}catch{}if(j)J.preventDefault(),J.stopPropagation()},Z=(J)=>{if(this.#N?.suppressClick)J.stopPropagation(),J.preventDefault(),this.#N.suppressClick=!1},$=(J)=>{if(this.#N?.didDrag)this.#N.suppressClick=!0,setTimeout(()=>{if(this.#N)this.#N.suppressClick=!1},0)};this.#N={active:!1,didDrag:!1,suppressClick:!1,startX:0,startY:0,scrollLeft:0,scrollTop:0,bound:!0,onPointerDown:_,onPointerMove:q,onPointerUp:Q,onClick:Z,onPointerUpCapture:$},this.addEventListener("pointerdown",_),window.addEventListener("pointermove",q),window.addEventListener("pointerup",Q),this.addEventListener("pointerup",$,!0),this.addEventListener("click",Z,!0)}#D(){if(!this.#N?.bound)return;this.removeEventListener("pointerdown",this.#N.onPointerDown),window.removeEventListener("pointermove",this.#N.onPointerMove),window.removeEventListener("pointerup",this.#N.onPointerUp),this.removeEventListener("pointerup",this.#N.onPointerUpCapture,!0),this.removeEventListener("click",this.#N.onClick,!0),this.style.cursor="",this.style.userSelect="",this.#N=null}#C(){if(this.#U)return;let _=this.querySelector(":scope > [data-fig-chooser-scroll]");if(!_)return;this.#U=!0;try{let q=Array.from(_.childNodes);_.replaceWith(...q)}finally{this.#U=!1}}#I(){if(this.#L==="scrollbar")this.#T();else this.#S()}#T(){this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null,this.classList.remove("overflow-start","overflow-end")}#S(){if(this.#W&&this.#j&&this.contains(this.#W)&&this.contains(this.#j))return;this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null;let _=X0({owner:"chooser",startClass:"fig-chooser-nav-start",endClass:"fig-chooser-nav-end",chevronClass:"fig-chooser-nav-chevron",onStart:()=>this.#f(-1),onEnd:()=>this.#f(1)});this.#W=_.start,this.#j=_.end,this.prepend(this.#W),this.append(this.#j)}#f(_){let q=this.getAttribute("layout")==="horizontal";_0(this,q?"x":"y",_)}#E(){if(!this.#q)return;this.#y(this.#q,"auto")}#y(_,q="smooth"){if(!_)return;requestAnimationFrame(()=>{if(!_.isConnected)return;let Q=this.scrollHeight>this.clientHeight,Z=this.scrollWidth>this.clientWidth;if(!Z&&!Q)return;let $=_.getBoundingClientRect(),J=this.getBoundingClientRect(),j={behavior:q},N=!1;if(Q){let W=$.top-J.top+this.scrollTop,G=this.scrollHeight-this.clientHeight;j.top=Math.max(0,Math.min(W+$.height/2-this.clientHeight/2,G)),N=!0}if(Z){let W=$.left-J.left+this.scrollLeft,G=this.scrollWidth-this.clientWidth;j.left=Math.max(0,Math.min(W+$.width/2-this.clientWidth/2,G)),N=!0}if(N)this.scrollTo(j);this.#z()})}#g(){this.#$?.disconnect(),this.#$=new MutationObserver(()=>{if(this.#U)return;this.#C(),this.#I(),this.#B();let _=this.choices;if(this.#q&&!_.includes(this.#q))this.#q=null,this.#A();else if(!this.#q&&_.length)this.#A();requestAnimationFrame(()=>this.#z())}),this.#$.observe(this,{childList:!0,subtree:!1})}}M("fig-chooser",V_);class E_ extends HTMLElement{static observedAttributes=["color","selected","disabled","drag","drag-surface","drag-axes","drag-snapping","value","type","tip","hit-area","hit-area-mode","aria-label","aria-labelledby"];#q=!1;#_=!1;#Q=null;#Z=null;#$=!1;#J=null;#W=null;#j=null;#N=null;get#U(){let _=(this.getAttribute("tip")||"").trim().toLowerCase();return _==="color"||_==="add"||_==="remove"?_:null}get#L(){return!this.hasAttribute("data-no-color-picker")}get#G(){let _=this.getAttribute("drag");return _!==null&&_!=="false"}get#K(){let _=(this.getAttribute("drag-axes")||"x,y").toLowerCase();return{x:_.includes("x"),y:_.includes("y")}}get#R(){let _=this.getAttribute("drag-snapping");if(_===null)return"false";let q=_.trim().toLowerCase();if(q==="modifier")return"modifier";if(q===""||q==="true")return"true";return"false"}#X(_){let q=this.#R;if(q==="true")return!0;if(q==="modifier")return!!_;return!1}#A(_){if(_<0.1)return 0;if(_>0.9)return 1;if(_>0.4&&_<0.6)return 0.5;return _}#B(_,q){if(Math.abs(_-q)<0.1){let Z=(_+q)/2;return{x:Z,y:Z}}if(Math.abs(1-_-q)<0.1)return{x:_,y:1-_};return{x:_,y:q}}#Y(){let _=this.getAttribute("drag-surface");if(!_||_==="parent")return this.parentElement;return this.closest(_)}get value(){let _=this.#Y();if(!_)return"0% 0%";let{px:q,py:Q}=this.#l(_.getBoundingClientRect());return`${Math.round(q*100)}% ${Math.round(Q*100)}%`}set value(_){this.setAttribute("value",_??"0% 0%")}#O(_){let q=_==null?"":String(_).trim();if(!q)return{xPct:0,yPct:0};let Q=q.split(/[\s,]+/).filter(Boolean),Z=(j)=>{if(!j)return 0;let N=j.includes("px"),W=j.includes("%"),G=parseFloat(j.replace(/[%px]/g,""));if(!Number.isFinite(G))return 0;if(N)return{px:G};if(W||Math.abs(G)>1)return Math.max(0,Math.min(100,G));return Math.max(0,Math.min(100,G*100))},$=Z(Q[0]),J=Z(Q[1]??Q[0]);return{xToken:$,yToken:J}}#F(_){let q=this.#Y();if(!q)return;let{xToken:Q,yToken:Z}=this.#O(_),$=q.getBoundingClientRect(),J=(W,G)=>{if(W&&typeof W==="object"&&"px"in W)return Math.max(0,Math.min(G,W.px));return null},j=(W)=>{return`${typeof W==="number"?W:0}%`},N=this.#K;if(this.#P(N),N.x){let W=J(Q,$.width);this.style.left=W===null?j(Q):`${Math.round(W)}px`}if(N.y){let W=J(Z,$.height);this.style.top=W===null?j(Z):`${Math.round(W)}px`}}#P(_=this.#K){this.style.setProperty("--fig-handle-position-translate",`${_.x?"-50%":"0"} ${_.y?"-50%":"0"}`)}#k(){this.#$=!0,this.setAttribute("value",this.value),this.#$=!1}get#z(){return this.getAttribute("hit-area-mode")||"handle"}#H(){let _=this.getAttribute("hit-area");if(!_)return null;let q=_.trim().split(/\s+/),Q=0,Z=0,$=!1,J=[];for(let j of q){if(j==="circle"){$=!0;continue}let N=parseFloat(j);if(Number.isFinite(N))J.push(N)}if(J.length>=2)Q=J[0],Z=J[1];else if(J.length===1)Q=J[0],Z=J[0];else return null;return{vPad:Q,hPad:Z,circle:$}}#M(){let _=this.#H();if(!_){if(this.#N)this.#N.remove(),this.#N=null;this.style.removeProperty("--fig-handle-hit-area-size");return}if(!this.#N){let q=document.createElement("div");q.classList.add("fig-handle-hit-area"),q.addEventListener("pointerdown",(Q)=>this.#D(Q)),this.prepend(q),this.#N=q}if(this.style.setProperty("--fig-handle-hit-area-size",String(_.hPad*2)),_.circle)this.#N.style.borderRadius="50%";else this.#N.style.borderRadius="inherit"}#D(_){if(k(this,"disabled"))return;if(_.target!==this.#N)return;if(this.#z==="delegate")_.preventDefault(),_.stopPropagation(),this.dispatchEvent(new CustomEvent("hitareadown",{bubbles:!0,detail:{originalEvent:_}}));else this.#g(_)}connectedCallback(){this.#E(),this.#f(),this.#M(),this.addEventListener("click",this.#C),document.addEventListener("pointerdown",this.#I),document.addEventListener("keydown",this.#T);let _=this.getAttribute("value");if(_)this.#F(_);if(this.#U)this.#u()}disconnectedCallback(){if(this.#y(),this.#t(),this.#b(),this.#i(),this.#N)this.#N.remove(),this.#N=null;this.removeEventListener("click",this.#C),document.removeEventListener("pointerdown",this.#I),document.removeEventListener("keydown",this.#T)}select(){if(k(this,"disabled"))return;this.setAttribute("selected","")}deselect(){this.removeAttribute("selected")}#C=(_)=>{if(this.#_){this.#_=!1;return}if(this.select(),this.getAttribute("type")==="color"&&this.#L&&!this.#U)this.#V()};#I=(_)=>{if(this.contains(_.target))return;if((this.#J||this.#W)&&_.target.closest?.("dialog, [popover]"))return;this.deselect()};#T=(_)=>{if(_.defaultPrevented)return;if(_.target===this&&this.#G&&["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(_.key)){if(this.#S(_)){if(_.preventDefault(),!k(this,"selected"))this.select()}return}if(_.key!=="Enter"&&_.key!==" ")return;if(_.target===this&&!k(this,"selected")){if(_.preventDefault(),this.getAttribute("type")==="color"&&this.#L&&!this.#U)this.#V();else this.select();return}if(!k(this,"selected"))return;if(this.getAttribute("type")!=="color")return;if(!this.#L)return;if(_.preventDefault(),!this.#U)this.#V()};#S(_){if(k(this,"disabled"))return!1;let q=this.#Y();if(!q)return!1;let Q=q.getBoundingClientRect();if(Q.width<=0||Q.height<=0)return!1;let Z=this.#K,$=this.#l(Q),J=_.shiftKey?0.1:0.01,j=$.px,N=$.py;switch(_.key){case"ArrowLeft":if(!Z.x)return!1;j-=J;break;case"ArrowRight":if(!Z.x)return!1;j+=J;break;case"ArrowUp":if(!Z.y)return!1;N-=J;break;case"ArrowDown":if(!Z.y)return!1;N+=J;break;case"Home":if(Z.x)j=0;if(Z.y)N=0;break;case"End":if(Z.x)j=1;if(Z.y)N=1;break;default:return!1}if(j=Math.max(0,Math.min(1,j)),N=Math.max(0,Math.min(1,N)),this.#P(Z),Z.x)this.style.left=`${Math.round(j*Q.width)}px`;if(Z.y)this.style.top=`${Math.round(N*Q.height)}px`;this.#k();let W={...this.#l(Q),shiftKey:_.shiftKey,keyboard:!0};return this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:W})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:W})),!0}attributeChangedCallback(_,q,Q){if(_==="color"){if(!Q||Q==="false"||Q==="true")this.style.removeProperty("--fill");else this.style.setProperty("--fill",Q);if(this.#J&&this.#U==="color"&&Q)this.#J.setAttribute("value",Q);this.#w()}if(_==="drag")this.#f();if(_==="hit-area")this.#M();if(_==="selected")this.#p();if(_==="selected"||_==="disabled"||_==="type"||_==="tip"||_==="aria-label"||_==="aria-labelledby")this.#E();if(_==="value"&&!this.#$&&!this.#q)this.#F(Q);if(_==="tip"){if(this.#t(),this.#U)this.#b(),this.#u()}}#f(){if(this.#G&&!this.#Q)this.#Q=(_)=>this.#g(_),this.addEventListener("pointerdown",this.#Q);else if(!this.#G&&this.#Q)this.#y()}#E(){let _=this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false",q=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",q?"true":"false"),!this.hasAttribute("aria-label")&&!this.hasAttribute("aria-labelledby")){let Q=this.#U||this.getAttribute("type")||"handle";this.setAttribute("aria-label",Q==="color"?"Color handle":Q==="add"?"Add handle":Q==="remove"?"Remove handle":"Handle")}}#y(){if(this.#Z?.(),this.#Z=null,this.#Q)this.removeEventListener("pointerdown",this.#Q),this.#Q=null;this.#q=!1,this.#_=!1}#g(_){if(!this.#G||k(this,"disabled"))return;_.preventDefault(),this.focus(),this.select();let q=this.#Y();if(!q)return;this.#Z?.(),this.#q=!0;let Q=this.#K,Z=null,$=this.getBoundingClientRect(),J=$.left+$.width/2,j=$.top+$.height/2,N=_.clientX-J,W=_.clientY-j,G=_.clientX,K=_.clientY,U=3,L=(D,H,F=!1)=>{let B=q.getBoundingClientRect();Z=B;let S=this.#l(B),f=D-N-B.left,I=H-W-B.top,x=Math.max(0,Math.min(B.width,f)),y=Math.max(0,Math.min(B.height,I)),u=B.width>0?Q.x?x/B.width:S.px:0.5,d=B.height>0?Q.y?y/B.height:S.py:0.5;if(this.#X(F)){if(Q.x)u=this.#A(u);if(Q.y)d=this.#A(d);if(Q.x&&Q.y){let t=this.#B(u,d);u=t.x,d=t.y}}if(this.#P(Q),Q.x)this.style.left=`${Math.round(Math.max(0,Math.min(B.width,u*B.width)))}px`;if(Q.y)this.style.top=`${Math.round(Math.max(0,Math.min(B.height,d*B.height)))}px`},A=(D)=>{if(!this.#q)return;if(!this.#_){let H=D.clientX-G,F=D.clientY-K;if(H*H+F*F<U*U)return;if(this.#a(),this.classList.add("dragging"),this.style.cursor="grabbing",!k(this,"selected"))this.select()}this.#_=!0,L(D.clientX,D.clientY,D.shiftKey),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{...this.#l(Z),shiftKey:D.shiftKey}}))},Y=(D)=>{if(O(),this.#_){L(D.clientX,D.clientY,D.shiftKey),this.#k(),this.#F(this.getAttribute("value")),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:this.#l(Z)}));let H=(F)=>{F.stopPropagation(),F.preventDefault()};this.addEventListener("click",H,{capture:!0,once:!0})}else this.#k();this.#_=!1},O=()=>{if(window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",Y),this.#q=!1,this.style.cursor="",this.classList.remove("dragging"),this.#Z===O)this.#Z=null};this.#Z=O,window.addEventListener("pointermove",A),window.addEventListener("pointerup",Y)}showColorTip(){if(!this.#U)return;if(this.#J){this.#J.style.display="";return}this.#u()}hideColorTip(){if(!this.#J)return;this.#J.style.display="none"}#v(_=this.getAttribute("color")){let q={color:"#D9D9D9",opacity:100},Q=String(_||"").trim();if(!Q)return q;let Z=(J)=>{let j=J.replace("#","").trim();if(j.length===3||j.length===4){let[N,W,G,K]=j;return{color:`#${N}${N}${W}${W}${G}${G}`.toUpperCase(),opacity:K?Math.round(parseInt(`${K}${K}`,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 q},$=(J,j,N)=>{let W=(G)=>Math.max(0,Math.min(255,Math.round(Number(G)))).toString(16).padStart(2,"0");return`#${W(J)}${W(j)}${W(N)}`.toUpperCase()};if(Q.startsWith("#"))return Z(Q);try{let{ctx:J}=B0(1,1);J.fillStyle="#000000",J.fillStyle=Q;let j=J.fillStyle;if(j.startsWith("#"))return Z(j);let N=j.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*([\d.]+))?/i);if(N)return{color:$(N[1],N[2],N[3]),opacity:N[4]!==void 0?Math.round(parseFloat(N[4])*100):100}}catch{}return q}#x(){let{color:_,opacity:q}=this.#v();return JSON.stringify(q<100?{type:"solid",color:_,opacity:q}:{type:"solid",color:_})}#w(){if(!this.#W)return;this.#W.setAttribute("value",this.#x())}#h(){if(!o())return null;if(this.#W)return this.#W;let _=document.createElement("fig-fill-picker");_.setAttribute("mode","solid"),_.setAttribute("alpha","true"),_.setAttribute("dialog-offset","8 8"),_.setAttribute("value",this.#x()),_.anchorElement=this;let q=document.createElement("span");return q.hidden=!0,_.appendChild(q),_.addEventListener("input",this.#n),_.addEventListener("change",this.#e),_.addEventListener("close",this.#$0),this.appendChild(_),this.#W=_,_}#V(){if(k(this,"disabled"))return;let _=this.#h();if(!_){this.#s();return}this.setAttribute("selected",""),this.#w(),_.open()}#b(){if(!this.#W)return;this.#W.removeEventListener("input",this.#n),this.#W.removeEventListener("change",this.#e),this.#W.removeEventListener("close",this.#$0),this.#W.close(),this.#W.remove(),this.#W=null,this.removeAttribute("selected")}#m(){if(this.#j)return this.#j;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.#o),_.addEventListener("change",this.#Z0),this.appendChild(_),this.#j=_,_}#s(){let _=this.#m(),{color:q}=this.#v();_.value=q,this.setAttribute("selected",""),_.click()}#i(){if(!this.#j)return;this.#j.removeEventListener("input",this.#o),this.#j.removeEventListener("change",this.#Z0),this.#j.remove(),this.#j=null}#a(){if(this.getAttribute("type")!=="color")return;this.#W?.close()}#u(){let _=this.#U;if(!_)return;if(this.#J)return;let q=document.createElement("fig-color-tip");if(_==="add"||_==="remove")q.setAttribute("control",_);else q.setAttribute("value",this.getAttribute("color")||"#D9D9D9"),q.setAttribute("alpha","true");q.addEventListener("input",this.#J0),q.addEventListener("change",this.#j0),q.addEventListener("add",this.#Q0),q.addEventListener("remove",this.#Q0),this.appendChild(q),this.#J=q,this.#p()}#t(){if(!this.#J)return;this.#J.removeEventListener("input",this.#J0),this.#J.removeEventListener("change",this.#j0),this.#J.removeEventListener("add",this.#Q0),this.#J.removeEventListener("remove",this.#Q0),this.#J.remove(),this.#J=null}#p(){if(!this.#J||this.#U!=="color")return;let _=this.hasAttribute("selected")&&this.getAttribute("selected")!=="false";this.#J.toggleAttribute("selected",_)}#c(_,q){if(q===void 0||q>=100)return _;let{r:Q,g:Z,b:$}=l(_);return`rgba(${Q}, ${Z}, ${$}, ${q/100})`}#d(_){if(!_?.color)return null;let q=_.opacity!==void 0?_.opacity:_.alpha!==void 0?Math.round(_.alpha*100):void 0;return{color:_.color,opacity:q,...i(_.color,_.alpha,q)}}#n=(_)=>{_.stopPropagation();let q=this.#d(_.detail);if(!q)return;this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))};#e=(_)=>{_.stopPropagation();let q=this.#d(_.detail);if(!q)return;this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q}))};#r(_){let{opacity:q}=this.#v();return{...q<100?{color:_,opacity:q}:{color:_},...i(_,void 0,q)}}#o=(_)=>{_.stopPropagation();let q=this.#r(_.target.value);this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))};#Z0=(_)=>{_.stopPropagation();let q=this.#r(_.target.value);if(this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q})),this.isConnected)this.focus()};#$0=()=>{if(!this.isConnected)return;this.setAttribute("selected",""),this.focus()};#J0=(_)=>{if(_.stopPropagation(),_.detail?.color){let q={color:_.detail.color,opacity:_.detail.opacity,...i(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:q}))}};#j0=(_)=>{if(_.stopPropagation(),_.detail?.color){let q={color:_.detail.color,opacity:_.detail.opacity,...i(_.detail.color,_.detail.alpha,_.detail.opacity)};this.setAttribute("color",this.#c(q.color,q.opacity)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:q}))}};#Q0=(_)=>{_.stopPropagation(),this.dispatchEvent(new CustomEvent(_.type,{bubbles:!0,composed:!0}))};#l(_){let q=_||this.#Y()?.getBoundingClientRect();if(!q)return{x:0,y:0,px:0,py:0};let Q=this.getBoundingClientRect(),Z=this.offsetWidth/2,$=this.offsetHeight/2,J=Q.left-q.left,j=Q.top-q.top,N=J+Z,W=j+$,G=q.width>0?N/q.width:0,K=q.height>0?W/q.height:0;return{x:J,y:j,px:G,py:K}}}M("fig-handle",E_);class w_ 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.#q()}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="disabled")this.#q()}#q(){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")}}M("fig-menu-item",w_);class z0 extends HTMLElement{static get observedAttributes(){return["label"]}get label(){return this.getAttribute("label")??""}set label(_){if(_==null||_==="")this.removeAttribute("label");else this.setAttribute("label",String(_))}connectedCallback(){this.#q()}attributeChangedCallback(_,q,Q){if(q===Q)return;this.#q()}#q(){if(!this.hasAttribute("role"))this.setAttribute("role","separator");let _=this.label.trim();if(_)this.setAttribute("aria-label",_);else this.removeAttribute("aria-label")}}M("fig-separator",z0);class x_ extends z0{}M("fig-menu-separator",x_);var E0=":scope > fig-menu-item, :scope > fig-separator, :scope > fig-menu-separator",qq=new Set(["FIG-MENU-ITEM","FIG-SEPARATOR","FIG-MENU-SEPARATOR"]);class y_ extends HTMLElement{#q=null;#_=null;#Q=null;#Z=null;#$=null;#J=null;#W=null;#j=null;#N;#U;#L;#G;#K;#R=this.#M.bind(this);#X=-1;static get observedAttributes(){return["position","offset","closedby","disabled","open","trigger"]}constructor(){super();this.#N=this.#y.bind(this),this.#U=this.#g.bind(this),this.#L=this.#x.bind(this),this.#G=this.#w.bind(this),this.#K=this.#h.bind(this)}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.#E())return;this.setAttribute("open","")}else this.removeAttribute("open")}connectedCallback(){if(this.#A(),this.#Y(),this.#O(),this.#F(),this.#z(),this.#k(),this.#f(),this.open)this.#b()}disconnectedCallback(){if(this.#P(),this.#H(),document.removeEventListener("keydown",this.#G,!0),this.#$)this.#$.disconnect(),this.#$=null;if(this.#q){this.#q.removeEventListener("close",this.#K);let _=Array.from(this.#_?.querySelectorAll(E0)??[]);for(let q of _)this.insertBefore(q,this.#q);this.#q.remove(),this.#q=null,this.#_=null}}attributeChangedCallback(_,q,Q){if(q===Q)return;if(_==="open"){if(Q===null||Q==="false")this.#m();else{if(this.#E()){this.removeAttribute("open");return}this.#b()}return}if(_==="disabled"){this.#f();return}if(this.#q&&(_==="position"||_==="offset"||_==="closedby"))if(Q!==null)this.#q.setAttribute(_,Q);else this.#q.removeAttribute(_)}#A(){this.#Q=this.querySelector("[fig-menu-trigger]")||this.querySelector(":scope > :not(fig-menu-item):not(fig-separator):not(fig-menu-separator)")}#B(){return(this.getAttribute("trigger")||"").toLowerCase()==="contextmenu"||this.hasAttribute("contextmenu")}#Y(){this.#q=document.createElement("dialog",{is:"fig-popup"}),this.#q.setAttribute("is","fig-popup"),this.#q.classList.add("fig-menu-popup"),this.#q.setAttribute("theme","menu"),this.#q.setAttribute("role","menu"),this.#q.setAttribute("id",this.#q.getAttribute("id")||m());let _=this.getAttribute("position")||"bottom left";this.#q.setAttribute("position",_);let q=this.getAttribute("offset");if(q)this.#q.setAttribute("offset",q);let Q=this.getAttribute("closedby");if(Q)this.#q.setAttribute("closedby",Q);if(this.#Q)this.#q.anchor=this.#Q;this.#_=document.createElement("div"),this.#_.className="fig-menu-options",this.#_.setAttribute("role","presentation"),this.#q.appendChild(this.#_),this.#q.addEventListener("close",this.#K),this.appendChild(this.#q)}#O(){if(!this.#_)return;let _=Array.from(this.querySelectorAll(E0));for(let q of _)this.#_.appendChild(q)}#F(){if(this.addEventListener("keydown",this.#G),this.#Q)this.#Q.addEventListener("click",this.#N),this.#Q.addEventListener("contextmenu",this.#U),this.#Q.setAttribute("aria-haspopup","menu"),this.#Q.setAttribute("aria-expanded","false"),this.#Q.setAttribute("aria-controls",this.#q.getAttribute("id"));if(this.#q)this.#q.addEventListener("click",this.#L),this.#q.addEventListener("keydown",this.#G)}#P(){if(this.removeEventListener("keydown",this.#G),this.#Q)this.#Q.removeEventListener("click",this.#N),this.#Q.removeEventListener("contextmenu",this.#U);if(this.#q)this.#q.removeEventListener("click",this.#L),this.#q.removeEventListener("keydown",this.#G)}#k(){this.#$=new MutationObserver((_)=>{for(let q of _)for(let Q of q.addedNodes){if(Q.nodeType!==1||Q===this.#q)continue;if(qq.has(Q.tagName)&&Q.parentElement===this)this.#_?.appendChild(Q);else if(!this.#Q&&Q.parentElement===this){if(this.#A(),this.#Q)this.#Q.addEventListener("click",this.#N),this.#Q.addEventListener("contextmenu",this.#U),this.#Q.setAttribute("aria-haspopup","menu"),this.#Q.setAttribute("aria-expanded","false"),this.#Q.setAttribute("aria-controls",this.#q.getAttribute("id")),this.#q.anchor=this.#Q,this.#f()}}this.#M()}),this.#$.observe(this,{childList:!0})}#z(){if(!this.#_)return;this.#D(),this.#_.addEventListener("scroll",this.#R,{passive:!0}),this.#J?.disconnect(),this.#J=new ResizeObserver(()=>this.#M()),this.#J.observe(this.#_),requestAnimationFrame(()=>this.#M())}#H(){this.#_?.removeEventListener("scroll",this.#R),this.#J?.disconnect(),this.#J=null,this.#C()}#M(){return e(this.#_,this.#_,"y")}#D(){if(this.#W&&this.#j&&this.#_?.contains(this.#W)&&this.#_?.contains(this.#j))return;this.#C();let _=X0({owner:"menu",startLabel:"Scroll up",endLabel:"Scroll down",onStart:()=>_0(this.#_,"y",-1),onEnd:()=>_0(this.#_,"y",1)});this.#W=_.start,this.#j=_.end,this.#_.prepend(this.#W),this.#_.append(this.#j)}#C(){this.#W?.remove(),this.#j?.remove(),this.#W=null,this.#j=null,this.#_?.classList.remove("overflow-start","overflow-end")}#I(){if(!this.#_)return[];return Array.from(this.#_.querySelectorAll("fig-menu-item")).filter((_)=>!_.hasAttribute("disabled")||_.getAttribute("disabled")==="false")}#T(){let _=this.#I();if(!_.length){this.#X=-1;return}let q=document.activeElement,Q=_.findIndex((Z)=>Z===q||Z.contains(q));this.#X=Q>=0?Q:-1}#S(_){let q=this.#I();if(!q.length)return;let Q=(_+q.length)%q.length;this.#X=Q;let Z=q[Q];Z.focus(),p_(this.#_,Z,"y")}#f(){let _=this.#E();if(_)if(this.open)this.removeAttribute("open");else this.#m();if(!this.#Q)return;if(_)this.#Q.setAttribute("disabled",""),this.#Q.setAttribute("aria-disabled","true"),this.#Q.setAttribute("aria-expanded","false");else this.#Q.removeAttribute("disabled"),this.#Q.removeAttribute("aria-disabled")}#E(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}#y(_){if(this.#B())return;if(this.#E())return;_.stopPropagation();let q=this.#q?.matches?.(":open")??!1;if(this.open&&!q)this.removeAttribute("open");if(this.open&&q)this.open=!1;else{if(this.#q&&this.#Q)this.#q.anchor=this.#Q;this.open=!0}}#g(_){if(!this.#B())return;if(this.#E())return;_.preventDefault(),_.stopPropagation(),this.#v(_.clientX,_.clientY)}#v(_,q){let Q=!1,Z=0,$=()=>{window.clearTimeout(Z),window.removeEventListener("pointerup",J,!0),window.removeEventListener("pointercancel",j,!0)},J=()=>{if(Q)return;Q=!0,$(),requestAnimationFrame(()=>this.showAt(_,q))},j=()=>{if(Q)return;Q=!0,$()};window.addEventListener("pointerup",J,{once:!0,capture:!0}),window.addEventListener("pointercancel",j,{once:!0,capture:!0}),Z=window.setTimeout(J,180)}#x(_){if(this.#E())return;let q=_.target.closest("fig-menu-item");if(!q)return;if(q.hasAttribute("disabled")&&q.getAttribute("disabled")!=="false")return;this.#V(q)}#w(_){if(this.#E())return;if(_.currentTarget===document&&_.key!=="Escape")return;if(_.currentTarget===this&&this.#q?.contains(_.target))return;if(!this.open||!this.#q?.matches?.(":open")){if(this.#Q?.contains(_.target)&&(_.key==="ArrowDown"||_.key==="Enter"||_.key===" ")){if(_.preventDefault(),this.#q&&this.#Q)this.#q.anchor=this.#Q;this.open=!0,requestAnimationFrame(()=>this.#S(0))}return}let q=this.#I();if(!q.length)return;switch(_.key){case"ArrowDown":{_.preventDefault(),this.#T(),this.#S(this.#X+1);break}case"ArrowUp":{_.preventDefault(),this.#T(),this.#S(this.#X-1);break}case"Home":{_.preventDefault(),this.#S(0);break}case"End":{_.preventDefault(),this.#S(q.length-1);break}case"Escape":{_.preventDefault(),this.open=!1,this.#Q?.focus();break}case"Enter":case" ":{this.#T();let Q=q[this.#X];if(!Q)return;_.preventDefault(),this.#V(Q);break}}}#h(){if(this.hasAttribute("open"))this.removeAttribute("open");if(this.#Q)this.#Q.setAttribute("aria-expanded","false"),this.#Q.focus();this.#X=-1}#V(_){let q=_.getAttribute("value")||_.textContent.trim();this.setAttribute("value",q),this.dispatchEvent(new CustomEvent("change",{detail:{value:q,item:_},bubbles:!0})),this.open=!1}showAt(_,q){if(this.#E())return;if(this.#Z={getBoundingClientRect:()=>({width:0,height:0,top:q,right:_,bottom:q,left:_,x:_,y:q})},this.#q)this.#q.anchor=this.#Z;if(this.open)this.open=!1;requestAnimationFrame(()=>{if(this.#E())return;this.open=!0})}#b(){if(!this.#q||this.#E()){if(this.hasAttribute("open"))this.removeAttribute("open");return}if(this.#q.open=!0,document.addEventListener("keydown",this.#G,!0),this.#Q)this.#Q.setAttribute("aria-expanded","true");this.#X=-1,requestAnimationFrame(()=>{if(this.#M(),!this.#Q?.matches?.(":focus-visible"))return;this.#S(0)})}#m(){if(!this.#q)return;document.removeEventListener("keydown",this.#G,!0),this.#q.open=!1,this.#Q?.setAttribute("aria-expanded","false")}}M("fig-menu",y_);